From 31cf34f063e72ef4e48e012a91ce98b5614d89f6 Mon Sep 17 00:00:00 2001 From: Joachim Stolberg Date: Sat, 10 Mar 2018 22:14:57 +0100 Subject: [PATCH] Initial commit --- COPYING.txt | 28 + LICENSE.txt | 502 ++++++++++ gravelsieve/README.md | 33 + gravelsieve/depends.txt | 6 + gravelsieve/description.txt | 1 + gravelsieve/hammer.lua | 68 ++ gravelsieve/init.lua | 517 ++++++++++ gravelsieve/mod.conf | 1 + gravelsieve/settingtypes.txt | 5 + .../textures/gravelsieve_auto_sieve.png | Bin 0 -> 1601 bytes .../gravelsieve_compressed_gravel.png | Bin 0 -> 753 bytes gravelsieve/textures/gravelsieve_gravel.png | Bin 0 -> 2253 bytes gravelsieve/textures/gravelsieve_hammer.png | Bin 0 -> 1325 bytes gravelsieve/textures/gravelsieve_sieve.png | Bin 0 -> 1562 bytes gravelsieve/textures/gravelsieve_top.png | Bin 0 -> 934 bytes modpack.txt | 1 + smartline/README.md | 41 + smartline/api.md | 121 +++ smartline/button.lua | 189 ++++ smartline/commands.lua | 611 ++++++++++++ smartline/controller.lua | 937 ++++++++++++++++++ smartline/depends.txt | 7 + smartline/description.txt | 2 + smartline/display.lua | 139 +++ smartline/init.lua | 29 + smartline/mod.conf | 1 + smartline/playerdetector.lua | 224 +++++ smartline/repeater.lua | 127 +++ smartline/screenshot.png | Bin 0 -> 147560 bytes smartline/sequencer.lua | 281 ++++++ smartline/signaltower.lua | 133 +++ smartline/textures/smartline.png | Bin 0 -> 320 bytes .../textures/smartline_button_inventory.png | Bin 0 -> 578 bytes smartline/textures/smartline_button_off.png | Bin 0 -> 406 bytes smartline/textures/smartline_button_on.png | Bin 0 -> 407 bytes smartline/textures/smartline_controller.png | Bin 0 -> 556 bytes .../smartline_controller_inventory.png | Bin 0 -> 835 bytes smartline/textures/smartline_detector.png | Bin 0 -> 435 bytes .../textures/smartline_detector_active.png | Bin 0 -> 408 bytes .../textures/smartline_detector_inventory.png | Bin 0 -> 575 bytes smartline/textures/smartline_display.png | Bin 0 -> 246 bytes .../textures/smartline_display_inventory.png | Bin 0 -> 353 bytes smartline/textures/smartline_repeater.png | Bin 0 -> 495 bytes .../textures/smartline_repeater_inventory.png | Bin 0 -> 544 bytes smartline/textures/smartline_sequencer.png | Bin 0 -> 531 bytes .../smartline_sequencer_inventory.png | Bin 0 -> 894 bytes smartline/textures/smartline_signaltower.png | Bin 0 -> 486 bytes .../textures/smartline_signaltower_amber.png | Bin 0 -> 462 bytes .../textures/smartline_signaltower_green.png | Bin 0 -> 478 bytes .../textures/smartline_signaltower_red.png | Bin 0 -> 467 bytes .../textures/smartline_signaltower_top.png | Bin 0 -> 209 bytes smartline/textures/smartline_timer.png | Bin 0 -> 502 bytes .../textures/smartline_timer_inventory.png | Bin 0 -> 750 bytes smartline/timer.lua | 245 +++++ tubelib/README.md | 24 + tubelib/api.md | 288 ++++++ tubelib/blackhole.lua | 96 ++ tubelib/button.lua | 173 ++++ tubelib/command.lua | 423 ++++++++ tubelib/depends.txt | 1 + tubelib/description.txt | 2 + tubelib/distributor.lua | 449 +++++++++ tubelib/init.lua | 95 ++ tubelib/lamp.lua | 106 ++ tubelib/legacy_nodes.lua | 107 ++ tubelib/manual.md | 39 + tubelib/mod.conf | 1 + tubelib/pusher.lua | 243 +++++ tubelib/sounds/button.ogg | Bin 0 -> 5825 bytes tubelib/states.lua | 80 ++ tubelib/textures/tubelib_black_hole.png | Bin 0 -> 821 bytes tubelib/textures/tubelib_black_hole_inp.png | Bin 0 -> 1035 bytes tubelib/textures/tubelib_blue.png | Bin 0 -> 144 bytes tubelib/textures/tubelib_button.png | Bin 0 -> 2228 bytes tubelib/textures/tubelib_button_off.png | Bin 0 -> 1907 bytes tubelib/textures/tubelib_button_on.png | Bin 0 -> 1912 bytes tubelib/textures/tubelib_distributor.png | Bin 0 -> 2885 bytes .../textures/tubelib_distributor_active.png | Bin 0 -> 16068 bytes tubelib/textures/tubelib_distributor_blue.png | Bin 0 -> 2075 bytes .../textures/tubelib_distributor_green.png | Bin 0 -> 2076 bytes tubelib/textures/tubelib_distributor_red.png | Bin 0 -> 2072 bytes .../textures/tubelib_distributor_yellow.png | Bin 0 -> 2071 bytes tubelib/textures/tubelib_front.png | Bin 0 -> 2064 bytes tubelib/textures/tubelib_green.png | Bin 0 -> 144 bytes tubelib/textures/tubelib_gui_arrow.png | Bin 0 -> 214 bytes tubelib/textures/tubelib_hole.png | Bin 0 -> 357 bytes tubelib/textures/tubelib_hole2.png | Bin 0 -> 636 bytes tubelib/textures/tubelib_inp.png | Bin 0 -> 2078 bytes tubelib/textures/tubelib_inv_button_error.png | Bin 0 -> 898 bytes tubelib/textures/tubelib_inv_button_off.png | Bin 0 -> 1669 bytes tubelib/textures/tubelib_inv_button_on.png | Bin 0 -> 1615 bytes .../textures/tubelib_inv_button_standby.png | Bin 0 -> 1348 bytes tubelib/textures/tubelib_knee.png | Bin 0 -> 1028 bytes tubelib/textures/tubelib_knee2.png | Bin 0 -> 853 bytes tubelib/textures/tubelib_lamp.png | Bin 0 -> 1454 bytes tubelib/textures/tubelib_outp.png | Bin 0 -> 2095 bytes tubelib/textures/tubelib_pusher.png | Bin 0 -> 1316 bytes tubelib/textures/tubelib_pusher1.png | Bin 0 -> 444 bytes tubelib/textures/tubelib_red.png | Bin 0 -> 144 bytes tubelib/textures/tubelib_tube.png | Bin 0 -> 969 bytes tubelib/textures/tubelib_wlanchip.png | Bin 0 -> 6248 bytes tubelib/textures/tubelib_yellow.png | Bin 0 -> 144 bytes tubelib/tubes.lua | 438 ++++++++ tubelib_addons1/README.md | 43 + tubelib_addons1/autocrafter.lua | 467 +++++++++ tubelib_addons1/depends.txt | 2 + tubelib_addons1/description.txt | 2 + tubelib_addons1/fermenter.lua | 319 ++++++ tubelib_addons1/funnel.lua | 150 +++ tubelib_addons1/grinder.lua | 293 ++++++ tubelib_addons1/harvester.lua | 552 +++++++++++ tubelib_addons1/init.lua | 36 + tubelib_addons1/mod.conf | 1 + tubelib_addons1/pusher_fast.lua | 243 +++++ tubelib_addons1/quarry.lua | 466 +++++++++ tubelib_addons1/reformer.lua | 309 ++++++ tubelib_addons1/textures/tubelib_addons1.png | Bin 0 -> 554604 bytes .../textures/tubelib_addons1_autocrafter.png | Bin 0 -> 2034 bytes .../tubelib_addons1_autocrafter_active.png | Bin 0 -> 2524 bytes .../textures/tubelib_addons1_biofuel.png | Bin 0 -> 2730 bytes .../textures/tubelib_addons1_biogas.png | Bin 0 -> 3849 bytes .../tubelib_addons1_fermenter_bottom.png | Bin 0 -> 2691 bytes .../tubelib_addons1_fermenter_inventory.png | Bin 0 -> 6006 bytes .../tubelib_addons1_fermenter_top.png | Bin 0 -> 2460 bytes .../textures/tubelib_addons1_funnel.png | Bin 0 -> 2127 bytes .../textures/tubelib_addons1_funnel_top.png | Bin 0 -> 1998 bytes .../textures/tubelib_addons1_grinder.png | Bin 0 -> 3038 bytes .../tubelib_addons1_grinder_active.png | Bin 0 -> 8206 bytes .../textures/tubelib_addons1_harvester.png | Bin 0 -> 2167 bytes .../tubelib_addons1_harvester_top.png | Bin 0 -> 159 bytes .../textures/tubelib_addons1_pusher.png | Bin 0 -> 423 bytes .../textures/tubelib_addons1_pusher_an.png | Bin 0 -> 1305 bytes .../textures/tubelib_addons1_quarry.png | Bin 0 -> 2286 bytes .../tubelib_addons1_quarry_active.png | Bin 0 -> 2978 bytes .../tubelib_addons1_quarry_passive.png | Bin 0 -> 1442 bytes .../tubelib_addons1_reformer1_bottom.png | Bin 0 -> 1635 bytes .../tubelib_addons1_reformer1_top.png | Bin 0 -> 1674 bytes .../tubelib_addons1_reformer2_bottom.png | Bin 0 -> 1857 bytes .../tubelib_addons1_reformer2_top.png | Bin 0 -> 1839 bytes .../tubelib_addons1_reformer_inventory.png | Bin 0 -> 5501 bytes tubelib_addons2/README.md | 51 + tubelib_addons2/accesscontrol.lua | 156 +++ tubelib_addons2/colorlamp.lua | 125 +++ tubelib_addons2/depends.txt | 3 + tubelib_addons2/description.txt | 2 + tubelib_addons2/doorblock.lua | 120 +++ tubelib_addons2/gateblock.lua | 99 ++ tubelib_addons2/init.lua | 38 + tubelib_addons2/mesecons_converter.lua | 145 +++ tubelib_addons2/mod.conf | 1 + tubelib_addons2/programmer.lua | 91 ++ tubelib_addons2/repeater.lua | 114 +++ tubelib_addons2/sequencer.lua | 260 +++++ .../sounds/tubelib_addons2_door.ogg | Bin 0 -> 8380 bytes tubelib_addons2/textures/tubelib_addon2.png | Bin 0 -> 483929 bytes .../tubelib_addon2_access_control.png | Bin 0 -> 648 bytes .../textures/tubelib_addon2_door.png | Bin 0 -> 2233 bytes .../textures/tubelib_addon2_gate.png | Bin 0 -> 1651 bytes .../tubelib_addon2_mesecons_converter.png | Bin 0 -> 705 bytes .../textures/tubelib_addon2_repeater.png | Bin 0 -> 255 bytes .../textures/tubelib_addon2_timer.png | Bin 0 -> 275 bytes .../textures/tubelib_addons2_lamp.png | Bin 0 -> 994 bytes .../textures/tubelib_addons2_programmer.png | Bin 0 -> 879 bytes .../tubelib_addons2_programmer_wield.png | Bin 0 -> 698 bytes .../textures/tubelib_addons2_sequencer.png | Bin 0 -> 444 bytes tubelib_addons2/timer.lua | 210 ++++ 166 files changed, 11112 insertions(+) create mode 100644 COPYING.txt create mode 100644 LICENSE.txt create mode 100644 gravelsieve/README.md create mode 100644 gravelsieve/depends.txt create mode 100644 gravelsieve/description.txt create mode 100644 gravelsieve/hammer.lua create mode 100644 gravelsieve/init.lua create mode 100644 gravelsieve/mod.conf create mode 100644 gravelsieve/settingtypes.txt create mode 100644 gravelsieve/textures/gravelsieve_auto_sieve.png create mode 100644 gravelsieve/textures/gravelsieve_compressed_gravel.png create mode 100644 gravelsieve/textures/gravelsieve_gravel.png create mode 100644 gravelsieve/textures/gravelsieve_hammer.png create mode 100644 gravelsieve/textures/gravelsieve_sieve.png create mode 100644 gravelsieve/textures/gravelsieve_top.png create mode 100644 modpack.txt create mode 100644 smartline/README.md create mode 100644 smartline/api.md create mode 100644 smartline/button.lua create mode 100644 smartline/commands.lua create mode 100644 smartline/controller.lua create mode 100644 smartline/depends.txt create mode 100644 smartline/description.txt create mode 100644 smartline/display.lua create mode 100644 smartline/init.lua create mode 100644 smartline/mod.conf create mode 100644 smartline/playerdetector.lua create mode 100644 smartline/repeater.lua create mode 100644 smartline/screenshot.png create mode 100644 smartline/sequencer.lua create mode 100644 smartline/signaltower.lua create mode 100644 smartline/textures/smartline.png create mode 100644 smartline/textures/smartline_button_inventory.png create mode 100644 smartline/textures/smartline_button_off.png create mode 100644 smartline/textures/smartline_button_on.png create mode 100644 smartline/textures/smartline_controller.png create mode 100644 smartline/textures/smartline_controller_inventory.png create mode 100644 smartline/textures/smartline_detector.png create mode 100644 smartline/textures/smartline_detector_active.png create mode 100644 smartline/textures/smartline_detector_inventory.png create mode 100644 smartline/textures/smartline_display.png create mode 100644 smartline/textures/smartline_display_inventory.png create mode 100644 smartline/textures/smartline_repeater.png create mode 100644 smartline/textures/smartline_repeater_inventory.png create mode 100644 smartline/textures/smartline_sequencer.png create mode 100644 smartline/textures/smartline_sequencer_inventory.png create mode 100644 smartline/textures/smartline_signaltower.png create mode 100644 smartline/textures/smartline_signaltower_amber.png create mode 100644 smartline/textures/smartline_signaltower_green.png create mode 100644 smartline/textures/smartline_signaltower_red.png create mode 100644 smartline/textures/smartline_signaltower_top.png create mode 100644 smartline/textures/smartline_timer.png create mode 100644 smartline/textures/smartline_timer_inventory.png create mode 100644 smartline/timer.lua create mode 100644 tubelib/README.md create mode 100644 tubelib/api.md create mode 100644 tubelib/blackhole.lua create mode 100644 tubelib/button.lua create mode 100644 tubelib/command.lua create mode 100644 tubelib/depends.txt create mode 100644 tubelib/description.txt create mode 100644 tubelib/distributor.lua create mode 100644 tubelib/init.lua create mode 100644 tubelib/lamp.lua create mode 100644 tubelib/legacy_nodes.lua create mode 100644 tubelib/manual.md create mode 100644 tubelib/mod.conf create mode 100644 tubelib/pusher.lua create mode 100644 tubelib/sounds/button.ogg create mode 100644 tubelib/states.lua create mode 100644 tubelib/textures/tubelib_black_hole.png create mode 100644 tubelib/textures/tubelib_black_hole_inp.png create mode 100644 tubelib/textures/tubelib_blue.png create mode 100644 tubelib/textures/tubelib_button.png create mode 100644 tubelib/textures/tubelib_button_off.png create mode 100644 tubelib/textures/tubelib_button_on.png create mode 100644 tubelib/textures/tubelib_distributor.png create mode 100644 tubelib/textures/tubelib_distributor_active.png create mode 100644 tubelib/textures/tubelib_distributor_blue.png create mode 100644 tubelib/textures/tubelib_distributor_green.png create mode 100644 tubelib/textures/tubelib_distributor_red.png create mode 100644 tubelib/textures/tubelib_distributor_yellow.png create mode 100644 tubelib/textures/tubelib_front.png create mode 100644 tubelib/textures/tubelib_green.png create mode 100644 tubelib/textures/tubelib_gui_arrow.png create mode 100644 tubelib/textures/tubelib_hole.png create mode 100644 tubelib/textures/tubelib_hole2.png create mode 100644 tubelib/textures/tubelib_inp.png create mode 100644 tubelib/textures/tubelib_inv_button_error.png create mode 100644 tubelib/textures/tubelib_inv_button_off.png create mode 100644 tubelib/textures/tubelib_inv_button_on.png create mode 100644 tubelib/textures/tubelib_inv_button_standby.png create mode 100644 tubelib/textures/tubelib_knee.png create mode 100644 tubelib/textures/tubelib_knee2.png create mode 100644 tubelib/textures/tubelib_lamp.png create mode 100644 tubelib/textures/tubelib_outp.png create mode 100644 tubelib/textures/tubelib_pusher.png create mode 100644 tubelib/textures/tubelib_pusher1.png create mode 100644 tubelib/textures/tubelib_red.png create mode 100644 tubelib/textures/tubelib_tube.png create mode 100644 tubelib/textures/tubelib_wlanchip.png create mode 100644 tubelib/textures/tubelib_yellow.png create mode 100644 tubelib/tubes.lua create mode 100644 tubelib_addons1/README.md create mode 100644 tubelib_addons1/autocrafter.lua create mode 100644 tubelib_addons1/depends.txt create mode 100644 tubelib_addons1/description.txt create mode 100644 tubelib_addons1/fermenter.lua create mode 100644 tubelib_addons1/funnel.lua create mode 100644 tubelib_addons1/grinder.lua create mode 100644 tubelib_addons1/harvester.lua create mode 100644 tubelib_addons1/init.lua create mode 100644 tubelib_addons1/mod.conf create mode 100644 tubelib_addons1/pusher_fast.lua create mode 100644 tubelib_addons1/quarry.lua create mode 100644 tubelib_addons1/reformer.lua create mode 100644 tubelib_addons1/textures/tubelib_addons1.png create mode 100644 tubelib_addons1/textures/tubelib_addons1_autocrafter.png create mode 100644 tubelib_addons1/textures/tubelib_addons1_autocrafter_active.png create mode 100644 tubelib_addons1/textures/tubelib_addons1_biofuel.png create mode 100644 tubelib_addons1/textures/tubelib_addons1_biogas.png create mode 100644 tubelib_addons1/textures/tubelib_addons1_fermenter_bottom.png create mode 100644 tubelib_addons1/textures/tubelib_addons1_fermenter_inventory.png create mode 100644 tubelib_addons1/textures/tubelib_addons1_fermenter_top.png create mode 100644 tubelib_addons1/textures/tubelib_addons1_funnel.png create mode 100644 tubelib_addons1/textures/tubelib_addons1_funnel_top.png create mode 100644 tubelib_addons1/textures/tubelib_addons1_grinder.png create mode 100644 tubelib_addons1/textures/tubelib_addons1_grinder_active.png create mode 100644 tubelib_addons1/textures/tubelib_addons1_harvester.png create mode 100644 tubelib_addons1/textures/tubelib_addons1_harvester_top.png create mode 100644 tubelib_addons1/textures/tubelib_addons1_pusher.png create mode 100644 tubelib_addons1/textures/tubelib_addons1_pusher_an.png create mode 100644 tubelib_addons1/textures/tubelib_addons1_quarry.png create mode 100644 tubelib_addons1/textures/tubelib_addons1_quarry_active.png create mode 100644 tubelib_addons1/textures/tubelib_addons1_quarry_passive.png create mode 100644 tubelib_addons1/textures/tubelib_addons1_reformer1_bottom.png create mode 100644 tubelib_addons1/textures/tubelib_addons1_reformer1_top.png create mode 100644 tubelib_addons1/textures/tubelib_addons1_reformer2_bottom.png create mode 100644 tubelib_addons1/textures/tubelib_addons1_reformer2_top.png create mode 100644 tubelib_addons1/textures/tubelib_addons1_reformer_inventory.png create mode 100644 tubelib_addons2/README.md create mode 100644 tubelib_addons2/accesscontrol.lua create mode 100644 tubelib_addons2/colorlamp.lua create mode 100644 tubelib_addons2/depends.txt create mode 100644 tubelib_addons2/description.txt create mode 100644 tubelib_addons2/doorblock.lua create mode 100644 tubelib_addons2/gateblock.lua create mode 100644 tubelib_addons2/init.lua create mode 100644 tubelib_addons2/mesecons_converter.lua create mode 100644 tubelib_addons2/mod.conf create mode 100644 tubelib_addons2/programmer.lua create mode 100644 tubelib_addons2/repeater.lua create mode 100644 tubelib_addons2/sequencer.lua create mode 100644 tubelib_addons2/sounds/tubelib_addons2_door.ogg create mode 100644 tubelib_addons2/textures/tubelib_addon2.png create mode 100644 tubelib_addons2/textures/tubelib_addon2_access_control.png create mode 100644 tubelib_addons2/textures/tubelib_addon2_door.png create mode 100644 tubelib_addons2/textures/tubelib_addon2_gate.png create mode 100644 tubelib_addons2/textures/tubelib_addon2_mesecons_converter.png create mode 100644 tubelib_addons2/textures/tubelib_addon2_repeater.png create mode 100644 tubelib_addons2/textures/tubelib_addon2_timer.png create mode 100644 tubelib_addons2/textures/tubelib_addons2_lamp.png create mode 100644 tubelib_addons2/textures/tubelib_addons2_programmer.png create mode 100644 tubelib_addons2/textures/tubelib_addons2_programmer_wield.png create mode 100644 tubelib_addons2/textures/tubelib_addons2_sequencer.png create mode 100644 tubelib_addons2/timer.lua diff --git a/COPYING.txt b/COPYING.txt new file mode 100644 index 0000000..68beccd --- /dev/null +++ b/COPYING.txt @@ -0,0 +1,28 @@ +The TechPack Modpack for Minetest is + +Copyright (C) 2017-2018 Joachim Stolberg + +License of source code +---------------------- + +This program is free software; you can redistribute and/or +modify it under the terms of the GNU Lesser General Public License version 2.1 or later +published by the Free Software Foundation. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with this library; if not, write to the +Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, +Boston, MA 02110-1301, USA. + + +License of media (textures, sounds and documentation) +----------------------------------------------------- + +All textures, sounds and documentation files are licensed under the +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..4362b49 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/gravelsieve/README.md b/gravelsieve/README.md new file mode 100644 index 0000000..8285491 --- /dev/null +++ b/gravelsieve/README.md @@ -0,0 +1,33 @@ +# Gravel Sieve Mod +A Mod for those who do not want to spend half their lives underground... + +Inspired from a Minecr**t Video on YT. + +This mod simplifies the extraction of ores by the fact that ores can be obtained simply by sieving gravel. + +This mod includes three new tools: + - a hammer to produce gravel from Cobblestone + - two gravel sieves to find ores (a manual sieve and a automatic sieve) + +The sieved gravel can be crafted to Compressed Gravel (inspired by Modern Hippie) and "cooked" in the furnace to get Cobblestone again. + +Recipe for the Gravel Sieve: + + Wood, -----------, Wood + Wood, Steel Ingot, Wood + Wood, -----------, Wood + + +Recipe for the Automatic Gravel Sieve: + + Gravel Sieve, Mese Crystal, Mese Crystal + + +Recipe for Compressed Gravel: + + Sieved Gravel, Sieved Gravel, + Sieved Gravel, Sieved Gravel, + + +## Dependencies +default, optional moreores and tubelib diff --git a/gravelsieve/depends.txt b/gravelsieve/depends.txt new file mode 100644 index 0000000..f18b1c5 --- /dev/null +++ b/gravelsieve/depends.txt @@ -0,0 +1,6 @@ +default +moreblocks? +tubelib? +hopper? +pipeworks? + diff --git a/gravelsieve/description.txt b/gravelsieve/description.txt new file mode 100644 index 0000000..530c902 --- /dev/null +++ b/gravelsieve/description.txt @@ -0,0 +1 @@ +This mod includes a hammer to produce gravel from Cobblestone and a sieve to sift gravel to find ores. \ No newline at end of file diff --git a/gravelsieve/hammer.lua b/gravelsieve/hammer.lua new file mode 100644 index 0000000..5809e49 --- /dev/null +++ b/gravelsieve/hammer.lua @@ -0,0 +1,68 @@ +--[[ + + Gravel Sieve Mod + ================ + + v0.01 by JoSt + Derived from the work of RealBadAngel, Maciej Kasatkin (screwdriver) + + Copyright (C) 2017 Joachim Stolberg + Copyright (C) 2013-2016 RealBadAngel, Maciej Kasatkin + Copyright (C) 2013-2016 Various Minetest developers and contributors + + LGPLv2.1+ + See LICENSE.txt for more information + +]]-- + + +gravelsieve.disallow = function(pos, node, user, mode, new_param2) + return false +end + +gravelsieve.handler = function(itemstack, user, pointed_thing) + if pointed_thing.type ~= "node" then + return + end + + local pos = pointed_thing.under + + if minetest.is_protected(pos, user:get_player_name()) then + minetest.record_protection_violation(pos, user:get_player_name()) + return + end + + local node = minetest.get_node(pos) + if node.name == "default:cobble" or node.name == "default:mossycobble" + or node.name == "default:desert_cobble" then + node.name = "default:gravel" + minetest.swap_node(pos, node) + minetest.sound_play({ + name="default_dig_crumbly"},{ + gain=1, + pos=pos, + max_hear_distance=6, + loop=false}) + end + + return itemstack +end + +minetest.register_tool("gravelsieve:hammer", { + description = "Hammer converts Cobblestone into Gravel", + inventory_image = "gravelsieve_hammer.png", + on_use = function(itemstack, user, pointed_thing) + gravelsieve.handler(itemstack, user, pointed_thing) + return itemstack + end, +}) + +minetest.register_craft({ + output = "gravelsieve:hammer", + recipe = { + {"", "default:steel_ingot", ""}, + {"", "group:stick", "default:steel_ingot"}, + {"group:stick", "", ""}, + } +}) + diff --git a/gravelsieve/init.lua b/gravelsieve/init.lua new file mode 100644 index 0000000..aa8ca95 --- /dev/null +++ b/gravelsieve/init.lua @@ -0,0 +1,517 @@ +--[[ + + Gravel Sieve Mod + ================ + + v1.07 by JoSt + Derived from the work of celeron55, Perttu Ahola (furnace) + Pipeworks support added by FiftySix + + Copyright (C) 2017-2018 Joachim Stolberg + Copyright (C) 2011-2016 celeron55, Perttu Ahola + Copyright (C) 2011-2016 Various Minetest developers and contributors + + LGPLv2.1+ + See LICENSE.txt for more information + + History: + 2017-06-14 v0.01 First version + 2017-06-15 v0.02 Manually use of the sieve added + 2017-06-17 v0.03 * Settings bug fixed + * Drop bug fixed + * Compressed Gravel block added (Inspired by Modern Hippie) + * Recipes for Compressed Gravel added + 2017-06-17 v0.04 * Support for manual and automatic gravel sieve + * Rarity now configurable + * Output is 50% gravel and 50% sieved gravel + 2017-06-20 v0.05 * Hammer sound bugfix + 2017-06-24 v1.00 * Released version w/o any changes + 2017-07-08 V1.01 * extended for moreores + 2017-07-09 V1.02 * Cobblestone bugfix (NathanSalapat) + * ore_probability is now global accessable (bell07) + 2017-08-29 V1.03 * Fix syntax listring (Jat15) + 2017-09-08 V1.04 * Adaption to Tubelib + 2017-11-03 V1.05 * Adaption to Tubelib v0.06 + 2018-01-01 V1.06 * Hopper support added + 2018-01-02 V1.07 * changed to registered ores + 2018-02-09 V1.08 * Pipeworks support added, bugfix for issue #7 +]]-- + +gravelsieve = { +} + +dofile(minetest.get_modpath("gravelsieve") .. "/hammer.lua") + +gravelsieve.ore_rarity = tonumber(minetest.setting_get("gravelsieve_ore_rarity")) or 1 + +-- Increase the probability over the natural occurrence +local PROBABILITY_FACTOR = 3 + +-- Ore probability table (1/n) +gravelsieve.ore_probability = { +} + + +-- Pipeworks support +local pipeworks_after_dig = nil +local pipeworks_after_place = function(pos, placer) end + +if minetest.get_modpath("pipeworks") and pipeworks ~= nil then + pipeworks_after_dig = pipeworks.after_dig + pipeworks_after_place = pipeworks.after_place +end + +-- collect all registered ores and calculate the probability +local function add_ores() + for _,item in pairs(minetest.registered_ores) do + if minetest.registered_nodes[item.ore] then + local drop = minetest.registered_nodes[item.ore].drop + if type(drop) == "string" + and drop ~= item.ore + and drop ~= "" + and item.ore_type == "scatter" + and item.clust_scarcity ~= nil and item.clust_scarcity > 0 + and item.clust_size ~= nil and item.clust_size > 0 then + local probability = item.clust_scarcity / item.clust_size / + PROBABILITY_FACTOR * gravelsieve.ore_rarity + probability = math.floor(probability) + if probability > 20 then + if gravelsieve.ore_probability[drop] == nil then + gravelsieve.ore_probability[drop] = probability + else + gravelsieve.ore_probability[drop] = + math.min(gravelsieve.ore_probability[drop], probability) + end + end + end + end + end + local overall_probability = 0.0 + for name,probability in pairs(gravelsieve.ore_probability) do + print(string.format("[gravelsieve] %-32s %u", name, probability)) + overall_probability = overall_probability + 1.0/probability + end + print(string.format("[gravelsieve] Overall probability %g", overall_probability)) +end + +minetest.after(1, add_ores) + +local sieve_formspec = + "size[8,8]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "list[context;src;1,1.5;1,1;]".. + "image[3,1.5;1,1;gui_furnace_arrow_bg.png^[transformR270]".. + "list[context;dst;4,0;4,4;]".. + "list[current_player;main;0,4.2;8,4;]".. + "listring[context;dst]".. + "listring[current_player;main]".. + "listring[context;src]".. + "listring[current_player;main]" + + +local function allow_metadata_inventory_put(pos, listname, index, stack, player) + if minetest.is_protected(pos, player:get_player_name()) then + return 0 + end + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if listname == "src" then + return stack:get_count() + elseif listname == "dst" then + return 0 + end +end + +local function allow_metadata_inventory_move(pos, from_list, from_index, to_list, to_index, count, player) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local stack = inv:get_stack(from_list, from_index) + return allow_metadata_inventory_put(pos, to_list, to_index, stack, player) +end + +local function allow_metadata_inventory_take(pos, listname, index, stack, player) + if minetest.is_protected(pos, player:get_player_name()) then + return 0 + end + return stack:get_count() +end + +-- handle the sieve animation +local function swap_node(pos, meta, start) + local node = minetest.get_node(pos) + local idx = meta:get_int("idx") + if start then + if idx == 3 then + idx = 0 + end + else + idx = (idx + 1) % 4 + end + meta:set_int("idx", idx) + node.name = meta:get_string("node_name")..idx + minetest.swap_node(pos, node) + return idx == 3 +end + +-- place ores to dst according to the calculated probability +local function random_ore(inv, src) + local num + for ore, probability in pairs(gravelsieve.ore_probability) do + if math.random(probability) == 1 then + local item = ItemStack(ore) + if inv:room_for_item("dst", item) then + inv:add_item("dst", item) + return true -- ore placed + end + end + end + return false -- gravel has to be moved +end + + +local function add_gravel_to_dst(meta, inv) + -- maintain a counter for gravel kind selection + local gravel_cnt = meta:get_int("gravel_cnt") + 1 + meta:set_int("gravel_cnt", gravel_cnt) + + if (gravel_cnt % 2) == 0 then -- gravel or sieved gravel? + inv:add_item("dst", ItemStack("default:gravel")) -- add to dest + else + inv:add_item("dst", ItemStack("gravelsieve:sieved_gravel")) -- add to dest + end +end + + +-- move gravel and ores to dst +local function move_src2dst(meta, pos, inv, src, dst) + if inv:room_for_item("dst", dst) and inv:contains_item("src", src) then + local res = swap_node(pos, meta, false) + if res then -- time to move one item? + if src:get_name() == "default:gravel" then -- will we find ore? + if not random_ore(inv, src) then -- no ore found? + add_gravel_to_dst(meta, inv) + end + else + inv:add_item("dst", ItemStack("gravelsieve:sieved_gravel")) -- add to dest + end + inv:remove_item("src", src) + end + return true -- process finished + end + return false -- process still running +end + +-- timer callback, alternatively called by on_punch +local function sieve_node_timer(pos, elapsed) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local gravel = ItemStack("default:gravel") + local gravel_sieved = ItemStack("gravelsieve:sieved_gravel") + + if move_src2dst(meta, pos, inv, gravel) then + return true + elseif move_src2dst(meta, pos, inv, gravel_sieved) then + return true + else + minetest.get_node_timer(pos):stop() + return false + end +end + + +for automatic = 0,1 do +for idx = 0,4 do + local nodebox_data = { + { -8/16, -8/16, -8/16, 8/16, 4/16, -6/16 }, + { -8/16, -8/16, 6/16, 8/16, 4/16, 8/16 }, + { -8/16, -8/16, -8/16, -6/16, 4/16, 8/16 }, + { 6/16, -8/16, -8/16, 8/16, 4/16, 8/16 }, + { -6/16, -2/16, -6/16, 6/16, 8/16, 6/16 }, + } + nodebox_data[5][5] = (8 - 2*idx) / 16 + + local node_name + local description + local tiles_data + local tube_info + if automatic == 0 then + node_name = "gravelsieve:sieve" + description = "Gravel Sieve" + tiles_data = { + -- up, down, right, left, back, front + "gravelsieve_gravel.png", + "gravelsieve_gravel.png", + "gravelsieve_sieve.png", + "gravelsieve_sieve.png", + "gravelsieve_sieve.png", + "gravelsieve_sieve.png", + } + else + node_name = "gravelsieve:auto_sieve" + description = "Automatic Gravel Sieve" + tiles_data = { + -- up, down, right, left, back, front + "gravelsieve_gravel.png", + "gravelsieve_gravel.png", + "gravelsieve_auto_sieve.png", + "gravelsieve_auto_sieve.png", + "gravelsieve_auto_sieve.png", + "gravelsieve_auto_sieve.png", + } + + -- Pipeworks support + tube_info = { + insert_object = function(pos, node, stack, direction) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if automatic == 0 then + local meta = minetest.get_meta(pos) + swap_node(pos, meta, true) + else + minetest.get_node_timer(pos):start(1.0) + end + return inv:add_item("src", stack) + end, + can_insert = function(pos, node, stack, direction) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + return inv:room_for_item("src", stack) + end, + input_inventory = "dst", + connect_sides = {left = 1, right = 1, front = 1, back = 1, bottom = 1, top = 1} + } + end + + if idx == 3 then + tiles_data[1] = "gravelsieve_top.png" + not_in_creative_inventory = 0 + else + not_in_creative_inventory = 1 + end + + + minetest.register_node(node_name..idx, { + description = description, + tiles = tiles_data, + drawtype = "nodebox", + drop = node_name, + + tube = tube_info, -- NEW + + node_box = { + type = "fixed", + fixed = nodebox_data, + }, + selection_box = { + type = "fixed", + fixed = { -8/16, -8/16, -8/16, 8/16, 4/16, 8/16 }, + }, + + on_timer = sieve_node_timer, + + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_int("idx", idx) -- for the 4 sieve phases + meta:set_int("gravel_cnt", 0) -- counter to switch between gravel and sieved gravel + meta:set_string("node_name", node_name) + meta:set_string("formspec", sieve_formspec) + local inv = meta:get_inventory() + inv:set_size('src', 1) + inv:set_size('dst', 16) + end, + + -- Pipeworks support + after_dig_node = pipeworks_after_dig, + + after_place_node = function(pos, placer) + local meta = minetest.get_meta(pos) + meta:set_string("infotext", "Gravel Sieve") + + -- Pipeworks support + pipeworks_after_place(pos, placer) + end, + + on_metadata_inventory_move = function(pos) + if automatic == 0 then + local meta = minetest.get_meta(pos) + swap_node(pos, meta, true) + else + minetest.get_node_timer(pos):start(1.0) + end + end, + + on_metadata_inventory_take = function(pos) + if automatic == 0 then + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if inv:is_empty("src") then + -- sieve should be empty + meta:set_int("idx", 2) + swap_node(pos, meta, false) + meta:set_int("gravel_cnt", 0) + end + else + minetest.get_node_timer(pos):start(1.0) + end + end, + + on_metadata_inventory_put = function(pos) + if automatic == 0 then + local meta = minetest.get_meta(pos) + swap_node(pos, meta, true) + else + minetest.get_node_timer(pos):start(1.0) + end + end, + + on_punch = function(pos, node, puncher, pointed_thing) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if inv:is_empty("dst") and inv:is_empty("src") then + minetest.node_punch(pos, node, puncher, pointed_thing) + else + sieve_node_timer(pos, 0) + end + end, + + on_dig = function(pos, node, puncher, pointed_thing) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if inv:is_empty("dst") and inv:is_empty("src") then + minetest.node_dig(pos, node, puncher, pointed_thing) + end + end, + + allow_metadata_inventory_put = allow_metadata_inventory_put, + allow_metadata_inventory_move = allow_metadata_inventory_move, + allow_metadata_inventory_take = allow_metadata_inventory_take, + + paramtype = "light", + sounds = default.node_sound_wood_defaults(), + paramtype2 = "facedir", + sunlight_propagates = true, + is_ground_content = false, + groups = {choppy=2, cracky=1, not_in_creative_inventory=not_in_creative_inventory, tubedevice = 1, tubedevice_receiver = 1}, + drop = node_name.."3", + }) +end +end + + +------------------------------------------------------------------------ +-- Optional adaption to tubelib +------------------------------------------------------------------------ +if minetest.global_exists("tubelib") then + tubelib.register_node("gravelsieve:auto_sieve3", + { + "gravelsieve:auto_sieve0", + "gravelsieve:auto_sieve1", + "gravelsieve:auto_sieve2", + }, + { + on_pull_item = function(pos, side) + local meta = minetest.get_meta(pos) + return tubelib.get_item(meta, "dst") + end, + on_push_item = function(pos, side, item) + minetest.get_node_timer(pos):start(1.0) + local meta = minetest.get_meta(pos) + return tubelib.put_item(meta, "src", item) + end, + on_unpull_item = function(pos, side, item) + local meta = minetest.get_meta(pos) + return tubelib.put_item(meta, "dst", item) + end, + on_recv_message = function(pos, topic, payload) + if topic == "on" then + start_the_machine(pos) + elseif topic == "off" then + stop_the_machine(pos) + end + end, + }) +end + +minetest.register_node("gravelsieve:sieved_gravel", { + description = "Sieved Gravel", + tiles = {"default_gravel.png"}, + groups = {crumbly=2, falling_node=1, not_in_creative_inventory=1}, + sounds = default.node_sound_gravel_defaults(), +}) + +minetest.register_node("gravelsieve:compressed_gravel", { + description = "Compressed Gravel", + tiles = {"gravelsieve_compressed_gravel.png"}, + groups = {cracky=2, crumbly = 2, cracky = 2}, + sounds = default.node_sound_gravel_defaults(), +}) + +minetest.register_craft({ + output = "gravelsieve:sieve", + recipe = { + {"group:wood", "", "group:wood"}, + {"group:wood", "default:steel_ingot", "group:wood"}, + {"group:wood", "", "group:wood"}, + }, +}) + +minetest.register_craft({ + output = "gravelsieve:auto_sieve", + recipe = { + {"gravelsieve:sieve", "default:mese_crystal", "default:mese_crystal"}, + }, +}) + +minetest.register_craft({ + output = "gravelsieve:compressed_gravel", + recipe = { + {"gravelsieve:sieved_gravel", "gravelsieve:sieved_gravel"}, + {"gravelsieve:sieved_gravel", "gravelsieve:sieved_gravel"}, + }, +}) + +minetest.register_craft({ + type = "cooking", + output = "default:cobble", + recipe = "gravelsieve:compressed_gravel", + cooktime = 10, +}) + +minetest.register_alias("gravelsieve:sieve", "gravelsieve:sieve3") +minetest.register_alias("gravelsieve:auto_sieve", "gravelsieve:auto_sieve3") + +-- adaption to hopper +if minetest.get_modpath("hopper") and hopper ~= nil and hopper.add_container ~= nil then + hopper:add_container({ + {"bottom", "gravelsieve:auto_sieve0", "src"}, + {"top", "gravelsieve:auto_sieve0", "dst"}, + {"side", "gravelsieve:auto_sieve0", "src"}, + + {"bottom", "gravelsieve:auto_sieve1", "src"}, + {"top", "gravelsieve:auto_sieve1", "dst"}, + {"side", "gravelsieve:auto_sieve1", "src"}, + + {"bottom", "gravelsieve:auto_sieve2", "src"}, + {"top", "gravelsieve:auto_sieve2", "dst"}, + {"side", "gravelsieve:auto_sieve2", "src"}, + + {"bottom", "gravelsieve:auto_sieve3", "src"}, + {"top", "gravelsieve:auto_sieve3", "dst"}, + {"side", "gravelsieve:auto_sieve3", "src"}, + }) +end + +-- adaption to Circular Saw +if minetest.get_modpath("moreblocks") then + + stairsplus:register_all("gravelsieve", "compressed_gravel", "gravelsieve:compressed_gravel", { + description="Compressed Gravel", + groups={cracky=2, crumbly=2, choppy=2, not_in_creative_inventory=1}, + tiles = {"gravelsieve_compressed_gravel.png"}, + sounds = default.node_sound_stone_defaults(), + }) +end + + diff --git a/gravelsieve/mod.conf b/gravelsieve/mod.conf new file mode 100644 index 0000000..38040e7 --- /dev/null +++ b/gravelsieve/mod.conf @@ -0,0 +1 @@ +name=gravelsieve diff --git a/gravelsieve/settingtypes.txt b/gravelsieve/settingtypes.txt new file mode 100644 index 0000000..0b4e528 --- /dev/null +++ b/gravelsieve/settingtypes.txt @@ -0,0 +1,5 @@ +# Rarity factor to find ores when sieving with the Gravel Sieve +# 1.0 is according to the mapgen generator +# 2.0 means half as many ores as result +# 0.5 means twice as many ores as result +gravelsieve_ore_rarity (Rarity factor to find ores) float 1 \ No newline at end of file diff --git a/gravelsieve/textures/gravelsieve_auto_sieve.png b/gravelsieve/textures/gravelsieve_auto_sieve.png new file mode 100644 index 0000000000000000000000000000000000000000..90ef83d6a3e6da6d5dda96c229860d2f828734e2 GIT binary patch literal 1601 zcmV-H2EO@;P)52_@zAF}DB!1ziu=dH)Dx+G?Ga10)jx}((OPi%}6s|ZNfhR(C5@SU!hTG!GrnTZ-3+Zy&jW; zjAB>PSkU#0d|&hG%{k*y zN*HLq`rF^d`+f2uz_TY)eBbB4uTFXO=8SJ&zDD~#0PDO!NJUv0oO3KUIiauUI?I!j z6Qr}4s^ao`h41^UHU-&mz|Wuml+HTpwtHBIdbqIO6l{xvO}=H&PdGlD5Cj3nR4msy zZQIi8#e_k?K{lW=HC9OSVn;e0&~_c2wKxX?$IDl5cse^lNFlE3CD| zQT#Z-aL_|akE3yh!}0BRZ#chPAf(6hPoJZ;PrltT84WqVm?H$lQON1}1z*4TnkWoN zk{D+#p64+;o-oQ%o;`hnl=5+au5J1Eix*t4HcXEWS*|ur4lZ$gMLCBhs2?elpe!$z+^N;`#z;H{Os9Ne)4q2bTVSI z*$~GO)8iwgr@&dR7mE)7#6SQ12e-Lila43UWsUTM??0lBVmT*>BWzPqY&LXlOFU>O z3(3LkGg`AF>LnD*`A76$QWXVZ65Y#LT`dS=jg_Eehw2(bude`0&ouFxI;=~Xp5ia!U8bc6A_w>VQ4&5c$(KDR01mU}!!;|dJhchVGwICI? zHPE$q;Q^r+f|N+mNOS}tDz;_K(b!V1mq=T1`TC3~iHO1rOrsEffp9%``KL7bTWXbJ zHdmN(N77Fa_P$S*l|_mgt0Z9*;v9sB6WY2&=?FbN!F4sZmCy?Oq@-yRf}q5zc5izRL;6H$Ert`P3+lQNG5rTcn?2yAtX7go6wK+qF2)Lv%S&G6EaX z2tznH`lvpOBAVJDJ^O<>cRp;5a}I(DLV9EqiD^BA@E8nt#L)^*hp7G&(yT&w{>?r< zqW|ceZrOLPQONNI0B3w$9wEmYobeGsgImXlbcb8t945E-?_UAzd4`-W?|w4&JVV6h zPJe%HHRW~za=OI69U`&<5i~c3`2bppQx?%L@0C9sw~o2Zd4KKp`BoS4yW?0+m$-F| z`o~va;^_pXV>~}#Fx+u<=@Z92`e{zR+c7`eKI*BOG0s|&_?pcsqH7G+iyrl;>P325cc})d*Uobc8*>Tj1eelAsO@$ zDgbBp4shFNYD?IYNabrhW}yzbH7j8#vtP(y0)b@)4kU}?2|gu zxUL1)A)4*p0Uq|L_56xnU*VjhWdA>+hkgG8YfEvX7m**#00000NkvXXu0mjfs{8z# literal 0 HcmV?d00001 diff --git a/gravelsieve/textures/gravelsieve_compressed_gravel.png b/gravelsieve/textures/gravelsieve_compressed_gravel.png new file mode 100644 index 0000000000000000000000000000000000000000..858aebe9f0c08c8bdd11ccdc17bd1dd548196af0 GIT binary patch literal 753 zcmVt`6oBEqoWi?&|@5%XjFQ@lg zx-0^D9h1~dfx-QGiE_tSmTbd5=uq%OlEn-qgprP3kZXJ4Aw{4C|I=BIOJvLqDxxz} z&iJ6Gj&-RH;2)N5#FMEX4&hk7pR)w>#=n?)v&oyXSrRBnXA)97aXFuL>Why2rE*$3 z&*(|-JPx~;7Q^WlH|o;henL^&U0mN{))oZijQrO->Ijjj6v`X$)bPk8Arfcw-+U*= ziV2b@!%2Indr7pa+FE|GM~tc<7_6x*)#sqUt7v$HX`~fUeGdAdru+y2rXO}P?Di}~ zIv(0-PTXf#&G^tV+bw$j`@9uoqx-Ib@%ohml7kPV8UtQc>BT!(_T*W+`j%H9smb$- zmL3bqEc;`u#?_#=49tl)Adi{j)Qs0qjQ#3q@Yu)V1D~K9m57U>oR?-WtJ?*^WuX$M zg_&c&m1&1~@K@hy0&Hr8+{NR##wRl%zuPs~Hs0|CQ_5~4K49{@gkR={tktpXf jPs0`IbpH}Zk?cPK);A4q)&$uI00000NkvXXu0mjfy*X%kWyVgJcQzLkw7o zV<(0qOWjSf$>LD+TzP0&k=X{)@N3}*PJsoU@B6gBefr0)Z5s?jA$5Z=+M|?%W!V&Y zh3oam_Djsc94Tt{>kV$-MQd}iN+(PThOU9*jUIFd@IFuMlZstjVJH)6m}GfNU6r(T zfn_V|vc&2SX!3xzF6sLdG)>ZW0*#KQX=vN#!FR_z-E&PeIuJVEFe6VKbVDKA7-0-( zn+zchEYH7t`=+Lo60M1_-4W-uO;r{M**@sb6Wxz^!ZvD@-a)w~Nk`C@bX^DL6irC{ zsi3GOnkMmvDUQ8IDhs`T!NAYaq=D3p2j3m@^iEg^O(K+yCIo+Z;SeV=yTbyn?=ti} zOcRP?!R`=ImKD8Tie;LNeUH2-sTx7|MNQAu34+%&ZHo{(yZt{g44upKGZw2`%Btqi zfAD|A6G@byNrfhKEMr4nmOOv{45buVRxq86*aQJe8Au^eN}&v$+fBe?wINP2Zf=&i zj?L-(oV+Lj4d_rxQ8yin)ta_#acqZUo)}IiXp{)4qa25!*Fy-&$;79ln zR5iA3Q&$y5S)u{U+YOebIOd7sus~NfZ55NIF=<{Rgp3NxB5`W;aJH!-ag{HxLHbEIW zNsd7CEkC;q_gTG$+e4k~kqRN}fLX2+Oj$TC8a5iZn^+=-4L}P1A6G(npg& zVZyQRadopo*LCJ66NZBxwq>Jf8sEKo!{T;LRaNv{8^<mfb_dWj#v>okH5qyKI}zP8;nimuZqH@AKhSd=T-QZvuv%|<{OFu8ilOTO z2&0tcI>2~j;5rT$7Z097!5pnu0ObwqD+g`dW)_b^eUe$ zv`tH1RJ?j~P1iQKmch5Lu9zG`o_zcPFTeUXmSr;V`uykhg2i%!kdooFJ7|Uhn&u)><$sr z$=g1$SRj$i=X0FFjLBK=z6ajrxodN~*^%W1+e63)m*;3g62~!N6p@z|mSvNdHU6MS zlw=&DgfuIVQZSp0P^RMSbb^$Ub+D(doB!X49$j8ApN$C*2OP&?etLqGI?%D*ZfQD= z$z;m+S2tYWESdNNf?dS<>6DA}IdPIP@_p99mMDrbm7-}{s`{=^9P{+zu)yjMXsei_ zmb`uw|1ZyNhwJ5_u;!dUvIW7Z`TaG0sr{wYfMwIKZJbt z`RBZR`I3?EadmTxZs^QUrVIyt9NR_{cYWfRr~UQQKXsO^kcNpSB*E?L2W`VJ3V+sy z>`=VV6F-QdO&2s(@!)Ovb2sEMPtWs=x+-zq9$lF-8a!+pKJ@N*8y@q-u^1k@4S(*2 bJm&ouLYk5MNRut700000NkvXXu0mjfJl-Zr literal 0 HcmV?d00001 diff --git a/gravelsieve/textures/gravelsieve_hammer.png b/gravelsieve/textures/gravelsieve_hammer.png new file mode 100644 index 0000000000000000000000000000000000000000..169efdd87ea166eb7a6277f7398dda285c884753 GIT binary patch literal 1325 zcmV+|1=9M7P)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00fmuL_t(o!^M_MZyQw@hMzOz z@i?}}x1_l_iQ}Y~TzgAZ3N7N2QZ_|JLY3Gfx&;T9M&4Nw;KsRJTB~(N~2sKoy zRA@v=Lqe?F8YgMe5GRiB_RJg>hDueTtrMqwtC^#t?|J9_&U-XaVflQ!WVj_Nk3IjQ zqza`}vRQTbWPL-FV5o!n_$s=~Bm4Ic%9hqXIWTZc0`&CYtfZ%-lFgR6DO_$tV%r$r zAiL_?D47LpyToKHM!2P0TDA-LRRAs^UsVT&hK3GKP5wful*jG%lS;3lst$soM(XR^ z$>ma%N(wD){j#Zs+*Fl+rcN7({jwe2LqU^D4-0!`B~%>t^bkaZ*eMNwIdPoSxS+TtATUYH9EaA$NxR80UtwDX8`Y8tA; zi6RtCvxra>%u*3uuOYFvM824(#vQ=r)KQfJvDm2C?g$>#?DQ>>$!wwu6~BC93|LLL->v~8Tan^Gx{=FnMOoTR>? z9U&C5=_GS=x5btn7`lA|({t@Wzb!@DxW^w5r z3WY3QZ!M|KKXH5f44!-$aP``a zhx)Zf_DjPXpjgbKC@O~!_j3OHr^M%HxHa-KpM3m*sMG;@XnmNpfHn`5Y_KGJn`~z6 z_KinACVqERM4|^|AW)C0SiF1gL#_?~NNjQp(@a#Jf(wU`7T|ZnYOW0bW*(-KkME;t z9{JIQ&sm61bN#0)Oihi8ievbGFLKj@hyhDk&=pw8z?U=Ii}F*&@ST0gtb|SKqyTX| z>X&Esz{cMf%xVs7;D>ow$sw4UDpW&&`pC-Jv+8~;Z=LopvtEF91Ma55=Y%^6xV~H+ z>mQqf&yJS=U=#t98?e_8!wc~JQgz|~I)Zci%5aB(L>~49;O4!Zfj=VPOe?Z8Sbm;K zL4zB{*Wl~;&cGiM@J0mrTr-TVm*3kB7+r-+Q#%KLa0cFrB0KzG+7Qso_AjL1;>6Cv z0hGQbkF3$k2hPx7bgi8EX8{LL#_nZAvm548<;-{a;j8o>o>d6|!!YE_p%m>th-F-S jH?r7%{UzV#|U(OLj;+02>|$v1P%E2jBsa zcz~G^JBCb>PN&;;`=ea0x>dLCWsyvV?t~;l_`j@kbk0w8ESKQk{rXqG^!;9s=_IE- zRCLa9yWS8;$*`Ysy;u=N5dfzr6ZTb&4i%fthBWJOI8>bEL)P0JQVPOQ^Yr-@C*vV; zr1{fd{wn^nPu>T3^k7C9hWzX4B~PEf;F~AU&|wI`wkQ!&QPl?TJ?mXT94flb@!;YD z=^du7xw+jCh9R3>Nj@6z>2bk&QGUAQG_uy>urIx zmR>I6*tQjSJzASWyOmZFUit`^Vyu*G=Km+T5D|Qxw>B9oFh%r z4+D$_J){gcJIV2QzWMe!S2rt!40!zMW3&z__6Mfp5m(nsgn%@OxxBjO>#x2hi6gQs z#XCn31kBH;jPoIn9zH-y`C)+0TE6`1D{ePCW@o3YH#?@2oVIPbdU3^mUvP1LifJs9 ze1P{*>`RPk7!F@e(zcc)Nw95;X&MCZ@@7dK>kk7Q>V`l{PERIit(l#jpn`zKYK^s) zVZYCIR}iQG6^5+VTLPu{{3oCAg%9^=8YXhZjg0ydU6?zxnKE zMOiZ+#nhXZ6vdu63b9>B+qMk)8EG1m#vxJ$jD`cI;}JRxsf^)Aj~?=ahjV7rF}vN4 zG)FzlDBoF-3TF*; zmLQ%G2Qf&AlmX5jP*I8%64AD3S8zHn*|#87^iEw$3E>21?W>&s;)wn#b06wlH9 zDQ35zSZ_$O1mT`ytYTj^oSitT?HcJyZl1j$$r6(I8q+F7SR#CnL-8qX@sdUjF}nq( zI*|1kD4n2Z7x=EhSqWAUW)-c?h@uK-Ve&?=5O{7^ zioDlhn})bQ{5~f>dFAu+j!%t;DJs+iZjTIyxUND5A@Lvwz;zZM1c zXYbVKNkZEgWZ>SL^Tvm3@ZLi-MaY1BDls-dh=9T9K$>g_bd2ghV3^m4Abhps2lS84 zQMZL9ODa1W!n9zC_9qbrRDydpr=RB{$m&+k$6-cP)#3fe0hY z)=^g>S-(fMUDH+xo&?{makiqk72NK2m= zA+q!IdSHw|Ne9`Wk5CbKb98|3`b^`9dlIQajWsp4Y0+tZbb#;rvf+TvX;eSYsrDtk zd`uiJjt162Ex zY&d+=rv}q=T-V}U_xjU$+`Hc=54#c}BsfRc9F7ifzfXdv*?x=bY6hc!a{Rm7CtYih z=^351G-h`6`ulxSCmP>b@ExMvA06O+pV}@L^!f_#6&1(-Bf8)BZ$;F54i)%rCIA2c M07*qoM6N<$f-MT>)Bpeg literal 0 HcmV?d00001 diff --git a/gravelsieve/textures/gravelsieve_top.png b/gravelsieve/textures/gravelsieve_top.png new file mode 100644 index 0000000000000000000000000000000000000000..32f615904119d9073747c5a7f5a836bd2690a22b GIT binary patch literal 934 zcmV;X16lluP)X?Xq{u*4$89W@AYt;8lLA9M=AASiec|2ZgU1DGkSmjL%mT)=!juz(I3RL>Nd5Y zQ%VO=^pm|o%I>Wc+i_90%P`VpX@bsTJl`Qp61+x}Jla8L35|9aAr#t31cp4%(K;`! z8~3wW5At8NJV>E5@!k_6hSMb=J!yJht-&+*^Us(Mp<@g-MF86 z>Ezr6sT`EoLRvN}y*cE} z;-2}^x@NpV(NBDF@q}r#yC~bG=J)t~W1h9OHEur(3k!Gj{PGhyML%)<{pXF&5-hJx z&ZfJls!@LK=TN;lxI zFO%mvM-Fum%0^s1f5H?8Z-2R4X$HzpsJj8eJoHoV5)f=;wZlJrhJPM+55}x}osx$-V zpKFhTXwoFSZ*YASMB^m9a$}~_47~PaHVUFibKw4Pl_K~i&Vg4JJv`q**)Bq=$#dXn z?^|>hV-fCOdM3?*Gm92knozITFvd)t1MRKL3?ogaSp%I+o&$IPji_o4-2FGA*FWf2 znt?Z;?T&)z>!s7C2!@@%wn}xw{$Bq;9n#>8fJnNYO`b;RaGN}hOLxPAcF1u*D~g8y zgJBAjgmjwax?x$}csCsPlSvXX7$#(CLY@ptcf*5r$Z@~_08@U$y;6DE-~a#s07*qo IM6N<$g1yVQT>t<8 literal 0 HcmV?d00001 diff --git a/modpack.txt b/modpack.txt new file mode 100644 index 0000000..33d91f5 --- /dev/null +++ b/modpack.txt @@ -0,0 +1 @@ +The presence of this file indicates that the current folder is a modpack. \ No newline at end of file diff --git a/smartline/README.md b/smartline/README.md new file mode 100644 index 0000000..b64d1ce --- /dev/null +++ b/smartline/README.md @@ -0,0 +1,41 @@ +# SmartLine \[smartline\] + +This tubelib extension provides small and smart sensors, actors and controllers. + +![SmartLine](https://github.com/joe7575/techpack/blob/master/smartline/screenshot.png) + +The most important and smart node of SmartLine is the SmartLine Controller, a 'computer' to control and monitor Tubelib based machines. +You don't need any programming skills, it is more like a configuration according to the "IF this THEN that" concept: + + IF OR THEN + IF AND THEN + +Examples for conditions are: + - the Player Detector detects a player + - a button is pressed + - a node state is fault, blocked, standby,... + - a timer is expired + +Examples for actions are: + - switch on/off tubelib nodes, like lamps, door blocks, machines + - send mail/chat messages to the owner + - output a text message to the display + - set timer variables + - set/reset flag variables + +The mod comes with several new nodes, all in a smart and small housing: + - a Player Detector, sending on/off commands to connected nodes + - a Smart Button, sending on/off commands to connected nodes + - a Display for text outputs of the controller + - a Signal Tower, with green, amber, red lights to signal error/fault states + - a Timer (derived from Tubelib Addons2), for daytime based actions + - a Sequencer (derived from Tubelib Addons2), for time triggered actions (time in seconds) + + +API Reference: ![api.md](https://github.com/joe7575/techpack/blob/master/smartline/api.md) + + +## Dependencies +tubelib, default, doors +optional: display_lib, font_lib, mail + diff --git a/smartline/api.md b/smartline/api.md new file mode 100644 index 0000000..e4c6aa0 --- /dev/null +++ b/smartline/api.md @@ -0,0 +1,121 @@ +# SmartLine Controller API + + +The SmartLine Controller provides the following API to register additional condition and action commands from other mods: + +* smartline.register_condition(name, condition definition) +* smartline.register_action(name, action definition) + +The controller executes up to 10 rules every second. Each rule consists of: +- two condition functions +- one logical operator (and/or) +- one action function + +Depending on the operator, one or both condition functions have to return true, so that the action function is called. +If the action is called, the action related flag (a1..a10) is automatically set and can be used in +subsequent rules to trigger further actions without the need to evaluate both conditions again. + +The controller executes all rules once per second. Independent how long the input condition stays 'true', +the corresponding action will be triggered only once. The condition has to become false and then true again, to +re-trigger/execute the action again. + +The Controller supports the following variables: +- binary flags (f1..f8) to store states (true/false) +- timer variables (t1..t8), decremented each second. Used to execute actions time based +- input values (referenced via node number) to evaluate received commands (on/off) from other tubelib nodes +- action flags (a1..a10) )to store the action state from previous executed rules + +All variables are stored non volatile (as long as the controller is running). + +Each registered condition and action has the function `on_execute` which is called for each rule (every second). +* The condition function has to return true or false, depending if the condition is true or not. +* The action function has to execute the defined action. + +In addition each registered condition and action has the function `button_label`, which determines the button label +for the Controller main formspec. Please note that the maximum number of visible characters for the button label is +something about 15. + +See `commands.lua` as reference. All predefined SmartLine Controller commands are registered via `commands.lua`. + +## Prototypes + +```LUA +smartline.register_condition("mymod;mycond", { + title = "my condition", + formspec = {}, + on_execute = function(data, flags, timers, inputs, actions) + -- data: table with the formspec data + -- flag: table with the flag values + -- timers: table with the timer values + -- inputs: table with the input values + -- actions: table with the action values + end, + button_label = function(data) + return "button label" + end, +}) +``` + + +```LUA +smartline.register_action(name, { + title = "my action", + formspec = {}, + on_execute = function(data, flags, timers, inputs) + -- data: table with the formspec data + -- flag: table with the flag values + -- timers: table with the timer values + -- inputs: table with the input values + end, + button_label = function(data) + return "button label" + end, +}) +``` + +The 'title' is used in the main menu for the condition and action selection dialog. +The 'formspec' table defines the condition/action related form for additional user parameters. +It supports the following subset of the minetest formspec elements: + + - textlist + - field + - label + +Please note that size and position is automatically determined. +All other attributes are according to the original formspec. +Example: + +```LUA +formspec = { + { + type = "field", -- formspec element + name = "number", -- reference key for the table 'data' + label = "input from node with number", -- label shown above of the element + default = "", -- default value + }, + { + type = "textlist", -- formspec element + name = "value", -- reference key for the table 'data' + label = "is", -- label shown above of the element + choices = "on,off", -- list elements + default = 1, -- first list element as default value + }, + { + type = "label", + name = "lbl", -- not really used, but internally needed + label = "Hint: Connect the input nodes with the controller", + }, +} +``` + +The table 'data' includes the condition/action related 'formspec' data. +For the above 'formspec' example, it is: + +```LUA + data = { + number = , -- the entered value of the "field", + value = , -- the number of the selected element of the "textlist" + value_text = , -- in addition the text of the selected element of the "textlist" + } +``` + diff --git a/smartline/button.lua b/smartline/button.lua new file mode 100644 index 0000000..45b145d --- /dev/null +++ b/smartline/button.lua @@ -0,0 +1,189 @@ +--[[ + + SmartLine + ========= + + Copyright (C) 2018 Joachim Stolberg + + LGPLv2.1+ + See LICENSE.txt for more information + + button.lua: + Derived from Tubelib button + +]]-- + + +local function switch_on(pos, node) + node.name = "smartline:button_active" + minetest.swap_node(pos, node) + minetest.sound_play("button", { + pos = pos, + gain = 0.5, + max_hear_distance = 5, + }) + local meta = minetest.get_meta(pos) + local own_num = meta:get_string("own_num") + local numbers = meta:get_string("numbers") + local cycle_time = meta:get_int("cycle_time") + if cycle_time > 0 then -- button mode? + minetest.get_node_timer(pos):start(cycle_time) + end + local placer_name = meta:get_string("placer_name") + local clicker_name = nil + if meta:get_string("public") == "false" then + clicker_name = meta:get_string("clicker_name") + end + tubelib.send_message(numbers, placer_name, clicker_name, "on", own_num) +end + +local function switch_off(pos) + local node = minetest.get_node(pos) + node.name = "smartline:button" + minetest.swap_node(pos, node) + minetest.get_node_timer(pos):stop() + minetest.sound_play("button", { + pos = pos, + gain = 0.5, + max_hear_distance = 5, + }) + local meta = minetest.get_meta(pos) + local own_num = meta:get_string("own_num") + local numbers = meta:get_string("numbers") + local placer_name = meta:get_string("placer_name") + tubelib.send_message(numbers, placer_name, nil, "off", own_num) +end + + +minetest.register_node("smartline:button", { + description = "SmartLine Button/Switch", + inventory_image = "smartline_button_inventory.png", + tiles = { + -- up, down, right, left, back, front + "smartline.png", + "smartline.png", + "smartline.png", + "smartline.png", + "smartline.png", + "smartline.png^smartline_button_off.png", + }, + + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + { -6/32, -6/32, 14/32, 6/32, 6/32, 16/32}, + }, + }, + + after_place_node = function(pos, placer) + local meta = minetest.get_meta(pos) + local own_num = tubelib.add_node(pos, "smartline:button") + meta:set_string("own_num", own_num) + meta:set_string("formspec", "size[5,6]".. + "dropdown[0.2,0;3;type;switch,button 2s,button 4s,button 8s,button 16s;1]".. + "field[0.5,2;3,1;numbers;Insert destination block number(s);]" .. + "checkbox[1,3;public;public;false]".. + "button_exit[1,4;2,1;exit;Save]") + meta:set_string("placer_name", placer:get_player_name()) + meta:set_string("public", "false") + meta:set_int("cycle_time", 0) + meta:set_string("infotext", "SmartLine Button "..own_num) + end, + + on_receive_fields = function(pos, formname, fields, player) + local meta = minetest.get_meta(pos) + if tubelib.check_numbers(fields.numbers) then + meta:set_string("numbers", fields.numbers) + local own_num = meta:get_string("own_num") + meta:set_string("infotext", "SmartLine Button "..own_num..", connected with block "..fields.numbers) + else + return + end + if fields.public then + meta:set_string("public", fields.public) + end + local cycle_time = nil + if fields.type == "switch" then + cycle_time = 0 + elseif fields.type == "button 2s" then + cycle_time = 2 + elseif fields.type == "button 4s" then + cycle_time = 4 + elseif fields.type == "button 8s" then + cycle_time = 8 + elseif fields.type == "button 16s" then + cycle_time = 16 + end + if cycle_time ~= nil then + meta:set_int("cycle_time", cycle_time) + end + if fields.exit then + meta:set_string("formspec", nil) + end + end, + + on_rightclick = function(pos, node, clicker) + local meta = minetest.get_meta(pos) + if meta:get_string("numbers") then + meta:set_string("clicker_name", clicker:get_player_name()) + switch_on(pos, node) + end + end, + + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + groups = {cracky=2, crumbly=2}, + is_ground_content = false, + sounds = default.node_sound_wood_defaults(), +}) + + +minetest.register_node("smartline:button_active", { + description = "SmartLine Button/Switch", + tiles = { + -- up, down, right, left, back, front + "smartline.png", + "smartline.png", + "smartline.png", + "smartline.png", + "smartline.png", + "smartline.png^smartline_button_on.png", + }, + + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + { -6/32, -6/32, 14/32, 6/32, 6/32, 16/32}, + }, + }, + + on_rightclick = function(pos, node, clicker) + local meta = minetest.get_meta(pos) + meta:set_string("clicker_name", clicker:get_player_name()) + if meta:get_int("cycle_time") == nil or meta:get_int("cycle_time") == 0 then + switch_off(pos, node) + end + end, + + on_timer = switch_off, + + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + groups = {cracky=2, crumbly=2, not_in_creative_inventory=1}, + drop = "smartline:button", + is_ground_content = false, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_craft({ + output = "smartline:button", + recipe = { + {"", "", ""}, + {"dye:blue", "default:copper_ingot", "tubelib:wlanchip"}, + {"", "", ""}, + }, +}) diff --git a/smartline/commands.lua b/smartline/commands.lua new file mode 100644 index 0000000..b7592c6 --- /dev/null +++ b/smartline/commands.lua @@ -0,0 +1,611 @@ +--[[ + + SmartLine + ========= + + Copyright (C) 2018 Joachim Stolberg + + LGPLv2.1+ + See LICENSE.txt for more information + + command.lua: + + Register all basic controller commands + +]]-- + +smartline.register_condition("default", { + title = "", + formspec = {}, + on_execute = function(data, flags, timers, inputs, actions) end, + button_label = function(data) return "" end, +}) + +smartline.register_action("default", { + title = "", + formspec = {}, + on_execute = function(data, flags, timers, inputs) end, + button_label = function(data) return "" end, +}) + + +smartline.register_condition("true", { + title = "true", + formspec = {}, + on_execute = function(data, flags, timers, inputs, actions) + return true + end, + button_label = function(data) + return "true" + end, +}) + +smartline.register_condition("false", { + title = "false", + formspec = {}, + on_execute = function(data, flags, timers, inputs, actions) + return false + end, + button_label = function(data) + return "false" + end, +}) + +smartline.register_condition("flag", { + title = "flag test", + formspec = { + { + type = "textlist", + name = "flag", + label = "flag", + choices = "f1,f2,f3,f4,f5,f6,f7,f8", + default = 1, + }, + { + type = "textlist", + name = "value", + label = "is", + choices = "true,false", + default = 1, + }, + { + type = "label", + name = "lbl", + label = "Hint: Don't forget to reset the flag again.", + }, + }, + on_execute = function(data, flags, timers, inputs, actions) + return flags[data.flag] == data.value_text + end, + button_label = function(data) + return data.flag_text.."=="..data.value_text + end, +}) + +smartline.register_action("flag", { + title = "flag set", + formspec = { + { + type = "textlist", + name = "flag", + label = "set flag", + choices = "f1,f2,f3,f4,f5,f6,f7,f8", + default = 1, + }, + { + type = "textlist", + name = "value", + label = "to value", + choices = "true,false", + default = 1, + }, + { + type = "label", + name = "lbl", + label = "Hint: Flags are stored permanently and can be used by other rules.", + }, + }, + on_execute = function(data, flags, timers, number) + flags[data.flag] = data.value_text + end, + button_label = function(data) + return data.flag_text.."="..data.value_text + end, +}) + +smartline.register_condition("input", { + title = "check input", + formspec = { + { + type = "field", + name = "number", + label = "input from node with number", + default = "", + }, + { + type = "textlist", + name = "value", + label = "is", + choices = "on,off", + default = 1, + }, + { + type = "label", + name = "lbl", + label = "Hint: An input is only available,\nif the sending node is connected with the controller.", + }, + }, + on_execute = function(data, flags, timers, inputs, actions) + return inputs[data.number] == data.value_text + end, + button_label = function(data) + return "i("..data.number..")=="..data.value_text + end, +}) + + +smartline.register_condition("timer", { + title = "timer expired", + formspec = { + { + type = "textlist", + name = "timer", + label = "timer expired", + choices = "t1,t2,t3,t4,t5,t6,t7,t8", + default = 1, + }, + }, + on_execute = function(data, flags, timers, inputs, actions) + return timers[data.timer] == 0 + end, + button_label = function(data) + return data.timer_text.." expired" + end, +}) + +smartline.register_action("timer", { + title = "timer start", + formspec = { + { + type = "textlist", + name = "timer", + label = "start timer", + choices = "t1,t2,t3,t4,t5,t6,t7,t8", + default = 1, + }, + { + type = "field", + name = "value", + label = "value in sec.", + default = "", + }, + }, + on_execute = function(data, flags, timers, number) + timers[data.timer] = tonumber(data.value) or 0 + end, + button_label = function(data) + return data.timer_text.."="..data.value + end, +}) + +smartline.register_condition("pusher", { + title = "Pusher state", + formspec = { + { + type = "field", + name = "number", + label = "state from Pusher with number", + default = "", + }, + { + type = "textlist", + name = "value", + label = "is", + choices = "stopped,running,standby,blocked,fault", + default = 1, + }, + { + type = "label", + name = "lbl", + label = "Hint:\n - standby means 'nothing to do'\n - blocked means 'inventory is full'", + }, + }, + + on_execute = function(data, flags, timers, inputs, actions) + return tubelib.send_request(data.number, "state", "") == data.value_text + end, + button_label = function(data) + return "st("..data.number..")=="..string.sub(data.value_text or "???", 1, 4).."." + end, +}) + +smartline.register_condition("fuel", { + title = "fuel state", + formspec = { + { + type = "field", + name = "number", + label = "fuel state from node with number", + default = "", + }, + { + type = "textlist", + name = "value", + label = "is", + choices = "full,empty,not full,not empty", + default = 1, + }, + }, + + on_execute = function(data, flags, timers, inputs, actions) + if data.value > 2 then + return tubelib.send_request(data.number, "fuel", nil) ~= string.sub(data.value_text or "???", 5) + else + return tubelib.send_request(data.number, "fuel", nil) == data.value_text + end + end, + button_label = function(data) + if data.value > 2 then + return "st("..data.number..")<>"..string.sub(data.value_text or "???", 5) + else + return "st("..data.number..")=="..data.value_text + end + end, +}) + +smartline.register_condition("signaltower", { + title = "Signal Tower state", + formspec = { + { + type = "field", + name = "number", + label = "state from Signal Tower with number", + default = "", + }, + { + type = "textlist", + name = "value", + label = "is", + choices = "off,green,amber,red,not off,not green,not amber,not red", + default = 1, + }, + { + type = "label", + name = "lbl", + label = "Hint: Works also for Signal Towers in unloaded areas.", + }, + }, + + on_execute = function(data, flags, timers, inputs, actions) + if data.value > 4 then + return tubelib.send_request(data.number, "state", nil) ~= string.sub(data.value_text or "???", 5) + else + return tubelib.send_request(data.number, "state", nil) == data.value_text + end + end, + button_label = function(data) + if data.value > 4 then + return "sig("..data.number..")<>"..string.sub(data.value_text or "???", 5) + else + return "sig("..data.number..")=="..data.value_text + end + end, +}) + +smartline.register_action("signaltower", { + title = "Signal Tower command", + formspec = { + { + type = "field", + name = "number", + label = "set Signal Tower with number", + default = "", + }, + { + type = "textlist", + name = "value", + label = "to color", + choices = "off,green,amber,red", + default = 1, + }, + }, + on_execute = function(data, flags, timers, number) + tubelib.send_message(data.number, data.owner, nil, data.value_text, number) + end, + button_label = function(data) + return "sig("..data.number..","..data.value_text..")" + end, +}) + +smartline.register_action("switch", { + title = "switch nodes on/off", + formspec = { + { + type = "field", + name = "number", + label = "set node with number", + default = "", + }, + { + type = "textlist", + name = "value", + label = "to state", + choices = "on,off", + default = 1, + }, + { + type = "label", + name = "lbl", + label = "Hint: Used for pushers, lamps, machines, gates,...", + }, + }, + on_execute = function(data, flags, timers, number) + tubelib.send_message(data.number, data.owner, nil, data.value_text, number) + end, + button_label = function(data) + return "cmnd("..data.number..","..data.value_text..")" + end, +}) + +smartline.register_action("display1", { + title = "Display: add one line", + formspec = { + { + type = "field", + name = "number", + label = "output to Display with number", + default = "", + }, + { + type = "field", + name = "text", + label = "the following text", + default = "", + }, + { + type = "label", + name = "lbl", + label = "Hint: Works also for Displays in unloaded areas.", + }, + }, + on_execute = function(data, flags, timers, number) + tubelib.send_message(data.number, data.owner, nil, "text", data.text) + end, + button_label = function(data) + return "display("..data.number..")" + end, +}) + +smartline.register_action("display2", { + title = "Display: overwrite one line", + formspec = { + { + type = "field", + name = "number", + label = "output to Display with number", + default = "", + }, + { + type = "textlist", + name = "row", + label = "Display line", + choices = "1,2,3,4,5,6,7,8,9", + default = 1, + }, + { + type = "field", + name = "text", + label = "the following text", + default = "", + }, + { + type = "label", + name = "lbl", + label = "Hint: Works also for Displays in unloaded areas.", + }, + }, + on_execute = function(data, flags, timers, number) + local payload = {row = data.row, str = data.text} + tubelib.send_message(data.number, data.owner, nil, "row", payload) + end, + button_label = function(data) + return "display("..data.number..")" + end, +}) + +smartline.register_action("display3", { + title = "Display: player name", + formspec = { + { + type = "field", + name = "number", + label = "output to Display with number", + default = "", + }, + { + type = "field", + name = "text", + label = "the following text", + default = "", + }, + { + type = "label", + name = "lbl", + label = "Hint: use a '*' character as reference to the player name", + }, + }, + on_execute = function(data, flags, timers, number) + local text = string.gsub(data.text, "*", flags.name or "") + tubelib.send_message(data.number, data.owner, nil, "text", text) + end, + button_label = function(data) + return "display()" + end, +}) + +smartline.register_action("display4", { + title = "Display: Clear screen", + formspec = { + { + type = "field", + name = "number", + label = "Display number", + default = "", + }, + }, + on_execute = function(data, flags, timers, number) + tubelib.send_message(data.number, data.owner, nil, "clear", "") + end, + button_label = function(data) + return "Clear screen" + end, +}) + +if minetest.get_modpath("mail") and mail ~= nil then + smartline.register_action("mail", { + title = "mail", + formspec = { + { + type = "field", + name = "text", + label = "send the message", + default = "", + }, + }, + on_execute = function(data, flags, timers, number) + mail.send("Server", data.owner, "[SmartLine Controller]", data.text) + end, + button_label = function(data) + return "mail(...)" + end, + }) +end + +smartline.register_action("chat", { + title = "chat", + formspec = { + { + type = "field", + name = "text", + label = "send the message", + default = "", + }, + }, + on_execute = function(data, flags, timers, number) + minetest.chat_send_player(data.owner, "[SmartLine Controller] "..data.text) + end, + button_label = function(data) + return "chat(...)" + end, +}) + +local function door_toggle(pos, owner, state) + pos = minetest.string_to_pos("("..pos..")") + if pos then + local door = doors.get(pos) + if door then + local player = { + get_player_name = function() return owner end, + } + if state == "open" then + door:open(player) + elseif state == "close" then + door:close(player) + end + end + end +end + +smartline.register_action("door", { + title = "doors open/close", + formspec = { + { + type = "field", + name = "pos", + label = "door position like: 123,7,-1200", + default = "", + }, + { + type = "textlist", + name = "state", + label = "set", + choices = "open,close", + default = 1, + }, + { + type = "label", + name = "lbl1", + label = "For standard doors like the Steel Door", + }, + { + type = "label", + name = "lbl2", + label = "Hint: use a marker stick to determine the door position", + }, + }, + on_execute = function(data, flags, timers, number) + door_toggle(data.pos, data.owner, data.state_text) + end, + button_label = function(data) + return "door("..data.state_text..")" + end, +}) + +smartline.register_condition("playerdetector", { + title = "detected player name", + formspec = { + { + type = "field", + name = "number", + label = "name from player detector with number", + default = "", + }, + { + type = "field", + name = "name", + label = "is", + default = "", + }, + { + type = "label", + name = "lbl", + label = "Hint: use a '*' character for all player names", + }, + }, + + on_execute = function(data, flags, timers, inputs, actions) + flags.name = tubelib.send_request(data.number, "name", nil) + return (data.name == "*" and flags.name ~= "") or flags.name == data.name + end, + button_label = function(data) + if string.len(data.name) > 6 then + return "name=="..string.sub(data.name or "???", 1, 6).."." + end + return "name=="..data.name + end, +}) + +smartline.register_condition("action", { + title = "action", + formspec = { + { + type = "textlist", + name = "action", + label = "action is executed", + choices = "a1,a2,a3,a4,a5,a6,a7,a8,a9,a10", + default = 1, + }, + { + type = "label", + name = "lbl", + label = "Hint: The corresponding flag is set for each\nexecute action. Useful to execute\nmore than one action with one condition.", + }, + }, + on_execute = function(data, flags, timers, inputs, actions) + return actions[data.action] == true + end, + button_label = function(data) + return "action"..data.action + end, +}) + diff --git a/smartline/controller.lua b/smartline/controller.lua new file mode 100644 index 0000000..085a476 --- /dev/null +++ b/smartline/controller.lua @@ -0,0 +1,937 @@ +--[[ + + SmartLine + ========= + + Copyright (C) 2018 Joachim Stolberg + + LGPLv2.1+ + See LICENSE.txt for more information + + controller.lua: + +]]-- + + +local NUM_RULES = 10 + +local mail_exists = minetest.get_modpath("mail") and mail ~= nil + +local sHELP = [[SmartLine Controller Help + +Control other nodes by means of rules, according to: + IF and/or THEN + +These rules allow to execute actions based on conditions. +Examples for conditions are: + - the Player Detector detects a player + - a button is pressed + - a node state is fault, blocked, standby,... + - a timer is expired + +Actions are: + - switch on/off tubelib nodes, like lamps, door blocks, machines + - send mail/chat messages to the owner + - output a text message to the display + - set timer variables + - set/reset flag variables + +Variables and timers: + - 8 flags (set/reset) can be used to store conditions + for later use. + - Action flags (one flag for each rule, set when action is executed) + The flag can be used as condition for subsequent rules. + - 8 timers (resolution in seconds) can be use + for delayed actions. + +The controller executes all rules once per second. +Independent how long the input condition stays 'true', +the corresponding action will be triggered only once. +The condition has to become false and then true again, to +re-trigger/execute the action again. + +The 'label' has no function. It is only used +to give rules a name. + +Edit command examples: + - 'x 1 8' exchange rows 1 with row 8 + - 'c 1 2' copy row 1 to 2 + - 'd 3' delete row 3 + +The state view shows the current state of all rules. +The colors show, if conditions are true or false and +if actions were already executed or not. +It has a 'update' button to update the view. + +For more information, see: goo.gl/wZ5GUR +]] + +local sOUTPUT = "Press 'help' for edit commands" + +-- +-- Helper functions +-- +local function create_kv_list(elem) + local a = {} + for i,v in ipairs(elem) do + a[v] = i + end + return a +end + +local function output(label, prefix, postfix, kvTbl) + local tbl = {label..": "} + for k,v in pairs(kvTbl) do + tbl[#tbl+1] = prefix..k..postfix.."="..v..", " + end + return table.concat(tbl) +end + + +-- +-- Conditions +-- + +-- tables with all data from condition/action registrations +local kvRegisteredCond = {} +local kvRegisteredActn = {} + +-- list of keys for conditions/actions +local aCondTypes = {} +local aActnTypes = {} + +-- list of titles for conditions/actions +local aCondTitles = {} +local aActnTitles = {} + +-- table with runtime functions +local CondRunTimeHandlers = {} +local ActnRunTimeHandlers = {} + + +local function eval_cond(data, flags, timers, inputs, actions) + return CondRunTimeHandlers[data.__idx__](data, flags, timers, inputs, actions) and 1 or 0 +end + +local function exec_action(data, flags, timers, number) + ActnRunTimeHandlers[data.__idx__](data, flags, timers, number) +end + +smartline = {} + +-- +-- API functions for condition/action registrations +-- +function smartline.register_condition(key, tData) + table.insert(CondRunTimeHandlers, tData.on_execute) + table.insert(aCondTypes, key) + table.insert(aCondTitles, tData.title) + tData.__idx__ = #aCondTypes + if kvRegisteredCond[key] ~= nil then + print("[SmartLine] Condition registration error "..key) + return + end + kvRegisteredCond[key] = tData + for _,item in ipairs(tData.formspec) do + if item.type == "textlist" then + item.tChoices = string.split(item.choices, ",") + item.num_choices = #item.tChoices + end + end +end + +function smartline.register_action(key, tData) + table.insert(ActnRunTimeHandlers, tData.on_execute) + table.insert(aActnTypes, key) + table.insert(aActnTitles, tData.title) + tData.__idx__ = #aActnTypes + if kvRegisteredActn[key] ~= nil then + print("[SmartLine] Action registration error "..key) + return + end + kvRegisteredActn[key] = tData + for _,item in ipairs(tData.formspec) do + if item.type == "textlist" then + item.tChoices = string.split(item.choices, ",") + item.num_choices = #item.tChoices + end + end +end + + +-- +-- Formspec +-- + +-- Determine the selected submenu and return the corresponding +-- formspec definition. +-- postfix: row/culumn info like "11" or "a2" +-- type: "cond" or "actn" +-- fs_data: formspec data +local function get_active_subm_definition(postfix, type, fs_data) + local idx = 1 + local fs_definition = {} + if type == "cond" then + idx = fs_data["subm"..postfix.."_cond"] or 1 + local key = aCondTypes[idx] + fs_definition = kvRegisteredCond[key] + elseif type == "actn" then + idx = fs_data["subm"..postfix.."_actn"] or 1 + local key = aActnTypes[idx] + fs_definition = kvRegisteredActn[key] + end + return idx, fs_definition +end + +-- Extract runtime relevant data from the given submenu +-- postfix: row/culum info like "11" or "a2" +-- fs_definition: submenu formspec definition +-- fs_data: formspec data +local function get_subm_data(postfix, fs_definition, fs_data) + local data = {} + for idx,elem in ipairs(fs_definition.formspec) do + if elem.type == "field" then + data[elem.name] = fs_data["subm"..postfix.."_"..elem.name] or "?" + elseif elem.type == "textlist" then + local num = tonumber(fs_data["subm"..postfix.."_"..elem.name]) or 1 + num = math.min(num, elem.num_choices) + data[elem.name] = num + data[elem.name.."_text"] = elem.tChoices[num] + end + end + -- type of the condition/action + data.__idx__ = fs_definition.__idx__ + return data +end + +-- Copy field/formspec data to the table fs_data +-- fs_definition: submenu formspec definituion +-- fields: formspec input +-- fs_data: formspec data +local function field2fs_data(fs_definition, fields, fs_data) + for idx,elem in ipairs(fs_definition.formspec) do + local key = "subm"..fields._postfix_.."_"..elem.name + if elem.type == "field" then + if fields[elem.name] then + fs_data[key] = fields[elem.name] + end + elseif elem.type == "textlist" then + local evt = minetest.explode_textlist_event(fields[elem.name]) + if evt.type == "CHG" then + fs_data[key] = evt.index + end + end + if fs_data[key] == nil then + fs_data[key] = elem.default + end + end + return fs_data +end + +local function add_controls_to_table(tbl, postfix, fs_data, fs_definition) + local val = "" + local offs = 2.4 + for idx,elem in ipairs(fs_definition.formspec) do + if elem.label then + tbl[#tbl+1] = "label[0,"..offs..";"..elem.label.."]" + offs = offs + 0.5 + end + if elem.type == "field" then + val = fs_data["subm"..postfix.."_"..elem.name] or elem.default + tbl[#tbl+1] = "field[0.3,"..(offs+0.2)..";8.2,1;"..elem.name..";;"..val.."]" + offs = offs + 0.9 + elseif elem.type == "textlist" then + val = fs_data["subm"..postfix.."_"..elem.name] or elem.default + tbl[#tbl+1] = "textlist[0.0,"..(offs)..";8,1.4;"..elem.name..";"..elem.choices..";"..val.."]" + offs = offs + 1.8 + end + end + return tbl +end + +local function runtime_data(postfix, type, fs_data) + local _,fs_definition = get_active_subm_definition(postfix, type, fs_data) + return get_subm_data(postfix, fs_definition, fs_data) +end + +local function decrement_timers(timers) + for idx,_ in ipairs(timers) do + timers[idx] = tonumber(timers[idx]) + if timers[idx] >= 0 then + timers[idx] = timers[idx] - 1 + end + end +end + + +-- +-- Condition formspec +-- +local function formspec_cond(_postfix_, fs_data) + local tbl = {"size[8.2,10]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "field[0,0;0,0;_type_;;cond]".. + "field[0,0;0,0;_postfix_;;".._postfix_.."]"} + + local sConditions = table.concat(aCondTitles, ",") + local cond_idx, fs_definition = get_active_subm_definition(_postfix_, "cond", fs_data) + tbl[#tbl+1] = "label[0,0.1;Condition type:]" + tbl[#tbl+1] = "textlist[0,0.6;8,1.4;cond;"..sConditions..";"..cond_idx.."]" + tbl = add_controls_to_table(tbl, _postfix_, fs_data, fs_definition) + tbl[#tbl+1] = "button[4,9.4;2,1;_cancel_;cancel]" + tbl[#tbl+1] = "button[6,9.4;2,1;_exit_;ok]" + return table.concat(tbl) +end + +-- evaluate the row condition +local function eval_formspec_cond(meta, fs_data, fields, readonly) + if readonly then return fs_data end + -- determine condition type + local cond = minetest.explode_textlist_event(fields.cond) + if cond.type == "CHG" then + fs_data["subm"..fields._postfix_.."_cond"] = cond.index + end + -- prepare data + local _, fs_definition = get_active_subm_definition(fields._postfix_, "cond", fs_data) + fs_data = field2fs_data(fs_definition, fields, fs_data) + local data = get_subm_data(fields._postfix_, fs_definition, fs_data) + -- update button for main menu + fs_data["cond"..fields._postfix_] = fs_definition.button_label(data) + + if fields._exit_ == nil then + -- update formspec if exit is not pressed + meta:set_string("formspec", formspec_cond(fields._postfix_, fs_data)) + end + return fs_data +end + + +-- +-- Action formspec +-- +local function formspec_actn(_postfix_, fs_data) + local tbl = {"size[8.2,10]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "field[0,0;0,0;_type_;;actn]".. + "field[0,0;0,0;_postfix_;;".._postfix_.."]"} + + local sActions = table.concat(aActnTitles, ",") + local actn_idx, fs_definition = get_active_subm_definition(_postfix_, "actn", fs_data) + tbl[#tbl+1] = "label[0,0.1;Action type:]" + tbl[#tbl+1] = "textlist[0,0.6;8,1.4;actn;"..sActions..";"..actn_idx.."]" + tbl = add_controls_to_table(tbl, _postfix_, fs_data, fs_definition) + tbl[#tbl+1] = "button[4,9.4;2,1;_cancel_;cancel]" + tbl[#tbl+1] = "button[6,9.4;2,1;_exit_;ok]" + return table.concat(tbl) +end + +-- evaluate the row action +local function eval_formspec_actn(meta, fs_data, fields, readonly) + if readonly then return fs_data end + -- determine action type + local actn = minetest.explode_textlist_event(fields.actn) + if actn.type == "CHG" then + fs_data["subm"..fields._postfix_.."_actn"] = actn.index + end + -- prepare data + local _, fs_definition = get_active_subm_definition(fields._postfix_, "actn", fs_data) + fs_data = field2fs_data(fs_definition, fields, fs_data) + local data = get_subm_data(fields._postfix_, fs_definition, fs_data) + -- update button for main menu + fs_data["actn"..fields._postfix_] = fs_definition.button_label(data) + + if fields._exit_ == nil then + -- update formspec if exit is not pressed + meta:set_string("formspec", formspec_actn(fields._postfix_, fs_data)) + end + if fields._cancel_ then + fields._exit_ = true + end + return fs_data +end + + +-- +-- Label text formspec +-- +local function formspec_label(_postfix_, fs_data) + local label = fs_data["label".._postfix_] or "" + return "size[6,4]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "field[0,0;0,0;_type_;;label]".. + "field[0,0;0,0;_postfix_;;".._postfix_.."]".. + "label[0.2,0.3;Label:]".. + "field[0.3,1.5;5,1;label;;"..label.."]".. + "button[4.5,3;1.5,1;_exit_;ok]" +end + +-- evaluate the row label +local function eval_formspec_label(meta, fs_data, fields, readonly) + if readonly then return fs_data end + fs_data["subml"..fields._postfix_.."_label"] = fields.label + if fields._exit_ == nil then + meta:set_string("formspec", formspec_label(fields._postfix_, fs_data)) + end + -- set the button label of the main menu based on the given input in the submenu + fs_data["label"..fields._postfix_] = fs_data["subml"..fields._postfix_.."_label"] + return fs_data +end + + +-- +-- Operand formspec +-- +local function formspec_oprnd(_postfix_, fs_data) + local oprnd = fs_data["submo".._postfix_.."_oprnd"] or "" + return "size[6,4]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "field[0,0;0,0;_type_;;oprnd]".. + "field[0,0;0,0;_postfix_;;".._postfix_.."]".. + "label[0.2,0.3;Operand:]".. + "textlist[0,0.8;5.6,1.4;oprnd;or,and;"..oprnd.."]".. + "button[4.5,3;1.5,1;_exit_;ok]" +end + +-- evaluate the row operand +local function eval_formspec_oprnd(meta, fs_data, fields, readonly) + if readonly then return fs_data end + local oprnd = minetest.explode_textlist_event(fields.oprnd) + if oprnd.type == "CHG" then + fs_data["submo"..fields._postfix_.."_oprnd"] = oprnd.index + end + if fields._exit_ == nil then + meta:set_string("formspec", formspec_oprnd(fields._postfix_, fs_data)) + end + -- set the button label of the main menu based on the given input in the submenu + fs_data["oprnd"..fields._postfix_] = fs_data["submo"..fields._postfix_.."_oprnd"] == 1 and "or" or "and" + return fs_data +end + +local function formspec_main(state, fs_data, output) + local tbl = {"size[15,10;true]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "field[0,0;0,0;_type_;;main]".. + "label[0.8,0;label:]label[3.8,0;IF cond 1:]label[7,0;and/or]label[8.3,0;cond 2:]label[11.7,0;THEN action:]"} + + for idx = 1,NUM_RULES do + local ypos = idx * 0.8 - 0.4 + tbl[#tbl+1] = "label[0,"..(0.2+ypos)..";"..idx.."]" + tbl[#tbl+1] = "button[0.4,"..ypos..";3,1;label"..idx..";"..(fs_data["label"..idx] or "...").."]" + tbl[#tbl+1] = "button[3.5,"..ypos..";3.4,1;cond1"..idx..";"..(fs_data["cond1"..idx] or "...").."]" + tbl[#tbl+1] = "button[7,".. ypos..";1,1;oprnd".. idx..";"..(fs_data["oprnd"..idx] or "or").."]" + tbl[#tbl+1] = "button[8,".. ypos..";3.4,1;cond2"..idx..";"..(fs_data["cond2"..idx] or "...").."]" + tbl[#tbl+1] = "button[11.5,".. ypos..";3.4,1;actna"..idx..";"..(fs_data["actna"..idx] or "...").."]" + end + tbl[#tbl+1] = "image_button[14,9;1,1;".. tubelib.state_button(state) ..";button;]" + tbl[#tbl+1] = "button[10.6,9;1.5,1;state;state]" + tbl[#tbl+1] = "button[12.2,9;1.5,1;help;help]" + tbl[#tbl+1] = "label[0.2,8.8;"..output.."]" + tbl[#tbl+1] = "field[0.4,9.6;4.8,1;cmnd;;]" + tbl[#tbl+1] = "button[5,9.3;1,1;ok;OK]" + return table.concat(tbl) +end + +local function eval_formspec_main(meta, fs_data, fields, readonly) + meta:set_string("fs_old", minetest.serialize(fs_data)) + for idx = 1,NUM_RULES do + -- eval standard inputs + if not readonly then + fs_data["oprnd"..idx] = fields["oprnd"..idx] or fs_data["oprnd"..idx] + end + + -- eval submenu button events + if fields["label"..idx] then + meta:set_string("formspec", formspec_label(idx, fs_data)) + elseif fields["cond1"..idx] then + meta:set_string("formspec", formspec_cond("1"..idx, fs_data)) + elseif fields["cond2"..idx] then + meta:set_string("formspec", formspec_cond("2"..idx, fs_data)) + elseif fields["oprnd"..idx] then + meta:set_string("formspec", formspec_oprnd(idx, fs_data)) + elseif fields["actna"..idx] then + meta:set_string("formspec", formspec_actn("a"..idx, fs_data)) + end + end + return fs_data +end + +local function formspec_help(offs) + return "size[15,10]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "field[0,0;0,0;_type_;;help]".. + "label[0,"..(-offs/50)..";"..sHELP.."]".. + --"label[0.2,0;test]".. + "scrollbar[13.5,1;0.5,7;vertical;sb_help;"..offs.."]".. + "button[13.5,9;1.5,1;close;close]" +end + +local function background(xpos, ypos, val) + if val == true then + return "box["..(xpos-0.1)..",".. ypos..";3.3,0.4;#008000]" + elseif val == false then + return "box["..(xpos-0.1)..",".. ypos..";3.3,0.4;#800000]" + else + return "box["..(xpos-0.1)..",".. ypos..";3.3,0.4;#202020]" + end +end + +local function formspec_state(meta, fs_data) + local number = meta:get_string("number") + local state = meta:get_int("state") + local tbl = {"size[15,10;true]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "field[0,0;0,0;_type_;;state]".. + "label[0.8,0;label:]label[3.8,0;IF cond 1:]label[7,0;and/or]label[8.3,0;cond 2:]label[11.7,0;THEN action:]"} + + if state == tubelib.RUNNING and number then + local inputs = tubelib.get_data(number, "inputs") or {} + local act_gate = tubelib.get_data(number, "act_gate") or {} + local timers = tubelib.get_data(number, "timers") or {} + local flags = tubelib.get_data(number, "flags") or {} + local conds = tubelib.get_data(number, "conds") or {} + + for idx = 1,NUM_RULES do + local ypos = idx * 0.6 + 0.2 + local s1 = fs_data["cond1"..idx] or " ... " + local s2 = fs_data["cond2"..idx] or " ... " + local sa = fs_data["actna"..idx] or " ... " + if conds[idx] == nil then + tbl[#tbl+1] = background(3.7, ypos, nil) + tbl[#tbl+1] = background(8, ypos, nil) + else + tbl[#tbl+1] = background(3.7, ypos, conds[idx] == 1 or conds[idx] == 3) + tbl[#tbl+1] = background(8, ypos, conds[idx] == 2 or conds[idx] == 3) + end + tbl[#tbl+1] = background(11.5, ypos, act_gate[idx]) + tbl[#tbl+1] = "label[0,".. ypos..";"..idx.."]" + tbl[#tbl+1] = "label[0.5,"..ypos..";"..(fs_data["label"..idx] or " ... ").."]" + tbl[#tbl+1] = "label[3.7,".. ypos..";"..s1.."]" + tbl[#tbl+1] = "label[7.2,".. ypos..";"..(fs_data["oprnd"..idx] or "or").."]" + tbl[#tbl+1] = "label[8,".. ypos..";"..s2.."]" + tbl[#tbl+1] = "label[11.5,".. ypos..";"..sa.."]" + end + + tbl[#tbl+1] = "label[10,8.2; Seconds: "..(meta:get_int("runtime") or 1).."]" + + tbl[#tbl+1] = "label[0,7;"..output("Inputs", "i(", ")", inputs).."]" + tbl[#tbl+1] = "label[0,7.6;"..output("Timers", "t", "", timers).."]" + tbl[#tbl+1] = "label[0,8.2;"..output("Flags", "f", "", flags).."]" + + tbl[#tbl+1] = "label[0,9;Hint:]" + tbl[#tbl+1] = "box[1.3,9;7,0.4;#008000]" + tbl[#tbl+1] = "label[1.4,9;condition is true / action was executed]" + tbl[#tbl+1] = "box[8.9,9;4,0.4;#800000]" + tbl[#tbl+1] = "label[9,9;condition is false]" + tbl[#tbl+1] = "box[1.3,9.6;7,0.4;#202020]" + tbl[#tbl+1] = "label[1.4,9.6;action was not executed]" + + end + + tbl[#tbl+1] = "button[13.3,8;1.7,1;update;update]" + tbl[#tbl+1] = "button[13.3,9;1.7,1;close;close]" + return table.concat(tbl) +end + +local function execute(meta, number, debug) + local rt_rules = tubelib.get_data(number, "rt_rules") + local inputs = tubelib.get_data(number, "inputs") or {} + local act_gate = tubelib.get_data(number, "act_gate") or {} + local timers = tubelib.get_data(number, "timers") or {} + local flags = tubelib.get_data(number, "flags") or {} + local conds = tubelib.get_data(number, "conds") or {} + local actions = {} + decrement_timers(timers) + for i,item in ipairs(rt_rules) do + local c1 = eval_cond(item.cond1, flags, timers, inputs, actions) + local c2 = eval_cond(item.cond2, flags, timers, inputs, actions) + conds[i] = c1 + c2*2 + if c1 + c2 >= item.cond_cnt then + if act_gate[i] == nil then + -- execute action + exec_action(item.actn, flags, timers, number) + actions[i] = true + end + act_gate[i] = true + else + act_gate[i] = nil + end + end + tubelib.set_data(number, "inputs", inputs) + tubelib.set_data(number, "act_gate", act_gate) + tubelib.set_data(number, "timers", timers) + tubelib.set_data(number, "flags", flags) + tubelib.set_data(number, "conds", conds) +end + +local function check_rules(pos, elapsed) + --local t = minetest.get_us_time() + local meta = minetest.get_meta(pos) + meta:set_int("runtime", (meta:get_int("runtime") or 1) + 1) + local number = meta:get_string("number") + local state = meta:get_int("state") + if state == tubelib.RUNNING and number then + execute(meta, number, debug) + end + --print("time", minetest.get_us_time() - t) + return true +end + +local function switch_state(pos, state, fs_data) + local meta = minetest.get_meta(pos) + local number = meta:get_string("number") + meta:set_int("state", state) + meta:set_string("formspec", formspec_main(state, fs_data, sOUTPUT)) + if state == tubelib.RUNNING then + meta:set_string("infotext", "SmartLine Controller "..number..": running") + minetest.get_node_timer(pos):start(1) + else + meta:set_string("infotext", "SmartLine Controller "..number..": stopped") + minetest.get_node_timer(pos):stop() + end +end + +local function start_controller(pos, number, fs_data) + tubelib.set_data(number, "timers", {}) -- local timers + tubelib.set_data(number, "inputs", {}) -- for rx commands + tubelib.set_data(number, "flags", {}) -- to store flags + tubelib.set_data(number, "conds", {}) -- to store conditions + tubelib.set_data(number, "act_gate", {}) -- for action states + switch_state(pos, tubelib.RUNNING, fs_data) +end + +local function stop_controller(pos, fs_data) + switch_state(pos, tubelib.STOPPED, fs_data) +end + +local function formspec2runtime_rule(number, owner, fs_data) + local rt_rules = {} + local num2inp = {} + for idx = 1,NUM_RULES do + -- valid rule? + if fs_data["subm1"..idx.."_cond"] and fs_data["subm2"..idx.."_cond"] + and fs_data["subma"..idx.."_actn"] then + -- add to list of runtine rules + local rule = { + cond_cnt = fs_data["oprnd"..idx] == "and" and 2 or 1, + cond1 = runtime_data("1"..idx, "cond", fs_data), + cond2 = runtime_data("2"..idx, "cond", fs_data), + actn = runtime_data("a"..idx, "actn", fs_data), + } + rule.actn.owner = owner + table.insert(rt_rules, rule) + end + end + tubelib.set_data(number, "rt_rules", rt_rules) +end + + +local function get_keys(fs_data) + -- collect all keys and remove row information + local keys = {} + for k,v in pairs(fs_data) do + local key = string.sub(k,1,5).."*"..string.sub(k, 7) + if type(v) == 'number' then + keys[key] = 1 -- default value + else + keys[key] = "..." -- default value + end + end + return keys +end + +local function exchange_rules(fs_data, pos1, pos2) + -- exchange elem by elem + for k,v in pairs(get_keys(fs_data)) do + local k1 = string.gsub(k, "*", pos1) + local k2 = string.gsub(k, "*", pos2) + local temp = fs_data[k1] or v + fs_data[k1] = fs_data[k2] or v + fs_data[k2] = temp + end + return fs_data +end + +local function copy_rule(fs_data, pos1, pos2) + -- copy elem by elem + for k,v in pairs(get_keys(fs_data)) do + local k1 = string.gsub(k, "*", pos1) + local k2 = string.gsub(k, "*", pos2) + fs_data[k2] = fs_data[k1] or v + end + return fs_data +end + +local function delete_rule(fs_data, pos) + for k,v in pairs(get_keys(fs_data)) do + local k1 = string.gsub(k, "*", pos) + fs_data[k1] = nil + end + return fs_data +end + +local function edit_command(fs_data, text) + local cmnd, pos1, pos2 = text:match('^(%S)%s(%d+)%s(%d+)$') + if pos2 == nil then + cmnd, pos1 = text:match('^(%S)%s(%d+)$') + end + if cmnd and pos1 and pos2 then + if cmnd == "x" then + exchange_rules(fs_data, pos1, pos2) + return "rows "..pos1.." and "..pos2.." exchanged" + end + if cmnd == "c" then + copy_rule(fs_data, pos1, pos2) + return "row "..pos1.." copied to "..pos2 + end + elseif cmnd == "d" and pos1 then + delete_rule(fs_data, pos1) + return "row "..pos1.." deleted" + end + return "Invalid command '"..text.."'" +end + +local function on_receive_fields(pos, formname, fields, player) + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + local state = meta:get_int("state") + if not player or not player:is_player() then + return + end + local fs_data = minetest.deserialize(meta:get_string("fs_data")) or {} + local output = "" + local readonly = player:get_player_name() ~= owner + + -- FIRST: test if command entered? + if fields.ok then + if not readonly then + output = edit_command(fs_data, fields.cmnd) + stop_controller(pos, fs_data) + meta:set_string("formspec", formspec_main(tubelib.STOPPED, fs_data, output)) + meta:set_string("fs_data", minetest.serialize(fs_data)) + end + -- SECOND: eval none edit events (events based in __type__)? + elseif fields.help then + meta:set_string("formspec", formspec_help(1)) + elseif fields.state then + meta:set_string("formspec", formspec_state(meta, fs_data)) + elseif fields.update then + meta:set_string("formspec", formspec_state(meta, fs_data)) + elseif fields._cancel_ then + fs_data = minetest.deserialize(meta:get_string("fs_old")) + meta:set_string("formspec", formspec_main(state, fs_data, sOUTPUT)) + elseif fields.close then + meta:set_string("formspec", formspec_main(state, fs_data, sOUTPUT)) + elseif fields.sb_help then + local evt = minetest.explode_scrollbar_event(fields.sb_help) + if evt.type == "CHG" then + meta:set_string("formspec", formspec_help(evt.value)) + end + elseif fields.button then + if not readonly then + local number = meta:get_string("number") + local state = meta:get_int("state") + if state == tubelib.RUNNING then + stop_controller(pos, fs_data) + meta:set_string("formspec", formspec_main(tubelib.STOPPED, fs_data, sOUTPUT)) + else + formspec2runtime_rule(number, owner, fs_data) + start_controller(pos, number, fs_data) + meta:set_string("formspec", formspec_main(tubelib.RUNNING, fs_data, sOUTPUT)) + end + end + -- THIRD: evaluate edit events from sub-menus + elseif fields._type_ == "main" then + fs_data = eval_formspec_main(meta, fs_data, fields, readonly) + meta:set_string("fs_data", minetest.serialize(fs_data)) + elseif fields._type_ == "label" then + fs_data = eval_formspec_label(meta, fs_data, fields, readonly) + meta:set_string("fs_data", minetest.serialize(fs_data)) + elseif fields._type_ == "cond" then + fs_data = eval_formspec_cond(meta, fs_data, fields, readonly) + meta:set_string("fs_data", minetest.serialize(fs_data)) + elseif fields._type_ == "oprnd" then + fs_data = eval_formspec_oprnd(meta, fs_data, fields, readonly) + meta:set_string("fs_data", minetest.serialize(fs_data)) + elseif fields._type_ == "actn" then + fs_data = eval_formspec_actn(meta, fs_data, fields, readonly) + meta:set_string("fs_data", minetest.serialize(fs_data)) + elseif fields._type_ == "help" then + meta:set_string("formspec", formspec_main(state, fs_data, sOUTPUT)) + elseif fields._type_ == "state" then + meta:set_string("formspec", formspec_main(state, fs_data, sOUTPUT)) + end + -- FOURTH: back to main menu + if fields._exit_ then + meta:set_string("formspec", formspec_main(state, fs_data, sOUTPUT)) +-- stop_controller(pos, fs_data) +-- meta:set_string("fs_data", minetest.serialize(fs_data)) +-- end + end +end + +minetest.register_node("smartline:controller", { + description = "SmartLine Controller", + inventory_image = "smartline_controller_inventory.png", + wield_image = "smartline_controller_inventory.png", + stack_max = 1, + tiles = { + -- up, down, right, left, back, front + "smartline.png", + "smartline.png", + "smartline.png", + "smartline.png", + "smartline.png", + "smartline.png^smartline_controller.png", + }, + + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + { -6/32, -6/32, 14/32, 6/32, 6/32, 16/32}, + }, + }, + + after_place_node = function(pos, placer) + local meta = minetest.get_meta(pos) + local number = tubelib.add_node(pos, "smartline:controller") + local fs_data = {} + meta:set_string("fs_data", minetest.serialize(fs_data)) + meta:set_string("owner", placer:get_player_name()) + meta:set_string("number", number) + meta:set_int("state", tubelib.STOPPED) + meta:set_int("debug", 0) + meta:set_string("formspec", formspec_main(tubelib.STOPPED, fs_data, sOUTPUT)) + meta:set_string("infotext", "SmartLine Controller "..number..": stopped") + end, + + on_receive_fields = on_receive_fields, + + on_dig = function(pos, node, puncher, pointed_thing) + if minetest.is_protected(pos, puncher:get_player_name()) then + return + end + + minetest.node_dig(pos, node, puncher, pointed_thing) + tubelib.remove_node(pos) + end, + + on_timer = check_rules, + + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + groups = {choppy=1, cracky=1, crumbly=1}, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), +}) + + +minetest.register_craft({ + output = "smartline:controller", + recipe = { + {"", "default:mese_crystal", ""}, + {"dye:blue", "default:copper_ingot", "tubelib:wlanchip"}, + {"", "default:mese_crystal", ""}, + }, +}) + + +local function set_input(meta, payload, val) + if payload then + local number = meta:get_string("number") + local inputs = tubelib.get_data(number, "inputs") + if inputs then + inputs[payload] = val + tubelib.set_data(number, "inputs", inputs) + end + end +end + +tubelib.register_node("smartline:controller", {}, { + on_recv_message = function(pos, topic, payload) + local meta = minetest.get_meta(pos) + if topic == "on" then + set_input(meta, payload, topic) + elseif topic == "off" then + set_input(meta, payload, topic) + elseif topic == "state" then + local state = meta:get_int("state") + return tubelib.statestring(state) + else + return "unsupported" + end + end, +}) + +-- List of Controller actions and conditions is dependent on loaded mods. +-- Therefore, the order of actions and conditions has to be re-assembled each time. +-- last order from last run is stored as meta data +local storage = minetest.get_mod_storage() + +local function old_to_new(newTypes, oldTypes) + local res = {} + if #oldTypes == 0 then + return nil + end + local new = create_kv_list(newTypes) + for idx,key in ipairs(oldTypes) do + res[idx] = new[key] or 1 + end + return res +end + +local function update_node_database(meta) + local aOldCondTypes = minetest.deserialize(meta:get_string("aCondTypes")) or {} + local aOldActnTypes = minetest.deserialize(meta:get_string("aActnTypes")) or {} + + local tOld2NewCond = old_to_new(aCondTypes, aOldCondTypes) + local tOld2NewActn = old_to_new(aActnTypes, aOldActnTypes) + + meta:set_string("aCondTypes", minetest.serialize(aCondTypes)) + meta:set_string("aActnTypes", minetest.serialize(aActnTypes)) + + return tOld2NewCond, tOld2NewActn +end + +minetest.register_lbm({ + label = "[SmartLine] Controller update", + name = "smartline:update", + nodenames = {"smartline:controller"}, + run_at_every_load = true, + action = function(pos, node) + local meta = minetest.get_meta(pos) + local fs_data = minetest.deserialize(meta:get_string("fs_data")) + + local tOld2NewCond, tOld2NewActn = update_node_database(meta) + + if tOld2NewCond and tOld2NewActn then + -- map from old to new indexes + for idx = 1,NUM_RULES do + fs_data["subm1"..idx.."_cond"] = tOld2NewCond[fs_data["subm1"..idx.."_cond"]] + fs_data["subm2"..idx.."_cond"] = tOld2NewCond[fs_data["subm2"..idx.."_cond"]] + fs_data["subma"..idx.."_actn"] = tOld2NewActn[fs_data["subma"..idx.."_actn"]] + end + + meta:set_string("fs_data", minetest.serialize(fs_data)) + end + local number = meta:get_string("number") + local owner = meta:get_string("owner") + formspec2runtime_rule(number, owner, fs_data) + end +}) + diff --git a/smartline/depends.txt b/smartline/depends.txt new file mode 100644 index 0000000..cb90142 --- /dev/null +++ b/smartline/depends.txt @@ -0,0 +1,7 @@ +default +doors +tubelib +display_lib? +font_lib? +mail? + diff --git a/smartline/description.txt b/smartline/description.txt new file mode 100644 index 0000000..90f2231 --- /dev/null +++ b/smartline/description.txt @@ -0,0 +1,2 @@ +SmartLine is a Tubelib extension with small and smart sensors, actors and controllers. + diff --git a/smartline/display.lua b/smartline/display.lua new file mode 100644 index 0000000..6ae1f93 --- /dev/null +++ b/smartline/display.lua @@ -0,0 +1,139 @@ +--[[ + + SmartLine + ========= + + Copyright (C) 2018 Joachim Stolberg + + LGPLv2.1+ + See LICENSE.txt for more information + + display.lua: + +]]-- + + + +display_lib.register_display_entity("smartline:entity") + +function display_update(pos, objref) + local meta = minetest.get_meta(pos) + local text = meta:get_string("text") or "" + text = string.gsub(text, "|", " \n") + local texture = font_lib.make_multiline_texture( + "default", text, + 120, 120, 9, "top", "#000") + objref:set_properties({ textures = {texture}, + visual_size = {x=0.94, y=0.94} }) +end + + +local lcd_box = { + type = "wallmounted", + wall_top = {-8/16, 15/32, -8/16, 8/16, 8/16, 8/16} +} + +minetest.register_node("smartline:display", { + description = "SmartLine Display", + inventory_image = 'smartline_display_inventory.png', + tiles = {"smartline_display.png"}, + drawtype = "nodebox", + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "wallmounted", + node_box = lcd_box, + selection_box = lcd_box, + light_source = 6, + + display_entities = { + ["smartline:entity"] = { depth = 0.42, + on_display_update = display_update}, + }, + + after_place_node = function(pos, placer) + local number = tubelib.add_node(pos, "smartline:display") + local meta = minetest.get_meta(pos) + meta:set_string("number", number) + meta:set_string("text", " \n \nMinetest\nSmartLine Tools\n \nDisplay\nNumber: "..number) + meta:set_int("startscreen", 1) + display_lib.update_entities(pos) + end, + + on_place = display_lib.on_place, + on_construct = display_lib.on_construct, + on_destruct = display_lib.on_destruct, + on_rotate = display_lib.on_rotate, + groups = {cracky=2, crumbly=2}, + is_ground_content = false, + sounds = default.node_sound_glass_defaults(), +}) + + +minetest.register_craft({ + output = "smartline:display", + recipe = { + {"", "", ""}, + {"default:glass", "dye:green", "tubelib:wlanchip"}, + {"", "default:copper_ingot", ""}, + }, +}) + +local function add_line(meta, payload) + local text = meta:get_string("text") + local rows + if meta:get_int("startscreen") == 1 then + rows = {} + meta:set_int("startscreen", 0) + else + rows = string.split(text, "|") + end + if #rows > 8 then + table.remove(rows, 1) + end + table.insert(rows, payload) + text = table.concat(rows, "|") + meta:set_string("text", text) +end + +local function write_row(meta, payload) + local text = meta:get_string("text") + if type(payload) == "table" then + local row = tonumber(payload.row) or 1 + local str = payload.str or "oops" + local rows + if meta:get_int("startscreen") == 1 then + rows = {} + meta:set_int("startscreen", 0) + else + rows = string.split(text, "|") + end + if #rows < 9 then + for i = #rows, 9 do + table.insert(rows, " ") + end + end + rows[row] = str + text = table.concat(rows, "|") + meta:set_string("text", text) + end +end + +tubelib.register_node("smartline:display", {}, { + on_recv_message = function(pos, topic, payload) + local node = minetest.get_node(pos) + if topic == "text" then -- add one line and scroll if necessary + local meta = minetest.get_meta(pos) + add_line(meta, payload) + display_lib.update_entities(pos) + elseif topic == "row" then -- overwrite the given row + local meta = minetest.get_meta(pos) + write_row(meta, payload) + display_lib.update_entities(pos) + elseif topic == "clear" then -- clear the screen + local meta = minetest.get_meta(pos) + meta:set_string("text", "") + display_lib.update_entities(pos) + end + end, +}) + diff --git a/smartline/init.lua b/smartline/init.lua new file mode 100644 index 0000000..2d61b47 --- /dev/null +++ b/smartline/init.lua @@ -0,0 +1,29 @@ +--[[ + + SmartLine + ========= + + Copyright (C) 2018 Joachim Stolberg + + LGPLv2.1+ + See LICENSE.txt for more information + + History: + 2018-01-01 v0.01 first version + 2018-01-26 v0.02 timer and sequencer added + 2018-02-01 v0.03 further commands, hints and cancel button aded + +]]-- + +if minetest.get_modpath("display_lib") and display_lib ~= nil and + minetest.get_modpath("font_lib") and font_lib ~= nil then + dofile(minetest.get_modpath("smartline") .. "/playerdetector.lua") +end +dofile(minetest.get_modpath("smartline") .. "/button.lua") +dofile(minetest.get_modpath("smartline") .. "/signaltower.lua") +dofile(minetest.get_modpath("smartline") .. "/display.lua") +dofile(minetest.get_modpath("smartline") .. "/sequencer.lua") +dofile(minetest.get_modpath("smartline") .. "/timer.lua") +dofile(minetest.get_modpath("smartline") .. "/repeater.lua") +dofile(minetest.get_modpath("smartline") .. "/controller.lua") +dofile(minetest.get_modpath("smartline") .. "/commands.lua") \ No newline at end of file diff --git a/smartline/mod.conf b/smartline/mod.conf new file mode 100644 index 0000000..e6c04d4 --- /dev/null +++ b/smartline/mod.conf @@ -0,0 +1 @@ +name=smartline diff --git a/smartline/playerdetector.lua b/smartline/playerdetector.lua new file mode 100644 index 0000000..26a7dac --- /dev/null +++ b/smartline/playerdetector.lua @@ -0,0 +1,224 @@ +--[[ + + SmartLine + ========= + + Copyright (C) 2018 Joachim Stolberg + + LGPLv2.1+ + See LICENSE.txt for more information + + playerdetector.lua: + +]]-- + +local function switch_on(pos) + local meta = minetest.get_meta(pos) + local node = minetest.get_node(pos) + node.name = "smartline:playerdetector_active" + minetest.swap_node(pos, node) + local number = meta:get_string("number") + local numbers = meta:get_string("numbers") + local owner = meta:get_string("owner") + tubelib.send_message(numbers, owner, nil, "on", number) +end + +local function switch_off(pos) + local meta = minetest.get_meta(pos) + local node = minetest.get_node(pos) + node.name = "smartline:playerdetector" + minetest.swap_node(pos, node) + local number = meta:get_string("number") + local numbers = meta:get_string("numbers") + local owner = meta:get_string("owner") + tubelib.send_message(numbers, owner, nil, "off", number) +end + +local function scan_for_player(pos) + local meta = minetest.get_meta(pos) + local names = meta:get_string("names") or "" + for _, object in pairs(minetest.get_objects_inside_radius(pos, 4)) do + if object:is_player() then + if names == "" then + meta:set_string("player_name", object:get_player_name()) + return true + end + for _,name in ipairs(string.split(names, " ")) do + if object:get_player_name() == name then + meta:set_string("player_name", name) + return true + end + end + end + end + meta:set_string("player_name", nil) + return false +end + +local function formspec_help() + return "size[10,9]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "label[3,0;Player Detector Help]".. + "label[0,1;Input the number(s) of the receiving node(s).\n".. + "Separate numbers via blanks, like '0123 0234'.\n\n".. + "Input the player name(s) separated by blanks,\nor empty for all players.]".. + "button_exit[4,8;2,1;exit;close]" +end + + +local function formspec(numbers, names) + return "size[8,5]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "label[2,0;Player Detector]".. + "field[0.3,1;8,1;numbers;Receiver node numbers:;"..numbers.."]" .. + "field[0.3,2.5;8,1;names;Player name(s):;"..names.."]" .. + "button_exit[5,3.5;2,1;exit;Save]".. + "button[1,3.5;1,1;help;help]" +end + +local function on_receive_fields(pos, formname, fields, player) + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + if player:get_player_name() == owner then + if fields.exit == "Save" then + if tubelib.check_numbers(fields.numbers) then + meta:set_string("numbers", fields.numbers) + end + meta:set_string("names", fields.names) + meta:set_string("formspec", formspec(fields.numbers, fields.names)) + elseif fields.help ~= nil then + meta:set_string("formspec", formspec_help()) + elseif fields.exit == "close" then + local numbers = meta:get_string("numbers") + local names = meta:get_string("names") + meta:set_string("formspec", formspec(numbers, names)) + end + end +end + +minetest.register_node("smartline:playerdetector", { + description = "SmartLine Player Detector", + inventory_image = "smartline_detector_inventory.png", + tiles = { + -- up, down, right, left, back, front + "smartline.png", + "smartline.png", + "smartline.png", + "smartline.png", + "smartline.png", + "smartline.png^smartline_detector.png", + }, + + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + { -6/32, -6/32, 14/32, 6/32, 6/32, 16/32}, + }, + }, + after_place_node = function(pos, placer) + local number = tubelib.add_node(pos, "smartline:playerdetector") + local meta = minetest.get_meta(pos) + meta:set_string("number", number) + local numbers = meta:get_string("numbers") or "" + local names = meta:get_string("names") or "" + meta:set_string("formspec", formspec(numbers, names)) + meta:set_string("infotext", "SmartLine Player Detector "..number) + meta:set_string("owner", placer:get_player_name()) + minetest.get_node_timer(pos):start(1) + end, + + on_receive_fields = on_receive_fields, + + after_dig_node = function(pos) + tubelib.remove_node(pos) + end, + + on_timer = function (pos, elapsed) + if scan_for_player(pos) then + switch_on(pos) + minetest.get_node_timer(pos):start(1) + return false + end + return true + end, + + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + groups = {cracky=2, crumbly=2}, + is_ground_content = false, + sounds = default.node_sound_metal_defaults(), +}) + +minetest.register_node("smartline:playerdetector_active", { + description = "SmartLine Player Detector", + tiles = { + -- up, down, right, left, back, front + "smartline.png", + "smartline.png", + "smartline.png", + "smartline.png", + "smartline.png", + "smartline.png^smartline_detector_active.png", + }, + + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + { -6/32, -6/32, 14/32, 6/32, 6/32, 16/32}, + }, + }, + + on_receive_fields = on_receive_fields, + + after_dig_node = function(pos) + tubelib.remove_node(pos) + end, + + on_timer = function (pos, elapsed) + if not scan_for_player(pos) then + switch_off(pos) + minetest.get_node_timer(pos):start(1) + return false + end + return true + end, + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + groups = {cracky=2, crumbly=2, not_in_creative_inventory=1}, + is_ground_content = false, + sounds = default.node_sound_metal_defaults(), + drop = "smartline:playerdetector" +}) + +minetest.register_craft({ + output = "smartline:playerdetector", + recipe = { + {"", "default:copper_ingot", ""}, + {"dye:blue", "default:copper_ingot", "tubelib:wlanchip"}, + {"", "", ""}, + }, +}) + +tubelib.register_node("smartline:playerdetector", {"smartline:playerdetector_active"}, { + on_recv_message = function(pos, topic, payload) + if topic == "set_numbers" then + local meta = minetest.get_meta(pos) + meta:set_string("numbers", payload) + local names = meta:get_string("names") or "" + meta:set_string("formspec", formspec(payload, names)) + return true + elseif topic == "name" then + local meta = minetest.get_meta(pos) + return meta:get_string("player_name") + end + end, +}) + diff --git a/smartline/repeater.lua b/smartline/repeater.lua new file mode 100644 index 0000000..b44d604 --- /dev/null +++ b/smartline/repeater.lua @@ -0,0 +1,127 @@ +--[[ + + SmartLine + ========= + + Copyright (C) 2018 Joachim Stolberg + + LGPLv2.1+ + See LICENSE.txt for more information + + repeater.lua: + Derived from Tubelib repeater + +]]-- + +local OVER_LOAD_MAX = 5 + +local function formspec(meta) + local numbers = meta:get_string("numbers") + return "size[7,5]".. + "field[0.5,2;6,1;number;Destination node numbers;"..numbers.."]" .. + "button_exit[1,3;2,1;exit;Save]" +end + +minetest.register_node("smartline:repeater", { + description = "SmartLine Repeater", + inventory_image = "smartline_repeater_inventory.png", + tiles = { + -- up, down, right, left, back, front + "smartline.png", + "smartline.png", + "smartline.png", + "smartline.png", + "smartline.png", + "smartline.png^smartline_repeater.png", + }, + + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + { -6/32, -6/32, 14/32, 6/32, 6/32, 16/32}, + }, + }, + + after_place_node = function(pos, placer) + local meta = minetest.get_meta(pos) + local own_number = tubelib.add_node(pos, "smartline:repeater") + meta:set_string("own_number", own_number) + meta:set_string("formspec", formspec(meta)) + meta:set_string("infotext", "SmartLine Repeater "..own_number..": not connected") + meta:set_string("owner", placer:get_player_name()) + meta:set_int("overload_cnt", 0) + minetest.get_node_timer(pos):start(1) + end, + + on_receive_fields = function(pos, formname, fields, player) + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + if owner ~= player:get_player_name() then + return + end + + if tubelib.check_numbers(fields.number) then + meta:set_string("numbers", fields.number) + local own_number = meta:get_string("own_number") + meta:set_string("infotext", "SmartLine Repeater "..own_number..": connected with "..fields.number) + meta:set_string("formspec", formspec(meta)) + end + + local timer = minetest.get_node_timer(pos) + if not timer:is_started() then + timer:start(1) + end + end, + + on_timer = function(pos,elapsed) + local meta = minetest.get_meta(pos) + meta:set_int("overload_cnt", 0) + return true + end, + + after_dig_node = function(pos) + tubelib.remove_node(pos) + end, + + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + groups = {choppy=2, cracky=2, crumbly=2}, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), +}) + + +minetest.register_craft({ + output = "smartline:repeater", + recipe = { + {"default:copper_ingot", "", "default:copper_ingot"}, + {"tubelib:wlanchip", "", "tubelib:wlanchip"}, + {"", "", ""}, + }, +}) + +tubelib.register_node("smartline:repeater", {}, { + on_recv_message = function(pos, topic, payload) + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + local numbers = meta:get_string("numbers") + local overload_cnt = meta:get_int("overload_cnt") + 1 + meta:set_int("overload_cnt", overload_cnt) + if overload_cnt > OVER_LOAD_MAX then + local own_number = meta:get_string("own_number") + meta:set_string("infotext", "SmartLine Repeater "..own_number..": fault (overloaded)") + minetest.get_node_timer(pos):stop() + return false + elseif topic == "set_numbers" then + local own_number = meta:get_string("own_number") + meta:set_string("infotext", "SmartLine Repeater "..own_number..": connected with "..payload) + meta:set_string("numbers", payload) + meta:set_string("formspec", formspec(meta)) + return true + else + return tubelib.send_message(numbers, owner, nil, topic, payload) + end + end, +}) diff --git a/smartline/screenshot.png b/smartline/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..aab37b0638e7b15bae8c3bafaf7ed29a4d0b1679 GIT binary patch literal 147560 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

w%h$^dP)H~uy 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 0 then + minetest.after(0, restart_timer, pos, offs) + return false + end + else + return stop_the_sequencer(pos) + end + end + end + return false +end + +local function start_the_sequencer(pos) + local node = minetest.get_node(pos) + local meta = minetest.get_meta(pos) + local number = meta:get_string("number") + meta:set_int("running", 1) + meta:set_int("index", 1) + meta:set_string("infotext", "SmartLine Sequencer "..number..": running (1/"..NUM_SLOTS..")") + local rules = minetest.deserialize(meta:get_string("rules")) + local endless = meta:get_int("endless") or 0 + meta:set_string("formspec", formspec(tubelib.RUNNING, rules, endless)) + minetest.get_node_timer(pos):start(0.1) + return false +end + +local function on_receive_fields(pos, formname, fields, player) + local meta = minetest.get_meta(pos) + local running = meta:get_int("running") + if minetest.is_protected(pos, player:get_player_name()) then + return + end + if fields.help ~= nil then + meta:set_string("formspec", formspec_help()) + return + end + + local endless = meta:get_int("endless") or 0 + if fields.endless ~= nil then + endless = fields.endless == "true" and 1 or 0 + meta:set_int("index", 1) + end + meta:set_int("endless", endless) + + local rules = minetest.deserialize(meta:get_string("rules")) + if fields.exit ~= nil then + meta:set_string("formspec", formspec(tubelib.state(running), rules, endless)) + return + end + + for idx = 1,NUM_SLOTS do + if fields["offs"..idx] ~= nil then + rules[idx].offs = tonumber(fields["offs"..idx]) or "" + end + if fields["num"..idx] ~= nil and tubelib.check_numbers(fields["num"..idx]) then + rules[idx].num = fields["num"..idx] + end + if fields["act"..idx] ~= nil then + rules[idx].act = kvAction[fields["act"..idx]] + end + end + meta:set_string("rules", minetest.serialize(rules)) + + if fields.button ~= nil then + if running > STOP_STATE then + stop_the_sequencer(pos) + else + start_the_sequencer(pos) + end + elseif fields.num1 ~= nil then -- any other change? + stop_the_sequencer(pos) + else + local endless = meta:get_int("endless") or 0 + meta:set_string("formspec", formspec(tubelib.state(running), rules, endless)) + end +end + +minetest.register_node("smartline:sequencer", { + description = "SmartLine Sequencer", + inventory_image = "smartline_sequencer_inventory.png", + wield_image = "smartline_sequencer_inventory.png", + stack_max = 1, + tiles = { + -- up, down, right, left, back, front + "smartline.png", + "smartline.png", + "smartline.png", + "smartline.png", + "smartline.png", + "smartline.png^smartline_sequencer.png", + }, + + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + { -6/32, -6/32, 14/32, 6/32, 6/32, 16/32}, + }, + }, + after_place_node = function(pos, placer) + local meta = minetest.get_meta(pos) + local number = tubelib.add_node(pos, "smartline:sequencer") + local rules = {} + for idx = 1,NUM_SLOTS do + rules[idx] = {offs = "", num = "", act = 1} + end + meta:set_string("placer_name", placer:get_player_name()) + meta:set_string("rules", minetest.serialize(rules)) + meta:set_string("number", number) + meta:set_int("index", 1) + meta:set_int("endless", 0) + meta:get_int("running", STOP_STATE) + meta:set_string("formspec", formspec(tubelib.STOPPED, rules, 0)) + end, + + on_receive_fields = on_receive_fields, + + on_dig = function(pos, node, puncher, pointed_thing) + if minetest.is_protected(pos, puncher:get_player_name()) then + return + end + local meta = minetest.get_meta(pos) + local running = meta:get_int("running") + if running ~= 1 then + minetest.node_dig(pos, node, puncher, pointed_thing) + tubelib.remove_node(pos) + end + end, + + on_timer = check_rules, + + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + groups = {choppy=2, cracky=2, crumbly=2}, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), +}) + + +minetest.register_craft({ + output = "smartline:sequencer", + recipe = { + {"", "default:mese_crystal", ""}, + {"dye:blue", "default:copper_ingot", "tubelib:wlanchip"}, + {"", "", ""}, + }, +}) + +tubelib.register_node("smartline:sequencer", {}, { + on_recv_message = function(pos, topic, payload) + local node = minetest.get_node(pos) + if topic == "on" then + start_the_sequencer(pos) + elseif topic == "off" then + -- do not stop immediately + local meta = minetest.get_meta(pos) + meta:set_int("endless", 0) + end + end, +}) \ No newline at end of file diff --git a/smartline/signaltower.lua b/smartline/signaltower.lua new file mode 100644 index 0000000..9af2555 --- /dev/null +++ b/smartline/signaltower.lua @@ -0,0 +1,133 @@ +--[[ + + SmartLine + ========= + + Copyright (C) 2018 Joachim Stolberg + + LGPLv2.1+ + See LICENSE.txt for more information + + signaltower.lua: + +]]-- + + +local function switch_on(pos, node, color) + local meta = minetest.get_meta(pos) + meta:set_string("state", color) + node.name = "smartline:signaltower_"..color + minetest.swap_node(pos, node) +end + +local function switch_off(pos, node) + local meta = minetest.get_meta(pos) + meta:set_string("state", "off") + node.name = "smartline:signaltower" + minetest.swap_node(pos, node) +end + +minetest.register_node("smartline:signaltower", { + description = "SmartLine Signal Tower", + tiles = { + 'smartline_signaltower_top.png', + 'smartline_signaltower_top.png', + 'smartline_signaltower.png', + }, + + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + { -5/32, -16/32, -5/32, 5/32, 16/32, 5/32}, + }, + }, + + after_place_node = function(pos, placer) + local number = tubelib.add_node(pos, "smartline:signaltower") + local meta = minetest.get_meta(pos) + meta:set_string("state", "off") + meta:set_string("infotext", "SmartLine Signal Tower "..number) + end, + + on_rightclick = function(pos, node, clicker) + if not minetest.is_protected(pos, clicker:get_player_name()) then + switch_on(pos, node, "green") + end + end, + + after_dig_node = function(pos) + tubelib.remove_node(pos) + end, + + paramtype = "light", + light_source = 0, + sunlight_propagates = true, + paramtype2 = "facedir", + groups = {cracky=2, crumbly=2}, + is_ground_content = false, + sounds = default.node_sound_glass_defaults(), +}) + +for _,color in ipairs({"green", "amber", "red"}) do + minetest.register_node("smartline:signaltower_"..color, { + description = "SmartLine Signal Tower", + tiles = { + 'smartline_signaltower_top.png', + 'smartline_signaltower_top.png', + 'smartline_signaltower_'..color..'.png', + }, + + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + { -5/32, -16/32, -5/32, 5/32, 16/32, 5/32}, + }, + }, + on_rightclick = function(pos, node, clicker) + if not minetest.is_protected(pos, clicker:get_player_name()) then + switch_off(pos, node) + end + end, + + paramtype = "light", + light_source = LIGHT_MAX, + sunlight_propagates = true, + paramtype2 = "facedir", + groups = {crumbly=0, not_in_creative_inventory=1}, + is_ground_content = false, + sounds = default.node_sound_glass_defaults(), + drop = "smartline:signaltower", + }) +end + +minetest.register_craft({ + output = "smartline:signaltower", + recipe = { + {"dye:red", "default:copper_ingot", ""}, + {"dye:orange", "default:glass", ""}, + {"dye:green", "tubelib:wlanchip", ""}, + }, +}) + +tubelib.register_node("smartline:signaltower", { + "smartline:signaltower_green", + "smartline:signaltower_amber", + "smartline:signaltower_red"}, { + on_recv_message = function(pos, topic, payload) + local node = minetest.get_node(pos) + if topic == "green" then + switch_on(pos, node, "green") + elseif topic == "amber" then + switch_on(pos, node, "amber") + elseif topic == "red" then + switch_on(pos, node, "red") + elseif topic == "off" then + switch_off(pos, node) + elseif topic == "state" then + local meta = minetest.get_meta(pos) + return meta:get_string("state") + end + end, +}) diff --git a/smartline/textures/smartline.png b/smartline/textures/smartline.png new file mode 100644 index 0000000000000000000000000000000000000000..471aee35a7afaa208593895bdd23229d367172be GIT binary patch literal 320 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv=>VS)S029--q1R}s1|{==|Tld zMeBAt^lWpRc|3RBB{t*NJwRoQN#5=*3>~bp9zYIffk$L90|U1(2s1Lwnj--eWH0gb zb!C6V$i%?H|K*WpJ5Wfn#5JPCIX^cyHLrxhxhOTUBsE2$JhLQ2!QIn0AiR-J9H^+x z)5S4F<9u=fBcoV)db&8f!DL1sF6-ShB&?M<6&M$>#5g}xXz^m|QE1%u>C2}tToV|W zn~gmbL{((jgbLh*INCD|89ApMVqKu+HF1l?;_O1Vt4U4kjYRQ%Yzi2FgmWumySaJsV!W16_IxUjl`Fhk|B8BD>G02y>e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00F8=L_t(&-tAgFPs1<}y(AU` zh=GBjQdh*!VPHne!dM|ibm0duu`#k#>W;*}U=AY^6H<~X1G1E+wvVY&>$Yi)owz}F zTfXo4?!9}75{zC`gr)fS`d;3Iqti2Jiu$KCI^XvC%kz_!?GSn%1i*JNz2{%9E+C4c z?TAAi^T0BN0fb=)K@jXbv#Kh%efwMmu!e{+V2n`}OdDG!PReOqyTPEZRGiETNc z_Y_s2FDf(~4xJ@2P7=6Fl75nS{Kv$d&4HpQR=g7;?tQIN%J_Nu`-AgAW>Ud*W9Wgz zUAEk&>K?3>5JEs**C2!dDdpDIWO`2l*s06&<9*}t(Zkcm{hV_ULV!}Lkw^O6I+zN~ zX0!gdQAC9Kd=8v*|90Ax#95XZNv*LL+NIkIV!2e3Rw}Si0VyR&DI13lA_5{pRaO4I zP+68ntCZ)t^HsGPWTwgZOuiKrx{i}p6V~SzeOe>{wj5aZLdQlom`*00ChYXPknP)) zR~1Ur6mH^}IMAsVA{8P41b_e#fd4lK^nVY=@7&0b@A4|9{+|AoAOIc5FS&oFoiZib Q literal 0 HcmV?d00001 diff --git a/smartline/textures/smartline_button_off.png b/smartline/textures/smartline_button_off.png new file mode 100644 index 0000000000000000000000000000000000000000..049000761548e7ce28316b6f57d5c6ae66dfb687 GIT binary patch literal 406 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Y)RhkEi0$^yn4%cw={Ar3FOx3NXu2o zaP6Dh_2R_D1?5SLk2okRo&8el_HS|fXU#640bnrgu;i;lfg)FirD;Hsw<^@dC=8@@2O$p&37y>F%0_xL~mg7u7%(>kw3z1sEe zPQ8^}sx-^z90%(eD|=3y-xoan@Vm^~&GzP}T?0F|ZriT9nPWls)-V^BRjX#jGoRX2 z6Zu!g^O-4A<-GDR3*XCutNwmw_$BvgW9?QxHNl2StHK`@{pKz79{5B>gTe~DWM4f@X41; literal 0 HcmV?d00001 diff --git a/smartline/textures/smartline_button_on.png b/smartline/textures/smartline_button_on.png new file mode 100644 index 0000000000000000000000000000000000000000..bea831f4175cccbea2864f9bd5e718d7027d967a GIT binary patch literal 407 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Y)RhkEzyfI^Zbt`Q~9`MJ5Nc_j?aMX8A;sVNHO znI#zt?w-B@;f;LaKt=yOT^vIyZoR$k%hlu{aqMGw`n9`Vu z_kpz?>slNx-1J#}#6ej}`}qI-r{7UiN-B z_u+ymq{nc>lmDQHM*Rp1SPF~ zYrFq;Uh3YPJ8m}Q8T>a=vX5Raw*2Ygf2E~)+gGm=NlsU9 z?bp^#OU>(bh@7@p^xWr|HCs0o)Jn?Cy8rv5_m=YC?H597{wi14$UOU4ZqfI+e_djr kNM#QLqW}XV%-J9IN$00HB+mY?*$Wc#boFyt=akR{09JOL(EtDd literal 0 HcmV?d00001 diff --git a/smartline/textures/smartline_controller.png b/smartline/textures/smartline_controller.png new file mode 100644 index 0000000000000000000000000000000000000000..a1e593213aa374f80c0901e97fe70158e4e03030 GIT binary patch literal 556 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPdqqLBexs}ktvp^xq64!_l=ltB<)VvY~=c3falGGH1 z^30M91$R&1fbd2>aRvs)DV{ElAr-gY-Z<;U6ez;};lHT-p#!d4^Di#ah+pWsfWykT z`&v`{>ID-fXk=XO5%|g^Cb;E|s7{vP){JQGlM8x#nifk(w>)B>*7^OI#eaDozQd(o z=2$+zHo6{TT~sce z`r#C}qCyK$wm|0iUr~WBmi9@8GX$J3U(7K}%&=N@RqM+RHii{fvo>F4TIjK1_Jp|O z(>QN$OBB=D5~VwXHM{It!~9e73}>2H759bj%CWj!erM`xhs75qwEhR?UR*6)V>UN1 zi1Ct8!20XzzvgubP0l+XkK`26i) literal 0 HcmV?d00001 diff --git a/smartline/textures/smartline_controller_inventory.png b/smartline/textures/smartline_controller_inventory.png new file mode 100644 index 0000000000000000000000000000000000000000..b36bdae65e26d207b616c8c0bbeaf269fe3589ac GIT binary patch literal 835 zcmV-J1HAl+P)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00OH?L_t(&-eb&Ncj-R^61aTt z2{M;~jaQHXANck8JxS^*)vqqfjlySQ7~){m0|O0M(9`_<2rUwgkfhKFr0Gvwacu-9 zAw?Ml21OZ#K_N%72apXyH<2n#gXO7P4npB|Ns9CfB*hv z`1$iE!^BAw8D77BjTr;zX$n{SyeIMmL&vdg9r`r-%&s>lefC-@h5=%$7-=@gr785_0r_wS~TX`9f4FL`tbNAZ;OZ2d-MPiXki{426%b*386|vLpmc*VxiL zsg6f>AT~#16G!$SGGKI@c^qYAZl<>+!~g&P87`cEK=rl|wqlS}P;=@J{uuc1;RD0( z-@oaaq7w z+1S)zljoZ@39p^26DJX!95HI*7PG-UT#8;3kBs>NGec7bGegrsAxE+YkPSjNl-_a! z-k}+gBy{ThX{_vlkQ*(91|wiWUwcq<>MKd@ada@cR)QAwz^Dgk2mrSEmoz6!TLJ(8 N002ovPDHLkV1fnXV$1*l literal 0 HcmV?d00001 diff --git a/smartline/textures/smartline_detector.png b/smartline/textures/smartline_detector.png new file mode 100644 index 0000000000000000000000000000000000000000..d49be50f2c3963024361183a613d5b9821680d88 GIT binary patch literal 435 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPdBeS5n)CnH8I-rnbiEBiObAE1aYF-J0b5UwyNotBh zd1gt5g1e`0KzJjcI0FNtw5N+>NX4zUHxBkSD~Plv9(d&@^w|5yzxB_WT3L494RMmR z?oLxE{Ih>ar|a#Ceh!wUK$F4X`@-zM8#_+SzqjIA=)0?T_Oc5wFq#M??F5IVM*0R85i6=+@vf@0!W81ICC^0;rv+3Hhq)&&|Y+d#K_m`|E ztn&VGF8BKM(__Oc*S0^|sxe8T$>*}l=}k+v{h1seEf=rH@chp4MW41+&b$24qVFv8 zihUw>yFM83oT{$3x^!IPKHHwh=9S;~{|UNL{l758{MeG>wfBF%VtjJ>W@O^=gmArC zQLKqs;`L!aZr+LCw*3`rDD#Q#JKz6aSC6ktw}0UGn^BRatmTFv6V!VPcBu;sy!4%I Rbix!Q;_2$=vd$@?2>|}TvDN?p literal 0 HcmV?d00001 diff --git a/smartline/textures/smartline_detector_active.png b/smartline/textures/smartline_detector_active.png new file mode 100644 index 0000000000000000000000000000000000000000..192fcfc116a22955a7be2aa723df9c50983f9fde GIT binary patch literal 408 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPdBeS5nYF(DLGf+sf#5JPCIX^cyHLrxhxhOTUBsE2$ zJhLQ2!QIn0AiR-JoPmLn!PCVtq~g}w>wEc{3`E)2)fPt~+yr%8v z$&5RG_kH-bt9ozuik1aYOt!LF%OrkYi^~3T`P;Q9!($%vo-5s3f2eyR|J-l)b((fB z>Ie;u{eFCL#ryly4z98N$7%MkaLL;*F_F`zZ_8bq`)l6pRL&*AHzbsW9$&UCjZJ^M zx5%n?OT)QUEPRIF{624CF|k@J<*;jR>%7-@T?33ed@^lc^!>QWn=?6TbAs;W8!e3! p{{4zhSat4`p$h{G#Q8uEY>{T26OgpT`k6FH$kWx&Wt~$(69A6~pAi56 literal 0 HcmV?d00001 diff --git a/smartline/textures/smartline_detector_inventory.png b/smartline/textures/smartline_detector_inventory.png new file mode 100644 index 0000000000000000000000000000000000000000..417f5ce0ec5648d8dfadcad3e0c4c80beb54cc3a GIT binary patch literal 575 zcmV-F0>J%=P)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00E~-L_t(&-tAhwQiDJc{`dIVxzh(ezquy}kpZ3N zz|aoN_X&a!8PGNdnsS#s&r6GSog%Q6Dr6W20H7#}UJs;cnv$OJM?mJ0IF11Twr$t$ zXCit}nx>WiMSA)9VY;1I6{~%{XZR7|F%?A-0Kj$Km7WoKjIFmUt5UUO*cV}5^!w%J=whFK+(^P`MUs+wc>JQWF#7UB@#~QggLdJQ7`X|SQWSz3;apjGqgMu*!2Ko^3ME%RJciOg)`@A^vuvZ_iF90vj_R zP1C=d2Z}%!w-U;VOp|he4A{vW;J-b%xP4UO<1((I%J1o02{K^A@(b5=##Jn-(ER`a N002ovPDHLkV1n8n_>=$u literal 0 HcmV?d00001 diff --git a/smartline/textures/smartline_display.png b/smartline/textures/smartline_display.png new file mode 100644 index 0000000000000000000000000000000000000000..9e9e3e766bfa804038c45fa8896c58d3d7be217b GIT binary patch literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7a$D;Kb?2i11Zh|kH}&M z2EM}}%y>M1MG8=my~NYkmHiPT3!e;o_;qh9pir}?i(^Q{;kVZpiZU4rv^=c;ynxa%diKYsp}j$QAR7py(R zxQ4a&kwiiRBO9D}+OXoEv>AhE&AR8|^VvLAw+yMWGN@O1TaS?83{1OP}yS6%=B literal 0 HcmV?d00001 diff --git a/smartline/textures/smartline_display_inventory.png b/smartline/textures/smartline_display_inventory.png new file mode 100644 index 0000000000000000000000000000000000000000..3923f09ecec490c0f2487801c8b004bb759e8c05 GIT binary patch literal 353 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7a$D;Kb?2i11Zh|kH}&M z2EM}}%y>M1MG8=my~NYkmHiPT3!l24=5?DqpwK%{7srr@!*9dAxta|GYB}c}h&_0F z%9>|fdAm++-1U(w(lcN9#X0RItEU*c^fnp=87aK7m_NPpB(rD(gX3$4gs2{m&l~42 zoH{9bZ%_kY6H5z221hjW1%?>*12@jE?*8rVx-^P&aiOcsZ^_F^b?YYmI&CB)z3?>Y`4HgWlfAd!`Hgp_#@9yTZ`o^U_64`6-E>GYW u5Iktf{``)(M~&V}V;<%`->)xxz3fkKict`Q~9`MJ5Nc_j?aMX8A;sVNHO znI#zt?w-B@;f;La3=E9no-U3d6}R5r2+VIX5Mg}~Eb-}F_n-gq?SfhV7Lg`!{>P*INZF6_d=~^o@l@v!P?nZidWR`-Fae z*JudhI$V~}Gqd)XCHwo@2}(6AZ+A>i+Ee9k!YSdGW@Wha$_uGCa(}-IXmaf0{;}?N zxv#++?GG--B7zpr85l}~kI!sKY}u?cJGW+SUf~}*CWdeGtDjW%WrZ&+j{U>A;o7%a z2bTrC$BxEbm?d_JlP{i~!C|Lv;M-M&iW_5sWBzF9D0y5K@x6Q?f;l_4-hZbqV}ecM zf8$k&ie@+2Tmx6E5Gt^myI^ZuyZhGF1?$fH>z>@8@kn)_+=W+VB6nXF{@C{G^7-#o zo?mV!Oj6ljIrrXUnGYF9<(EEq%eCPZi%rzaopA^3U6O9Gy`TFhk6lg)4ie zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00D?eL_t(&-tAg3PQ)+}948Ku zLMSMB1Mi?hJmxCi!3TH*EhQ~A^i=c|C`F>gxdK_r`ABRNZ)|hk&eG*}cXrl08-?wj z-bPI9{o`|b#M#9qmaO~!vikkn=dZ8M56&4Px0HZy<0|K0?(c#Q_~zj`Q79$gvTL3^=ma78k`~JX>X(dkg z8nxvr)&E2{2h{!HD1oMF004De|B8$&Z>SS&GWYhtfXe5#zm~$w#lH8HK4>FfpNQbhEUeIbG z)3+0$Shf}VRJ{Xuz$6LV`Mo6Uq0000>$AQpni=^GgF@fqx*@)o&utio}PNX zh)K%DwbjB&!-7e~MDI>yT=b^BA}6LjzESD%#%rziUx(pv>AtuP1B>GZQ}^|=6E<&(oTlh0WV6pk+4pkRbcqoD73?C%4L{kq&sr90 zyr%y)-@Od}058QZrIy5q*xkE#x=vD&e%^R+9?N2lrXa4!X%GLse7Hh*(fg_ovH23a z9X6lZ_qtTB)%8f!gJbX6uFsdRiZA#&bz?RU!#e%-OSW@bY&(=&FB#0aVH@wX=y=JP z@T0l+MWbxlr~F+ouVb6_(S!E<8Qh;jq947O&jAl0!HYBgF!AawWB1a$&Iybw22WQ% Jmvv4FO#t~1)O!E` literal 0 HcmV?d00001 diff --git a/smartline/textures/smartline_sequencer_inventory.png b/smartline/textures/smartline_sequencer_inventory.png new file mode 100644 index 0000000000000000000000000000000000000000..236237a44c52fa875a75289e24ce0e3b0438d675 GIT binary patch literal 894 zcmV-^1A+XBP)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00QPoL_t(&-tAgTZ__{!9#>K2 zs_LOsJ@5;V_#stK<#8z}iUfq73S7AIH*!iNkfI2*(OnE(^K5P!uff`0}aL!?LbN&6a%{^+6R|Z^>gZ5Fy96?!a_9wGZOWon4SG zDqW6m-*uu+8EC5Uq!qxP*Lhv#T|DRL;1Gf!fb-8E0RYIxJ7=LXE;EB-&Y z--KUr{AXn;6m$Y02QJ0qDiJ`d7*0x~vhkSnD&ystQN<4xxY$3)SECAbumP$R>#N9- zSAbfmOoqA^E9V%n<-I9J#B+I!jq!P&!(y?3*=z=!b4b&)2mtR%RsFf{g(lBaQm`yh z6cv8MwaO`tx&)su%6RWaZRjJY@b>&YaL$2q{`UaD#>>2Ai~(cJ2(l6Y>N$=s$b_-0 z+ADZlf$?|@j4_zc=PUKDGXR;lS(X7~Z0Y%AGPx4(Iu)|va0pQpK^(`BBnga0BgnFB zX-u22;czXKwnel602?c$H|TraTAHY*dPeGnZ29d%BY6&9QJu3$y^zkZG8);e1RitR zKDoMcq28bm;Z~>wAp=&m)7UAvzoB?v(F^Tssnj{^E*ai#wjc~c==8cuFhLL$=x9m= zD*8H|3t>grOKFlM U9oNj{lK=n!07*qoM6N<$f-3QvX#fBK literal 0 HcmV?d00001 diff --git a/smartline/textures/smartline_signaltower.png b/smartline/textures/smartline_signaltower.png new file mode 100644 index 0000000000000000000000000000000000000000..6fe09bbbdb23e6388ecd0b9018b7733306150cc2 GIT binary patch literal 486 zcmV@P)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00B-(L_t(o!|m2ROT$nU#_@j= zQ`^*~_yWEbs#ZjBu}cds9qcUlHT*O#?tThgU0g+M5wwF=xHc`C*d~qXZ5`UR&_II( zbJlw}{J5O^a1{d7*2d-#pj0T(GEHpHLkK}Wo24%$^+p4L*T$PN?MyWY!1sM-U2{R2 zFEoRUgk56?nO@@EeZ-SGx%56}zsI-y;8TIK05etoxS|J8hyVQshJ88lO#kVH50D9M z@-s~&qqhTra^PG#=(tcoXF1$eC7LVY@-5zh7!U)(102Y;nF5p`&3oIqsXk;+FLfo} cfye-U0q%HvfT9Lb(f|Me07*qoM6N<$f^`eUng9R* literal 0 HcmV?d00001 diff --git a/smartline/textures/smartline_signaltower_amber.png b/smartline/textures/smartline_signaltower_amber.png new file mode 100644 index 0000000000000000000000000000000000000000..74c6473bdf56a7db9d764a9ded09334dd931fbb1 GIT binary patch literal 462 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o|n5N2eUHAey{$X?><>&pI!QG`dEf7Y}IXMsYJC9V-A&iT2ysd*&~&PAz-C8;S2 z<(VZJ3hti10pX2&;tULoW}YsNArXh)PIL4-EZ`oxeELQ!@Sl{@oN`ui%9+DXeD`db!q;q) zxNhIv0NB literal 0 HcmV?d00001 diff --git a/smartline/textures/smartline_signaltower_green.png b/smartline/textures/smartline_signaltower_green.png new file mode 100644 index 0000000000000000000000000000000000000000..c75409ea7f343f5c4dc2d481c6577454eba42cda GIT binary patch literal 478 zcmV<40U`d0P)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00BlxL_t(o!|m2hO2beP!0~@R zYTC3=YXed@LX}n!#4EVbr6=%C9-&7NynqLA=gNf&ZB+zY)5PR8U+=kbTWFv`f|>1` z8Gby5VKj0?cc-fW2K_$1=ONMr*Im$a9Hf+d%;z+1oAGp_t=m)21K6t7*mRhAk}v8u zmIa-yZDgy#cQ_+!LA$k!kQs5D5os{W(NpJ-qkI5O{r4Y0$(2t=mKG0?#_E#HFv~Xs zxyZNP7rL&~b6;78f=FhBK|n`WNTpZ=K8=Q59N_BM!ZsAvejO4?Jd070iM3}D#tP$8 z5M~M2(`pe_fC^9|K(0M7dJq_f$sjQBJ%vcYbyIrp>h~l|Y1#!YqNAG=Fl$^or-X^% zUc51nea_oM;$_TT^a5$Z_-s<>&pI!QG`dw{O{FsQ-DH}C9V-A&iT2ysd*&~&PAz-C8;S2 z<(VZJ3hti10pX2&;tULo)}AhoArXh)UODf@6ex215b7OllwBJHv8EI&g|n z=;?vd+yA*1@yq6~`JlRE-I8C6_BDGfbieTogB_!=bd~z7XAMojux9Xd^>bP0 Hl+XkKrz^c+ literal 0 HcmV?d00001 diff --git a/smartline/textures/smartline_signaltower_top.png b/smartline/textures/smartline_signaltower_top.png new file mode 100644 index 0000000000000000000000000000000000000000..98759cabf354467d44296082cff0b17360f3bc9f GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o|n5N2eUHAey{$X?><>&pI!k%gN>N@j~uEKo?Y#5JPCIX^cyHLrxhxhOTUBsE2$ zJhLQ2!QIn0AiR-J9H_|B)5S3);_%xGhP(_4Jg$xoTs%LfA7%(U;52jBowN35y}cO~ vBL7OBznGu0{Tt`~+?(OSW(rr9~KntP3r@f%`@%FFP zTTlO%m6x;pxt_f?T;WUeuZoRPo9ypP2U)k(UEoM5Vyw9?x|kzj_9?xv)5k;}a2=G6 zGTrH%Fq>(1-M#IFW9F%|5;al;CWZs)*S*(t5zvx>n_do`uuzM zuQ}JMVpbnGd^uT}WvR%~LZ2Y7Ag_srZC#5b&TA>OEZC%TQo=bZds5J)r)NuR??pw& zA3u9@dcw5SuZ1G6@oX9`3s&E*e1Bi&9FxbSC5AT^Ce36LPk*knUowVacShm$%PqO0 zKfGOcu6kc$|KR7>rLUv{!b9tKy(=kG`exSfKV+-yq}2>J%v{Wvf9Z0(TRO4UJ%c0L f9u^D?3_e%cKeM&2d1K&^0TT3d^>bP0l+XkKcfZJs literal 0 HcmV?d00001 diff --git a/smartline/textures/smartline_timer_inventory.png b/smartline/textures/smartline_timer_inventory.png new file mode 100644 index 0000000000000000000000000000000000000000..d045bbffb74b580b0ac1eb5e771f3e8961d575d8 GIT binary patch literal 750 zcmVe zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00LG?L_t(&-tAhwPQx$|KBA}# zV(7rY6Cm**sA51&s8UrV#LOG;D!{;xn2_i~=_4?L#K^=}H$P3vaDQ7#1M$JW+`~aJb(}rCX)K zXm8M8HkLhu4nSnJihyC&tu(fpKsVN?g5??Bc@&=LA&X)>^C>*WW5;rlMN>tTp5}vUpiaB9jFouFtY87!HR?0C7(7&<6uV z7={o80eGGVwr#`J{cYrX*L9b*5Z%y92^J8vv6IOJG))6S2#iJ}FijI2$AK^m@hDW3 zlUX2wAb`bU0gmH;8|%Ia@Ogl_Q%gsm7?y?QdowpqT=s98!a;&@_IY777|sAWqf=QnQNhS z?u8-@P-MGUwqAvIC9px{QAfBIk_F| BLACK | | +-- | HOLE | + +-- | |/ +-- +--------+ + + +minetest.register_node("tubelib:blackhole", { + description = "Tubelib Black Hole", + tiles = { + -- up, down, right, left, back, front + 'tubelib_front.png', + 'tubelib_front.png', + 'tubelib_black_hole.png', + 'tubelib_black_hole_inp.png', + "tubelib_black_hole.png", + "tubelib_black_hole.png", + }, + + after_place_node = function(pos, placer) + local meta = minetest.get_meta(pos) + local number = tubelib.add_node(pos, "tubelib:blackhole") -- <<=== tubelib + meta:set_string("number", number) + meta:set_int("disappeared", 0) + meta:set_string("infotext","0 items disappeared") + end, + + after_dig_node = function(pos) + tubelib.remove_node(pos) -- <<=== tubelib + end, + + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + groups = {choppy=2, cracky=2, crumbly=2}, + is_ground_content = false, + sounds = default.node_sound_wood_defaults(), +}) + + + +minetest.register_craft({ + output = "tubelib:blackhole 2", + recipe = { + {"group:wood", "", "group:wood"}, + {"tubelib:tube1", "default:coal_lump", "default:coal_lump"}, + {"group:wood", "", "group:wood"}, + }, +}) + +--------------------------------------------------------------- tubelib +tubelib.register_node("tubelib:blackhole", {}, { + on_pull_item = nil, -- not needed + on_unpull_item = nil, -- not needed + + on_push_item = function(pos, side, item) + if side == "L" then + local meta = minetest.get_meta(pos) + local disappeared = meta:get_int("disappeared") + 1 + meta:set_int("disappeared", disappeared) + meta:set_string("infotext", disappeared.." items disappeared") + return true + end + return false + end, + + on_recv_message = function(pos, topic, payload) + local node = minetest.get_node(pos) + if topic == "state" then + return meta:get_int("disappeared") + else + return "not supported" + end + end, +}) +--------------------------------------------------------------- tubelib diff --git a/tubelib/button.lua b/tubelib/button.lua new file mode 100644 index 0000000..8f8ec84 --- /dev/null +++ b/tubelib/button.lua @@ -0,0 +1,173 @@ +--[[ + + Tube Library + ============ + + Copyright (C) 2017 Joachim Stolberg + + LGPLv2.1+ + See LICENSE.txt for more information + + button.lua: + + Example of a simple communication node, only sending messages to other nodes. + +]]-- + + +local function switch_on(pos, node) + node.name = "tubelib:button_active" + minetest.swap_node(pos, node) + minetest.sound_play("button", { + pos = pos, + gain = 0.5, + max_hear_distance = 5, + }) + local meta = minetest.get_meta(pos) + local own_num = meta:get_string("own_num") + local numbers = meta:get_string("numbers") + local cycle_time = meta:get_int("cycle_time") + if cycle_time > 0 then -- button mode? + minetest.get_node_timer(pos):start(cycle_time) + end + local placer_name = meta:get_string("placer_name") + local clicker_name = nil + if meta:get_string("public") == "false" then + clicker_name = meta:get_string("clicker_name") + end + tubelib.send_message(numbers, placer_name, clicker_name, "on", own_num) -- <<=== tubelib +end + +local function switch_off(pos) + local node = minetest.get_node(pos) + node.name = "tubelib:button" + minetest.swap_node(pos, node) + minetest.get_node_timer(pos):stop() + minetest.sound_play("button", { + pos = pos, + gain = 0.5, + max_hear_distance = 5, + }) + local meta = minetest.get_meta(pos) + local own_num = meta:get_string("own_num") + local numbers = meta:get_string("numbers") + local placer_name = meta:get_string("placer_name") + tubelib.send_message(numbers, placer_name, nil, "off", own_num) -- <<=== tubelib +end + + +minetest.register_node("tubelib:button", { + description = "Tubelib Button/Switch", + tiles = { + -- up, down, right, left, back, front + 'tubelib_front.png', + 'tubelib_button.png', + 'tubelib_button.png', + 'tubelib_button.png', + 'tubelib_button.png', + "tubelib_button_off.png", + }, + + after_place_node = function(pos, placer) + local meta = minetest.get_meta(pos) + local own_num = tubelib.add_node(pos, "tubelib:button") + meta:set_string("own_num", own_num) + meta:set_string("formspec", "size[5,6]".. + "dropdown[0.2,0;3;type;switch,button 2s,button 4s,button 8s,button 16s;1]".. + "field[0.5,2;3,1;numbers;Insert destination block number(s);]" .. + "checkbox[1,3;public;public;false]".. + "button_exit[1,4;2,1;exit;Save]") + meta:set_string("placer_name", placer:get_player_name()) + meta:set_string("public", "false") + meta:set_int("cycle_time", 0) + meta:set_string("infotext", "Tubelib Button "..own_num) + end, + + on_receive_fields = function(pos, formname, fields, player) + local meta = minetest.get_meta(pos) + if tubelib.check_numbers(fields.numbers) then -- <<=== tubelib + meta:set_string("numbers", fields.numbers) + local own_num = meta:get_string("own_num") + meta:set_string("infotext", "Tubelib Button "..own_num..", connected with block "..fields.numbers) + else + return + end + if fields.public then + meta:set_string("public", fields.public) + end + local cycle_time = nil + if fields.type == "switch" then + cycle_time = 0 + elseif fields.type == "button 2s" then + cycle_time = 2 + elseif fields.type == "button 4s" then + cycle_time = 4 + elseif fields.type == "button 8s" then + cycle_time = 8 + elseif fields.type == "button 16s" then + cycle_time = 16 + end + if cycle_time ~= nil then + meta:set_int("cycle_time", cycle_time) + end + if fields.exit then + meta:set_string("formspec", nil) + end + end, + + on_rightclick = function(pos, node, clicker) + local meta = minetest.get_meta(pos) + if meta:get_string("numbers") then + meta:set_string("clicker_name", clicker:get_player_name()) + switch_on(pos, node) + end + end, + + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + groups = {choppy=2, cracky=2, crumbly=2}, + is_ground_content = false, + sounds = default.node_sound_wood_defaults(), +}) + + +minetest.register_node("tubelib:button_active", { + description = "Tubelib Button/Switch", + tiles = { + -- up, down, right, left, back, front + 'tubelib_front.png', + 'tubelib_button.png', + 'tubelib_button.png', + 'tubelib_button.png', + 'tubelib_button.png', + "tubelib_button_on.png", + }, + + on_rightclick = function(pos, node, clicker) + local meta = minetest.get_meta(pos) + meta:set_string("clicker_name", clicker:get_player_name()) + if meta:get_int("cycle_time") == nil or meta:get_int("cycle_time") == 0 then + switch_off(pos, node) + end + end, + + on_timer = switch_off, + + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + groups = {crumbly=0, not_in_creative_inventory=1}, + is_ground_content = false, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_craft({ + output = "tubelib:button", + recipe = { + {"", "group:wood", ""}, + {"default:glass", "tubelib:wlanchip", ""}, + {"", "group:wood", ""}, + }, +}) + diff --git a/tubelib/command.lua b/tubelib/command.lua new file mode 100644 index 0000000..8a48fb8 --- /dev/null +++ b/tubelib/command.lua @@ -0,0 +1,423 @@ +--[[ + + Tube Library + ============ + + Copyright (C) 2017 Joachim Stolberg + + LGPLv2.1+ + See LICENSE.txt for more information + + command.lua: + + See [api.md] for the interface documentation + +]]-- + +------------------------------------------------------------------- +-- Data base storage +------------------------------------------------------------------- +local storage = minetest.get_mod_storage() +local NextNumber = minetest.deserialize(storage:get_string("NextNumber")) or 1 +local Version = minetest.deserialize(storage:get_string("Version")) or 1 +local Number2Pos = minetest.deserialize(storage:get_string("Number2Pos")) or {} + +local function update_mod_storage() + storage:set_string("NextNumber", minetest.serialize(NextNumber)) + storage:set_string("Version", minetest.serialize(Version)) + storage:set_string("Number2Pos", minetest.serialize(Number2Pos)) + storage:set_string("Key2Number", nil) -- not used any more + -- store data each hour + minetest.after(60*60, update_mod_storage) + print("[Tubelib] Data stored") +end + +minetest.register_on_shutdown(function() + update_mod_storage() +end) + +-- store data after one hour +minetest.after(60*60, update_mod_storage) + +-- Key2Number will be generated at runtine +local Key2Number = {} + +local Name2Name = {} -- translation table + +------------------------------------------------------------------- +-- Local helper functions +------------------------------------------------------------------- + +-- Localize functions to avoid table lookups (better performance). +local string_find = string.find +local string_split = string.split +local tubelib_NodeDef = tubelib.NodeDef +local get_neighbor_pos = tubelib.get_neighbor_pos +local read_node_with_vm = tubelib.read_node_with_vm + +-- Translate from facedir to contact side of the other node +-- (left for one is right for the other node) +local FacedirToSide = {[0] = "F", "L", "B", "R", "U", "D"} + +-- Generate a key string based on the given pos table, +-- Used internaly as table key, +local function get_key_str(pos) + pos = minetest.pos_to_string(pos) + return string.sub(pos, 2, -2) +end + +-- Determine position related node number for addressing purposes +local function get_number(pos) + local key = get_key_str(pos) + if not Key2Number[key] then + Key2Number[key] = NextNumber + NextNumber = NextNumber + 1 + end + return string.format("%.04u", Key2Number[key]) +end + +-- Determine the contact side of the node at the given pos +-- param facedir: facedir to the node +local function get_node_side(npos, facedir) + local node = minetest.get_node_or_nil(npos) or read_node_with_vm(npos) + if facedir < 4 then + facedir = (facedir - node.param2 + 4) % 4 + end + return FacedirToSide[facedir], node +end + +local function generate_Key2Number() + local key + for num,item in pairs(Number2Pos) do + key = get_key_str(item.pos) + Key2Number[key] = num + end +end + +------------------------------------------------------------------- +-- API helper functions +------------------------------------------------------------------- + +-- Check the given list of numbers. +-- Returns true if number(s) is/are valid and point to real nodes. +function tubelib.check_numbers(numbers) + if numbers then + for _,num in ipairs(string_split(numbers, " ")) do + if Number2Pos[num] == nil then + return false + end + end + return true + end + return false +end + +-- Function returns { pos, name } for the node on the given position number. +function tubelib.get_node_info(dest_num) + if Number2Pos[dest_num] then + return Number2Pos[dest_num] + end + return nil +end + +-- Function returns the node number from the given position or +-- nil, if no node number for this position is assigned. +function tubelib.get_node_number(pos) + local key = get_key_str(pos) + local num = Key2Number[key] + if num then + num = string.format("%.04u", num) + if Number2Pos[num] and Number2Pos[num].name then + return num + end + end + return nil +end + +-- Store any node number related, additional data +-- param number: node number, returned by tubelib.add_node +-- param name: name of the data (string) +-- param data: any data (number, string, table) +function tubelib.set_data(number, name, data) + if Number2Pos[number] and type(name) == "string" then + Number2Pos[number]["u_"..name] = data + end +end + +-- Read node number related data +-- param number: node number, returned by tubelib.add_node +-- param name: name of the data (string) +function tubelib.get_data(number, name) + if Number2Pos[number] and type(name) == "string" then + return Number2Pos[number]["u_"..name] + end + return nil +end + +------------------------------------------------------------------- +-- Node construction/destruction functions +------------------------------------------------------------------- + +-- Add node to the tubelib lists and update the tube surrounding. +-- Function determines and returns the node position number, +-- needed for message communication. +function tubelib.add_node(pos, name) + -- store position + local number = get_number(pos) + Number2Pos[number] = { + pos = pos, + name = name, + } + -- update surrounding tubes + tubelib.update_tubes(pos) + return number +end + +-- Function removes the node from the tubelib lists. +function tubelib.remove_node(pos) + local number = get_number(pos) + if Number2Pos[number] then + Number2Pos[number] = { + pos = pos, + name = nil, + time = minetest.get_day_count() -- used for aging + } + end +end + + +------------------------------------------------------------------- +-- Node register function +------------------------------------------------------------------- + +-- Register node for tubelib communication +-- Call this function only at load time! +-- Param name: The node name like "tubelib:pusher" +-- Param add_names: Alternativ node names if needded, e.g.: "tubelib:pusher_active" +-- Param node_definition: A table according to: +-- { +-- on_pull_item = func(pos, side, player_name), +-- on_push_item = func(pos, side, item, player_name), +-- on_unpull_item = func(pos, side, item, player_name), +-- on_recv_message = func(pos, topic, payload), +-- } +function tubelib.register_node(name, add_names, node_definition) + tubelib_NodeDef[name] = node_definition + -- store facedir table for all known node names + tubelib.knownNodes[name] = true + Name2Name[name] = name + for _,n in ipairs(add_names) do + tubelib.knownNodes[n] = true + Name2Name[n] = name + end +end + +------------------------------------------------------------------- +-- Send message functions +------------------------------------------------------------------- + +function tubelib.send_message(numbers, placer_name, clicker_name, topic, payload) + for _,num in ipairs(string_split(numbers, " ")) do + if Number2Pos[num] and Number2Pos[num].name then + local data = Number2Pos[num] + if placer_name and not minetest.is_protected(data.pos, placer_name) then + if clicker_name == nil or not minetest.is_protected(data.pos, clicker_name) then + if data and data.name then + if tubelib_NodeDef[data.name] and tubelib_NodeDef[data.name].on_recv_message then + tubelib_NodeDef[data.name].on_recv_message(data.pos, topic, payload) + end + end + end + end + end + end +end + +function tubelib.send_request(number, topic, payload) + if Number2Pos[number] and Number2Pos[number].name then + local data = Number2Pos[number] + if data and data.name then + if tubelib_NodeDef[data.name] and tubelib_NodeDef[data.name].on_recv_message then + return tubelib_NodeDef[data.name].on_recv_message(data.pos, topic, payload) + end + end + end + return false +end + +------------------------------------------------------------------- +-- Client side Push/Pull item functions +------------------------------------------------------------------- + +function tubelib.pull_items(pos, side, player_name) + local npos, facedir = get_neighbor_pos(pos, side) + local nside, node = get_node_side(npos, facedir) + local name = Name2Name[node.name] + if tubelib_NodeDef[name] and tubelib_NodeDef[name].on_pull_item then + return tubelib_NodeDef[name].on_pull_item(npos, nside, player_name) + end + return nil +end + +function tubelib.push_items(pos, side, items, player_name) + local npos, facedir = get_neighbor_pos(pos, side) + local nside, node = get_node_side(npos, facedir) + local name = Name2Name[node.name] + if tubelib_NodeDef[name] and tubelib_NodeDef[name].on_push_item then + return tubelib_NodeDef[name].on_push_item(npos, nside, items, player_name) + elseif node.name == "air" then + minetest.add_item(npos, items) + return true + end + return false +end + +function tubelib.unpull_items(pos, side, items, player_name) + local npos, facedir = get_neighbor_pos(pos, side) + local nside, node = get_node_side(npos, facedir) + local name = Name2Name[node.name] + if tubelib_NodeDef[name] and tubelib_NodeDef[name].on_unpull_item then + return tubelib_NodeDef[name].on_unpull_item(npos, nside, items, player_name) + end + return false +end + + +------------------------------------------------------------------- +-- Server side helper functions +------------------------------------------------------------------- + +-- Get one item from the given ItemList. The position within the list +-- is incremented each time so that different item stacks will be considered. +-- Returns nil if ItemList is empty. +function tubelib.get_item(meta, listname) + if meta == nil or meta.get_inventory == nil then return nil end + local inv = meta:get_inventory() + if inv:is_empty(listname) then + return nil + end + local size = inv:get_size(listname) + local startpos = meta:get_int("tubelib_startpos") or 0 + for idx = startpos, startpos+size do + idx = (idx % size) + 1 + local items = inv:get_stack(listname, idx) + if items:get_count() > 0 then + local taken = items:take_item(1) + inv:set_stack(listname, idx, items) + meta:set_int("tubelib_startpos", idx) + return taken + end + end + meta:set_int("tubelib_startpos", 0) + return nil +end + +-- Get one item from the given ItemList, specified by stack number (1..n). +-- Returns nil if ItemList is empty. +function tubelib.get_this_item(meta, listname, number) + if meta == nil or meta.get_inventory == nil then return nil end + local inv = meta:get_inventory() + if inv:is_empty(listname) then + return nil + end + + local items = inv:get_stack(listname, number) + if items:get_count() > 0 then + local taken = items:take_item(1) + inv:set_stack(listname, number, items) + return taken + end + return nil +end + + +-- Put the given item into the given ItemList. +-- Function returns false if ItemList is full. +function tubelib.put_item(meta, listname, item) + if meta == nil or meta.get_inventory == nil then return false end + local inv = meta:get_inventory() + if inv:room_for_item(listname, item) then + inv:add_item(listname, item) + return true + end + return false +end + +-- Take the number of items from the given ItemList. +-- Returns nil if the requested number is not available. +function tubelib.get_num_items(meta, listname, num) + if meta == nil or meta.get_inventory == nil then return nil end + local inv = meta:get_inventory() + if inv:is_empty(listname) then + return nil + end + local size = inv:get_size(listname) + for idx = 1, size do + local items = inv:get_stack(listname, idx) + if items:get_count() >= num then + local taken = items:take_item(num) + inv:set_stack(listname, idx, items) + return taken + end + end + return nil +end + +-- Return "full", "loaded", or "empty" depending +-- on the number of fuel stack items. +-- Function only works on fuel inventories with one stacks/99 items +function tubelib.fuelstate(meta, listname, item) + if meta == nil or meta.get_inventory == nil then return nil end + local inv = meta:get_inventory() + if inv:is_empty(listname) then + return "empty" + end + local list = inv:get_list(listname) + if #list == 1 and list[1]:get_count() == 99 then + return "full" + else + return "loaded" + end +end + + + +------------------------------------------------------------------------------- +-- Data Maintenance +------------------------------------------------------------------------------- +local function data_maintenance() + print("[Tubelib] Data maintenance started") + if Version == 1 then + -- Add day_count for aging of unused positions + for num,item in pairs(Number2Pos) do + if Number2Pos[num].name == nil then + Number2Pos[num].time = minetest.get_day_count() + end + end + Version = 2 + else + -- Remove old unused positions + local Tbl = table.copy(Number2Pos) + Number2Pos = {} + local day_cnt = minetest.get_day_count() + for num,item in pairs(Tbl) do + if item.name then + Number2Pos[num] = item + -- data not older than 5 real days + elseif item.time and (item.time + 360) > day_cnt then + Number2Pos[num] = item + else + print("Position deleted", num) + end + end + end + print("[Tubelib] Data maintenance finished") +end + +generate_Key2Number() + +-- maintain data after one minute +-- (minetest.get_day_count() will not be valid at start time) +minetest.after(60, data_maintenance) + + diff --git a/tubelib/depends.txt b/tubelib/depends.txt new file mode 100644 index 0000000..4ad96d5 --- /dev/null +++ b/tubelib/depends.txt @@ -0,0 +1 @@ +default diff --git a/tubelib/description.txt b/tubelib/description.txt new file mode 100644 index 0000000..3dee699 --- /dev/null +++ b/tubelib/description.txt @@ -0,0 +1,2 @@ +Tubes Mod with message communication interface as basis for further technique Mods. + diff --git a/tubelib/distributor.lua b/tubelib/distributor.lua new file mode 100644 index 0000000..7b2ed57 --- /dev/null +++ b/tubelib/distributor.lua @@ -0,0 +1,449 @@ +--[[ + + Tube Library + ============ + + Copyright (C) 2017 Joachim Stolberg + + LGPLv2.1+ + See LICENSE.txt for more information + + distributor.lua: + + A more complex node acting as server and client. + This node claims a position number and registers its message and items interface. + The Distributor supports the following messages: + - topic = "on", payload = nil + - topic = "off" , payload = nil + - topic = "state", payload = nil, + response is "running", "stopped", "standby", or "not supported" +]]-- + +local NUM_FILTER_ELEM = 6 +local NUM_FILTER_SLOTS = 4 +local TICKS_TO_SLEEP = 5 +local CYCLE_TIME = 2 +local STOP_STATE = 0 +local STANDBY_STATE = -1 +local FAULT_STATE = -2 + +-- Return a key/value table with all items and the corresponding stack numbers +local function invlist_content_as_kvlist(list) + local res = {} + for idx,items in ipairs(list) do + local name = items:get_name() + if name ~= "" then + res[name] = idx + end + end + return res +end + +-- Return the total number of list entries +local function invlist_num_entries(list) + local res = 0 + for _,items in ipairs(list) do + local name = items:get_name() + if name ~= "" then + res = res + items:get_count() + end + end + return res +end + +-- Return a flat table with all items +local function invlist_entries_as_list(list) + local res = {} + for _,items in ipairs(list) do + local name = items:get_name() + local count = items:get_count() + if name ~= "" then + for i = 1,count do + res[#res+1] = name + end + end + end + return res +end + + +local function AddToTbl(kvTbl, new_items) + for _, l in ipairs(new_items) do + kvTbl[l] = true + end + return kvTbl +end + + +local function distributor_formspec(state, filter) + return "size[10,8.5]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "list[context;src;0,0;2,4;]".. + "image[2,1.5;1,1;tubelib_gui_arrow.png]".. + "image_button[2,3;1,1;".. tubelib.state_button(state) ..";button;]".. + "checkbox[3,0;filter1;On;"..dump(filter[1]).."]".. + "checkbox[3,1;filter2;On;"..dump(filter[2]).."]".. + "checkbox[3,2;filter3;On;"..dump(filter[3]).."]".. + "checkbox[3,3;filter4;On;"..dump(filter[4]).."]".. + "image[3.6,0;0.3,1;tubelib_red.png]".. + "image[3.6,1;0.3,1;tubelib_green.png]".. + "image[3.6,2;0.3,1;tubelib_blue.png]".. + "image[3.6,3;0.3,1;tubelib_yellow.png]".. + "list[context;red;4,0;6,1;]".. + "list[context;green;4,1;6,1;]".. + "list[context;blue;4,2;6,1;]".. + "list[context;yellow;4,3;6,1;]".. + "list[current_player;main;1,4.5;8,4;]".. + "listring[context;src]".. + "listring[current_player;main]" +end + +local function allow_metadata_inventory_put(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local list = inv:get_list(listname) + + if minetest.is_protected(pos, player:get_player_name()) then + return 0 + end + if listname == "src" then + return stack:get_count() + elseif invlist_num_entries(list) < NUM_FILTER_ELEM then + return 1 + end + return 0 +end + +local function allow_metadata_inventory_take(pos, listname, index, stack, player) + if minetest.is_protected(pos, player:get_player_name()) then + return 0 + end + return stack:get_count() +end + +local function allow_metadata_inventory_move(pos, from_list, from_index, to_list, to_index, count, player) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local stack = inv:get_stack(from_list, from_index) + return allow_metadata_inventory_put(pos, to_list, to_index, stack, player) +end + +local SlotColors = {"red", "green", "blue", "yellow"} +local Num2Ascii = {"B", "L", "F", "R"} -- color to side translation +local FilterCache = {} -- local cache for filter settings + +local function filter_settings(pos) + local hash = minetest.hash_node_position(pos) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local filter = minetest.deserialize(meta:get_string("filter")) or {false,false,false,false} + local kvFilterItemNames = {} -- { = true,...} + local kvSide2ItemNames = {} -- {"F" = {,...},...} + + -- collect all filter settings + for idx,slot in ipairs(SlotColors) do + local side = Num2Ascii[idx] + if filter[idx] == true then + local list = inv:get_list(slot) + local filter = invlist_entries_as_list(list) + AddToTbl(kvFilterItemNames, filter) + kvSide2ItemNames[side] = filter + end + end + + FilterCache[hash] = { + kvFilterItemNames = kvFilterItemNames, + kvSide2ItemNames = kvSide2ItemNames + } +end + +local function start_the_machine(pos) + local node = minetest.get_node(pos) + local meta = minetest.get_meta(pos) + local number = meta:get_string("number") + meta:set_int("running", TICKS_TO_SLEEP) + node.name = "tubelib:distributor_active" + minetest.swap_node(pos, node) + meta:set_string("infotext", "Tubelib Distributor "..number..": running") + local filter = minetest.deserialize(meta:get_string("filter")) + meta:set_string("formspec", distributor_formspec(tubelib.RUNNING, filter)) + minetest.get_node_timer(pos):start(CYCLE_TIME) + return false +end + +local function stop_the_machine(pos) + local node = minetest.get_node(pos) + local meta = minetest.get_meta(pos) + local number = meta:get_string("number") + meta:set_int("running", STOP_STATE) + node.name = "tubelib:distributor" + minetest.swap_node(pos, node) + meta:set_string("infotext", "Tubelib Distributor "..number..": stopped") + local filter = minetest.deserialize(meta:get_string("filter")) + meta:set_string("formspec", distributor_formspec(tubelib.STOPPED, filter)) + minetest.get_node_timer(pos):stop() + return false +end + +local function goto_sleep(pos) + local node = minetest.get_node(pos) + local meta = minetest.get_meta(pos) + local number = meta:get_string("number") + meta:set_int("running", STANDBY_STATE) + node.name = "tubelib:distributor" + minetest.swap_node(pos, node) + meta:set_string("infotext", "Tubelib Distributor "..number..": standby") + local filter = minetest.deserialize(meta:get_string("filter")) + meta:set_string("formspec", distributor_formspec(tubelib.STANDBY, filter)) + minetest.get_node_timer(pos):start(CYCLE_TIME * TICKS_TO_SLEEP) + return false +end + +-- move items to the output slots +local function keep_running(pos, elapsed) + local meta = minetest.get_meta(pos) + local running = meta:get_int("running") - 1 + local player_name = meta:get_string("player_name") + --print("running", running) + local slot_idx = meta:get_int("slot_idx") or 1 + meta:set_int("slot_idx", (slot_idx + 1) % NUM_FILTER_SLOTS) + local side = Num2Ascii[slot_idx+1] + local listname = SlotColors[slot_idx+1] + local inv = meta:get_inventory() + local list = inv:get_list("src") + local kvSrc = invlist_content_as_kvlist(list) + + -- calculate the filter settings only once + local hash = minetest.hash_node_position(pos) + if FilterCache[hash] == nil then + filter_settings(pos) + end + + -- read data from Cache + -- all filter items as key/value { = true,...} + local kvFilterItemNames = FilterCache[hash].kvFilterItemNames + -- filter items of one slot as list {,...} + local names = FilterCache[hash].kvSide2ItemNames[side] + + if names == nil then + -- this slot is empty + return true + end + + local busy = false + -- move items from configured filters to the output + if next(names) then + for _,name in ipairs(names) do + if kvSrc[name] then + local item = tubelib.get_this_item(meta, "src", kvSrc[name]) -- <<=== tubelib + if item then + if not tubelib.push_items(pos, side, item, player_name) then -- <<=== tubelib + tubelib.put_item(meta, "src", item) + else + busy = true + end + end + end + end + end + + -- move additional items from unconfigured filters to the output + if next(names) == nil then + for name,_ in pairs(kvSrc) do + if kvFilterItemNames[name] == nil then -- not in the filter so far? + local item = tubelib.get_this_item(meta, "src", kvSrc[name]) -- <<=== tubelib + if item then + if not tubelib.push_items(pos, side, item, player_name) then -- <<=== tubelib + tubelib.put_item(meta, "src", item) + else + busy = true + end + end + end + end + end + + if busy == true then + if running <= 0 then + return start_the_machine(pos) + else + running = TICKS_TO_SLEEP + end + else + if running <= 0 then + return goto_sleep(pos) + end + end + + meta:set_int("running", running) + return true +end + +local function on_receive_fields(pos, formname, fields, player) + if minetest.is_protected(pos, player:get_player_name()) then + return + end + local meta = minetest.get_meta(pos) + local running = meta:get_int("running") + local filter = minetest.deserialize(meta:get_string("filter")) + if fields.filter1 ~= nil then + filter[1] = fields.filter1 == "true" + elseif fields.filter2 ~= nil then + filter[2] = fields.filter2 == "true" + elseif fields.filter3 ~= nil then + filter[3] = fields.filter3 == "true" + elseif fields.filter4 ~= nil then + filter[4] = fields.filter4 == "true" + end + meta:set_string("filter", minetest.serialize(filter)) + + filter_settings(pos) + + if fields.button ~= nil then + if running > STOP_STATE or running == FAULT_STATE then + stop_the_machine(pos) + else + start_the_machine(pos) + end + else + meta:set_string("formspec", distributor_formspec(tubelib.state(running), filter)) + end +end + +minetest.register_node("tubelib:distributor", { + description = "Tubelib Distributor", + tiles = { + -- up, down, right, left, back, front + 'tubelib_distributor.png', + 'tubelib_distributor.png', + 'tubelib_distributor_yellow.png', + 'tubelib_distributor_green.png', + "tubelib_distributor_red.png", + "tubelib_distributor_blue.png", + }, + + after_place_node = function(pos, placer) + local number = tubelib.add_node(pos, "tubelib:distributor") -- <<=== tubelib + local meta = minetest.get_meta(pos) + meta:set_string("player_name", placer:get_player_name()) + + local filter = {false,false,false,false} + meta:set_string("formspec", distributor_formspec(tubelib.STOPPED, filter)) + meta:set_string("filter", minetest.serialize(filter)) + meta:set_string("number", number) + meta:set_string("infotext", "Tubelib Distributor "..number..": stopped") + local inv = meta:get_inventory() + inv:set_size('src', 8) + inv:set_size('yellow', 6) + inv:set_size('green', 6) + inv:set_size('red', 6) + inv:set_size('blue', 6) + end, + + on_receive_fields = on_receive_fields, + + on_dig = function(pos, node, puncher, pointed_thing) + if minetest.is_protected(pos, puncher:get_player_name()) then + return + end + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if inv:is_empty("src") then + minetest.node_dig(pos, node, puncher, pointed_thing) + tubelib.remove_node(pos) -- <<=== tubelib + end + end, + + allow_metadata_inventory_put = allow_metadata_inventory_put, + allow_metadata_inventory_take = allow_metadata_inventory_take, + allow_metadata_inventory_move = allow_metadata_inventory_move, + + on_timer = keep_running, + + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + groups = {choppy=2, cracky=2, crumbly=2}, + is_ground_content = false, + sounds = default.node_sound_wood_defaults(), +}) + + +minetest.register_node("tubelib:distributor_active", { + description = "Tubelib Distributor", + tiles = { + -- up, down, right, left, back, front + { + image = "tubelib_distributor_active.png", + backface_culling = false, + animation = { + type = "vertical_frames", + aspect_w = 32, + aspect_h = 32, + length = 2.0, + }, + }, + 'tubelib_distributor.png', + 'tubelib_distributor_yellow.png', + 'tubelib_distributor_green.png', + "tubelib_distributor_red.png", + "tubelib_distributor_blue.png", + }, + + on_receive_fields = on_receive_fields, + + allow_metadata_inventory_put = allow_metadata_inventory_put, + allow_metadata_inventory_take = allow_metadata_inventory_take, + allow_metadata_inventory_move = allow_metadata_inventory_move, + + on_timer = keep_running, + + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + groups = {crumbly=0, not_in_creative_inventory=1}, + is_ground_content = false, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_craft({ + output = "tubelib:distributor 2", + recipe = { + {"group:wood", "default:steel_ingot", "group:wood"}, + {"tubelib:tube1", "default:mese_crystal", "tubelib:tube1"}, + {"group:wood", "default:steel_ingot", "group:wood"}, + }, +}) + + +--------------------------------------------------------------- tubelib +tubelib.register_node("tubelib:distributor", {"tubelib:distributor_active"}, { + on_pull_item = function(pos, side) + local meta = minetest.get_meta(pos) + return tubelib.get_item(meta, "src") + end, + on_push_item = function(pos, side, item) + local meta = minetest.get_meta(pos) + return tubelib.put_item(meta, "src", item) + end, + on_unpull_item = function(pos, side, item) + local meta = minetest.get_meta(pos) + return tubelib.put_item(meta, "src", item) + end, + on_recv_message = function(pos, topic, payload) + if topic == "on" then + return start_the_machine(pos) + elseif topic == "off" then + return stop_the_machine(pos) + elseif topic == "state" then + local meta = minetest.get_meta(pos) + local running = meta:get_int("running") + return tubelib.statestring(running) + else + return "unsupported" + end + end, +}) +--------------------------------------------------------------- tubelib diff --git a/tubelib/init.lua b/tubelib/init.lua new file mode 100644 index 0000000..7ee2efd --- /dev/null +++ b/tubelib/init.lua @@ -0,0 +1,95 @@ +--[[ + + Tube Library + ============ + + Copyright (C) 2017 Joachim Stolberg + + LGPLv2.1+ + See LICENSE.txt for more information + + History: + 2017-09-08 v0.01 first version + 2017-09-12 v0.02 bugfix in tubelib.get_pos() and others + 2017-09-21 v0.03 function get_num_items added + 2017-09-26 v0.04 param side added, node blackhole added + 2017-10-06 v0.05 Parameter 'player_name' added, furnace fuel detection changed + 2017-10-08 v0.06 tubelib.get_node_number() added, tubelib.version added + 2017-10-29 v0.07 Pusher bugfix, commands start/stop replaced by on/off + 2017-11-02 v0.08 Data base changed, aging of node positions added + 2017-11-04 v0.09 functions set_data/get_data added + 2018-01-27 v0.10 WLAN Chip added, recipes reviced, Pusher state 'blocked' added, + function send_request changed + +]]-- + + +tubelib = { + NodeDef = {}, -- node registration info +} + +tubelib.version = 0.10 + + +--------------------------- conversion to v0.04 +minetest.register_lbm({ + label = "[Tubelib] Distributor update", + name = "tubelib:update", + nodenames = {"tubelib:distributor", "tubelib:distributor_active"}, + run_at_every_load = false, + action = function(pos, node) + local meta = minetest.get_meta(pos) + if minetest.deserialize(meta:get_string("filter")) == nil then + local filter = {false,false,false,false} + meta:set_string("filter", minetest.serialize(filter)) + end + local inv = meta:get_inventory() + inv:set_size('yellow', 6) + inv:set_size('green', 6) + inv:set_size('red', 6) + inv:set_size('blue', 6) + end +}) + +--------------------------- conversion to v0.10 +minetest.register_lbm({ + label = "[Tubelib] Button update", + name = "tubelib:update2", + nodenames = {"tubelib:button", "tubelib:button_active"}, + run_at_every_load = false, + action = function(pos, node) + local meta = minetest.get_meta(pos) + local number = meta:get_string("number") + if number ~= "" then + meta:set_string("numbers", number) + meta:set_string("number", nil) + end + end +}) + +minetest.register_craftitem("tubelib:wlanchip", { + description = "Tubelib WLAN Chip", + inventory_image = "tubelib_wlanchip.png", +}) + + +minetest.register_craft({ + output = "tubelib:wlanchip 8", + recipe = { + {"default:mese_crystal", "default:copper_ingot", ""}, + {"default:gold_ingot", "default:glass", ""}, + {"", "", ""}, + }, +}) + + +dofile(minetest.get_modpath("tubelib") .. "/tubes.lua") +dofile(minetest.get_modpath("tubelib") .. "/command.lua") +dofile(minetest.get_modpath("tubelib") .. "/states.lua") +dofile(minetest.get_modpath("tubelib") .. "/pusher.lua") +dofile(minetest.get_modpath("tubelib") .. "/blackhole.lua") +dofile(minetest.get_modpath("tubelib") .. "/button.lua") +dofile(minetest.get_modpath("tubelib") .. "/lamp.lua") +dofile(minetest.get_modpath("tubelib") .. "/distributor.lua") +dofile(minetest.get_modpath("tubelib") .. "/legacy_nodes.lua") + diff --git a/tubelib/lamp.lua b/tubelib/lamp.lua new file mode 100644 index 0000000..a0129d7 --- /dev/null +++ b/tubelib/lamp.lua @@ -0,0 +1,106 @@ +--[[ + + Tube Library + ============ + + Copyright (C) 2017 Joachim Stolberg + + LGPLv2.1+ + See LICENSE.txt for more information + + lamp.lua: + + Example of a simple communication node, only receiving messages from others. + This node claims a position number and registers its message interface. + The Lamp supports the following messages: + - topic = "on", payload = nil + - topic = "off" , payload = nil + +]]-- + +local function switch_on(pos, node) + node.name = "tubelib:lamp_on" + minetest.swap_node(pos, node) +end + +local function switch_off(pos, node) + node.name = "tubelib:lamp" + minetest.swap_node(pos, node) +end + +minetest.register_node("tubelib:lamp", { + description = "Tubelib Lamp", + tiles = { + 'tubelib_lamp.png', + }, + + after_place_node = function(pos, placer) + local number = tubelib.add_node(pos, "tubelib:lamp") -- <<=== tubelib + local meta = minetest.get_meta(pos) + meta:set_string("infotext", "Tubelib Lamp "..number) + end, + + on_rightclick = function(pos, node, clicker) + if not minetest.is_protected(pos, clicker:get_player_name()) then + switch_on(pos, node) + end + end, + + after_dig_node = function(pos) + tubelib.remove_node(pos) -- <<=== tubelib + end, + + paramtype = "light", + light_source = 0, + sunlight_propagates = true, + paramtype2 = "facedir", + groups = {choppy=2, cracky=2, crumbly=2}, + is_ground_content = false, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("tubelib:lamp_on", { + description = "Tubelib Lamp", + tiles = { + 'tubelib_lamp.png', + }, + + on_rightclick = function(pos, node, clicker) + if not minetest.is_protected(pos, clicker:get_player_name()) then + switch_off(pos, node) + end + end, + + paramtype = "light", + light_source = LIGHT_MAX, + sunlight_propagates = true, + paramtype2 = "facedir", + groups = {crumbly=0, not_in_creative_inventory=1}, + is_ground_content = false, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_craft({ + output = "tubelib:lamp 4", + recipe = { + {"wool:white", "wool:white", "wool:white"}, + {"tubelib:wlanchip", "default:coal_lump", ""}, + {"group:wood", "", "group:wood"}, + }, +}) + +--------------------------------------------------------------- tubelib +tubelib.register_node("tubelib:lamp", {"tubelib:lamp_on"}, { + on_pull_item = nil, -- lamp has no inventory + on_push_item = nil, -- lamp has no inventory + on_unpull_item = nil, -- lamp has no inventory + on_recv_message = function(pos, topic, payload) + local node = minetest.get_node(pos) + if topic == "on" then + switch_on(pos, node) + elseif topic == "off" then + switch_off(pos, node) + end + end, +}) +--------------------------------------------------------------- tubelib diff --git a/tubelib/legacy_nodes.lua b/tubelib/legacy_nodes.lua new file mode 100644 index 0000000..e67a48a --- /dev/null +++ b/tubelib/legacy_nodes.lua @@ -0,0 +1,107 @@ +--[[ + + Tube Library + ============ + + Copyright (C) 2017 Joachim Stolberg + + LGPLv2.1+ + See LICENSE.txt for more information + + legacy_nodes.lua: + + Tubelib support for chests and furnace + +]]-- + +tubelib.register_node("default:chest", {"default:chest_open"}, { + on_pull_item = function(pos, side) + local meta = minetest.get_meta(pos) + return tubelib.get_item(meta, "main") + end, + on_push_item = function(pos, side, item) + local meta = minetest.get_meta(pos) + return tubelib.put_item(meta, "main", item) + end, + on_unpull_item = function(pos, side, item) + local meta = minetest.get_meta(pos) + return tubelib.put_item(meta, "main", item) + end, +}) + + +tubelib.register_node("default:chest_locked", {"default:chest_locked_open"}, { + on_pull_item = function(pos, side, player_name) + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + if player_name == owner or player_name == "" then + return tubelib.get_item(meta, "main") + end + return nil + end, + on_push_item = function(pos, side, item, player_name) + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + if player_name == owner or player_name == "" then + return tubelib.put_item(meta, "main", item) + end + return false + end, + on_unpull_item = function(pos, side, item, player_name) + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + if player_name == owner or player_name == "" then + return tubelib.put_item(meta, "main", item) + end + return nil + end, +}) + +tubelib.register_node("default:furnace", {"default:furnace_active"}, { + on_pull_item = function(pos, side) + local meta = minetest.get_meta(pos) + return tubelib.get_item(meta, "dst") + end, + on_push_item = function(pos, side, item) + local meta = minetest.get_meta(pos) + minetest.get_node_timer(pos):start(1.0) + if minetest.get_craft_result({method="fuel", width=1, items={item}}).time ~= 0 then + return tubelib.put_item(meta, "fuel", item) + else + return tubelib.put_item(meta, "src", item) + end + end, + on_unpull_item = function(pos, side, item) + local meta = minetest.get_meta(pos) + return tubelib.put_item(meta, "dst", item) + end, +}) + +tubelib.register_node("shop:shop", {}, { + on_pull_item = function(pos, side, player_name) + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + if player_name == owner or player_name == "" then + return tubelib.get_item(meta, "register") + end + return nil + end, + on_push_item = function(pos, side, item, player_name) + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + if player_name == owner or player_name == "" then + return tubelib.put_item(meta, "stock", item) + end + return false + end, + on_unpull_item = function(pos, side, item, player_name) + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + if player_name == owner or player_name == "" then + return tubelib.put_item(meta, "register", item) + end + return nil + end, +}) + + diff --git a/tubelib/manual.md b/tubelib/manual.md new file mode 100644 index 0000000..68328a0 --- /dev/null +++ b/tubelib/manual.md @@ -0,0 +1,39 @@ +# Tubelib Library + +## Hints for Admins and Players + +Tubelib is little useful for itself, it makes only sense with extensions such as: +- ![tubelib_addons1](https://github.com/joe7575/tubelib_addons1) with farming nodes like Harvester, Quarry, Grinder, Autocrafter, Fermenter and Reformer. +- ![tubelib_addons2](https://github.com/joe7575/tubelib_addons2) with control task nodes like Timer, Sequencer, Repeater, Gate, Door, Access Lock and Color Lamp. + +However Tubelib provides the following basic nodes: + +### Tubes +Tubes allow the item exchange between two nodes. Tube forks are not possible. You have to use chests +or other inventory nodes as hubs to build more complex structures. +Tubes for itself are passive. For item exchange you have to use pulling/pushing nodes in addition. +The maximum tube length is limited to 100 nodes. + +### Pusher +The Pusher is able to pull one item out of one inventory node and pushing it into another inventory node directly or by means of tubes. +It the source node is empty or the destination node full, the Pusher goes into STANDBY state for some seconds. + +### Distributor +The Distributor works as filter and pusher. It allows to divide and distribute incoming items into 4 tube channels. +The channels can be switched on/off and individually configured with up to 6 items. The filter passes the configured +items and restrains all others. To increase the throughput, one item can be added several times to a filter. +An unconfigured but activated filter allows to pass up to 6 remaining items. + +### Button/Switch +The Button/Switch is a simple communication node for the Tubelib wireless communication. +This node can be configured as button and switch. For the button configuration different switching +times from 2 to 16 seconds are possible. The Button/Switch node has to be configured with the destination +number of the receiving node (e.g. Lamp). This node allows to address several receivers by means or their numbers. +All numbers of the receiving nodes have to be added a configuration time. + +### Lamp +The Lamp is a receiving node, showing its destination/communication number via "infotext". +The Lamp can be switched on/off by means of the right mouse button (use function) or by means of messages commands +from a Button/Switch or any other command sending node. + + diff --git a/tubelib/mod.conf b/tubelib/mod.conf new file mode 100644 index 0000000..74f37e9 --- /dev/null +++ b/tubelib/mod.conf @@ -0,0 +1 @@ +name=tubelib diff --git a/tubelib/pusher.lua b/tubelib/pusher.lua new file mode 100644 index 0000000..47f527e --- /dev/null +++ b/tubelib/pusher.lua @@ -0,0 +1,243 @@ +--[[ + + Tube Library + ============ + + Copyright (C) 2017 Joachim Stolberg + + LGPLv2.1+ + See LICENSE.txt for more information + + pusher.lua: + + Simple node for push/pull operation of StackItems from chests or other + inventory/server nodes to tubes or other inventory/server nodes. + + The Pusher supports the following messages: + - topic = "on", payload = nil + - topic = "off", payload = nil + - topic = "state", payload = nil, + response is "running", "stopped", "standby", "blocked", or "not supported" + +]]-- + +-- +--------+ +-- / /| +-- +--------+ | +-- IN (L) -->| |x--> OUT (R) +-- | PUSHER | + +-- | |/ +-- +--------+ + +local RUNNING_STATE = 10 + +local function switch_on(pos, node) + local meta = minetest.get_meta(pos) + local number = meta:get_string("number") + meta:set_int("running", RUNNING_STATE) + meta:set_string("infotext", "Pusher "..number..": running") + node.name = "tubelib:pusher_active" + minetest.swap_node(pos, node) + minetest.get_node_timer(pos):start(2) + return false +end + +local function switch_off(pos, node) + local meta = minetest.get_meta(pos) + local number = meta:get_string("number") + meta:set_int("running", tubelib.STATE_STOPPED) + meta:set_string("infotext", "Pusher "..number..": stopped") + node.name = "tubelib:pusher" + minetest.swap_node(pos, node) + minetest.get_node_timer(pos):stop() + return false +end + +local function goto_standby(pos, node) + local meta = minetest.get_meta(pos) + local number = meta:get_string("number") + meta:set_int("running", tubelib.STATE_STANDBY) + meta:set_string("infotext", "Pusher "..number..": standby") + node.name = "tubelib:pusher" + minetest.swap_node(pos, node) + minetest.get_node_timer(pos):start(20) + return false +end + +local function goto_blocked(pos, node) + local meta = minetest.get_meta(pos) + local number = meta:get_string("number") + meta:set_int("running", tubelib.STATE_BLOCKED) + meta:set_string("infotext", "Pusher "..number..": blocked") + node.name = "tubelib:pusher" + minetest.swap_node(pos, node) + minetest.get_node_timer(pos):start(20) + return false +end + +local function keep_running(pos, elapsed) + local meta = minetest.get_meta(pos) + local number = meta:get_string("number") + local running = meta:get_int("running") - 1 + local player_name = meta:get_string("player_name") + local items = tubelib.pull_items(pos, "L", player_name) -- <<=== tubelib + if items ~= nil then + if tubelib.push_items(pos, "R", items, player_name) == false then -- <<=== tubelib + -- place item back + tubelib.unpull_items(pos, "L", items, player_name) -- <<=== tubelib + local node = minetest.get_node(pos) + return goto_blocked(pos, node) + end + if running <= 0 then + local node = minetest.get_node(pos) + return switch_on(pos, node) + else + -- reload running state + running = RUNNING_STATE + end + else + if running <= 0 then + local node = minetest.get_node(pos) + return goto_standby(pos, node) + end + end + meta:set_int("running", running) + return true +end + +minetest.register_node("tubelib:pusher", { + description = "Tubelib Pusher", + tiles = { + -- up, down, right, left, back, front + 'tubelib_pusher1.png', + 'tubelib_pusher1.png', + 'tubelib_outp.png', + 'tubelib_inp.png', + "tubelib_pusher1.png^[transformR180]", + "tubelib_pusher1.png", + }, + + after_place_node = function(pos, placer) + local meta = minetest.get_meta(pos) + meta:set_string("player_name", placer:get_player_name()) + local number = tubelib.add_node(pos, "tubelib:pusher") -- <<=== tubelib + meta:set_string("number", number) + meta:set_string("infotext", "Pusher "..number..": stopped") + end, + + on_rightclick = function(pos, node, clicker) + if not minetest.is_protected(pos, clicker:get_player_name()) then + switch_on(pos, node) + end + end, + + after_dig_node = function(pos) + tubelib.remove_node(pos) -- <<=== tubelib + end, + + on_timer = keep_running, + + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + groups = {choppy=2, cracky=2, crumbly=2}, + is_ground_content = false, + sounds = default.node_sound_wood_defaults(), +}) + + +minetest.register_node("tubelib:pusher_active", { + description = "Tubelib Pusher", + tiles = { + -- up, down, right, left, back, front + { + image = "tubelib_pusher.png", + backface_culling = false, + animation = { + type = "vertical_frames", + aspect_w = 32, + aspect_h = 32, + length = 2.0, + }, + }, + { + image = "tubelib_pusher.png", + backface_culling = false, + animation = { + type = "vertical_frames", + aspect_w = 32, + aspect_h = 32, + length = 2.0, + }, + }, + 'tubelib_outp.png', + 'tubelib_inp.png', + { + image = "tubelib_pusher.png^[transformR180]", + backface_culling = false, + animation = { + type = "vertical_frames", + aspect_w = 32, + aspect_h = 32, + length = 2.0, + }, + }, + { + image = "tubelib_pusher.png", + backface_culling = false, + animation = { + type = "vertical_frames", + aspect_w = 32, + aspect_h = 32, + length = 2.0, + }, + }, + }, + + on_rightclick = function(pos, node, clicker) + if not minetest.is_protected(pos, clicker:get_player_name()) then + switch_off(pos, node) + end + end, + + on_timer = keep_running, + + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + groups = {crumbly=0, not_in_creative_inventory=1}, + is_ground_content = false, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_craft({ + output = "tubelib:pusher 2", + recipe = { + {"group:wood", "wool:dark_green", "group:wood"}, + {"tubelib:tube1", "default:mese_crystal", "tubelib:tube1"}, + {"group:wood", "wool:dark_green", "group:wood"}, + }, +}) + +--------------------------------------------------------------- tubelib +tubelib.register_node("tubelib:pusher", {"tubelib:pusher_active"}, { + on_pull_item = nil, -- pusher has no inventory + on_push_item = nil, -- pusher has no inventory + on_unpull_item = nil, -- pusher has no inventory + + on_recv_message = function(pos, topic, payload) + local node = minetest.get_node(pos) + if topic == "on" then + return switch_on(pos, node) + elseif topic == "off" then + return switch_off(pos, node) + elseif topic == "state" then + local meta = minetest.get_meta(pos) + local running = meta:get_int("running") or tubelib.STATE_STOPPED + return tubelib.statestring(running) + else + return "not supported" + end + end, +}) +--------------------------------------------------------------- tubelib diff --git a/tubelib/sounds/button.ogg b/tubelib/sounds/button.ogg new file mode 100644 index 0000000000000000000000000000000000000000..3d6b28c5c80ea289c99f5ce09813b7e145a0dbb7 GIT binary patch literal 5825 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 0 then + return tubelib.StatesImg[state] + end + return tubelib.StatesImg[tubelib.FAULT] +end + + +-- +-- 'running' variable States +-- + +tubelib.STATE_RUNNING = 1 -- in normal operation +tubelib.STATE_STOPPED = 0 -- not operational +tubelib.STATE_STANDBY = -1 -- nothing to do +tubelib.STATE_BLOCKED = -2 -- pushing node is blocked due to a full inventory +tubelib.STATE_FAULT = -3 -- any fault state, which has to be fixed by the player + +-- Return machine state based on the running counter +function tubelib.state(running) + if running > 0 then + return tubelib.RUNNING + elseif running == 0 then + return tubelib.STOPPED + elseif running == -1 then + return tubelib.STANDBY + elseif running == -2 then + return tubelib.BLOCKED + else + return tubelib.FAULT + end +end + +-- Return state string based on the running counter +function tubelib.statestring(running) + if running > 0 then + return "running" + elseif running == 0 then + return "stopped" + elseif running == -1 then + return "standby" + elseif running == -2 then + return "blocked" + else + return "fault" + end +end \ No newline at end of file diff --git a/tubelib/textures/tubelib_black_hole.png b/tubelib/textures/tubelib_black_hole.png new file mode 100644 index 0000000000000000000000000000000000000000..54dea1620875888c49f9e0d15b19148326c84a71 GIT binary patch literal 821 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�MQJM)q|_)Z0jTt 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 literal 0 HcmV?d00001 diff --git a/tubelib/textures/tubelib_distributor_blue.png b/tubelib/textures/tubelib_distributor_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..6ace332e2deef42b8509d7efe87a7fb650e7d85e GIT binary patch literal 2075 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 literal 0 HcmV?d00001 diff --git a/tubelib/textures/tubelib_green.png b/tubelib/textures/tubelib_green.png new file mode 100644 index 0000000000000000000000000000000000000000..9562baf4f1dc27fcd3df18e535288b5a6a5abf0f GIT binary patch literal 144 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPtCz}uxht!WlEkGezPZ!4!i_^(dcBg!v-^g^}h=Zbp iX~LC;KxVdXMh4!iOy0$s`@?|>89ZJ6T-G@yGywoiS|v3A literal 0 HcmV?d00001 diff --git a/tubelib/textures/tubelib_gui_arrow.png b/tubelib/textures/tubelib_gui_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..15ce42ebe2d65db4ccd2a13cb9a69980adb074f4 GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o|n5N2eUHAey{$X?><>&pI+i;-JaHTtjDPoPk;r;B4q#NoG-90h?!vK$R_Gw4{! zlf;so$eLJkq51FU8&89{n(j-k{gBbR_4~~zh50%UcQ&uPf}Q*~Xgm|3WL4^vR}8YZdV>Rc?1mfXD8WiCdBec1rCj=|H_&t;ucLK6Uc C%|`S9 literal 0 HcmV?d00001 diff --git a/tubelib/textures/tubelib_hole.png b/tubelib/textures/tubelib_hole.png new file mode 100644 index 0000000000000000000000000000000000000000..2d54c069e9fd42f3f81624417b18afb38ad0e97e GIT binary patch literal 357 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7lwTdl?+Z(-Rd%dBAf*t zk;M!Q+`=Ht$S`Y;1W=H@#M9T6{UIl-059vO2RF-rLXst}5hc#~xw)x%B@E6*sfi`2 zDGKG8B^e6tp1uL$jeO!jMQ1%-977@wznyB!cgTRJwfE{-?X&Z|4G)M)JP3GuVe!s2 zGZVe0Fq*E{<5==5dX-7tSO4Vp6NPj37H3HIT>cOe%B47^ymIb*B`3|L+kbC=U3-yz zJCne~M|)?dN*b3kt?0X$qoZKuws~X2iyzZ(9!`G{ee?fO ynHLx8)}>n)N!R7@UHM;pHh0Ie zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00HDlL_t(o!|j&8Zqz^!#(!R4 zu<$AYMDF@4c?lXs9cU=v6(R&R4KI@vDL{D>Y9wR|X!ejO&|%BoouN3{Iw2I#nL{9v zY3$vdZ|BeMH#=}G*K#fYyJTYu=ND%hLSV6240HXs|9bCPuh+j^e{uTqN*iv>0q^}_ ze11F!7{<%x5@0ayy&u-MaaYM~OrhWW>62$WrS|;d%%nG(fj;V8#flqsVD)7+$pI_Q zS(HKulbo>NOb%Es(^Q;^1yeF$#W@QLrewg1bJl34hy~}Y(M%Bw&i&2k&3E8WMgLFK zfti)h+qK>D8t$zQY@g>Yuc7rGm@-gR756^8Auncw8j=tKcTi$0GpMs94$MvtJpSu#JKQ#^W2OhVH{>bfJwh;$p{(g}$K0;&oR zUk$juu;B9TB`1$hs2@Bh?>ipg`%nC5vB}tM3$qs%^c#f`@ZJw^{Wi_|x!xg*aeyDj WgdHdVxXpq90000Le$Rfk6DM(g%uJb?%oL3TVu7G)p~8q35U2}OBt-cSDpZ8n zBNp8wl^s<_LI{M!f<>n++Nw1_7Kl}m=(MP$G?@mElh{d|XTRU~uz1d!w4Ih}dSuDZ z_gsI^dFRLX=%|~|KP~C(h~0O0xN!bHy!JZNgMIQep_opnwL28E86dc8t2j=LaA%vM z$Z4FvfK&581OTNplff><^n_ZwO>J?B?08Hx9wV0FWE!*3YT_?O3NsxwpMG+mE)f0t-7s?NpaB*QV*bX=X)SGs6%@$5Q|7gXok@lgN# z!%s!oHIx{NFeFJLEZat*u$nC#*CU@Ck!LC1QkQr%L2@Hz_+MHG29zuzLuauC6?G>F08e)~<9I_H>Kk&)o6s0suDYVuwzhhZeS%_MFK(Dn% zX$>gWuUw{xEZk37gyRI=>a1hi7QwkLw(Fr37^N#9JqNP1z5}cj3Q&~bTB*w5-ShyK zQYZyhp;=g8Bt4$eTxy`Tw&|>MBqD_$ls1u0MOdN}Ey&faGw*(atY;FepG>#6~GRSD|$qi4!Oa z#I^y2F^1uA$h}G!hA1Ux(o`0P7sn`NQG_AdSy({Zb?jO|o~LAST2iZk7}(t0yk`eW z=hf+lWEznipWt`aX>`}njXD~Em)>a;o%gqfN^Vc!+Doj!w*Q0xR6P;%%qv5-x$1|E2FP0Yt6eS;=g4|0K zf*_d3@s1Z(v&Ce8k2H*sC`Px=U0`|bKI+|7!o35;2vV4`Z{-fiN6ClrL>Pu(sOm|K zfYO}%!h_h27A8*6$Gf+^kWY@daZ@9oeS+D+ z5gL)I3;g9y>26_A`gELpJh@vGPFpxl^EtOj)dl^29~9Uqn7#HK4=)*tuz?Xl&X~Si z4V*RhVb7;suq=XOTZj>il*qH!p5wvb1lKgtj_cuMDURdJD^(CtL!{M+RwWkcZxw*+;Fre9NR(gP~tt|$F z0TRYl6c8cLB3?OIr}vp2>^zH|#Sy*UWAyudzSb=xVCGJUF${kBL;RY9wlve-BVM;O z%2G7jb^Jz+@n1FJ=mdAU#gc9D`mb+SdZ$rC`z|NrDOr}%5W%*cstCV*?GicU)`e7UFP^W0IG$2WXE^N^$<^=j_y5)~S<2|GH`pI+ zlYRPoF|G+eLLZokSF|LeL+w8!8K>HSy>WG}x^cI!TD8QvjOl=ZFpt0PvTV$c~S&noY9f z5vIr)?G3RCgYWsEEyNh=ON$_&8x8U-MMO|auq+#-BqhY~KVm(0efwes>;M1&07*qo IM6N<$f>4~ literal 0 HcmV?d00001 diff --git a/tubelib/textures/tubelib_inv_button_error.png b/tubelib/textures/tubelib_inv_button_error.png new file mode 100644 index 0000000000000000000000000000000000000000..eaea627143af6d43d1cbabc08fd8098722abdf11 GIT binary patch literal 898 zcmV-|1AY97P)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00QbsL_t(o!=+cdN+dxPJ@x3e z!I@AnF;M?t*){ebOvS}y_d5)He1&Gakzk;hC<=m#FdG;t;<5$`f=tvh-Sz0&pr>l4 zopJ5kdtjiZy6V>H`|3KZ)9E;CErby8==FMtq6nOGaLzG|EX%?(#u(}%&vQsA!59la z0Fd73wH)fGCPa4jU%r-@>o+cJe%jF$P6ZpeTy4H%Sr*At0p$=N#>JyCmQb{Is+L5~Ku# z0P>u)?bq&Z7<1&{dDBzqMNw$AtX9rkZ9Q>b~18#4D z+1c7Alv1$Pf@`f|t)E&hM`!^I*Q(!-Sf;~PFua#mzpw()T zJ;1tMU~>zsS^W%jVyDw__z!rg_EvP(S(Bz|>47v&5k(P%5JA%kAz-ZyI?fmatu@|L zQgIwZ2oVnQdc)gMN${;S|I1Y=Ylw+0gaB~?Jt>bbk%d(1cPSX^B Y0WDEdd+D_g2><{907*qoM6N<$f?6nq$N&HU literal 0 HcmV?d00001 diff --git a/tubelib/textures/tubelib_inv_button_off.png b/tubelib/textures/tubelib_inv_button_off.png new file mode 100644 index 0000000000000000000000000000000000000000..48cea383714fd0fc156a0976aa14ad61ec9111a2 GIT binary patch literal 1669 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 N002ovPDHLkV1h>e_euZ& literal 0 HcmV?d00001 diff --git a/tubelib/textures/tubelib_inv_button_standby.png b/tubelib/textures/tubelib_inv_button_standby.png new file mode 100644 index 0000000000000000000000000000000000000000..3377d5a81efbb113e78580af59c780a6f6e30342 GIT binary patch literal 1348 zcmV-K1-tr*P)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00gW_L_t(o!?l-fh*V`1$A8bu z+_^ftBD22rBI%}5i*Mxz!!)BnqAa0=N-4htB9hRz`s9ZQDcHhKAyyC;fta8Wl#2NR zk?26WWrVAuy@;r_?ap>*?%UIcyZ4#7Go!oPP6q~t`<#28bIwlYV-Z%jN9FzV9QY#Phtw0j+h$pyN0I{ zH2XvwV=%_tHlId-!89L?s0#ssh}pho0kfyNqhg`&+7K{Qb0Cgmj4@4M8?UUszl(*l zI!DzjI0}Y_@O_^sijYAN5JeFa6*b0!C|9GA$R)tkuIpxif&s+%9q2uNiQ?oeX#L3W z))VuX*_j6*jAFL#@8jUwE~J!6X#&J?Y*Qc+34q2a2Yn&NU|>xw2j7jF%N_q)Y{?S`J` z-O+(lR|hzCbpU`h3#QZEm7x5&PfjzpIEmR)CuQ{OQ<3SC#xQWPg6q23GHjd)?j)aW zd648mjSr)m&fv*C&%P~9~nMc zUBLH!9LK3)Kx<7b4AOu!g17}QZ+Q3~R&{p)u&IvO!q{;6PjAdo5Te6kPB)HT=ihvs z;$$cD!u%aaDf|oA;gL#;`vjzQ{OG-woeCcA4Vj99jvst(wbVC19``a%A%( zAsQL@qHhyb!K_( z=;+9%APr5rTsn?pm9^F_H{*J8sb5-CqG{Br-<-?kGXDZqKHn0x>JmNx0000e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00V4EL_t(o!|j&8jvPf0#(yTYB0L-tl3NI35*~n;Kq5y@L4tRH%*k2ELSh!_0N*g{o$e}v zp6;D7h#hnx*V1ZwW~;vX^Ho(h+^m~*v;OZ(jtPAG-8Yu@+h4Z;)OAf&Rr%?hqiLF~ z^Xm7yuGwrhdH>+;2U)h5;^mXCp8&8vTLVy46#$#f1|S=E&W-+Wng-__RaK4lL(Kn_ zfyMVNvw z%z>2lw|@K*5kX2pMKKK+Guo>iv-uo%dV+c5LO@h{zzD9vFzu5xi;uQxK?+0;362g6n1X4>J?cQ>*Lt=@1Ok|kMtul$ zK44}DM*Bw_YvX0sUqiU_6w0=Uy9E4PS(VQ5K5I%@HmehGIH1x?dn zB52Bh6oe2^gXPHy?$&YyJlsRfmTAb}wbP6{iGsSWGhpI1^Ep^*psH99&!Bmo z%cYcCVUdb1AR-xeG6gvzuc#liq3FnH>J~GLR3sX_jf!wG1{-(Yvu^5Wgctbo;Wb=-m6 zuTP87R8u@EbHrp+d_@uEetzd8oO4_bf&kzQ*8O30{^)%A9FS7_8K9ZpA+MMsBD}b4 zD9bYIU0hs@sI2Q6fb&P^(+;ClEO*U7l;FW64wg(!I7~bBa9RJJ^*(w0>A#-1lji^e z8bCuV#-M%lLyi?r@7`j+52Jg*wH(NEpf}k0j$OOY9gw@B?~doswzRu0>m6H@DR=|J z@0DHaDFpn!uLVuLZv+hIUW4M$=ht>1^=o))nD?j$nIDFb1|1EW)$IkdLYNJ%U)Q2w zwOp}2TeJA!b9_*CJ5Sqoc<<3J8rMz<1kk=H-}@}R)ms1n02y>e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00O;9L_t(o!|j%_ZW~7shQB!; zO^FK;iX$EnB#oLpNCLTaQsfET`vubY0bINH69jG(AbAJ@Dbgr~5Fp0@LK2^kB6nt7 z?Cp`XfQSIkRkY1+v2*{-|Ia_S@UR}%!}`B3x$nYHKmX|Yy!dMYKwZ~VRn_ky1e&Jl zW9Db`{(SM(lmEmh_Q~?i4{vrpTvZhS=jZ1DJ$MM=PRyVTOn!NZnK7P>n14QJR647b zQI1Qb5dOSgaQb-0A74J(n}PDa1TyVkT)sv`kWw%)+!SX-`*z7_JSNPJ@aWtwZ<$}d z;@8i<+lzsFB?uu<*ENEps)(h69Kqc&b=*3VMrmuCwvRhFfvm50YKaIacub&Cm336y z9l>e;X?NldP9Qg%djfQKLj>GY$(=)x_j@I!6e9)Wd_gIm1bi{apCws+(fOG?KUMmz!^J37V!sO6g`m2da{2&k498BK&*P zP?jYjgyAHp>l$$fF*G`A-b>-`X*9d1IS}Ed{(Ja2fPg8Ore;*@s*k>*-eC6W39FTU zggMXwuH%|zyXqa#yP+u+wIo8_psJt zT~}N#7c9#HV+@92z;PUiF#-TSKR*#;#4rrF-|zVR`~(2Z^NgG`uGcG!F=(w}Sr+{I z^$R&?gb*-I6O1vi*5dp78`tX69JGw{WG52T8kJXy!XgC%PB($@ZKY(1Zyo?Yfwtbdct2yk!L9- z=*Q!Mecus60IwJ$T5Ix*=x_t?Jz|V-&PniTnh;~eIF7K^{x5i~RrXrfRmz}32+dlH zoU?3Vt;KO1aLys;ED5kg>$>7}I>~S3i1!}ry23e!VHmLQyKq1$B|P)qBZPpQGt|EC zjc}2{B;GI#h%rKIEhS(XSel%(oR~?clq4~hlq6UKynnpfCTs6KT7}r zA0Hnmr9deK?>&}f!8A>xZ6e~F14&EnIOnkMyClf#I1cd(B2a4;jy)a^sBPQYG)*u1 z1R#ti+gVeRkWeb6Udq;&ueB!dAII^c1OQl;<%z)ge13U}oBr$SNy@c65re<)@gAJ- zIOm|><-*O$)P7Tv@!jdP)yx?v?Mbqf><#E&gr&Co!*HKkD@rM1XyZ8I&!0cfZph4-HDB&qF@sa8Op@xc*2)ag&krmg zrOlauywj8*8x8|9DS7~1Eu|!_6aa={ki_|n_ujr~Kt$9S^PC5Ie z-lddQN_jC0-pO9V-+Mi|LS1tlWBK}$zON%<*4pPx*w>yiAt~wST=R|yQAsID-{>bP zx@K>|O!Dz~JlnA`Mp|n>+4PeTdBJ;(QRGIwhY$qfeqJB}Sw3>eS_?f*)5~VA?afC+2%&V=~8aNUT~bK0ZF6*+^I?_WNNNUPf$Vj94m3+jl#5IwD6-QMSCO z1b#=T+wIoQ=kp6eNV=XZ)H6>xj^oRB1lj&R6ZA^z*VBm9&(BXA$5C2mYYoFN$YMgv z-}@1r=&?-f8U6q7vhC$M&oeYTAK6)Jl@Ah{3!4s^-Ak~4kLYn-e{v>8^2#>_I}_{6 zubqCD1MG__Eu|TYXL?%JOA>)bZY1`el+tpp~dstMvGLxAE$+>E& zs?T@z-Bag$=Nw&i{pIH+ogT9D;WlT_+=tg*VY0tRo+cENF|~GwVmbu`ce#h-)Cjk4 zP!u_hGiPyX9*6*-lxE!Dp_m*~YqzP*FOVILh(;sCG8|80=2}hs#V*lsNUa^9^JGGC z@rS(2LuBccJd3b31l=yqBhT{2-ZH`2v)J=>j)nuK%TMs<=|$$(A7Fg22O=Z~yG(kI zbM3k&SX#pE)CsegX!YB?K3D}u;WQkAwu`DM((_OAm+%4dBt$EO&CN|VHa75D%OD1; z*ElXAzDPbgQ$1ZCeCuU2NAwDKJV`M0!SKY5ftgQYb)Cl53@^1Mh_c zSW2N3ScPV8WuEkCLUW;k)|SH?!wV#5p2D&$^z4v|Xhx>BCYvS|hJxs}{|fcd`^Rw0 zvOp=c()f)Quifa<_}Wj}}==FMB3If6~B$z#; z!GP8Eb@sQmuzNj%AYgxMi}m$&!Z2ht2pIqFryzn-fKoW^4jY%s^S*U{0XrTJ$qs+R zV+&JseGUMv6^NjfqTB0n`MJxSW?g;pYLzyn6adM=ki+d?@NiIoI){x?c&%{q!2-F%LjWhT0 z=I9LBrDvchupQT}MEGboFT;eC^F^pqaOH(7caUFx?lMu(7eh z-(LAW53U`e0lb}Se0}*Q@nnn`gP4=eaz_d-KX>_41$lyj`sJlY>%2($4h31izyot!q(Q-sZ-GF^=2uUeU6!_FiCM-kM4zabe^RQ z2Op9iO=+GxS8fzgl>Oj@|6t^1^Di81LwhS>;dJ-d`G;3den91N4CXUfZJ2$y@T{B&I5`{)Y%Dm0G;b%!f5CpTs%a0Nf z^6??pu509r&oJFT#73m5f+sI@$hNn@7?f6b5q`W9KFM}R1b{Tnv2A-63R9i;RRuN* zrf zfDuzVkQ+n<+pggSOLQ(ih~@j({!)imu9qX(8vS-A7{CZ-){3vbc$F{=84L#1s6FYB z>+9?E`+b_tW`zT6ZEex-_mMEJqJRi_7V*aZ3L9V8fbAEtvp8a7<0&>bH~D6_jDVRr zA;!@E<&W`e4%*U8b`E*l(kM&OY}fG{HAa8cgu`Rp#TE;;#oNEWRpCyfhW1^KM-#Fv zr6GcCJCz8(d+9tn4`>*oQ+!p!x5L-NlIGSJ*o6NT=9h?x=nm$GZHR}sd=2Xl~uwtk+ zysFmkh38p86z64S{HKqT9-+k`^%nO2JKH!73sg#;ERx45g)z4gNkt@LFoxNHDO+5H zYei8M6ouS{+cg`fFywK{ne(gs`^_yH-9>KQ9HFki{JcmyBG0Bcwu|f4Nv1Xk9PjqA z9S47Ykt|E7brxrXLZh{2ymJ!($F;E?mpseym%5|}L!?%NI6_Q;m>gpnCaF*}1%7+} z&bwiJ?nk`7b3aj(lS;t2e+%7c;5_myf12En6$HfL0sH+MOqZYFkMCF@LL5&hCR3bt zi{$?A^Y{POFj>m*y?5B_-yr+^56Zitt1(%G8;2;JfBM}p+S{Xj;rtzULqV`T?z$V+ z{Q!SHAUZx^b90j~J^nqWdjndl%lLLt?M=rKMXV6?C)^E{h0>aMcmNvgRtudZM3V^s z&6PEx{e1xZg$1&sL#$?#>}ZH7a)!GDtis@XK4=RuhWf%h2wM_n3t9+NGEIr0QlUb_!6VoyrSoX;jCYmkplPt{>&i8s<7(#MIq8~ z4G+?$E;%KNIF}LCB8|JYom)~?+;vcJ?AvP1$y%$ekN;^YhlqV^U+Sg<01!wgn-6fR zoj5K#NnRyEi`AEHBO6ye+%;LLiCn)Q7sjjqKaJ9D7_4l{Q3RWYp zaM$yK`WqiVtlH_A=*D-Ypwn4t%kG9|FqhqROzpWeh_mQWXz|l7)NiJz3#Cpc%Zr7u z5A-PZgDzBiPBerTjqI|UR9jdu9_q2s-Hlc|-(W&%Dlp~<3DX}codd7J-g#_N@mTOG zbK)=`Qj%_M(=`x@_gI+jM%NrDYc9#*NcO)W-rG&;_IPMTXI2l}g8KCzRlw2BdGjqO z74gUI%>Cu?^{rhBcuKJR2|~YhnvL~Lai!zM2hi64g!;;E8SbO1!v{#_P+n;U!UjY)QxN1 zc4NFW&Sx#=R3 z702Ka3KD^_bRfl-f-4n?82{Zyaz23xkNko04_VObfk*AEp|tS))tl&P1=v6%x0NyE zUqz8%98#5F-mku%%G_Zexj;eGTYZxdNG-7rp*OqKb)_(=Cc0X3z#x*HWdY_QepG9=z>(Zcj z>?4ua%sf;M7j~c9&?kiLdiU|fu`I9IIA4EtV;iFl<`2bO#TZ(|^s%u}N|3l0*GVmZ#zlN^@}ymH literal 0 HcmV?d00001 diff --git a/tubelib/textures/tubelib_pusher1.png b/tubelib/textures/tubelib_pusher1.png new file mode 100644 index 0000000000000000000000000000000000000000..296260a36ad4195fe79b2d5f6795461452e9e422 GIT binary patch literal 444 zcmV;t0YmmebYJLsNP%00001 zVoOIv0Eh)0NB{r;32;bRa{vGf6951U69E94oEQKA00(qQO+^Rc2ptp&I*%^TQvd(~ z5=lfsR4C6?kTHtFKoo|5A)Od_S6Ffb5g~=LhX{g=l~Y*Q*hCu(3ni`9Sj0j^6p1I; zJwWgVi`%MMcH6PA*taY*KHHC%@Bb!P-plJEhh|Xzwm|1d4VC;)3sQq+ z!QkD3WdVI;hr7^6Z1+Uv9}Bj7=p9kzA>ARp6Zvj7z5hwcKMCn{yS`9>}+}2Z&ly8nw`P`X3F0=9w>C mY4eO#D8p7E!a4)z2e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00S{eL_t(o!|j#LjvGY~$A9%P zj_p}C5XB=QPQDTei8~LF+bYk1#2avmkT`PYMIcuYc@-Z(2+blsHh9;&+Ud%nKWvjd zaK|N$X1b=j|5f$>cQ>5uWGDN-oBa6thp2;9)$*Gro;rQ+I*@?Xb|@~KE3{i-#+;~C$QOU z7>0p=uI`x69rb(WIGuNZVjf6n!8U{dS4;#7aFh;2ukST~rh=BlVmb+!Z1mc3K@2QBrR=kR1 z`QbTUIQ3cKStVC(f#P6bR=QBA5F-23a>YdcE_x9Wh}5(I5C}gP;d)i*M^D~EJ4K@` z?2;!_DhLH*zvzJ`R7$mgh!!!DJ0l4aBuS){sR*QPORxJhl|V5;v}9kBsLxR{vQOk@ zw_|&CgPWlyEY9XUT0F|}kq8$g1nq(dAyR5*Les!v+2;;uuApu=jC~SGz>6Rcx}bN4 zbsg@8sNkKqPDK%L6>FuTo)Jw0NfL4|B(Hqk?}20wDoKth0A_P%Huod{G);|fA{}kp zh*>^RM#ptAQx|G5&=be6V`F?{%cs&U(U$1?r#Pmhxcu~sc0+mJ^Jcr{O~L;6E%#r255=qwFcsk9#YGDq$FbdB<2bfk?QmSQ#00000NkvXXu0mjf$?&P6 literal 0 HcmV?d00001 diff --git a/tubelib/textures/tubelib_wlanchip.png b/tubelib/textures/tubelib_wlanchip.png new file mode 100644 index 0000000000000000000000000000000000000000..5111a1ae39beef6ac396331bc2d5b28a548b2910 GIT binary patch literal 6248 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 other_pos.y then return 5 else return 4 end +end + +------------------------------------------------------------------------------- +-- API functions +------------------------------------------------------------------------------- + +-- Determine neighbor position and own facedir to the node. +-- based on own pos and contact side 'B' - 'U'. +-- Function considers also tube connections. +function tubelib.get_neighbor_pos(pos, side) + local facedir = SideToFacedir[side] + if facedir < 4 then + local node = minetest_get_node(pos) + facedir = (facedir + node.param2) % 4 + end + local npos = vector_add(pos, Facedir2Dir[facedir]) + local node = minetest_get_node(npos) + if node and string_find(node.name, "tubelib:tube") then + npos, facedir = remote_node(pos, npos) + end + return npos, facedir +end + +-- use Voxel Manipulator to read the node +function tubelib.read_node_with_vm(pos) + local vm = VoxelManip() + local MinEdge, MaxEdge = vm:read_from_map(pos, pos) + local data = vm:get_data() + local param2_data = vm:get_param2_data() + local area = VoxelArea:new({MinEdge = MinEdge, MaxEdge = MaxEdge}) + return { + name=minetest.get_name_from_content_id(data[area:index(pos.x, pos.y, pos.z)]), + param2 = param2_data[area:index(pos.x, pos.y, pos.z)] + } +end + +local read_node_with_vm = tubelib.read_node_with_vm + +------------------------------------------------------------------------------- +-- Tube placement +------------------------------------------------------------------------------- + + +-- Return neighbor tubes orientation relative to the given pos. +local function get_neighbor_tubes_orientation(pos) + local orientation = 0 + local Nodes = { + minetest.get_node({x=pos.x , y=pos.y , z=pos.z+1}), + minetest.get_node({x=pos.x+1, y=pos.y , z=pos.z }), + minetest.get_node({x=pos.x , y=pos.y , z=pos.z-1}), + minetest.get_node({x=pos.x-1, y=pos.y , z=pos.z }), + minetest.get_node({x=pos.x , y=pos.y-1, z=pos.z }), + minetest.get_node({x=pos.x , y=pos.y+1, z=pos.z }), + } + for side,node in ipairs(Nodes) do + if KnownNodes[node.name] then -- registered node? + orientation = orientation * 6 + side + if orientation > 6 then + break + end + end + end + return orientation +end + +local function determine_tube_node(pos) + local node = minetest.get_node(pos) + if not string.find(node.name, "tubelib:tube") then + return nil + end + local orientation = get_neighbor_tubes_orientation(pos) + if orientation > 6 then + node.name = "tubelib:tube"..TubeTypes[orientation] + node.param2 = TubeFacedir[orientation] + return node + elseif orientation > 0 then + orientation = orientation * 6 + (((node.param2 + 2) % 4) + 1) + node.name = "tubelib:tube"..TubeTypes[orientation] + node.param2 = TubeFacedir[orientation] + return node + end + return nil +end + + +local function update_tube(pos) + local node = determine_tube_node(pos) + if node then + minetest.swap_node(pos, node) + end +end + +local OffsTable = { + {2,0}, -- tube1 + {4,5}, -- tube2 + {2,3}, -- tube3 + {2,4}, -- tube4 + {2,5}, -- tube5 +} + + +-- The tube on 'pos1' has two ends and thus two neighbor position. +-- One is the given 'pos', the other position is returned. +-- Param mpos: my node position +-- Param opos: the other tube position +-- Param node: the tube node +local function nodetype_to_pos(mpos, opos, node) + local idx = string.byte(node.name, -1) - 48 + local facedir1 = OffsTable[idx][1] + local facedir2 = OffsTable[idx][2] + if facedir1 < 4 then + facedir1 = (facedir1 + node.param2) % 4 + end + if facedir2 < 4 then + facedir2 = (facedir2 + node.param2) % 4 + end + local dir1 = Facedir2Dir[facedir1] + local dir2 = Facedir2Dir[facedir2] + local p1 = vector.add(opos, dir1) + local p2 = vector.add(opos, dir2) + + if mpos == nil then + return p1, p2 + elseif vector.equals(p1, mpos) then + return p2 + else + return p1 + end +end + + +-- Walk to the other end of the tube line, starting at 'pos1'. +-- Returns: cnt - number of tube nodes +-- pos - the peer tube node +-- pos1 - the destination position, connected with 'pos' +local function walk_to_peer(pos, pos1) + local node = minetest.get_node(pos1) + local pos2 + local cnt = 0 + while string.find(node.name, "tubelib:tube") and cnt < MAX_TUBE_LENGTH do + pos2 = nodetype_to_pos(pos, pos1, node) + pos, pos1 = pos1, pos2 + cnt = cnt + 1 + node = minetest.get_node_or_nil(pos1) or read_node_with_vm(pos1) + end + return cnt, pos, pos1 +end + +-- Update head tubes with peer pos and facedir of the other end +-- Needed for StackItem exchange. +local function update_head_tubes(pos) + local node = minetest.get_node(pos) + if string.find(node.name, "tubelib:tube") then + local pos1, pos2 = nodetype_to_pos(nil, pos, node) + local cnt1, peer1, dest1 = walk_to_peer(pos, pos1) + local cnt2, peer2, dest2 = walk_to_peer(pos, pos2) + + if cnt1 == 0 and cnt2 == 0 then -- first tube node placed? + -- we have to store both dest positions + minetest.get_meta(peer1):set_string("dest_pos", minetest.pos_to_string(dest1)) + minetest.get_meta(peer1):set_int("facedir", dir_to_facedir(peer1, dest1)) + minetest.get_meta(peer1):set_string("dest_pos2", minetest.pos_to_string(dest2)) + minetest.get_meta(peer1):set_int("facedir2", dir_to_facedir(peer2, dest2)) + else + minetest.get_meta(peer1):set_string("dest_pos", minetest.pos_to_string(dest2)) + minetest.get_meta(peer1):set_int("facedir", dir_to_facedir(peer2, dest2)) + minetest.get_meta(peer2):set_string("dest_pos", minetest.pos_to_string(dest1)) + minetest.get_meta(peer2):set_int("facedir", dir_to_facedir(peer1, dest1)) + end + + -- delete meta data from old head nodes + if cnt1 > 1 then + minetest.get_meta(pos1):from_table(nil) + end + if cnt2 > 1 then + minetest.get_meta(pos2):from_table(nil) + end + return cnt1 + cnt2 + end + return 0 +end + +-- Update all tubes arround the currently placed tube +local function update_surrounding_tubes(pos) + update_tube({x=pos.x , y=pos.y , z=pos.z+1}) + update_tube({x=pos.x+1, y=pos.y , z=pos.z }) + update_tube({x=pos.x , y=pos.y , z=pos.z-1}) + update_tube({x=pos.x-1, y=pos.y , z=pos.z }) + update_tube({x=pos.x , y=pos.y-1, z=pos.z }) + update_tube({x=pos.x , y=pos.y+1, z=pos.z }) + update_tube(pos) + return update_head_tubes(pos) < MAX_TUBE_LENGTH +end + + +-- Update tubes after a tube node is removed +local function after_tube_removed(pos, node) + local pos1, pos2 = nodetype_to_pos(nil, pos, node) + update_head_tubes(pos1) + update_head_tubes(pos2) +end + +-- API function, called from all nodes, which shall be connected to tubes +function tubelib.update_tubes(pos) + update_tube( {x=pos.x , y=pos.y , z=pos.z+1}) + update_head_tubes({x=pos.x , y=pos.y , z=pos.z+1}) + update_tube( {x=pos.x+1, y=pos.y , z=pos.z }) + update_head_tubes({x=pos.x+1, y=pos.y , z=pos.z }) + update_tube( {x=pos.x , y=pos.y , z=pos.z-1}) + update_head_tubes({x=pos.x , y=pos.y , z=pos.z-1}) + update_tube( {x=pos.x-1, y=pos.y , z=pos.z }) + update_head_tubes({x=pos.x-1, y=pos.y , z=pos.z }) + update_tube( {x=pos.x , y=pos.y-1, z=pos.z }) + update_head_tubes({x=pos.x , y=pos.y-1, z=pos.z }) + update_tube( {x=pos.x , y=pos.y+1, z=pos.z }) + update_head_tubes({x=pos.x , y=pos.y+1, z=pos.z }) +end + +local DefNodeboxes = { + -- x1 y1 z1 x2 y2 z2 + { -1/4, -1/4, -1/4, 1/4, 1/4, 1/4 }, + { -1/4, -1/4, -1/4, 1/4, 1/4, 1/4 }, +} + +local DirCorrections = { + {3, 6}, {2, 5}, -- standard tubes + {3, 1}, {3, 2}, {3, 5}, -- knees from front to.. +} + +local SelectBoxes = { + { -1/4, -1/4, -1/2, 1/4, 1/4, 1/2 }, + { -1/4, -1/2, -1/4, 1/4, 1/2, 1/4 }, + { -1/2, -1/4, -1/2, 1/4, 1/4, 1/4 }, + { -1/4, -1/2, -1/2, 1/4, 1/4, 1/4 }, + { -1/4, -1/4, -1/2, 1/4, 1/2, 1/4 }, +} + +local TilesData = { + -- up, down, right, left, back, front + { + "tubelib_tube.png^[transformR90", + "tubelib_tube.png^[transformR90", + "tubelib_tube.png", + "tubelib_tube.png", + "tubelib_hole.png", + "tubelib_hole.png", + }, + { + "tubelib_hole.png", + "tubelib_hole.png", + "tubelib_tube.png^[transformR90", + "tubelib_tube.png^[transformR90", + "tubelib_tube.png^[transformR90", + "tubelib_tube.png^[transformR90", + }, + { + "tubelib_knee.png^[transformR270", + "tubelib_knee.png^[transformR180", + "tubelib_knee2.png^[transformR270", + "tubelib_hole2.png^[transformR90", + "tubelib_knee2.png^[transformR90", + "tubelib_hole2.png^[transformR270", + }, + { + "tubelib_knee2.png", + "tubelib_hole2.png^[transformR180", + "tubelib_knee.png^[transformR270", + "tubelib_knee.png", + "tubelib_knee2.png", + "tubelib_hole2.png", + }, + { + "tubelib_hole2.png", + "tubelib_knee2.png^[transformR180", + "tubelib_knee.png^[transformR180", + "tubelib_knee.png^[transformR90", + "tubelib_knee2.png^[transformR180", + "tubelib_hole2.png^[transformR180", + }, +} + + +for idx,pos in ipairs(DirCorrections) do + node_box_data = table.copy(DefNodeboxes) + node_box_data[1][pos[1]] = node_box_data[1][pos[1]] * 2 + node_box_data[2][pos[2]] = node_box_data[2][pos[2]] * 2 + + tiles_data = TilesData[idx] + + if idx == 1 then + hidden = 0 + else + hidden = 1 + end + minetest.register_node("tubelib:tube"..idx, { + description = "Tubelib Tube", + tiles = tiles_data, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = node_box_data, + }, + selection_box = { + type = "fixed", + fixed = SelectBoxes[idx], + }, + collision_box = { + type = "fixed", + fixed = SelectBoxes[idx], + }, + + after_place_node = function(pos, placer, itemstack, pointed_thing) + if update_surrounding_tubes(pos) == false then + after_tube_removed(pos, minetest.get_node(pos)) + minetest.remove_node(pos) + return itemstack + end + end, + + after_dig_node = function(pos, oldnode, oldmetadata, digger) + after_tube_removed(pos, oldnode) + end, + paramtype2 = "facedir", + paramtype = "light", + sunlight_propagates = true, + is_ground_content = false, + groups = {choppy=2, cracky=3, stone=1, not_in_creative_inventory=hidden}, + drop = "tubelib:tube1", + sounds = default.node_sound_wood_defaults(), + }) +end + + +minetest.register_craft({ + output = "tubelib:tube1 4", + recipe = { + {"default:steel_ingot", "", "group:wood"}, + {"", "group:wood", ""}, + {"group:wood", "", "default:tin_ingot"}, + }, +}) diff --git a/tubelib_addons1/README.md b/tubelib_addons1/README.md new file mode 100644 index 0000000..1d5a224 --- /dev/null +++ b/tubelib_addons1/README.md @@ -0,0 +1,43 @@ +# Tubelib Extension with Mining, Farming, and Crafting Nodes \[tubelib_addons1\] + +This Mod provides Quarry, Harvester, Grinder, Autocrafter, Fermenter, Funnel, and Reformer nodes and thus allows +the automated mining, farming, and crafting. + +## Quarry +Quarry machine to dig stones and other ground nodes. +The Quarry digs a hole 5x5 nodes large and up to 25 nodes deep. +It starts at the given level (0 is same level as the quarry node, +1 is one level higher and so on)) and goes down to the given depth number. +It digs one node every 4 seconds. It requires one item Bio Fuel per 16 nodes. + +## Harvester +Harvester machine to chop wood and leaves. +The machine is able to harvest an square area of up to 41x41 nodes (radius = 20). +The base node has to be placed in the middle of the harvesting area. +The Harvester processes one node every 4 seconds. +It requires one item Bio Fuel per 20 nodes. + +## Grinder +The Grinder grinds cobble stone to gravel and is needed for the Gravelsieve Mod, to extract further ores from gravel. + +## Autocrafter +Derived from the outstanding Pipeworks Mod, this block allows the automated crafting of items based on +configured recipes. + +## Fermenter +The Fermenter is able to obtain Bio Gas from any leaves (provided by the Harvester) +The Fermenter obtains one Bio Gas item every 4 seconds from 2 leave items. + +## Reformer +The Reformer is able to generate one Bio Fuel item every 6 seconds from 4 Bio Gas items. +This Bio Fuel is needed by Quarry and Harvester. + +## Funnel +The Funnel collects dropped items and stores them in its inventory. +Items are sucked up when they are dropped on top of the funnel node. +You need a Tubelib Pusher to send items through tubes. + + +## Dependencies +tubelib, default + diff --git a/tubelib_addons1/autocrafter.lua b/tubelib_addons1/autocrafter.lua new file mode 100644 index 0000000..5ae55c4 --- /dev/null +++ b/tubelib_addons1/autocrafter.lua @@ -0,0 +1,467 @@ +--[[ + + Tubelib Addons + ============== + + Copyright (C) 2017 Joachim Stolberg + + LGPLv2.1+ + See LICENSE.txt for more information + + The autocrafter is derived from pipeworks: + Copyright (C) 2004 Sam Hocevar WTFPL + + autocrafter.lua: + +]]-- + + +local autocrafterCache = {} -- caches some recipe data to avoid to call the slow function minetest.get_craft_result() every second + +local SLEEP_CNT_START_VAL = 10 + +local craft_time = 2 + +local function count_index(invlist) + local index = {} + for _, stack in pairs(invlist) do + if not stack:is_empty() then + local stack_name = stack:get_name() + index[stack_name] = (index[stack_name] or 0) + stack:get_count() + end + end + return index +end + +local function get_item_info(stack) + local name = stack:get_name() + local def = minetest.registered_items[name] + local description = def and def.description or "Unknown item" + return description, name +end + +local function get_craft(pos, inventory, hash) + local hash = hash or minetest.hash_node_position(pos) + local craft = autocrafterCache[hash] + if not craft then + local recipe = inventory:get_list("recipe") + local output, decremented_input = minetest.get_craft_result({method = "normal", width = 3, items = recipe}) + craft = {recipe = recipe, consumption=count_index(recipe), output = output, decremented_input = decremented_input} + autocrafterCache[hash] = craft + end + return craft +end + +local function autocraft(inventory, craft) + if not craft then return false end + local output_item = craft.output.item + + -- check if we have enough room in dst + if not inventory:room_for_item("dst", output_item) then return false end + local consumption = craft.consumption + local inv_index = count_index(inventory:get_list("src")) + -- check if we have enough material available + for itemname, number in pairs(consumption) do + if (not inv_index[itemname]) or inv_index[itemname] < number then return false end + end + -- consume material + for itemname, number in pairs(consumption) do + for i = 1, number do -- We have to do that since remove_item does not work if count > stack_max + inventory:remove_item("src", ItemStack(itemname)) + end + end + + -- craft the result into the dst inventory and add any "replacements" as well + inventory:add_item("dst", output_item) + for i = 1, 9 do + inventory:add_item("dst", craft.decremented_input.items[i]) + end + return true +end + +local function formspec(state) + return "size[8,9.2]".. -- 9.2 is the max. for mobile devices + "list[context;recipe;0,0;3,3;]".. + "image[2.8,1;1,1;tubelib_gui_arrow.png]".. + "list[context;output;3.5,1;1,1;]".. + "image_button[3.5,2;1,1;".. tubelib.state_button(state) ..";button;]".. + "list[context;src;0,3.2;8,2;]".. + "list[context;dst;5,0;3,3;]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "list[current_player;main;0,5.4;8,4;]" .. + "listring[current_player;main]".. + "listring[context;src]" .. + "listring[current_player;main]".. + "listring[context;dst]" .. + "listring[current_player;main]" +end + +local function start_crafter(pos) + local meta = minetest.get_meta(pos) + local node = minetest.get_node(pos) + meta:set_int("running", SLEEP_CNT_START_VAL) + meta:set_string("formspec",formspec(tubelib.RUNNING)) + node.name = "tubelib_addons1:autocrafter_active" + minetest.swap_node(pos, node) + local timer = minetest.get_node_timer(pos) + if not timer:is_started() then + timer:start(craft_time) + end + return false +end + +local function stop_crafter(pos) + local node = minetest.get_node(pos) + local meta = minetest.get_meta(pos) + local number = meta:get_string("number") or "" + meta:set_int("running", 0) + meta:set_string("formspec",formspec(tubelib.STOPPED)) + meta:set_string("infotext", "Tubelib Autocrafter "..number..": stopped") + node.name = "tubelib_addons1:autocrafter" + minetest.swap_node(pos, node) + minetest.get_node_timer(pos):stop() + return false +end + +local function goto_sleep(pos) + local node = minetest.get_node(pos) + local meta = minetest.get_meta(pos) + local number = meta:get_string("number") or "" + meta:set_int("running", -1) + meta:set_string("formspec",formspec(tubelib.STANDBY)) + meta:set_string("infotext", "Tubelib Autocrafter "..number..": standby") + node.name = "tubelib_addons1:autocrafter" + minetest.swap_node(pos, node) + minetest.get_node_timer(pos):start(craft_time*SLEEP_CNT_START_VAL) + return false +end + +-- returns false to stop the timer, true to continue running +-- is started only from start_autocrafter(pos) after sanity checks and cached recipe +local function run_autocrafter(pos, elapsed) + local meta = minetest.get_meta(pos) + local running = meta:get_int("running") - 1 + local inventory = meta:get_inventory() + local craft = get_craft(pos, inventory) + local output_item = craft.output.item + + -- only use crafts that have an actual result + if output_item:is_empty() then + if running <= 0 then + return goto_sleep(pos) + end + meta:set_int("running", running) + return true + end + + if not autocraft(inventory, craft) then + if running <= 0 then + return goto_sleep(pos) + end + meta:set_int("running", running) + return true + end + + if running <= 0 then + return start_crafter(pos) + else + running = SLEEP_CNT_START_VAL + end + meta:set_int("running", running) + return true +end + +-- note, that this function assumes allready being updated to virtual items +-- and doesn't handle recipes with stacksizes > 1 +local function after_recipe_change(pos, inventory) + local meta = minetest.get_meta(pos) + -- if we emptied the grid, there's no point in keeping it running or cached + if inventory:is_empty("recipe") then + minetest.get_node_timer(pos):stop() + autocrafterCache[minetest.hash_node_position(pos)] = nil + local number = meta:get_string("number") + meta:set_string("infotext", "unconfigured Autocrafter: "..number) + inventory:set_stack("output", 1, "") + return + end + local recipe_changed = false + local recipe = inventory:get_list("recipe") + + local hash = minetest.hash_node_position(pos) + local craft = autocrafterCache[hash] + + if craft then + -- check if it changed + local cached_recipe = craft.recipe + for i = 1, 9 do + if recipe[i]:get_name() ~= cached_recipe[i]:get_name() then + autocrafterCache[hash] = nil -- invalidate recipe + craft = nil + break + end + end + end + + craft = craft or get_craft(pos, inventory, hash) + local output_item = craft.output.item + local description, name = get_item_info(output_item) + local number = meta:get_string("number") + meta:set_string("infotext", string.format("'%s' Tubelib Autocrafter "..number.."(%s)", description, name)) + inventory:set_stack("output", 1, output_item) +end + +-- clean out unknown items and groups, which would be handled like unknown items in the crafting grid +-- if minetest supports query by group one day, this might replace them +-- with a canonical version instead +local function normalize(item_list) + for i = 1, #item_list do + local name = item_list[i] + if not minetest.registered_items[name] then + item_list[i] = "" + end + end + return item_list +end + +local function on_output_change(pos, inventory, stack) + if not stack then + inventory:set_list("output", {}) + inventory:set_list("recipe", {}) + else + local input = minetest.get_craft_recipe(stack:get_name()) + if not input.items or input.type ~= "normal" then return end + local items, width = normalize(input.items), input.width + local item_idx, width_idx = 1, 1 + for i = 1, 9 do + if width_idx <= width then + inventory:set_stack("recipe", i, items[item_idx]) + item_idx = item_idx + 1 + else + inventory:set_stack("recipe", i, ItemStack("")) + end + width_idx = (width_idx < 3) and (width_idx + 1) or 1 + end + -- we'll set the output slot in after_recipe_change to the actual result of the new recipe + end + after_recipe_change(pos, inventory) +end + + +local function allow_metadata_inventory_put(pos, listname, index, stack, player) + if minetest.is_protected(pos, player:get_player_name()) then + return 0 + end + local inv = minetest.get_meta(pos):get_inventory() + if listname == "recipe" then + stack:set_count(1) + inv:set_stack(listname, index, stack) + after_recipe_change(pos, inv) + return 0 + elseif listname == "output" then + on_output_change(pos, inv, stack) + return 0 + end + return stack:get_count() +end + +local function allow_metadata_inventory_take(pos, listname, index, stack, player) + if minetest.is_protected(pos, player:get_player_name()) then + return 0 + end +-- upgrade_autocrafter(pos) + local inv = minetest.get_meta(pos):get_inventory() + if listname == "recipe" then + inv:set_stack(listname, index, ItemStack("")) + after_recipe_change(pos, inv) + return 0 + elseif listname == "output" then + on_output_change(pos, inv, nil) + return 0 + end + return stack:get_count() +end + +local function allow_metadata_inventory_move(pos, from_list, from_index, to_list, to_index, count, player) + if minetest.is_protected(pos, player:get_player_name()) then + return 0 + end + local inv = minetest.get_meta(pos):get_inventory() + local stack = inv:get_stack(from_list, from_index) + + if to_list == "output" then + on_output_change(pos, inv, stack) + return 0 + elseif from_list == "output" then + on_output_change(pos, inv, nil) + if to_list ~= "recipe" then + return 0 + end -- else fall through to recipe list handling + end + + if from_list == "recipe" or to_list == "recipe" then + if from_list == "recipe" then + inv:set_stack(from_list, from_index, ItemStack("")) + end + if to_list == "recipe" then + stack:set_count(1) + inv:set_stack(to_list, to_index, stack) + end + after_recipe_change(pos, inv) + return 0 + end + + return count +end + + + +-- returns false if we shouldn't bother attempting to start the timer again after this +local function update_meta(meta, state) + -- toggling the button doesn't quite call for running a recipe change check + -- so instead we run a minimal version for infotext setting only + -- this might be more written code, but actually executes less + local number = meta:get_string("number") + local output = meta:get_inventory():get_stack("output", 1) + if output:is_empty() then -- doesn't matter if paused or not + meta:set_string("infotext", "unconfigured Autocrafter "..number) + meta:set_string("formspec",formspec(tubelib.STOPPED)) + return false + end + + local infotext + local description, name = get_item_info(output) + if state == tubelib.RUNNING then + infotext = string.format("'%s' Autocrafter %s (%s)", description, number, name) + else + infotext = string.format("stopped '%s' Autocrafter %s", description, number) + end + meta:set_string("infotext", infotext) + meta:set_string("formspec",formspec(state)) + return state == tubelib.RUNNING +end + +local function on_receive_fields(pos, formname, fields, sender) + if minetest.is_protected(pos, sender:get_player_name()) then + return + end + local meta = minetest.get_meta(pos) + local running = meta:get_int("running") + if fields.button ~= nil then + if running > 0 then + update_meta(meta, tubelib.STOPPED) + stop_crafter(pos) + meta:set_int("running", 0) + else + if update_meta(meta, tubelib.RUNNING) then + meta:set_int("running", 1) + start_crafter(pos) + else + stop_crafter(pos) + meta:set_int("running", 0) + end + end + end +end + + +minetest.register_node("tubelib_addons1:autocrafter", { + description = "Autocrafter", + drawtype = "normal", + tiles = {'tubelib_front.png', 'tubelib_addons1_autocrafter.png'}, + + on_construct = function(pos) + local meta = minetest.get_meta(pos) + local number = tubelib.add_node(pos, "tubelib_addons1:autocrafter") + local inv = meta:get_inventory() + inv:set_size("src", 2*8) + inv:set_size("recipe", 3*3) + inv:set_size("dst", 3*3) + inv:set_size("output", 1) + meta:set_string("number", number) + meta:set_int("running", 0) + update_meta(meta, tubelib.STOPPED) + end, + + on_receive_fields = on_receive_fields, + + can_dig = function(pos, player) + --upgrade_autocrafter(pos) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + return (inv:is_empty("src") and inv:is_empty("dst")) + end, + + on_destruct = function(pos) + autocrafterCache[minetest.hash_node_position(pos)] = nil + tubelib.remove_node(pos) + end, + + allow_metadata_inventory_put = allow_metadata_inventory_put, + allow_metadata_inventory_take = allow_metadata_inventory_take, + allow_metadata_inventory_move = allow_metadata_inventory_move, + on_timer = run_autocrafter, + + paramtype = "light", + sunlight_propagates = true, + groups = {choppy=2, cracky=2, crumbly=2}, + is_ground_content = false, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("tubelib_addons1:autocrafter_active", { + description = "Autocrafter", + drawtype = "normal", + tiles = { + 'tubelib_front.png', + { + image = 'tubelib_addons1_autocrafter_active.png', + backface_culling = false, + animation = { + type = "vertical_frames", + aspect_w = 32, + aspect_h = 32, + length = 0.5, + }, + }, + }, + + on_receive_fields = on_receive_fields, + + allow_metadata_inventory_put = allow_metadata_inventory_put, + allow_metadata_inventory_take = allow_metadata_inventory_take, + allow_metadata_inventory_move = allow_metadata_inventory_move, + on_timer = run_autocrafter, + + paramtype = "light", + sunlight_propagates = true, + groups = {crumbly=0, not_in_creative_inventory=1}, + is_ground_content = false, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_craft({ + output = "tubelib_addons1:autocrafter", + recipe = { + {"group:wood", "default:steel_ingot", "group:wood"}, + {"tubelib:tube1", "default:mese_crystal", "tubelib:tube1"}, + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + }, +}) + + +tubelib.register_node("tubelib_addons1:autocrafter", {"tubelib_addons1:autocrafter_active"}, { + on_pull_item = function(pos, side) + local meta = minetest.get_meta(pos) + return tubelib.get_item(meta, "dst") + end, + on_push_item = function(pos, side, item) + local meta = minetest.get_meta(pos) + return tubelib.put_item(meta, "src", item) + end, + on_unpull_item = function(pos, side, item) + local meta = minetest.get_meta(pos) + return tubelib.put_item(meta, "dst", item) + end, +}) diff --git a/tubelib_addons1/depends.txt b/tubelib_addons1/depends.txt new file mode 100644 index 0000000..e600cec --- /dev/null +++ b/tubelib_addons1/depends.txt @@ -0,0 +1,2 @@ +tubelib +default \ No newline at end of file diff --git a/tubelib_addons1/description.txt b/tubelib_addons1/description.txt new file mode 100644 index 0000000..8307dcb --- /dev/null +++ b/tubelib_addons1/description.txt @@ -0,0 +1,2 @@ +Tubelib Extension with Mining, Farming, and Crafting nodes + diff --git a/tubelib_addons1/fermenter.lua b/tubelib_addons1/fermenter.lua new file mode 100644 index 0000000..9584a01 --- /dev/null +++ b/tubelib_addons1/fermenter.lua @@ -0,0 +1,319 @@ +--[[ + + Tubelib Addons 1 + ================ + + Copyright (C) 2017 Joachim Stolberg + + LGPLv2.1+ + See LICENSE.txt for more information + + fermenter.lua + + The Fermenter converts 2 leave items of any kind into one Bio Gas item, + needed by the Reformer to produce Bio Fuel. + +]]-- + +local CYCLE_TIME = 4 +local TICKS_TO_SLEEP = 5 +local STOP_STATE = 0 +local STANDBY_STATE = -1 +local FAULT_STATE = -2 + + +local leaves = { + ["default:leaves"] = true, + ["default:aspen_leaves"] = true, + ["default:pine_needles"] = true, + ["default:acacia_leaves"] = true, + ["default:jungleleaves"] = true, + ["default:bush_leaves"] = true, + ["default:acacia_bush_leaves"] = true, +} + +local function formspec(state) + return "size[8,8]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "list[context;src;0,0;3,3;]".. + "item_image[0,0;1,1;default:leaves]".. + "image[3.5,1;1,1;tubelib_gui_arrow.png]".. + "image_button[3.5,3;1,1;".. tubelib.state_button(state) ..";button;]".. + "list[context;dst;5,0;3,3;]".. + "item_image[5,0;1,1;tubelib_addons1:biogas]".. + "list[current_player;main;0,4.3;8,4;]".. + "listring[context;dst]".. + "listring[current_player;main]".. + "listring[context;src]".. + "listring[current_player;main]" +end + +local function allow_metadata_inventory_put(pos, listname, index, stack, player) + if minetest.is_protected(pos, player:get_player_name()) then + return 0 + end + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if listname == "src" and leaves[stack:get_name()] then + return stack:get_count() + elseif listname == "dst" then + return stack:get_count() + end + return 0 +end + +local function allow_metadata_inventory_move(pos, from_list, from_index, to_list, to_index, count, player) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local stack = inv:get_stack(from_list, from_index) + return allow_metadata_inventory_put(pos, to_list, to_index, stack, player) +end + +local function allow_metadata_inventory_take(pos, listname, index, stack, player) + if minetest.is_protected(pos, player:get_player_name()) then + return 0 + end + return stack:get_count() +end + + +local function place_top(pos, facedir, placer) + if minetest.is_protected(pos, placer:get_player_name()) then + return false + end + local node = minetest.get_node(pos) + if node.name ~= "air" then + return false + end + minetest.add_node(pos, {name="tubelib_addons1:fermenter_top", param2=facedir}) + return true +end + +local function convert_leaves_to_biogas(meta) + local inv = meta:get_inventory() + local biogas = ItemStack("tubelib_addons1:biogas") + if inv:room_for_item("dst", biogas) then -- enough output space? + local items = tubelib.get_num_items(meta, "src", 2) + if items then -- input available? + if leaves[items:get_name()] then -- valid input? + inv:add_item("dst", biogas) + return true + else + inv:add_item("src", items) + return nil -- error + end + else + return false -- standby + end + else + return false -- standby + end +end + +local function start_the_machine(pos) + local meta = minetest.get_meta(pos) + local number = meta:get_string("number") + meta:set_int("running", TICKS_TO_SLEEP) + meta:set_string("infotext", "Tubelib Fermenter "..number..": running") + meta:set_string("formspec", formspec(tubelib.RUNNING)) + minetest.get_node_timer(pos):start(CYCLE_TIME) + return false +end + +local function stop_the_machine(pos) + local meta = minetest.get_meta(pos) + local number = meta:get_string("number") + meta:set_int("running", STOP_STATE) + minetest.get_node_timer(pos):stop() + meta:set_string("infotext", "Tubelib Fermenter "..number..": stopped") + meta:set_string("formspec", formspec(tubelib.STOPPED)) + return false +end + +local function goto_sleep(pos) + local meta = minetest.get_meta(pos) + local number = meta:get_string("number") + meta:set_int("running", STOP_STATE) + minetest.get_node_timer(pos):start(CYCLE_TIME * TICKS_TO_SLEEP) + meta:set_string("infotext", "Tubelib Fermenter "..number..": standby") + meta:set_string("formspec", formspec(tubelib.STANDBY)) + return false +end + +local function goto_fault(pos) + local meta = minetest.get_meta(pos) + local number = meta:get_string("number") + meta:set_int("running", FAULT_STATE) + minetest.get_node_timer(pos):stop() + meta:set_string("infotext", "Tubelib Fermenter "..number..": fault") + meta:set_string("formspec", formspec(tubelib.FAULT)) + return false +end + +local function keep_running(pos, elapsed) + local meta = minetest.get_meta(pos) + local running = meta:get_int("running") - 1 + local res = convert_leaves_to_biogas(meta) + + if res == true then + if running <= STOP_STATE then + return start_the_machine(pos) + else + running = TICKS_TO_SLEEP + end + elseif res == false then + if running <= STOP_STATE then + local node = minetest.get_node(pos) + return goto_sleep(pos, node) + end + else + return goto_fault(pos) + end + meta:set_int("running", running) + meta:set_string("formspec", formspec(tubelib.RUNNING)) + return true +end + +local function on_receive_fields(pos, formname, fields, player) + if minetest.is_protected(pos, player:get_player_name()) then + return + end + local meta = minetest.get_meta(pos) + local running = meta:get_int("running") or STOP_STATE + if fields.button ~= nil then + if running > STOP_STATE or running == FAULT_STATE then + stop_the_machine(pos) + else + start_the_machine(pos) + end + end +end + +minetest.register_node("tubelib_addons1:fermenter", { + description = "Tubelib Fermenter", + inventory_image = "tubelib_addons1_fermenter_inventory.png", + tiles = { + -- up, down, right, left, back, front + 'tubelib_front.png', + 'tubelib_front.png', + 'tubelib_addons1_fermenter_bottom.png', + 'tubelib_addons1_fermenter_bottom.png', + 'tubelib_addons1_fermenter_bottom.png', + 'tubelib_addons1_fermenter_bottom.png', + }, + + selection_box = { + type = "fixed", + fixed = { -8/16, -8/16, -8/16, 8/16, 24/16, 8/16 }, + }, + + on_construct = function(pos) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + inv:set_size('src', 9) + inv:set_size('dst', 9) + end, + + after_place_node = function(pos, placer) + local facedir = minetest.dir_to_facedir(placer:get_look_dir(), false) + if place_top({x=pos.x, y=pos.y+1, z=pos.z}, facedir, placer) == false then + minetest.remove_node(pos) + return + end + local number = tubelib.add_node(pos, "tubelib_addons1:fermenter") + local meta = minetest.get_meta(pos) + meta:set_string("number", number) + meta:set_int("running", STOP_STATE) + meta:set_string("infotext", "Tubelib Fermenter "..number..": stopped") + meta:set_string("formspec", formspec(tubelib.STOPPED)) + end, + + on_dig = function(pos, node, puncher, pointed_thing) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if inv:is_empty("dst") and inv:is_empty("src") then + minetest.node_dig(pos, node, puncher, pointed_thing) + minetest.remove_node({x=pos.x, y=pos.y+1, z=pos.z}) + tubelib.remove_node(pos) + end + end, + + on_timer = keep_running, + on_receive_fields = on_receive_fields, + allow_metadata_inventory_put = allow_metadata_inventory_put, + allow_metadata_inventory_move = allow_metadata_inventory_move, + allow_metadata_inventory_take = allow_metadata_inventory_take, + + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + groups = {choppy=2, cracky=2, crumbly=2}, + is_ground_content = false, + sounds = default.node_sound_metal_defaults(), +}) + + +minetest.register_node("tubelib_addons1:fermenter_top", { + description = "Tubelib Fermenter Top", + tiles = { + -- up, down, right, left, back, front + 'tubelib_front.png', + "tubelib_front.png", + 'tubelib_addons1_fermenter_top.png', + 'tubelib_addons1_fermenter_top.png', + 'tubelib_addons1_fermenter_top.png', + 'tubelib_addons1_fermenter_top.png', + }, + + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + groups = {crumbly=0, not_in_creative_inventory=1}, + is_ground_content = false, +}) + +minetest.register_craftitem("tubelib_addons1:biogas", { + description = "Bio Gas", + inventory_image = "tubelib_addons1_biogas.png", +}) + + +minetest.register_craft({ + output = "tubelib_addons1:fermenter", + recipe = { + {"default:steel_ingot", "default:dirt", "default:steel_ingot"}, + {"tubelib:tube1", "default:mese_crystal", "tubelib:tube1"}, + {"default:steel_ingot", "group:wood", "default:steel_ingot"}, + }, +}) + + +tubelib.register_node("tubelib_addons1:fermenter", {}, { + on_pull_item = function(pos, side) + local meta = minetest.get_meta(pos) + return tubelib.get_item(meta, "dst") + end, + on_push_item = function(pos, side, item) + local meta = minetest.get_meta(pos) + return tubelib.put_item(meta, "src", item) + end, + on_unpull_item = function(pos, side, item) + local meta = minetest.get_meta(pos) + return tubelib.put_item(meta, "dst", item) + end, + on_recv_message = function(pos, topic, payload) + if topic == "on" then + start_the_machine(pos) + elseif topic == "off" then + stop_the_machine(pos) + elseif topic == "state" then + local meta = minetest.get_meta(pos) + local running = meta:get_int("running") + return tubelib.statestring(running) + else + return "unsupported" + end + end, +}) diff --git a/tubelib_addons1/funnel.lua b/tubelib_addons1/funnel.lua new file mode 100644 index 0000000..82be6d5 --- /dev/null +++ b/tubelib_addons1/funnel.lua @@ -0,0 +1,150 @@ +--[[ + + Tubelib Addons 1 + ================ + + Copyright (C) 2017,2018 Joachim Stolberg + + LGPLv2.1+ + See LICENSE.txt for more information + + funnel.lua + +]]-- + +local function allow_metadata_inventory_put(pos, listname, index, stack, player) + if minetest.is_protected(pos, player:get_player_name()) then + return 0 + end + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if listname == "main" then + return stack:get_count() + end + return 0 +end + +local function allow_metadata_inventory_take(pos, listname, index, stack, player) + if minetest.is_protected(pos, player:get_player_name()) then + return 0 + end + return stack:get_count() +end + +local function formspec() + return "size[9,7]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "list[context;main;0.5,0;8,2;]".. + "list[current_player;main;0.5,3.3;8,4;]".. + "listring[context;main]".. + "listring[current_player;main]" +end + +local function scan_for_objects(pos, elapsed) + local meta = minetest.get_meta(pos) + for _, object in pairs(minetest.get_objects_inside_radius(pos, 1)) do + local lua_entity = object:get_luaentity() + if not object:is_player() and lua_entity and lua_entity.name == "__builtin:item" then + local obj_pos = object:getpos() + if lua_entity.itemstring ~= "" and ((obj_pos.y - pos.y) >= 0.4) then + if tubelib.put_item(meta, "main", lua_entity.itemstring) then + lua_entity.itemstring = "" + object:remove() + end + end + + end + end + return true +end + +minetest.register_node("tubelib_addons1:funnel", { + description = "Tubelib Funnel", + tiles = { + -- up, down, right, left, back, front + 'tubelib_addons1_funnel_top.png', + 'tubelib_addons1_funnel_top.png', + 'tubelib_addons1_funnel.png', + }, + + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-8/16, -8/16, -8/16, 8/16, 8/16, -6/16}, + {-8/16, -8/16, 6/16, 8/16, 8/16, 8/16}, + {-8/16, -8/16, -8/16, -6/16, 8/16, 8/16}, + { 6/16, -8/16, -8/16, 8/16, 8/16, 8/16}, + {-6/16, -8/16, -6/16, 6/16, 4/16, 6/16}, + }, + }, + selection_box = { + type = "fixed", + fixed = {-8/16, -8/16, -8/16, 8/16, 8/16, 8/16}, + }, + + on_construct = function(pos) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + inv:set_size('main', 16) + end, + + after_place_node = function(pos, placer) + local meta = minetest.get_meta(pos) + local facedir = minetest.dir_to_facedir(placer:get_look_dir(), false) + meta:set_string("formspec", formspec()) + minetest.get_node_timer(pos):start(1) + end, + + on_timer = scan_for_objects, + + on_dig = function(pos, node, puncher, pointed_thing) + if minetest.is_protected(pos, puncher:get_player_name()) then + return + end + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if inv:is_empty("main") then + minetest.node_dig(pos, node, puncher, pointed_thing) + end + end, + + allow_metadata_inventory_put = allow_metadata_inventory_put, + allow_metadata_inventory_take = allow_metadata_inventory_take, + + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + groups = {choppy=2, cracky=2, crumbly=2}, + is_ground_content = false, + sounds = default.node_sound_wood_defaults(), +}) + + +minetest.register_craft({ + output = "tubelib_addons1:funnel 2", + recipe = { + {"group:wood", "", "group:wood"}, + {"default:steel_ingot", "default:mese_crystal", "tubelib:tube1"}, + {"group:wood", "", "group:wood"}, + }, +}) + + +tubelib.register_node("tubelib_addons1:funnel", {}, { + on_pull_item = function(pos, side) + local meta = minetest.get_meta(pos) + return tubelib.get_item(meta, "main") + end, + on_unpull_item = function(pos, side, item) + local meta = minetest.get_meta(pos) + return tubelib.put_item(meta, "main", item) + end, + + on_recv_message = function(pos, topic, payload) + return "unsupported" + end, +}) + diff --git a/tubelib_addons1/grinder.lua b/tubelib_addons1/grinder.lua new file mode 100644 index 0000000..0b1fe50 --- /dev/null +++ b/tubelib_addons1/grinder.lua @@ -0,0 +1,293 @@ +--[[ + + Tubelib Addons 1 + ================ + + Copyright (C) 2017 Joachim Stolberg + + LGPLv2.1+ + See LICENSE.txt for more information + + grinder.lua + + Grinding Cobble to Gravel + +]]-- + +local TICKS_TO_SLEEP = 10 +local CYCLE_TIME = 2 +local STOP_STATE = 0 +local STANDBY_STATE = -1 +local FAULT_STATE = -2 + + +local function formspec(state) + return "size[8,8]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "list[context;src;0,0;3,3;]".. + "item_image[0,0;1,1;default:cobble]".. + "image[3.5,1;1,1;tubelib_gui_arrow.png]".. + "image_button[3.5,2;1,1;".. tubelib.state_button(state) ..";button;]".. + "list[context;dst;5,0;3,3;]".. + "item_image[5,0;1,1;default:gravel]".. + "list[current_player;main;0,4;8,4;]".. + "listring[context;dst]".. + "listring[current_player;main]".. + "listring[context;src]".. + "listring[current_player;main]" +end + +local function allow_metadata_inventory_put(pos, listname, index, stack, player) + if minetest.is_protected(pos, player:get_player_name()) then + return 0 + end + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if listname == "src" then + return stack:get_count() + elseif listname == "dst" then + return 0 + end + return 0 +end + +local function allow_metadata_inventory_move(pos, from_list, from_index, to_list, to_index, count, player) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local stack = inv:get_stack(from_list, from_index) + return allow_metadata_inventory_put(pos, to_list, to_index, stack, player) +end + +local function allow_metadata_inventory_take(pos, listname, index, stack, player) + if minetest.is_protected(pos, player:get_player_name()) then + return 0 + end + return stack:get_count() +end + + +local function convert_stone_to_gravel(inv) + local cobble = ItemStack("default:cobble") + local gravel = ItemStack("default:gravel") + if inv:room_for_item("dst", gravel) and inv:contains_item("src", cobble) then + inv:add_item("dst", gravel) + inv:remove_item("src", cobble) + return true + end + return false +end + + +local function start_the_machine(pos) + local meta = minetest.get_meta(pos) + local node = minetest.get_node(pos) + local number = meta:get_string("number") + meta:set_int("running", TICKS_TO_SLEEP) + meta:set_string("infotext", "Tubelib Grinder "..number..": running") + meta:set_string("formspec", formspec(tubelib.RUNNING)) + node.name = "tubelib_addons1:grinder_active" + minetest.swap_node(pos, node) + minetest.get_node_timer(pos):start(CYCLE_TIME) + return false +end + +local function stop_the_machine(pos) + local meta = minetest.get_meta(pos) + local node = minetest.get_node(pos) + local number = meta:get_string("number") + meta:set_int("running", STOP_STATE) + meta:set_string("infotext", "Tubelib Grinder "..number..": stopped") + meta:set_string("formspec", formspec(tubelib.STOPPED)) + node.name = "tubelib_addons1:grinder" + minetest.swap_node(pos, node) + minetest.get_node_timer(pos):stop() + return false +end + +local function goto_sleep(pos) + local meta = minetest.get_meta(pos) + local node = minetest.get_node(pos) + local number = meta:get_string("number") + meta:set_int("running", STANDBY_STATE) + meta:set_string("infotext", "Tubelib Grinder "..number..": standby") + meta:set_string("formspec", formspec(tubelib.STANDBY)) + node.name = "tubelib_addons1:grinder" + minetest.swap_node(pos, node) + minetest.get_node_timer(pos):start(CYCLE_TIME * TICKS_TO_SLEEP) + return false +end + +local function goto_fault(pos) + local meta = minetest.get_meta(pos) + local node = minetest.get_node(pos) + local number = meta:get_string("number") + meta:set_int("running", FAULT_STATE) + meta:set_string("infotext", "Tubelib Grinder "..number..": fault") + meta:set_string("formspec", formspec(tubelib.FAULT)) + node.name = "tubelib_addons1:grinder" + minetest.swap_node(pos, node) + minetest.get_node_timer(pos):stop() + return false +end + +local function keep_running(pos, elapsed) + local meta = minetest.get_meta(pos) + local running = meta:get_int("running") - 1 + --print("running", running) + local inv = meta:get_inventory() + local busy = convert_stone_to_gravel(inv) + + if busy == true then + if running <= STOP_STATE then + return start_the_machine(pos) + else + running = TICKS_TO_SLEEP + end + elseif not inv:is_empty("src") then + return goto_fault(pos) + else + if running <= STOP_STATE then + return goto_sleep(pos) + end + end + meta:set_int("running", running) + return true +end + +local function on_receive_fields(pos, formname, fields, player) + if minetest.is_protected(pos, player:get_player_name()) then + return + end + local meta = minetest.get_meta(pos) + local running = meta:get_int("running") or 1 + if fields.button ~= nil then + if running > STOP_STATE or running == FAULT_STATE then + stop_the_machine(pos) + else + start_the_machine(pos) + end + end +end + +minetest.register_node("tubelib_addons1:grinder", { + description = "Tubelib Grinder", + tiles = { + -- up, down, right, left, back, front + 'tubelib_addons1_grinder.png', + 'tubelib_front.png', + 'tubelib_front.png', + 'tubelib_front.png', + "tubelib_front.png", + "tubelib_front.png", + }, + + after_place_node = function(pos, placer) + local number = tubelib.add_node(pos, "tubelib_addons1:grinder") + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + inv:set_size('src', 9) + inv:set_size('dst', 9) + meta:set_string("number", number) + meta:set_string("infotext", "Tubelib Grinder "..number..": stopped") + meta:set_string("formspec", formspec(tubelib.STOPPED)) + end, + + on_dig = function(pos, node, puncher, pointed_thing) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if inv:is_empty("dst") and inv:is_empty("src") then + minetest.node_dig(pos, node, puncher, pointed_thing) + tubelib.remove_node(pos) + end + end, + + on_timer = keep_running, + on_receive_fields = on_receive_fields, + allow_metadata_inventory_put = allow_metadata_inventory_put, + allow_metadata_inventory_move = allow_metadata_inventory_move, + allow_metadata_inventory_take = allow_metadata_inventory_take, + + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + groups = {choppy=2, cracky=2, crumbly=2}, + is_ground_content = false, + sounds = default.node_sound_wood_defaults(), +}) + + +minetest.register_node("tubelib_addons1:grinder_active", { + description = "Tubelib Grinder", + tiles = { + -- up, down, right, left, back, front + { + image = 'tubelib_addons1_grinder_active.png', + backface_culling = false, + animation = { + type = "vertical_frames", + aspect_w = 32, + aspect_h = 32, + length = 1.0, + }, + }, + + 'tubelib_front.png', + "tubelib_front.png", + "tubelib_front.png", + "tubelib_front.png", + "tubelib_front.png", + }, + + on_timer = keep_running, + on_receive_fields = on_receive_fields, + allow_metadata_inventory_put = allow_metadata_inventory_put, + allow_metadata_inventory_move = allow_metadata_inventory_move, + allow_metadata_inventory_take = allow_metadata_inventory_take, + + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + groups = {crumbly=0, not_in_creative_inventory=1}, + is_ground_content = false, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_craft({ + output = "tubelib_addons1:grinder", + recipe = { + {"group:wood", "default:tin_ingot", "group:wood"}, + {"tubelib:tube1", "default:mese_crystal", "tubelib:tube1"}, + {"group:wood", "default:tin_ingot", "group:wood"}, + }, +}) + + +tubelib.register_node("tubelib_addons1:grinder", {"tubelib_addons1:grinder_active"}, { + on_pull_item = function(pos, side) + local meta = minetest.get_meta(pos) + return tubelib.get_item(meta, "dst") + end, + on_push_item = function(pos, side, item) + local meta = minetest.get_meta(pos) + return tubelib.put_item(meta, "src", item) + end, + on_unpull_item = function(pos, side, item) + local meta = minetest.get_meta(pos) + return tubelib.put_item(meta, "dst", item) + end, + on_recv_message = function(pos, topic, payload) + if topic == "on" then + start_the_machine(pos) + elseif topic == "off" then + stop_the_machine(pos) + elseif topic == "state" then + local meta = minetest.get_meta(pos) + local running = meta:get_int("running") + return tubelib.statestring(runnnig) + else + return "unsupported" + end + end, +}) diff --git a/tubelib_addons1/harvester.lua b/tubelib_addons1/harvester.lua new file mode 100644 index 0000000..ccaf502 --- /dev/null +++ b/tubelib_addons1/harvester.lua @@ -0,0 +1,552 @@ +--[[ + + Tubelib Addons 1 + ================ + + Copyright (C) 2017 Joachim Stolberg + + LGPLv2.1+ + See LICENSE.txt for more information + + harvester.lua + + Harvester machine to chop wood, leaves and harvest farming crops. + + The machine is able to harvest an square area of up to 33x33 blocks (radius = 16). + The base node has to be placed in the middle of the harvesting area. + The Harvester processes one node every 4 seconds. + It requires one item Bio Fuel per 20 nodes. + +]]-- + + +local CYCLE_TIME = 4 +local MAX_HEIGHT = 18 +local MAX_DIAMETER = 33 +local BURNING_TIME = 20 +local TICKS_TO_SLEEP = 10 +local STOP_STATE = 0 +local RUNNING = 1 +local STANDBY_STATE = -1 +local FAULT_STATE = -2 +local OFFSET = 5 + +local Radius2Idx = {[4]=1 ,[6]=2, [8]=3, [10]=4, [12]=5, [14]=6, [16]=7} + +local function gen_working_steps() + -- Working steps like a snail shell from inner to outer + local t = {} + for steps = 1,MAX_DIAMETER,2 do + for idx = 1,steps do + t[#t+1] = 0 + end + for idx = 1,steps do + t[#t+1] = 1 + end + steps = steps + 1 + for idx = 1,steps do + t[#t+1] = 2 + end + for idx = 1,steps do + t[#t+1] = 3 + end + end + return t +end + +local WorkingSteps = gen_working_steps() + + +-- valid harvesting nodes and the results for the inventory +local ResultNodes = { + ["default:tree"] = "default:tree", + ["default:aspen_tree"] = "default:aspen_tree", + ["default:pine_tree"] = "default:pine_tree", + ["default:acacia_tree"] = "default:acacia_tree", + ["default:jungletree"] = "default:jungletree", + + ["default:leaves"] = "default:leaves", + ["default:aspen_leaves"] = "default:aspen_leaves", + ["default:pine_needles"] = "default:pine_needles", + ["default:acacia_leaves"] = "default:acacia_leaves", + ["default:jungleleaves"] = "default:jungleleaves", + + ["default:bush_leaves"] = "default:bush_leaves", + ["default:acacia_bush_leaves"] = "default:acacia_bush_leaves", + + ["default:cactus"] = "default:cactus", + ["default:papyrus"] = "default:papyrus", + + ["farming:wheat_8"] = "farming:wheat", + ["farming:cotton_8"] = "farming:cotton", + + ["default:apple"] = "default:apple", + + ["farming:carrot_8"] = "farming:carrot 2", + ["farming:potato_4"] = "farming:potato 3", + ["farming:tomato_8"] = "farming:tomato 3", + ["farming:cucumber_4"] = "farming:cucumber 2", + ["farming:corn_8"] = "farming:corn 2", + ["farming:coffee_5"] = "farming:coffee_beans 2", + ["farming:melon_8"] = "farming:melon_slice 9", + ["farming:pumpkin_8"] = "farming:pumpkin_slice 9", + ["farming:raspberry_4"] = "farming:raspberries", + ["farming:blueberry_4"] = "farming:blueberries", + ["farming:rhubarb_3"] = "farming:rhubarb 2", + ["farming:beanpole_5"] = "farming:beans 3", + ["farming:grapes_8"] = "farming:grapes 3", + ["farming:barley_7"] = "farming:barley", + ["farming:chili_8"] = "farming:chili_pepper 2", + ["farming:hemp_8"] = "farming:hemp_leaf", +} + +-- Which sapling/seed belongs to which tree/crop +local SaplingList = { + ["default:tree"] = "default:sapling", + ["default:aspen_tree"] = "default:aspen_sapling", + ["default:pine_tree"] = "default:pine_sapling", + ["default:acacia_tree"] = "default:acacia_sapling", + ["default:jungletree"] = "default:junglesapling", + ["farming:wheat_8"] = "farming:wheat_1", + ["farming:cotton_8"] = "farming:cotton_1", + ["farming:carrot_8"] = "farming:carrot_1", + ["farming:potato_4"] = "farming:potato_1", + ["farming:tomato_8"] = "farming:tomato_1", + ["farming:cucumber_4"] = "farming:cucumber_1", + ["farming:corn_8"] = "farming:corn_1", + ["farming:coffee_5"] = "farming:coffee_1", + ["farming:melon_8"] = "farming:melon_1", + ["farming:pumpkin_8"] = "farming:pumpkin_1", + ["farming:raspberry_4"] = "farming:raspberry_1", + ["farming:blueberry_4"] = "farming:blueberry_1", + ["farming:rhubarb_3"] = "farming:rhubarb_1", + ["farming:beanpole_5"] = "farming:beanpole_1", + ["farming:grapes_8"] = "farming:grapes_1", + ["farming:barley_7"] = "farming:barley_1", + ["farming:chili_8"] = "farming:chili_1", + ["farming:hemp_8"] = "farming:hemp_1", +} + +local function formspec(this, state) + -- some recalculations + local endless = this.endless == 1 and "true" or "false" + local fuel = this.fuel * 100/BURNING_TIME + if state ~= tubelib.RUNNING then + fuel = 0 + end + local radius = Radius2Idx[this.radius] or 2 + + return "size[9,8]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "dropdown[0,0;1.5;radius;4,6,8,10,12,14,16;"..radius.."]".. + "label[1.6,0.2;Area radius]".. + "checkbox[0,1;endless;Run endless;"..endless.."]".. + "list[context;main;5,0;4,4;]".. + "list[context;fuel;1.5,3;1,1;]".. + "item_image[1.5,3;1,1;tubelib_addons1:biofuel]".. + "image[2.5,3;1,1;default_furnace_fire_bg.png^[lowpart:".. + fuel..":default_furnace_fire_fg.png]".. + "image_button[3.5,3;1,1;".. tubelib.state_button(state) ..";button;]".. + "list[current_player;main;0.5,4.3;8,4;]".. + "listring[context;main]".. + "listring[current_player;main]" +end + +local function allow_metadata_inventory_put(pos, listname, index, stack, player) + if minetest.is_protected(pos, player:get_player_name()) then + return 0 + end + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if listname == "main" then + return stack:get_count() + elseif listname == "fuel" and stack:get_name() == "tubelib_addons1:biofuel" then + return stack:get_count() + end + return 0 +end + +local function allow_metadata_inventory_take(pos, listname, index, stack, player) + if minetest.is_protected(pos, player:get_player_name()) then + return 0 + end + return stack:get_count() +end + +-- start on top of the base block +local function working_start_pos(pos) + local working_pos = table.copy(pos) + working_pos.y = working_pos.y + MAX_HEIGHT + return working_pos +end + +local function get_next_pos(old_pos, idx) + local facedir = WorkingSteps[idx] + return vector.add(old_pos, core.facedir_to_dir(facedir)) +end + +local function start_the_machine(pos, this, meta) + this.running = RUNNING + this.idx = 0 + this.working_pos = working_start_pos(pos) + meta:set_string("infotext", "Tubelib Harvester "..this.number..": running") + meta:set_string("formspec", formspec(this, tubelib.RUNNING)) + minetest.get_node_timer(pos):start(CYCLE_TIME) + meta:set_string("this", minetest.serialize(this)) + return false +end + +local function stop_the_machine(pos, this, meta) + this.running = STOP_STATE + meta:set_string("infotext", "Tubelib Harvester "..this.number..": stopped") + meta:set_string("formspec", formspec(this, tubelib.STOPPED)) + minetest.get_node_timer(pos):stop() + meta:set_string("this", minetest.serialize(this)) + return false +end + +local function goto_standby(pos, this, meta) + this.running = STANDBY_STATE + meta:set_string("infotext", "Tubelib Harvester "..this.number..": standby") + meta:set_string("formspec", formspec(this, tubelib.STANDBY)) + minetest.get_node_timer(pos):start(CYCLE_TIME * TICKS_TO_SLEEP) + meta:set_string("this", minetest.serialize(this)) + return false +end + +local function goto_fault(pos, this, meta) + this.running = FAULT_STATE + meta:set_string("infotext", "Tubelib Harvester "..this.number..": fault") + meta:set_string("formspec", formspec(this, tubelib.FAULT)) + minetest.get_node_timer(pos):stop() + meta:set_string("this", minetest.serialize(this)) + return false +end + +-- Remove saplings lying arround +local function remove_all_sapling_items(pos) + for _, object in pairs(minetest.get_objects_inside_radius(pos, 4)) do + local lua_entity = object:get_luaentity() + if not object:is_player() and lua_entity and lua_entity.name == "__builtin:item" then + object:remove() + end + end +end + +-- Remove wood/leave nodes and place sapling if necessary +-- Return false if inventory is full +-- else return true +local function remove_or_replace_node(pos, inv, node) + local next_pos = table.copy(pos) + next_pos.y = next_pos.y - 1 + + -- Not enough space in the inventory + if not inv:room_for_item("main", ItemStack(node.name)) then + return false + end + local next_node = minetest.get_node_or_nil(next_pos) + if next_node then + -- don't remove the last cactus block + if node.name == "default:cactus" and next_node.name ~= "default:cactus" then + return true + end + -- don't remove the last papyrus block + if node.name == "default:papyrus" and next_node.name ~= "default:papyrus" then + return true + end + minetest.remove_node(pos) + inv:add_item("main", ItemStack(ResultNodes[node.name])) + if ResultNodes[next_node.name] == nil and next_node.name ~= "air" then -- hit the ground? + if SaplingList[node.name] then + node.name = SaplingList[node.name] + minetest.set_node(pos, {name=node.name, paramtype2 = "wallmounted", param2=1}) + if node.name:sub(1,8) == "farming:" then + -- farming_redo installed? + if farming.mod == "redo" then + -- nothing to do + else + -- We have to simulate "on_place" and start the timer by hand + -- because the after_place_node function checks player rights and can't therefore + -- be used. + minetest.get_node_timer(pos):start(math.random(166,288)) + end + else + -- default trees + minetest.get_node_timer(pos):start(math.random(2400,4800)) + end + end + remove_all_sapling_items(pos) + end + end + return true +end + +-- check the fuel level and return false if empty +local function check_fuel(pos, this, meta) + if this.fuel <= 0 then + if tubelib.get_this_item(meta, "fuel", 1) == nil then + return false + end + this.fuel = BURNING_TIME + else + this.fuel = this.fuel - 1 + end + return true +end + +local function calc_new_pos(pos, this, meta) + this.idx = this.idx + 1 + if this.idx >= this.max then + if this.endless == 1 then + this.idx = 0 + this.working_pos = working_start_pos(pos) + return true + else + return false + end + end + this.working_pos = get_next_pos(this.working_pos, this.idx) + return true +end + +-- Scan the space below the given position +-- Return false if inventory is full +-- else return true +local function harvest_field(this, meta) + local inv = meta:get_inventory() + local pos = table.copy(this.working_pos) + local start_y_pos = pos.y - 1 + local stop_y_pos = pos.y - MAX_HEIGHT - OFFSET + if minetest.is_protected(pos, this.owner) then + return true + end + for y_pos = start_y_pos,stop_y_pos,-1 do + pos.y = y_pos + local node = minetest.get_node_or_nil(pos) + if node and node.name ~= "air" then + if ResultNodes[node.name] then + if not remove_or_replace_node(pos, inv, node) then + return false + end + else + return true -- hit the ground + end + end + end + return true +end + +local function not_standby(pos, this, meta) + if this and this.running == STANDBY_STATE then + if harvest_field(this, meta) then + minetest.after(0, start_the_machine, pos, this, meta) + end + return false + end + return true +end + +-- move the copter to the next pos and harvest the field below +local function keep_running(pos, elapsed) + local meta = minetest.get_meta(pos) + local this = minetest.deserialize(meta:get_string("this")) + + --print(this.working_pos.x, this.working_pos.z, this.running) + if not_standby(pos, this, meta) then + if check_fuel(pos, this, meta) then + if calc_new_pos(pos, this, meta) then + if harvest_field(this, meta) then + meta:set_string("this", minetest.serialize(this)) + meta:set_string("infotext", + "Tubelib Harvester "..this.number.. + ": running ("..this.idx.."/"..this.max..")") + return true + else + goto_standby(pos, this, meta) + end + else + stop_the_machine(pos, this, meta) + end + else + goto_fault(pos, this, meta) + end + return false + end + return true +end + + +local function on_receive_fields(pos, formname, fields, player) + if minetest.is_protected(pos, player:get_player_name()) then + return + end + local meta = minetest.get_meta(pos) + local this = minetest.deserialize(meta:get_string("this")) + local radius = this.radius + + if fields.radius ~= nil then + radius = tonumber(fields.radius) + end + if radius ~= this.radius then + stop_the_machine(pos, this, meta) + this.radius = radius + this.max = (radius*2 + 1) * (radius*2 + 1) + end + + if fields.endless ~= nil then + this.endless = fields.endless == "true" and 1 or 0 + end + + if fields.button ~= nil then + if this.running > STOP_STATE or this.running == FAULT_STATE then + stop_the_machine(pos, this, meta) + else + start_the_machine(pos, this, meta) + end + else + meta:set_string("formspec", formspec(this, tubelib.state(this.running))) + end + meta:set_string("this", minetest.serialize(this)) +end + +minetest.register_node("tubelib_addons1:harvester_base", { + description = "Tubelib Harvester Base", + tiles = { + -- up, down, right, left, back, front + 'tubelib_front.png', + 'tubelib_addons1_harvester.png', + }, + + on_construct = function(pos) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + inv:set_size('main', 16) + inv:set_size('fuel', 1) + end, + + after_place_node = function(pos, placer) + local number = tubelib.add_node(pos, "tubelib_addons1:harvester_base") + local meta = minetest.get_meta(pos) + meta:set_string("infotext", "Tubelib Harvester "..number..": stopped") + local this = { + number = number, + owner = placer:get_player_name(), + working_pos = working_start_pos(pos), + fuel = 0, + running = STOP_STATE, + endless = 0, + radius = 6, + idx = 1, + max = (6+1+6) * (6+1+6) + } + meta:set_string("this", minetest.serialize(this)) + meta:set_string("formspec", formspec(this, tubelib.STOPPED)) + end, + + on_dig = function(pos, node, puncher, pointed_thing) + if minetest.is_protected(pos, puncher:get_player_name()) then + return + end + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if inv:is_empty("main") then + minetest.node_dig(pos, node, puncher, pointed_thing) + tubelib.remove_node(pos) + end + end, + + on_receive_fields = on_receive_fields, + on_timer = keep_running, + allow_metadata_inventory_put = allow_metadata_inventory_put, + allow_metadata_inventory_take = allow_metadata_inventory_take, + + paramtype = "light", + sunlight_propagates = true, + groups = {choppy=2, cracky=2, crumbly=2}, + is_ground_content = false, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("tubelib_addons1:harvester_base_active", { + description = "Tubelib Harvester Base", + tiles = { + -- up, down, right, left, back, front + 'tubelib_front.png', + 'tubelib_addons1_harvester.png', + }, + + on_receive_fields = on_receive_fields, + on_timer = keep_running, + allow_metadata_inventory_put = allow_metadata_inventory_put, + allow_metadata_inventory_take = allow_metadata_inventory_take, + + paramtype = "light", + sunlight_propagates = true, + groups = {crumbly=0, not_in_creative_inventory=1}, + is_ground_content = false, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_craft({ + output = "tubelib_addons1:harvester_base", + recipe = { + {"default:steel_ingot", "default:mese_crystal", "default:steel_ingot"}, + {"default:steel_ingot", "default:mese_crystal", "tubelib:tube1"}, + {"group:wood", "default:mese_crystal", "group:wood"}, + }, +}) + + +tubelib.register_node("tubelib_addons1:harvester_base", {}, { + on_pull_item = function(pos, side) + local meta = minetest.get_meta(pos) + return tubelib.get_item(meta, "main") + end, + on_push_item = function(pos, side, item) + if item:get_name() == "tubelib_addons1:biofuel" then + local meta = minetest.get_meta(pos) + return tubelib.put_item(meta, "fuel", item) + end + return false + end, + on_unpull_item = function(pos, side, item) + local meta = minetest.get_meta(pos) + return tubelib.put_item(meta, "main", item) + end, + on_recv_message = function(pos, topic, payload) + local meta = minetest.get_meta(pos) + local this = minetest.deserialize(meta:get_string("this")) + if topic == "on" then + start_the_machine(pos, this, meta) + elseif topic == "off" then + stop_the_machine(pos, this, meta) + elseif topic == "state" then + return tubelib.statestring(this.running) + elseif topic == "fuel" then + local meta = minetest.get_meta(pos) + return tubelib.fuelstate(meta, "fuel") + else + return "unsupported" + end + end, +}) + + +-- update to v0.08 +minetest.register_lbm({ + label = "[tubelib_addons1] Harvester update", + name = "tubelib_addons1:update", + nodenames = {"tubelib_addons1:harvester_base", "tubelib:harvester_base_active"}, + run_at_every_load = false, + action = function(pos, node) + local meta = minetest.get_meta(pos) + local this = minetest.deserialize(meta:get_string("this")) + if this then + this.working_pos = this.copter_pos or working_start_pos(pos) + meta:set_string("this", minetest.serialize(this)) + end + end +}) + diff --git a/tubelib_addons1/init.lua b/tubelib_addons1/init.lua new file mode 100644 index 0000000..0fa5eda --- /dev/null +++ b/tubelib_addons1/init.lua @@ -0,0 +1,36 @@ +--[[ + + Tubelib Addons 1 + ================ + + Copyright (C) 2017,2018 Joachim Stolberg + + LGPLv2.1+ + See LICENSE.txt for more information + + History: + 2017-09-08 v0.01 first version + 2017-09-17 v0.02 harvester added + 2017-10-02 v0.03 fermenter and reformer added + 2017-10-07 v0.04 Ice, now and corals added to the Quarry + 2017-10-24 v0.05 Harvester reworked and optimized + 2017-10-29 v0.06 Adapted to Tubelib v0.07 + 2017-12-29 v0.07 Support for Farming Redo added + 2018-01-01 v0.08 Harvester Copter removed + 2018-01-04 v0.09 Funnel added + 2018-01-28 v0.10 command 'fuel' added for Quarry and Harvester + +]]-- + +if tubelib.version >= 0.07 then + dofile(minetest.get_modpath("tubelib_addons1") .. "/quarry.lua") + dofile(minetest.get_modpath("tubelib_addons1") .. "/grinder.lua") + dofile(minetest.get_modpath("tubelib_addons1") .. '/autocrafter.lua') + dofile(minetest.get_modpath("tubelib_addons1") .. '/harvester.lua') + dofile(minetest.get_modpath("tubelib_addons1") .. '/fermenter.lua') + dofile(minetest.get_modpath("tubelib_addons1") .. '/reformer.lua') + dofile(minetest.get_modpath("tubelib_addons1") .. '/funnel.lua') + dofile(minetest.get_modpath("tubelib_addons1") .. "/pusher_fast.lua") +else + print("[tubelib_addons1] Version 0.07+ of Tubelib Mod is required!") +end \ No newline at end of file diff --git a/tubelib_addons1/mod.conf b/tubelib_addons1/mod.conf new file mode 100644 index 0000000..c35eabb --- /dev/null +++ b/tubelib_addons1/mod.conf @@ -0,0 +1 @@ +name=tubelib_addons1 diff --git a/tubelib_addons1/pusher_fast.lua b/tubelib_addons1/pusher_fast.lua new file mode 100644 index 0000000..1a9f8b0 --- /dev/null +++ b/tubelib_addons1/pusher_fast.lua @@ -0,0 +1,243 @@ +--[[ + + Tubelib Addons 1 + ================ + + Copyright (C) 2017-2018 Joachim Stolberg + + LGPLv2.1+ + See LICENSE.txt for more information + + pusher_fast.lua: + + Fast pusher for push/pull operation of StackItems from chests or other + inventory/server nodes to tubes or other inventory/server nodes. + + The Pusher supports the following messages: + - topic = "on", payload = nil + - topic = "off", payload = nil + - topic = "state", payload = nil, + response is "running", "stopped", "standby", "blocked", or "not supported" + +]]-- + +-- +--------+ +-- / /| +-- +--------+ | +-- IN (L) -->| |x--> OUT (R) +-- | PUSHER | + +-- | |/ +-- +--------+ + +local RUNNING_STATE = 10 + +local function switch_on(pos, node) + local meta = minetest.get_meta(pos) + local number = meta:get_string("number") + meta:set_int("running", RUNNING_STATE) + meta:set_string("infotext", "Fast Pusher "..number..": running") + node.name = "tubelib_addons1:pusher_fast_active" + minetest.swap_node(pos, node) + minetest.get_node_timer(pos):start(1) + return false +end + +local function switch_off(pos, node) + local meta = minetest.get_meta(pos) + local number = meta:get_string("number") + meta:set_int("running", tubelib.STATE_STOPPED) + meta:set_string("infotext", "Fast Pusher "..number..": stopped") + node.name = "tubelib_addons1:pusher_fast" + minetest.swap_node(pos, node) + minetest.get_node_timer(pos):stop() + return false +end + +local function goto_standby(pos, node) + local meta = minetest.get_meta(pos) + local number = meta:get_string("number") + meta:set_int("running", tubelib.STATE_STANDBY) + meta:set_string("infotext", "Fast Pusher "..number..": standby") + node.name = "tubelib_addons1:pusher_fast" + minetest.swap_node(pos, node) + minetest.get_node_timer(pos):start(20) + return false +end + +local function goto_blocked(pos, node) + local meta = minetest.get_meta(pos) + local number = meta:get_string("number") + meta:set_int("running", tubelib.STATE_BLOCKED) + meta:set_string("infotext", "Fast Pusher "..number..": blocked") + node.name = "tubelib_addons1:pusher_fast" + minetest.swap_node(pos, node) + minetest.get_node_timer(pos):start(20) + return false +end + +local function keep_running(pos, elapsed) + local meta = minetest.get_meta(pos) + local number = meta:get_string("number") + local running = meta:get_int("running") - 1 + local player_name = meta:get_string("player_name") + local items = tubelib.pull_items(pos, "L", player_name) -- <<=== tubelib + if items ~= nil then + if tubelib.push_items(pos, "R", items, player_name) == false then -- <<=== tubelib + -- place item back + tubelib.unpull_items(pos, "L", items, player_name) -- <<=== tubelib + local node = minetest.get_node(pos) + return goto_blocked(pos, node) + end + if running <= 0 then + local node = minetest.get_node(pos) + return switch_on(pos, node) + else + -- reload running state + running = RUNNING_STATE + end + else + if running <= 0 then + local node = minetest.get_node(pos) + return goto_standby(pos, node) + end + end + meta:set_int("running", running) + return true +end + +minetest.register_node("tubelib_addons1:pusher_fast", { + description = "Tubelib Fast Pusher", + tiles = { + -- up, down, right, left, back, front + 'tubelib_addons1_pusher.png', + 'tubelib_addons1_pusher.png', + 'tubelib_outp.png', + 'tubelib_inp.png', + "tubelib_addons1_pusher.png^[transformR180]", + "tubelib_addons1_pusher.png", + }, + + after_place_node = function(pos, placer) + local meta = minetest.get_meta(pos) + meta:set_string("player_name", placer:get_player_name()) + local number = tubelib.add_node(pos, "tubelib_addons1:pusher_fast") + meta:set_string("number", number) + meta:set_string("infotext", "Pusher "..number..": stopped") + end, + + on_rightclick = function(pos, node, clicker) + if not minetest.is_protected(pos, clicker:get_player_name()) then + switch_on(pos, node) + end + end, + + after_dig_node = function(pos) + tubelib.remove_node(pos) + end, + + on_timer = keep_running, + + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + groups = {choppy=2, cracky=2, crumbly=2}, + is_ground_content = false, + sounds = default.node_sound_wood_defaults(), +}) + + +minetest.register_node("tubelib_addons1:pusher_fast_active", { + description = "Tubelib Fast Pusher", + tiles = { + -- up, down, right, left, back, front + { + image = "tubelib_addons1_pusher_an.png", + backface_culling = false, + animation = { + type = "vertical_frames", + aspect_w = 32, + aspect_h = 32, + length = 1.0, + }, + }, + { + image = "tubelib_addons1_pusher_an.png", + backface_culling = false, + animation = { + type = "vertical_frames", + aspect_w = 32, + aspect_h = 32, + length = 1.0, + }, + }, + 'tubelib_outp.png', + 'tubelib_inp.png', + { + image = "tubelib_addons1_pusher_an.png^[transformR180]", + backface_culling = false, + animation = { + type = "vertical_frames", + aspect_w = 32, + aspect_h = 32, + length = 1.0, + }, + }, + { + image = "tubelib_addons1_pusher_an.png", + backface_culling = false, + animation = { + type = "vertical_frames", + aspect_w = 32, + aspect_h = 32, + length = 1.0, + }, + }, + }, + + on_rightclick = function(pos, node, clicker) + if not minetest.is_protected(pos, clicker:get_player_name()) then + switch_off(pos, node) + end + end, + + on_timer = keep_running, + + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + groups = {crumbly=0, not_in_creative_inventory=1}, + is_ground_content = false, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_craft({ + output = "tubelib_addons1:pusher_fast", + recipe = { + {"", "tubelib:pusher", ""}, + {"", "tubelib:pusher", ""}, + {"", "tubelib:pusher", ""}, + }, +}) + +--------------------------------------------------------------- tubelib +tubelib.register_node("tubelib_addons1:pusher_fast", {"tubelib_addons1:pusher_fast_active"}, { + on_pull_item = nil, -- pusher has no inventory + on_push_item = nil, -- pusher has no inventory + on_unpull_item = nil, -- pusher has no inventory + + on_recv_message = function(pos, topic, payload) + local node = minetest.get_node(pos) + if topic == "on" then + return switch_on(pos, node) + elseif topic == "off" then + return switch_off(pos, node) + elseif topic == "state" then + local meta = minetest.get_meta(pos) + local running = meta:get_int("running") or tubelib.STATE_STOPPED + return tubelib.statestring(running) + else + return "not supported" + end + end, +}) +--------------------------------------------------------------- tubelib diff --git a/tubelib_addons1/quarry.lua b/tubelib_addons1/quarry.lua new file mode 100644 index 0000000..e305f96 --- /dev/null +++ b/tubelib_addons1/quarry.lua @@ -0,0 +1,466 @@ +--[[ + + Tubelib Addons 1 + ================ + + Copyright (C) 2017 Joachim Stolberg + + LGPLv2.1+ + See LICENSE.txt for more information + + quarry.lua + + Quarry machine to dig stones and other ground blocks. + + The Quarry digs a hole 5x5 blocks large and up to 25 blocks deep. + It starts at the given level (0 is same level as the quarry block, + 1 is one level higher and so on)) and goes down to the given depth number. + It digs one block every 4 seconds. + It requires one item Bio Fuel per 16 blocks. + +]]-- + +local CYCLE_TIME = 4 +local BURNING_TIME = 16 +local TICKS_TO_SLEEP = 5 +local STOP_STATE = 0 +local FAULT_STATE = -2 + +local Depth2Idx = {[1]=1 ,[2]=2, [3]=3, [5]=4, [10]=5, [15]=6, [20]=7, [25]=8} +local Level2Idx = {[2]=1, [1]=2, [0]=3, [-1]=4, [-2]=5, [-3]=6, + [-5]=7, [-10]=8, [-15]=9, [-20]=10} + +local function quarry_formspec(meta, state) + local depth = meta:get_int("max_levels") or 1 + local start_level = meta:get_int("start_level") or 1 + local endless = meta:get_int("endless") or 0 + local fuel = meta:get_int("fuel") or 0 + -- some recalculations + endless = endless == 1 and "true" or "false" + if state == tubelib.RUNNING then + fuel = fuel * 100/BURNING_TIME + else + fuel = 0 + end + + return "size[9,8]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "dropdown[0,0;1.5;level;2,1,0,-1,-2,-3,-5,-10,-15,-20;"..Level2Idx[start_level].."]".. + "label[1.6,0.2;Start level]".. + "dropdown[0,1;1.5;depth;1,2,3,5,10,15,20,25;"..Depth2Idx[depth].."]".. + "label[1.6,1.2;Digging depth]".. + "checkbox[0,2;endless;Run endless;"..endless.."]".. + "list[context;main;5,0;4,4;]".. + "list[context;fuel;1.5,3;1,1;]".. + "item_image[1.5,3;1,1;tubelib_addons1:biofuel]".. + "image[2.5,3;1,1;default_furnace_fire_bg.png^[lowpart:".. + fuel..":default_furnace_fire_fg.png]".. + "image_button[3.5,3;1,1;".. tubelib.state_button(state) ..";button;]".. + "list[current_player;main;0.5,4.3;8,4;]".. + "listring[context;main]".. + "listring[current_player;main]" +end + +local function get_pos(pos, facedir, side) + local offs = {F=0, R=1, B=2, L=3, D=4, U=5} + local dst_pos = table.copy(pos) + facedir = (facedir + offs[side]) % 4 + local dir = minetest.facedir_to_dir(facedir) + return vector.add(dst_pos, dir) +end + +local function allow_metadata_inventory_put(pos, listname, index, stack, player) + if minetest.is_protected(pos, player:get_player_name()) then + return 0 + end + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if listname == "main" then + return stack:get_count() + elseif listname == "fuel" and stack:get_name() == "tubelib_addons1:biofuel" then + return stack:get_count() + end + return 0 +end + +local function allow_metadata_inventory_take(pos, listname, index, stack, player) + if minetest.is_protected(pos, player:get_player_name()) then + return 0 + end + return stack:get_count() +end + +local function start_the_machine(pos) + local meta = minetest.get_meta(pos) + local node = minetest.get_node(pos) + local number = meta:get_string("number") + meta:set_int("running", TICKS_TO_SLEEP) + meta:set_string("infotext", "Tubelib Quarry "..number..": running") + meta:set_string("formspec", quarry_formspec(meta, tubelib.RUNNING)) + node.name = "tubelib_addons1:quarry_active" + minetest.swap_node(pos, node) + minetest.get_node_timer(pos):start(CYCLE_TIME) + return false +end + +local function stop_the_machine(pos) + local meta = minetest.get_meta(pos) + local node = minetest.get_node(pos) + local number = meta:get_string("number") + meta:set_int("running", STOP_STATE) + meta:set_int("idx", 1) -- restart from the beginning + meta:set_string("quarry_pos", nil) + meta:set_string("infotext", "Tubelib Quarry "..number..": stopped") + meta:set_string("formspec", quarry_formspec(meta, tubelib.STOPPED)) + node.name = "tubelib_addons1:quarry" + minetest.swap_node(pos, node) + minetest.get_node_timer(pos):stop() + return false +end + +local function goto_fault(pos) + local meta = minetest.get_meta(pos) + local node = minetest.get_node(pos) + local number = meta:get_string("number") + meta:set_int("running", FAULT_STATE) + meta:set_string("infotext", "Tubelib Quarry "..number..": fault") + meta:set_string("formspec", quarry_formspec(meta, tubelib.FAULT)) + node.name = "tubelib_addons1:quarry" + minetest.swap_node(pos, node) + minetest.get_node_timer(pos):stop() + return false +end + +local QuarrySchedule = {0,0,3,3,3,3,2,2,2,2,1,1,1,1,0,3,0,0,3,3,2,2,1,0,0} + +local ResultNodes = { + ["default:cobble"] = "default:cobble", + ["default:stone"] = "default:cobble", + ["default:mossycobble"] = "default:mossycobble", + ["default:desert_stone"] = "default:desert_cobble", + ["default:clay"] = "default:clay_lump", + ["default:stone_with_coal"] = "default:coal_lump", + ["default:stone_with_iron"] = "default:iron_lump", + ["default:stone_with_copper"] = "default:copper_lump", + ["default:stone_with_gold"] = "default:gold_lump", + ["default:gravel"] = "default:gravel", + ["default:stone_with_mese"] = "default:meselamp", + ["default:stone_with_tin"] = "default:tin_lump", + ["default:stone_with_diamond"] = "default:diamond", + ["default:dirt"] = "default:dirt", + ["default:dirt_with_grass"] = "default:dirt", + ["default:dirt_with_grass_footsteps"] = "default:dirt", + ["default:dirt_with_dry_grass"] = "default:dirt", + ["default:dirt_with_snow"] = "default:dirt", + ["default:dirt_with_rainforest_litter"] = "default:dirt", + ["default:sand"] = "default:sand", + ["default:desert_sand"] = "default:desert_sand", + ["default:silver_sand"] = "default:silver_sand", + ["moreores:mineral_silver"] = "moreores:silver_lump", + ["moreores:mineral_mithril"] = "moreores:mithril_lump", + ["stairs:stair_cobble"] = "stairs:stair_cobble", + ["stairs:stair_mossycobble"] = "stairs:stair_mossycobble", + ["stairs:stair_desert_cobble"] = "stairs:stair_desert_cobble", + ["default:cactus"] = "default:cactus", + ["default:ice"] = "default:ice", + ["default:snowblock"] = "default:snowblock", + ["default:dirt_with_snow"] = "default:dirt", + ["default:snow"] = "default:snow", + ["default:coral_skeleton"] = "default:coral_skeleton", + ["default:coral_orange"] = "default:coral_skeleton", + ["default:coral_brown"] = "default:coral_skeleton", +} + + +local function get_next_pos(pos, facedir, dir) + facedir = (facedir + dir) % 4 + return vector.add(pos, core.facedir_to_dir(facedir)) +end + +local function quarry_next_node(pos, meta) + local idx = meta:get_int("idx") + local facedir = meta:get_int("facedir") + local owner = meta:get_string("owner") + local endless = meta:get_int("endless") + local curr_level = meta:get_int("curr_level") + local stop_level = pos.y + meta:get_int("start_level") + - meta:get_int("max_levels") + + 1 + + local quarry_pos = minetest.string_to_pos(meta:get_string("quarry_pos")) + if quarry_pos == nil then + curr_level = pos.y + meta:get_int("start_level") -- start level + quarry_pos = get_pos(pos, facedir, "L") + quarry_pos.y = curr_level + idx = 1 + elseif idx < #QuarrySchedule then + quarry_pos = get_next_pos(quarry_pos, facedir, QuarrySchedule[idx]) + idx = idx + 1 + elseif curr_level > stop_level then + curr_level = curr_level - 1 + quarry_pos = get_pos(pos, facedir, "L") + quarry_pos.y = curr_level + idx = 1 + elseif endless == 1 then -- farming mode + quarry_pos = get_pos(pos, facedir, "L") + quarry_pos.y = pos.y + meta:get_int("start_level") -- start level + idx = 1 + else + curr_level = pos.y + meta:get_int("start_level") -- start level + meta:set_int("idx", 1) + meta:set_string("quarry_pos", nil) + return false -- stopped + end + meta:set_int("curr_level", curr_level) + meta:set_int("idx", idx) + meta:set_string("quarry_pos", minetest.pos_to_string(quarry_pos)) + + if minetest.is_protected(quarry_pos, owner) then + minetest.chat_send_player(owner, "[Tubelib Quarry] Area is protected!") + return nil -- fault + end + + local node = minetest.get_node_or_nil(quarry_pos) + if node == nil then + return true + end + + local number = meta:get_string("number") + if ResultNodes[node.name] ~= nil then + local inv = meta:get_inventory() + if inv:room_for_item("main", ItemStack(node.name)) then + minetest.remove_node(quarry_pos) + inv:add_item("main", ItemStack(ResultNodes[node.name])) + meta:set_string("infotext", "Tubelib Quarry "..number.. + ": running "..idx.."/"..(curr_level-pos.y)) + return true + else + return nil -- fault + end + end + meta:set_string("infotext", "Tubelib Quarry "..number.. + ": running "..idx.."/"..(curr_level-pos.y)) + return true +end + +local function keep_running(pos, elapsed) + local meta = minetest.get_meta(pos) + local running = meta:get_int("running") - 1 + local fuel = meta:get_int("fuel") or 0 + local inv = meta:get_inventory() + -- check fuel + if fuel <= 0 then + if tubelib.get_this_item(meta, "fuel", 1) == nil then + return goto_fault(pos) + end + fuel = BURNING_TIME + else + fuel = fuel - 1 + end + meta:set_int("fuel", fuel) + + local busy = quarry_next_node(pos, meta) + if busy == true then + if running <= STOP_STATE then + return start_the_machine(pos) + else + running = TICKS_TO_SLEEP + end + elseif busy == nil then + return goto_fault(pos) + else + return stop_the_machine(pos) + end + meta:set_int("running", running) + meta:set_string("formspec", quarry_formspec(meta, tubelib.RUNNING)) + return true +end + +local function on_receive_fields(pos, formname, fields, player) + if minetest.is_protected(pos, player:get_player_name()) then + return + end + local meta = minetest.get_meta(pos) + + local max_levels = meta:get_int("max_levels") + if fields.depth then + max_levels = tonumber(fields.depth) + end + if max_levels ~= meta:get_int("max_levels") then + meta:set_string("quarry_pos", nil) -- reset the quarry + stop_the_machine(pos) + meta:set_int("max_levels", max_levels) + end + + local start_level = meta:get_int("start_level") or 0 + if fields.level ~= nil then + start_level = tonumber(fields.level) + end + if start_level ~= meta:get_int("start_level") then + meta:set_string("quarry_pos", nil) -- reset the quarry + stop_the_machine(pos) + meta:set_int("start_level", start_level) + end + + local endless = meta:get_int("endless") or 0 + if fields.endless ~= nil then + endless = fields.endless == "true" and 1 or 0 + end + meta:set_int("endless", endless) + + local running = meta:get_int("running") or STOP_STATE + if fields.button ~= nil then + if running > STOP_STATE or running == FAULT_STATE then + stop_the_machine(pos) + else + start_the_machine(pos) + end + else + meta:set_string("formspec", quarry_formspec(meta, tubelib.state(running))) + end +end + +minetest.register_node("tubelib_addons1:quarry", { + description = "Tubelib Quarry", + tiles = { + -- up, down, right, left, back, front + 'tubelib_front.png', + 'tubelib_addons1_quarry.png', + 'tubelib_addons1_quarry.png', + 'tubelib_addons1_quarry_passive.png', + 'tubelib_addons1_quarry.png', + 'tubelib_addons1_quarry.png^[transformFX', + }, + + on_construct = function(pos) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + inv:set_size('main', 16) + inv:set_size('fuel', 1) + end, + + after_place_node = function(pos, placer) + local number = tubelib.add_node(pos, "tubelib_addons1:quarry") + local meta = minetest.get_meta(pos) + meta:set_string("infotext", "Quarry "..number..": stopped") + local facedir = minetest.dir_to_facedir(placer:get_look_dir(), false) + meta:set_int("facedir", facedir) + meta:set_string("number", number) + meta:set_string("owner", placer:get_player_name()) + meta:set_int("running", STOP_STATE) + meta:set_int("endless", 0) + meta:set_int("curr_level", -1) + meta:set_int("max_levels", 1) + meta:set_string("formspec", quarry_formspec(meta, tubelib.STOPPED)) + end, + + on_receive_fields = on_receive_fields, + + on_dig = function(pos, node, puncher, pointed_thing) + if minetest.is_protected(pos, puncher:get_player_name()) then + return + end + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if inv:is_empty("main") then + minetest.node_dig(pos, node, puncher, pointed_thing) + tubelib.remove_node(pos) + end + end, + + allow_metadata_inventory_put = allow_metadata_inventory_put, + allow_metadata_inventory_take = allow_metadata_inventory_take, + + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + groups = {choppy=2, cracky=2, crumbly=2}, + is_ground_content = false, + sounds = default.node_sound_wood_defaults(), +}) + + +minetest.register_node("tubelib_addons1:quarry_active", { + description = "Tubelib Quarry", + tiles = { + -- up, down, right, left, back, front + + 'tubelib_front.png', + 'tubelib_addons1_quarry.png', + 'tubelib_addons1_quarry.png', + { + image = 'tubelib_addons1_quarry_active.png', + backface_culling = false, + animation = { + type = "vertical_frames", + aspect_w = 32, + aspect_h = 32, + length = 2.0, + }, + }, + 'tubelib_addons1_quarry.png', + 'tubelib_addons1_quarry.png^[transformFX', + }, + + on_receive_fields = on_receive_fields, + + on_timer = keep_running, + + allow_metadata_inventory_put = allow_metadata_inventory_put, + allow_metadata_inventory_take = allow_metadata_inventory_take, + + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + groups = {crumbly=0, not_in_creative_inventory=1}, + is_ground_content = false, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_craft({ + output = "tubelib_addons1:quarry", + recipe = { + {"group:wood", "default:mese_crystal", "group:wood"}, + {"default:steel_ingot", "default:mese_crystal", "tubelib:tube1"}, + {"group:wood", "default:mese_crystal", "group:wood"}, + }, +}) + + +tubelib.register_node("tubelib_addons1:quarry", {"tubelib_addons1:quarry_active"}, { + on_pull_item = function(pos, side) + local meta = minetest.get_meta(pos) + return tubelib.get_item(meta, "main") + end, + on_push_item = function(pos, side, item) + if item:get_name() == "tubelib_addons1:biofuel" then + local meta = minetest.get_meta(pos) + return tubelib.put_item(meta, "fuel", item) + end + return false + end, + on_unpull_item = function(pos, side, item) + local meta = minetest.get_meta(pos) + return tubelib.put_item(meta, "main", item) + end, + + on_recv_message = function(pos, topic, payload) + if topic == "on" then + start_the_machine(pos) + elseif topic == "off" then + stop_the_machine(pos) + elseif topic == "state" then + local meta = minetest.get_meta(pos) + local running = meta:get_int("running") + return tubelib.statestring(running) + elseif topic == "fuel" then + local meta = minetest.get_meta(pos) + return tubelib.fuelstate(meta, "fuel") + else + return "unsupported" + end + end, +}) + diff --git a/tubelib_addons1/reformer.lua b/tubelib_addons1/reformer.lua new file mode 100644 index 0000000..fb79d4a --- /dev/null +++ b/tubelib_addons1/reformer.lua @@ -0,0 +1,309 @@ +--[[ + + Tubelib Addons 1 + ================ + + Copyright (C) 2017 Joachim Stolberg + + LGPLv2.1+ + See LICENSE.txt for more information + + reformer.lua + + The Reformer converts 4 Bio Gas items into one Bio Fuel item, + needed by Harvester and Quarry. + +]]-- + +local CYCLE_TIME = 6 +local TICKS_TO_SLEEP = 5 +local STOP_STATE = 0 +local STANDBY_STATE = -1 +local FAULT_STATE = -2 + +local function formspec(state) + return "size[8,8]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "list[context;src;0,0;3,3;]".. + "item_image[0,0;1,1;tubelib_addons1:biogas]".. + "image[3.5,1;1,1;tubelib_gui_arrow.png]".. + "image_button[3.5,3;1,1;".. tubelib.state_button(state) ..";button;]".. + "list[context;dst;5,0;3,3;]".. + "item_image[5,0;1,1;tubelib_addons1:biofuel]".. + "list[current_player;main;0,4.3;8,4;]".. + "listring[context;dst]".. + "listring[current_player;main]".. + "listring[context;src]".. + "listring[current_player;main]" +end + +local function allow_metadata_inventory_put(pos, listname, index, stack, player) + if minetest.is_protected(pos, player:get_player_name()) then + return 0 + end + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if listname == "src" and stack:get_name() == "tubelib_addons1:biogas" then + return stack:get_count() + elseif listname == "dst" then + return stack:get_count() + end + return 0 +end + +local function allow_metadata_inventory_move(pos, from_list, from_index, to_list, to_index, count, player) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local stack = inv:get_stack(from_list, from_index) + return allow_metadata_inventory_put(pos, to_list, to_index, stack, player) +end + +local function allow_metadata_inventory_take(pos, listname, index, stack, player) + if minetest.is_protected(pos, player:get_player_name()) then + return 0 + end + return stack:get_count() +end + + +local function place_top(pos, facedir, placer) + if minetest.is_protected(pos, placer:get_player_name()) then + return false + end + local node = minetest.get_node(pos) + if node.name ~= "air" then + return false + end + minetest.add_node(pos, {name="tubelib_addons1:reformer_top", param2=facedir}) + return true +end + +local function convert_biogas_to_biofuel(meta) + local inv = meta:get_inventory() + local biofuel = ItemStack("tubelib_addons1:biofuel") + if inv:room_for_item("dst", biofuel) then -- enough output space? + local items = tubelib.get_num_items(meta, "src", 4) + if items then -- input available? + if items:get_name() == "tubelib_addons1:biogas" then -- valid input? + inv:add_item("dst", biofuel) + return true + else + inv:add_item("src", items) + return nil -- error + end + else + return false -- standby + end + else + return false -- standby + end +end + +local function start_the_machine(pos) + local meta = minetest.get_meta(pos) + local number = meta:get_string("number") + meta:set_int("running", TICKS_TO_SLEEP) + meta:set_string("infotext", "Tubelib Reformer "..number..": running") + meta:set_string("formspec", formspec(tubelib.RUNNING)) + minetest.get_node_timer(pos):start(CYCLE_TIME) + return false +end + +local function stop_the_machine(pos) + local meta = minetest.get_meta(pos) + local number = meta:get_string("number") + meta:set_int("running", STOP_STATE) + minetest.get_node_timer(pos):stop() + meta:set_string("infotext", "Tubelib Reformer "..number..": stopped") + meta:set_string("formspec", formspec(tubelib.STOPPED)) + return false +end + +local function goto_sleep(pos) + local meta = minetest.get_meta(pos) + local number = meta:get_string("number") + meta:set_int("running", STOP_STATE) + minetest.get_node_timer(pos):start(CYCLE_TIME * TICKS_TO_SLEEP) + meta:set_string("infotext", "Tubelib Reformer "..number..": standby") + meta:set_string("formspec", formspec(tubelib.STANDBY)) + return false +end + +local function goto_fault(pos) + local meta = minetest.get_meta(pos) + local number = meta:get_string("number") + meta:set_int("running", FAULT_STATE) + minetest.get_node_timer(pos):stop() + meta:set_string("infotext", "Tubelib Reformer "..number..": fault") + meta:set_string("formspec", formspec(tubelib.FAULT)) + return false +end + +local function keep_running(pos, elapsed) + local meta = minetest.get_meta(pos) + local running = meta:get_int("running") - 1 + local res = convert_biogas_to_biofuel(meta) + + if res == true then + if running <= STOP_STATE then + return start_the_machine(pos) + else + running = TICKS_TO_SLEEP + end + elseif res == false then + if running <= STOP_STATE then + local node = minetest.get_node(pos) + return goto_sleep(pos, node) + end + else + return goto_fault(pos) + end + meta:set_int("running", running) + meta:set_string("formspec", formspec(tubelib.RUNNING)) + return true +end + +local function on_receive_fields(pos, formname, fields, player) + if minetest.is_protected(pos, player:get_player_name()) then + return + end + local meta = minetest.get_meta(pos) + local running = meta:get_int("running") or STOP_STATE + if fields.button ~= nil then + if running > STOP_STATE or running == FAULT_STATE then + stop_the_machine(pos) + else + start_the_machine(pos) + end + end +end + + +minetest.register_node("tubelib_addons1:reformer", { + description = "Tubelib Reformer", + inventory_image = "tubelib_addons1_reformer_inventory.png", + tiles = { + -- up, down, right, left, back, front + 'tubelib_front.png', + 'tubelib_front.png', + 'tubelib_addons1_reformer1_bottom.png', + 'tubelib_addons1_reformer1_bottom.png', + 'tubelib_addons1_reformer2_bottom.png', + 'tubelib_addons1_reformer2_bottom.png', + }, + + selection_box = { + type = "fixed", + fixed = { -8/16, -8/16, -8/16, 8/16, 24/16, 8/16 }, + }, + + on_construct = function(pos) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + inv:set_size('src', 9) + inv:set_size('dst', 9) + end, + + after_place_node = function(pos, placer) + local facedir = minetest.dir_to_facedir(placer:get_look_dir(), false) + if place_top({x=pos.x, y=pos.y+1, z=pos.z}, facedir, placer) == false then + minetest.remove_node(pos) + return + end + local number = tubelib.add_node(pos, "tubelib_addons1:reformer") + local meta = minetest.get_meta(pos) + meta:set_string("number", number) + meta:set_int("running", STOP_STATE) + meta:set_string("infotext", "Tubelib Reformer "..number..": stopped") + meta:set_string("formspec", formspec(tubelib.STOPPED)) + end, + + on_dig = function(pos, node, puncher, pointed_thing) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if inv:is_empty("dst") and inv:is_empty("src") then + minetest.node_dig(pos, node, puncher, pointed_thing) + minetest.remove_node({x=pos.x, y=pos.y+1, z=pos.z}) + tubelib.remove_node(pos) + end + end, + + on_timer = keep_running, + on_receive_fields = on_receive_fields, + allow_metadata_inventory_put = allow_metadata_inventory_put, + allow_metadata_inventory_move = allow_metadata_inventory_move, + allow_metadata_inventory_take = allow_metadata_inventory_take, + + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + groups = {choppy=2, cracky=2, crumbly=2}, + is_ground_content = false, + sounds = default.node_sound_metal_defaults(), +}) + + +minetest.register_node("tubelib_addons1:reformer_top", { + description = "Tubelib Reformer Top", + tiles = { + -- up, down, right, left, back, front + 'tubelib_front.png', + "tubelib_front.png", + 'tubelib_addons1_reformer1_top.png', + 'tubelib_addons1_reformer1_top.png', + 'tubelib_addons1_reformer2_top.png', + 'tubelib_addons1_reformer2_top.png', + }, + + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + groups = {crumbly=0, not_in_creative_inventory=1}, + is_ground_content = false, +}) + +minetest.register_craftitem("tubelib_addons1:biofuel", { + description = "Bio Fuel", + inventory_image = "tubelib_addons1_biofuel.png", +}) + + +minetest.register_craft({ + output = "tubelib_addons1:reformer", + recipe = { + {"default:steel_ingot", "default:clay", "default:steel_ingot"}, + {"tubelib:tube1", "default:mese_crystal", "tubelib:tube1"}, + {"default:steel_ingot", "group:wood", "default:steel_ingot"}, + }, +}) + + +tubelib.register_node("tubelib_addons1:reformer", {}, { + on_pull_item = function(pos, side) + local meta = minetest.get_meta(pos) + return tubelib.get_item(meta, "dst") + end, + on_push_item = function(pos, side, item) + local meta = minetest.get_meta(pos) + return tubelib.put_item(meta, "src", item) + end, + on_unpull_item = function(pos, side, item) + local meta = minetest.get_meta(pos) + return tubelib.put_item(meta, "dst", item) + end, + on_recv_message = function(pos, topic, payload) + if topic == "on" then + start_the_machine(pos) + elseif topic == "off" then + stop_the_machine(pos) + elseif topic == "state" then + local meta = minetest.get_meta(pos) + local running = meta:get_int("running") + return tubelib.statestring(running) + else + return "unsupported" + end + end, +}) diff --git a/tubelib_addons1/textures/tubelib_addons1.png b/tubelib_addons1/textures/tubelib_addons1.png new file mode 100644 index 0000000000000000000000000000000000000000..7f31da9eeeb5a13bf8c6d4d503aaed4c5297d64f GIT binary patch literal 554604 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

Dg^xSc#v(T6nX~=PTSq) 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 z zvfKc|?50_p?V4K0kh3C@A}C~(1%|U?DFG6t#BrE~AnUp&0Ozi!O#k}NH&)x*FQz+( zdJ}*4^9>-Mj9IQ3CcWe}$Kv7in6KgPZvX!Mm!_E%W|p?~wp0a+%mVkv)99nllGHkx zq&($2tcChm#bA)@_?2w`{n-ZgI+Hy#6%{TV=5>Ug7BaS z0D&kaAtd@}fJ7uXX+vpzb)BUN?oY$%>}49(+u~3E?0SFfk@=(`^(rb}f4JMD3T=OQ z|Kav<7@Q_)0lb>4y7bH;_a=_}!*F$#6Cw~YDQN;Jr35ucCy^5+H~|+NA>bJ0#+W2g zX#zk0rn1gGKewk-P)U6KcF7feKDJ3pMdntkrIN+&w9l9D__%v|IyUDy!JK7AyTEUcU}RetCXM%J8&1JUpD5c3M?6CR4pi850^?6Njhg-nwvo zQ#+FunG&2=iK3K-RwgBtEU~kX5JuB!ql1sBlx0O%8%bGsd~BwX_Px8jN-l4zVV<*G zdZJPGmsdA`|Hr$@%qkDfxqEy(jgu>vf~E82b{QGb>^!?+e;99W^2I7AK1-C~o>jR- zg8E3ym5he9-DqA?lZRenQkPk^pl{x0I_T%8&IevDqjO|)mAhy~LL=zQ%T=Q4-+lLf zcGEQXZPT5bfq}FzWpylyd?cO2sn_i|`8RL##iEW*NQN0EMJnu>lUdYTVSAkI-09AQ zArndpS(i#>S*mA! ze`j1Eiw%%SQG!Ys7eN4+Kxe<@X0_h_!yj)?&8c3f^Qjxg(M88msuZ$P(tqLa}Zui6Q#-IOkz1k$_ZfZ}C zFb~|C*)b5qJRX|+p&t&<)6n~RNhyb8V^BCCbnavK=r_wkK+1^FXAgll{a~H8boPd; zwJp{_X+ZGWS}Ayz2u2CgAOxidzx(aeAAdLgi+_2!ShJ>|n`4;62+Vm;l*s#WIJ6J* zJRP2=c_j6k0wssjEEHjkK0o&TQ(Ui#j3*d)|LhaRjB(nImg!(bva$IR`~)O=)gfWqMvuIezeB#K93Q2Ra2mGf9@h7l9A(aFda)VUDcVltUX!`UeAOu zOIVmDsNZN=kmw*91QL~y^JJ_uSNQj{1bR12GDb1=vc}w+R1Ujp!$fG4rPqBV$l%ie} z;t-IeLe7&toSMa&CQ>wKd%UADlE41ztHW{r`|s|~r}@?O;%;|19Q0eSR>bMnuNxi}JL&`N_`?fXFxv&QnTPn-u~QLL!L(1Obpz0Hll#{nVUW z0wAT#%KQaOBO*nL6uV<*jYXt@K!AAfg%oL){xpbyh(Ezr`jXRcCT-0>m;VV0F0zym z0*qsl1!tTw-SKvM_%Ct)8`1stP4c)VpKjDqrX^vF0I_}V#?fl)hDX}`J)FN&{qJwY z!xh_ICk;(X5Q6yN+lB;B5MQ3bTX+1tLqrlI7e8$(1R#JABPoi!tP4cof-}xu@c#3c z1N_7vUgjA9NB~F(fpeZ_X^0Vk{M0c3KuQQA#d(^Y^MELoOtK_K0xul{K!EPl#~2B` zw1fm7gc355KMe~0Sv3FvL_O+%MgWk+NI7STiZK9S%L9yObEQIoYC; z5Y;fud^r@Q@|Mg4@rFr7&TThOI)F=a20+h`;bOVCyvlxj|2*{b;nXeH*_V%fceeFP zuCF9xAqGFqHZKLClO9>uPn;2_Vd&#xl{B3-L!d;jmogC2H*R^61TXtx63elw5+peF z;51bUnf27S^Dxgv&5_gnZOBBuxlp@ZGxYPh?dxUo;r*kYoXk*VAxptIKg@>Hn!NFkf-TwFMnQ1I-0p2yL19qeCQh@vl!+w zf-f(ulnf&qCp!!tBQ<(%`;jN4tVM+QhriXSQkUE6)9r2?%?nBX@adr{mNCY%#>>mH z?+4>eo=jI)wbA-GG>*+lil?J-1_hOf z&@>Yjz&SEReTF*cA^34}Gzrr&sWvPtJr_tKG~L{FIy#)^sT(GlVYQ&%hwuLDKnc8i zy}WyVKAn4x3E}e(AMSHmPm{KBc>QMStbaH>1!Xw5kGnYrE>J-vhts4=T2~A_(I>K5 zC_?<8tu@XzS#`nEDlkU94Q*$~!9<76ac0UdHZm{C`80p}yxw}HtHZiTBJusCjrOKV78l9# zf)a>M$6?abY}`Z-hrZs@vKCzVk3Wu|zcZY|tLw$x!)br&7Pa{C)5qXLnXE`8Am*!^ zsvkQ~oWs#tJ@=d-#lV1)+b;uCzQ`nJ%v-<86X0Q{qccRG(#54(UNDTb>4ss_T3b8C z<8i9jST0Z`{`SN4`44)tO0O=;PhXD5X3Prm{^MtF33Vj`5H>ME2sM2 z{0kc))y-A;^RHL$KkYt#-d|rV zfBlPhKmPIY^ZTwYiuQPVI<*8a2JoH`LwU@i7e?z%wZ(vDa(b{2yR-F3C_zCzL(08O z2~f)tKX;)!yF61u0_SMG9kpI<(rL0r2T$29mVf;I@!|2zIljBT*xfddcSD&K z=hOM|*tCPo5`hfEM5l&JmU!n@#X6Vu)Q{c4JU%tI4^37|q|_nE9J!1;>)WJ}_MZo=u@Jv=uNDWQl`rlp|5GwDTchZAW|1_+i*0mKsw+88b= z1>O%c0ebmHefy`?a14(Rz4K0RR`Bxf^J%px4~M3C9v_b*MP4tZp4_nK!SO^0AY_qk zm5@Zc^J#kjdA~nTd7S_iNhK(cT>5$wrj8tT4kFeYrW8!GGtLGQB^P7w5NW#hKmXHe zKH=kIJI{twwkcQBV1w}x{nP#M^f>Am>ngQI>yGLUIZ)>Vr*e_k#MtM%@i?~6rx7Ft zp~__n%&P>-ZJ?e$+)eZ7vx?O#-jA9wKn6fi_knUuH~!r(Gd;%s;7LU5Tzj;an^lp@ zp`V()zWvYzkJU;E5!-#VJ?E5qL!=Ow%d0TO@vIMB_ru47@zE2yxh@HfDusM$Xpj$I zMl*#Z6XlYQlSYb6;50Zhfnc<{3fa~pp}`T;#c{G@>)&2oau)48pPuxmADR$Qq(TVN z9lg^)ECx%Ek|NIwy6TTZJ9kg}?%Z2T;PUlK2!TQuOQKMAjcbmE0Mu(X8jT1lVbkc_ zqfHZj`IgI-aSo%63X)m7-F;69|I7d8?a&R+57TLH&reRKQf0(UU?vR?f?eLK=j?&-ro{L zLI@xb1QOx!>A{Q!8Kn%7VT>dKi2yMKDa2}B6B5Y_9tA*(-M-b67K(cpB8emtKteeU zJ}}PL7i*+6k{BTnAOr|OAOr!(*pKI913-k5%kA=I9ri_sju4M`$L`!wN&$c}3_hw< ztv0I{s2m~wRPDuRgCxe-9vVt1A%t;85Mu~QRdS`GwXCf8a!q3J&Q0yNzr0ic03ZNK zL_t)6MI=7(7=weLgDN%%5S?+84lV!!p+NXgsG1@ImBsWo)qoLI_0yG>j7l0-k_};At=(0Z0g7e7RD`VLb1r;F<5CX@YUS z$Z6Adhv#uw6$o^H7?@9rn)Z6yJx$GdW;|VO6Pc3WI7dbzm6Aflrt3|dr4mycA>yJ) z%OzP}s4q`D$}Ja^GtnMG!OC{%oALDZn^$C_^Wd~b-_xe^#`!!$7v}xLCz<9OVM?M+@(Xl7)QOUWq%5@^$ogjyTe06d0?YlSaX);r=9c!PXjW%KcG{;jHG;tG&fNeYFstnvTy_sj*o=Lq` zLIF7C9b~BhK&7aj-R$N`TLKU*T`tm_w~DH;+aC#=l%m7n%nTVTX@oD250r|pUtPbx zT;1O_ZW7%d?BtLIE<@Azw)fs5L~L7Kq!mrXY;^GP_I-~Ms#*puyeCsQhd{d7Dr;j)~cyYYOm>*c~t;q$|eqWF_<-fb7vVvy~JW=V=6#8-cbbH)x zmI>$Q!?=5D@;tlPlDncM`_&3YJn(>K95XN9^_I+y8D}kWAEG%Odoz1&h&Ayvjmu4~gmhz^?0kGS(eMyil1L#%h>SBdv`i(WN_%F%|*2+*F&QtHF{v5zVEmcS)S&3VqG8svs6rj+uhAgtFPZA z-~1}I#!ZtoRx=Ttb=qo20_7p2`PdOaCKY{mvshP~=UWquKR(aHSzDMF8+dv=kMlGP zjsR_YOY>06i|B$(g4g`h_dTK%iKy#Tn-C%?vviu=?oOZ2bG>AL{#RAk4%S2|K>LAs zblyaCgvBb$`^KM6`s!*y(J#w&^W?%z+M^vCJGqHUGwW%Xrqj{P#!oGQ#IMV%OqA9& z-iXid$HUXS*yL4NSR0)uiIj}tGhTP^S>(3%`mh&&-uAO2TKC6goWM=iI8EI zB(S2)5W{A%r0;$uDN^qOmom!}N-5`J9K-diVjj(D=NL;CWktMb&N`E6uslXu)~TII z41qFAP)MrIO*>6TLE=>9fb<#y-t+MGKG{i z-7F|moQ}iv^x112taDYB07Jy65*nQR^r=g8QC8B8)O$>2CRsWSwn#G!eC!G5Y#KCS z5l{rfE>^j9uA9!m&))hhQ8`P@`4>74Fs&}Ok3!N*#=L8=LEY)*0(M%d6FPzhjV zgmT6}a;lm}*Lhx~dDl20xCw?PF?h;QZdZ9Xw7bW>QfRfWvQkM^iLFqe>X|ayAH0$x zBGo#YptZ4ra31CPIp`^<9I}LpluJRo#vk@}((vuKOA1u?L5ifv3Tv?M{JO5&vyTqb ziWxEo4?uXHXNyYy@eiMdv6q~A4SA7dykZqmF2-g-vlX{A(NgXMXI>G+!oU~{_x`$ z5+eiZZCot!TvQ-!0KZr$HwOmH`51u>b{@N#honrT*Qj-fV2X;VJSo$xJfFvt}Hr{ATnLsYNOw&w=lyfEWic0bF7g7)@l?sGJ1jZ;LRVooGmq`|#ck>XP zizK+VwS6C5AcO#;Ku8E-Ja#WesTb8hzS#W%NQ^=XmB>iqOIHC1APlE51`-Jg;h%^T zyet54&XYV1A^g<07wI055J1FvoV{^Ch>$|PSb$#gi3kt^?Xit95Fm)~l9VbEDHHkA zSAhRdwU?a=Ys^1|h9V*fA@~?V@Y;B7A~HYE7>M96f8&u#oU^Bxe0HaBZdMapjvafuhY)Km z|Nj4vyoz0KAi?>`SLT)EDdc5^Y4TdBiaZr~^+mhgsO5y5Xrp>cq+jE9qo+A9Q{)ny z&y;6ME30}VoA>WV?*gNkif^>;_1V`jVuow3xUXfERc_+D97OypHdo^BzP*|Z_Z#hR&r6NL9`Th4#N)UkT zL+(s}XkIm~vSF>Yyni>&%i6RCsu&k*l)f2^VCDQ68Rd*ug2Z~vnNVb=RVh=`@!dwH ziE-9YA~}(Zvzwhxt~wV)LsCtIR4F7a%24%(-#-MGwZd4^(6`%uyKi3k;8S%m<@fI{ zS_v+V^T~#|?M$y2)DmVMVyY#k1b~t;LMW9|QAOW=)u)AE;s9#fY%-=$qeOK*Ipjrl zbepC)-uNP~rQ&NV4sld=QiZLMz7QCM9 zysVtk7@<@|nvH3Y@@^yV?>c`a$)ghertK!b)<|lq%M`f5>o_q^8pBDFyo&kiKfFH* z1;JOz<=x$GP`B542_Z6>Pp4TD1we`5LNLPwBeiWPM1CFD7>nkd3kd|3WRyvt$jcYq zZqtUD)ylT*Ms>ocV7Q(qn`iZ8C~Y- z{Fo@=^xJ=-#?>>!-n_oOJ@g+wK7M*w3k?}76j?GPfN2R83zM=y7i7-Av1RHVUT4keX3t)XHST2%DFbE|c5aa`wG5hcwKO$$On(@4V&=iG;UJe?__ z1&dost?clk!OEYmS1AYqS`)V`)CwW_hvTIR+IH=qefRc!x%~X$$ONUT0)F9cOFMZ}7g3EHLzvA89yKfXI7$KQVY zmNE9zhj&5}u8~S4Ox8%2HKhXDP?XgrUuxKFbPO@Ll5>%rpaQI4C@YlG)-*y21om_~ z5>iVc)}|E6;Z?&0(?U)2$_ZmsQPAUT6Z*?E|M>2#TKV0t-!9f3&ks!}n1oEKP-eNN z*=52|x9Cb*+)7!M4f-|NH6ep;uR>0QW@9)2C?z?UIm6@m0cuW>*fm9u!qA($&M0}h zjGQsW3`KFC=1ju*x;{Lv!?wM<+lTB@U4>x2rUG0DHJ+T!g>mc#wnQJIRfZ^qZpk4= z*>L2zSZf+0B+a=PrMZyShx6qsiL`5UzPh#OUhH=rCFJ30^E{@? zv1zoBC4;4mq*7{?In(LnUCO$r6{D}khK2Idb|%GyT{#! zu=(Rz$h*HFyWcMQTMT2F-dEL>bxlv7sNjUtXXXZKJ^t_^te!ARDH4XYR>m2ZoKm8c z-0p^FU>zx~6&a_ekC)}T5JE~Wsgw!;6_6sK_)MOd*5sHgR3NniRDfsJh)^<*OOA;$ zYFcCZ7RqyROaY*l`tZX;$)#2xj8H;y&Z<#u-=>t{zq#8p7SHDEF(H zMk9h4Hs;MYR7uk8|L$`85$}FjoA&L$j)u~GOYv`0zXgm z2>|9)=JQ-it)+fWE2uy|H(ix+rj#tXK&?RF^J0-am+vve3Y9V{gb+%?XW)lCkM_sY z_<{Rlz(`9 z3@J&&j8@C+SMQJ4@w%+HFNQz=i!Ts@vvygbQb10TkZ~N>9CFPGT!ieL+aH>{-If3u zmt_gw)eusqgd$QU6h~ID*fj*3B-Koi6bYB&aNF#=KBV;Fc+8kLL#woSI!{mM>+v$V z6u$oT{deEJv~G+(6~c%FDrhcsnwCT{CQk&!Qe$-Y_nW>o(WPl#))*=ys}G!TN+|-N zgw_hH_0#AY)euJAQoOBqFNRIqJf6qXG@;CW*HMB$e>^>&E{~^)O8D-#ufO~G+-FERQ$}hbDL^ei2tFN00$d3dQ}z>TDTl492%j!bq4?G` zO6k+(Ixg#JoX6R2Zq@yZO=r~ccm?2Gk;;-!Wx6bv=~{RansUY4R!WJck&v+Dvc^b+ z^syAEoRN|+M-V7Wg=tzF+2&kgtZst7*GkG%($jLH9Q(E{m0agJ6oF<-yA zNg-M9Ddk+3L`n$x{5YMKYZXZwZW^N$F`6?$AVCZ%ARrSi=H~-Lw-y3iP`OMY=Q6Zi z$;7WUSvcHuLeeEJa~!)tQc6#!)q0m9UZ>UPyt^}RU*BGiW3H7;URemKcpuKk>(yH( ztJ0$1Hc(R2$XYWbupwqfVq+8auigN0m6`W#$5K09!UE>pkSfJEpb)^;tk`WzzApnBt z5V9MyRzmhv8%7ZU6R*7qc4+0??dka3MTBp4ONOgJH{* zQKe+>Tw`Rk$%jH2*PUM19Ak+gIp=AW6r`5zx&%@=R$fxFW05@-hV)$*(T(ef|HuFN zTVHGrwcoKMT*1v5?C zDCD0$K7q^xi4Z~v9%EvZ_~0prk_+d2zLwy8p}2p+hMvx20T#3t^Oe+8&reo2#B`z? z6eLU@GOgZ+d9g0UdGv0g?N;t~=FsmMp^KX-&C{|F&|I=@-(Ef~bGi!3O9iC_B5+QY z#RJKVU?s$_5PYn(-n?MO5W8Y376_fMC>eQpzi7jBFN~oa8Ko>jiXmJ_8)IH=Sg&9P z-S=v1Hj)eH*8*X2Geg<-EmkrgZ3HVgCj^;fwIC%G07CXqpkx9B*D-`xUVP2_flSw$ zQvkwBVI0ZjWK*icPBtye5dbM+B)AY_csPzJmH7k!1Q>(YZ@IIWYp6AstQnH0PwPB}*I#$TmbU+*dVE}my>1#R1PLCPqBTJX@p!tr5aw$Q4sKrd zyLQvJN-%M}952gd7#dOp6LfwGOn}d;U{V{IOR1$YN~kRB9H11a%(;{+#8STaic<#G z7J!hm>{@;NWIz2pZ}$4d8&flSo2I<}X8Y@Z_w~Q6H6_~G!(Rh4ImQ3@AOFLrhfjj@ zUv;Oq?Ku*O^A#UH0wK@u8$g6wkKcdvt0$CDN+`oxfl%^1OfRME?zf+-f5c}_r@Qb(5vu6&h(>jmKvkrCt^6+dnPbn>>2qiv! z|1cg$CRnYN@n?>u^qbzaP0pFn=kgw&Pa*)IlsaFhlJfJ3z@Gxb^nO!Q27=A+{skaF z4&n9xoW)j2_4ohp|MSCt`8y)IL*ssPKZQgPsxd>;?`uiPeBm~KMF@=J__u%iH$DW# z>R;?1w%jHvV7lU`55PIp&pi*JzCcb&-+;6ay&niL7yq0oJH60)|438u-9LISA(m(32**a zD4BBc@Bi=r%g)z|{I0WK9IOELshNH`ud zR@`mO*Z?RLrvB0H}1L42KA^F__Xk#Dv1=5akgSKdis<_ zgPdcpHm_gbQmo@;K3>mEh+!j1=LPw!VE>7W}*sH>JBdhbiFOo29hIhWw;vREp}_C`=z=WFP86bM^K)Vk(ema*oH zjX^@7k`ilew5bKp=d1VL&ZHtXjbgwz+g?eruG9H4QpSX2TC&UIA`GXLHA08#o;&9l z1F)h6BS_Du=vFUU#w2MBu1o5-C=HG$sWmQ>&8gO368q+H}kqbZbJE zHhXbB5zfhYo|Tq4Q!Euq(G4l0LT0&^RTYluD-!2L_kXthh>Jj;%b7rO1`G_B5NK-L%oF%}45H8Dd@|2TGaA-QM`MgYsw3LXV=8&c2 zcCF)iMb3nwyB)4eDLM5!5);>49-pQhtL~JN&x6;Z25MJKDOMmg)#H<;j8FxVHv4{v z$s5gF^xhT9sBUq-_!weE>{K`OX0}s|v7|~w0jMQG&TN@&rGyE*y<={zxx@;kpy-Sm zFN?EL8AC{|zNC~lFM0B0SyP1y1?&=Is$5XPj1p1`lCm$DAQQ?N5}3~mK`aC)@|QP< zl;gBcP%7|LD^P-v>CSz1&$EO5= z%BqARNO&Pws%Xj3G|sJ)ow!8Pv6OPGnH8Ed*brh)g3+#(rsbyGq1j0B@M)=7 zkpZK4y@q+M&ILcCTPPGpfeB9UUu<^$AWW_~eE4v_Obc&_(V7cceWg&D&bv*|8F{)K zeemtTm8OgHDbz;Gn3DAY2{|036vBE)G3P+qo^VRmInAq+hAc}8AwN8X6mVT!baI)2 z60R8E9N4eEeARYz4VU?{{`~PM3==|dPDSCpHi=qeq!G#o`*=PHh1yW(QcRg66O62D z%#anQw>K&!WA?*Sx+xM3~Rl z)A4DsE=a=|W26#UxYDGc@0*4YJY7#A`ORL17=0`iaJNz3N9Qx8#&h#q%nR zCOKEmSjd4;aBE?betK~07@_hSO^&Q)zS)vtC-&{8F?gCDLX5|!RcnD15eO}8(@U4; zzH0uMj*r*06+(0Pg>=Dz1Oml#V3zH6mmDp)%E)kxV$zATn8MnwUVK79;Al68T{ z4?Y!-xl5jxEc%XbZ^(Yv?Kb-9{3!%2EhBg_H|r zY`f`NAycuNp+SJ?^El7Vh7usl>{9{Lv%ZtdH6|CCK%-Q&a-MzLb5e0xtQ7q2g`6h) z!~5~|?d!jO@h|`Ni@&Cn=46xDL0W|WaQf*##mgT+3%&LL03ZNKL_t(u47jDIH~P^P zLYIj=K0KROK2sqT;Q0Ng&$E9<$Y+GTQceLN=d6vCN@A_g~r=18B|9srJSEGl+u#3=?s_rGyV=pISnpcpRUjKJ>^IUR;Yd7 z>&}#1{<-=GKtd`4rPR)ASl#mooIL9p5V=v$#~QTX5T#3uC594Qoj$_&eZBnAz_c@| zr7OlMIZpuhufDFe0Mx+uXg|pG^zetj)%odQ@*8s;=*1;~80a)YiU74%eCB-C^X%vK zd69%75`+qXKq%H)DI;1bsDIM=0wS*0rR0nR;g=X*B!Cp3osI}4y3w_kXU^(R>wV^n z-0D(H0Kf#3TK%E{_|pl%RG*(KeRgC*?>!fs3-%nJjDKnX@bjJR>V9be@Hsk|NKP3q zIT5L7(--e*$<;4){IO2&=<>c}>)r&c$l?^^v<=2H_Yar%%a}soq_AmpZY@ZvZW>7& z@4XPfWGE#z+PFF?4H&5l86@viBQ;CG))E0gX;nN~?CN7gTA6@m!?k2IvCEU^szMe5 zq<4{NkcO_;5}a=~pp1Att}%gIQ49I;{md8|E{O_iY#d6>a35eZd9F|0XP6gl}CT_U9H@6GiRR~zTK zkjhdh*HbbbAym}FE0&Z!A%SyjP3!W=XbuacO1P9-%a|>zP$A`<1y>xzw64d~XjtHUz+=Bynl! zng&^nFsG$hTNqPq+s5i4N30N%7edl1Ipd$6P8nj`@qXZ?qPrq33;|N8oKPrrf723~ z*Q=keaeGI*K}V0%VuNLyP2<))PqAX5wJD|gl#HUxB#J}`p6ZgaV??iWZMz0332~tX z3*=m~;*H_ve7#P~-1MUBSt;l&6pMbzO7L1Cg{+n03VpPfhfpzZZ=^usW3p?eRrG_J zr&w}M8FHd7hFo&jGbRdSjF3`^*HT#vP`FTJ@rxh~YK=K!Wkz-Y^x^T5a@_8ul60B@ z6U7WAU`gO?7gRaZM?t%tOviV>X>kxTa8)pj1U8nq|qXNXju(M}R=7B^P7b z#^@5tm_POU3s?izLLlaw^&#p@@RWc`7B9NFAq?6j@#6KsSblgo&a=IFwP_pi__$7U-0V4! zkVz;sZa2LT>2#TfRtQnAg`~GH+WoHe>3W^7+UU)p(Slf)d`kU>gyMX)yJ0YmdOA*} zBMXoS1iy9 ztc2t<^X-Q2Z&c1C7FTH&QccUc8TwbRZd|by6Bj}dGoQ1!Qz`M~i`|!RcQ;#kv(pt} zw==W9T&6Q-w%d1HU@7&(!>mn-WS!#F51lq@U4!#szmXw$#2C>hEY^A#9o1>OS1BQ3 zHNwgSFBJ+2zy0-Bl~o`aS?<~v3%ed&N=|FjG~&xIhnF{6H(YSmb>gxBCr}q~oP$`Oqu5-#U zE6GhOzW!?a`bDQTfeKQK451K9fhwb==1P}oS(kJTuvUsfv!QRKWDm!Y6VL{b<|VGy z2cJU0Ky=L+q$0>t!7xpc3DRxo|L|wObq=qy>jo;A2tFlGu_8rsbJzUpSG(JT-gGQy zY&xBYB{bK2vNd z4%@zz{9Gk}*0B--Q%fx=i`$pAR4AqTP)~ov%Ma!HeJ|{x z!(CIlUK6U6HViqGlB}hi%lN?KBl@Skw6{&T?=p|8JxwGPv=+x}Me;ewxD-Oj<-=2s z>3IqGynzVMeN-)#P}D|06H-6`YDEImc}_7u*WaHVLkS{*QY)dP8@lICpjNaR?5se}v;7;qt>qr9%%pU2dApm8MEJru%*P`7xiref{Or`68M~SmMky z!e}Nrg`1o9)yo!YYz_Ch2*HKm1;e@|E`WErVmMv=>|M7Ngk#f+ij@%(Q`&SAYfZ@` zkAcMN6qnUyjBPJVDOhW_CGC#oN<)m>p_5cCei9}yPKTk@TnVH~p)qvmh2%vmnR9L1 zrb13NCLd^9BF?qK&kwU~Nz)4^sgzVIcDU(72%ToRM9N}j!R9#5HY7(l6evoQw&l$R zbx%vBsfIUqFFMmK@gh{wM)#eOD7B<7{GOz4sd1yVR;-+b}Lmo?_d zMBVNBUbjkUBazU`c)7VZQn27F=VH6>Tv(TRiQEo*Luqx$U6 zMky+nIaB}XX_{QjB~d}9#W7L02i21+rw~Ku0nxn#9=pdvgZUK#foWn z;6twuy|F&GeaATl7-zTe9-CGb@Tbw5o~ec{)~beXc4p}H>9lHvogv8MWu2$R+2lAU zJ||>(v*X)?;wmE{T#9iT8!b0Ow|c8g?Kf=S9~#wS2_?j)BZu2&XtkC+B-rkTQ09co zwAjtAlNw`=567wL1rar-*!J?~wsS5`liT)GsOnb#c%IkjDwNg6$=c1H4O?Lv5mMru zms+NEe09H%xnziK4>vc%&0(*oSjNeF#}(Y&bsJ-RETzzXBj@-uxe@{Y7}0OU#XgS9Vmi}qC1QR!F32m;h#dN@8aCPp z<-E%^c7~mg_B>wauoA}X8bS@CEiYc`wv&}4E+K?Gt>gXe;p^A0#$}NjUcT&ZZx0e> z@_w}wRrtl5{q3#~E`|i#odNDgcO}5Py%w4ZRb9v#Qo)G4_B**5I!19?*6mj2ke;6A ztDTUNX%5$Mp(gh`)))>1sVo3EuWJVXyI*~ywQ#}R+=>@3_Pb$lOFEyuNiFi~>}K4cq~Q0%YYzG0kDTJK-+?WPx~$LoB(UWH^|e!1&(D;WY--SEWxQcsjH z=kn%Ylt$~~yANZ(WhgS&r0Y!E3Hq=8m)(a?$E!W9F(DCz5G|Wmcdwq_dn1P!LMg5{ zrfX_&CHdM9W;##j%RDZTDjpJ)4D0G|^w*m03Y(EaqZJ@-o6fLi`b49xso2Ze)@X)i z+jLaWVy%;g{_ej!v;#XH&rhf8oR4crDM%#sS6_Ttz52sHoOj#p>K0B>QpIVeq+sRU zMqf`;aKXk>8Fgz#1X9F(^Igozw1iMnYT0eOUEgWaR41ml3{moMKO-{s5Ey|}&iKBVXc6nSS0Lk5;zy0<`HtC0V zACKo{N~hTcXPGwgFTVZO&*aDN&$oxex=xxiPL(kj*IEmho_lL)g|m%?5W7P3nW22W z{S6Y3lBAksgG1Ns%toRniJu9v|3j~ ztc@{Wzkc)Kr*)ar-Qg}+UrKCr(|08LGGCo&Xk48S`FQofm|rlu?0op@{7-IZP*($o1d#<1&eTQvwl1TT!E>G)S)b%gsL-aUMJyt=w9Yot^*s`>8M zZ&Rp0{qel(cizvOa4lM+aJssjv+6md0vV2zL&3s|ZY`XtU%&nfgo+gscxhnMcDr_? znNG9%`Q7Q`<0GfFQ|)Hh2}U^&Ou*q@y?m){8n5&C8RoT>9}JuS2(;mWdE1 zsbVxu=QY;6yXlH6?;obwMr0Hd_bzMRetGjdZE6U~Wk)&O?e>RV?=JN8WBqu1Q~>|` zoBzoGe;S{B3O+dJR_j8xsrXznsZ0?w$juE;F+Y4n%HdB4c&(>*577n6C{{rFCxcCd ziZLYB=wa98TmS(nArwm~pT2(zE|6!M|CjtJ_{DUxX&bF{&Y2*goIphYB#Zz6;pF`B zvW~XIVmi|v`jX0L>rW(;v)MAr!sUp+^hr>WP!eWaV*YH@iN6@_6fCJAz;GBoJMa85#V4Fh zrzOYyS*rWX2RGgbgX&`vhkP)lWk$wrk@5s?!5tcsq`^JiIb z{rpgBsZz=3gaJYj>1XfJe{KMrd)5X#cTh-3Nf{|4oYml2w-GmYM5>(N{Np?C(>l&T zR7wzh5yo)N6_ckjI_6J5rIJ&{*f#Rj-OI+Pgi9?kLSzDmEx*pwhYyqY(UsAMy4$z= zZU5)r{QBch6RD;(?RB~)huXl<@@2}5tA5+~HGFuSS6`T^(Hce|U54Yy4#m=)`ask51zVGjEc5W<>KRF*4 zDPU;(?XWdnsWf=+Q>H_!C@%>XyQas>k;o``rv&@*FMf3D+Lv#(0Q>~_>FmE-C}(lC#N)f^WxBI!;wAyy!yB_S}=k`-)#;m z)iox+u2?e=8BFTrG+cDXYakT3Sx?zL? zV7OeDB~DZnPFu?An-}++c60m?v>2>)^#0pd~{L=^($w zEJC!_rg2)^Mt=3?u2q@?UoM&O2n8#|zB8MH04(bqmbC(@N|RLG&niyJTFQlSdXzId_M zLQI#K7FKHT-f1H?n_+VhO0nYr%|J50!*ZGY?qJ%MpRU*AlVipM$te-W@a^lDn|ApA zpN_q`nU-~#d~}TQ97AEicDGy3SR>`?E7vTgT4Qxnz0u#+L}Lo)i?u%79J-hH13(ri z!%|(e(K*V?cGtICo&#Pl%g4vL>$Gk#l=X59l>|Z|Mc@)|_B%Vl>7%>5dF5?A9mf)> zHWe$nrS^wb3of}hUpx~?Dv7RMp4LIWYT5m?j>pSrjL?P*t>TQ5!otK;vGaW1Zra^$ zr#eD`KR#UNrM!B%`@etMb~nN0%h@H*q=1rgjCl9v zAed;lSZqR$DU@V!9n)>|ZAtVQ4j;B+J2cxtb4s>-Hyv}THYKMu-5vJQkmVYW=aEwW z=GETi6-gSOVu%(gmP&*oFYj;D0uLYN*Y|HQ%lAJ&B~R&J{+njAQ>EkzdBn{Kfk-a`)TA& z)(s(*6Oo&Sc5*1yHUlV41Ya8>Fs!p$MHf*ZM&)sy!pZ~5r2NaUPli+_~f2W-iAzxB9&uh zT5}|Ha+eRsN2SU3|KsXSer3zDG_Tz^r?cK}_ZoM9{@gtxGb<93QdX*{6k`T}5JM!8 znDK`&;O}7o6NE$|A!QYiWL9QIgopcU?z@e(r$4)24D3A*QFmn0wX;pOY_itc-}n2L zQnUQ{6doVz`-gKsSzTeJk)*00`w;wMCb)95xfBXNeR6;p7ql$Ye1#G566K0y&B+~3 zT|e}Tm0Ygma=|xO`006g-VZKXm-=&U&Yi*2ti6B z&k5%!0TDu8y&x*1j7j84@;cLq0OtgPB|?f^p_CBBggE7#2&I$|l5kEK2JjO_3FAbi zLKpz!6vFt^?>=XuUF81=rw~m$K!gjH=$9HIKmdpkoX?9db)c8`1RsaGpAoR-s@XMJ1ptNG2t9_9Mp+61)fTn)> z{H0PNlwM*As1Srwh>^{gY_>!QrIbjpd7*T!m6mSoF^a*AOh^~pH}d9hAKv}=e2*}4 z4mW*oT*o-Lo?LBKtE-5)^%jDaN@(DtKyte+vm8Ag_HhzA6H1Z8zF#gYl_id8QBtna zscD{`>wqKWkP?_7Fq|=*4}I{YCepAq(T4UkDurbpyhBnl$_aokR=Aza$*leaU z!9#Rf@l5FuLO%^}zk1bl(|%WLp64@|Ccm6Zp;<~um7Z$cb=Dgs7>b@SszVI>_Bo=k z-V}Wo`_?Dws3eG{df)er7hD-@LX6`W+v!~L#qH|)aes(-42}vxE1ml|P!V&PPm>vJ z_u}qm7?QE0A4pM=(M(0o=S$UhUYE!d=Uf;Yz$g;TagrF3^U(B@oi9{V`=RrL9S{%6 zBTCTYyAfj=6GU)kA|?(9;Z?Ccoohq_*MU>MC`ydH!wn}Q#Y8ZD{ndK6n}SbDusq{U zHxi0py(%Y@^a50Yt@n0J5P&g4Ah*t(hT~-I_1%2v{Qi0LF{qp*6w6BO?gu{+!jthG z1ZkXSjBKjA-TpKTMpqF5E=8$@^7P0l2@Zwi|NJ*!g$R9z1tD5f7sKTI&2>2po++4Z z$Yfl7@DM==3`sR((~M2sjLTIfl{g;yew+f1LZe)(u}(u58KE|gDX_Mm60z5_m)@o0 zu`Mc+SA=6-XccMeCr=rjCiC^z+xaZ}@Ue{^%?jxQ^3mPh=02c=@bZRdIXUhpJ0h(J z!E&^=9?x|`#TIP-eA-uYS}icg zx=;$q-i~IP93ttPZ#IQtU|3%@leA>;c0^96(Zk5Ed712s+s)(9~v6+Tg zRO~N)^F0&kbh60_t^>s)dQvV?l`{aox)Cae$+&62j8LIO(~a#=Ph+H%&KLUOVf^rL zz%0&|GS3;u{NY0ve2REVF-l(T4)uCD3zPi#;V1-NZ&_I?O>!=RP0i`hVFGWyx%u|Z z)!{rQFI_NYB?u_05@!JgG24pemY==WZnI#SfWimoY4>nA4F`sO;cPs$&3dI*i|lx|r}MBVZsz4;vTg7okajjF!!S%? zLNp=7j6sy}a-L&?y}?;7x2rkeAhNL9C>iB6U?!uUd5TEiq-L})Zmx<_JLl$GCIkng zicEo+_Ra3F^S;j*WCkEZVX$Bz&u9*v~T0i?|) zFG~LVpAHlZtvz4ojIQPS0*ZBxk<8QxxAvlfTvr0@IVT@7{o9Xy?pSlKxUSgEy zc|~b_@uK?p={yXv&66jX%_Fb25Rrm#?p{H*;tFa+!@&M1YHu_x^l7`rRWSCji1M%P1n57BQvw zpH7utxL^^X6tVSfED9hvotpmn&$1cT4=XhNd|J|?t%T>8(tbK2nt(QGiNnPE(`3tdpjpkpcerLMcyXX#k`|&-( z1Q1*-r;wojbO_cF$^d=Vt6Wyd1d$X|R%Y`}1rcFP2qgf(1wTJG-Fak;AV7p&koKRS z!5B*=^CC+jq?o8+7jH5C!s>^V4)@24yrA+$No{Z5{&Tu~EmyDI`C&Yr++?ElsjDxB zX8?c%gp%&i*lr?>V2sf({)9`o7ebhjtjzwn!Uv$79X_3=-h8$zQ1WHyLKm1nAw)_J zDM3n@eICm$*i)1c!PpGOyMPeplB-O8nLR!a0NuGy7i0Iu)Qd3&Bm^fIUt9--Qn(0y z;1WWNQc5wz%kviy69V+Pj3KbRAUY4mO2JHZ_lUQhSQ)w5e*GJ^`dX}Bn@>LmW03KG z=YBG3q7*ZY7x_}joMH$Lo$Y>{d?u=TM~BI#2(C?;%C8n{XMh*ec{o2G21KpoxnL-u zKGS@(uJ0ViUMd+q+sxOiE6tgvgfbCm=Be~$rc!_`<4kazQgCtK)Sg;BqrDx4(z(nD zx7gEN_vBE&*=EESeUrQ+r+UOzzPftB1vz%d^Z4-N`#lp@D3Zwvv6yGTM6%AsWbQxI zL!YW_etlCV0-Q<45#=Bk|7tTX<`DSEJorILA$zET>S9u%lb6z#(SWSFf8LT1={toZ=#IF zdO4q$`TgNT5;dY>bYq$8BCnXT5KsV*nQhzQd~}?OEElg{tpOuKiBtlSSk0IabYA4a zC1)@Zkb?8zMM;9NfYYgI`*HgI%?p7<+to=-5ywm`WJ+g9+xpb=MX|iyt{x7b{^9*U zE?2CZIzp&5xLR;dnfDHHYX;l5-cBgX#d=d^xe6&LEeQk8F=0+~xn0cm&tm`=VUO((K14P|Y7-6&@?^EQ=(snEl-KJe!Rg=p)87zgH&=9Wb{eRV zq?n0dBf>5w+qZV?6XRsPE?1k%$4DsBT5~}u3xvQdE1Oej+crUU}9b(IOp9ZbC+`muXHHn-QCyQ|gV zcmQrkI|2^WSBjRVC3RzRQ7!UW1bct{{d^7E8`U({js%z?gyWQe+60DT27z)$XG^i! z6d2P8Nh!@amI5snTnqjD$&Ida#FjI*T~{7L7yEYXpLYk$*>+oU5J1cnCyyr-l%~sQ zc-I8)VW#IPxsQiG*mPcR*<#5b?|s5C;V5W9i65q(U_?QN7%9UycSWW$;~f{A5`iGi z=6JoxO-J5;I7DuVNVhkY5Y$EA+J1L9j5g3bEV61=s@9$@GCufVv}UvZoch5tDsf=X z=ZDTeNS$81mh~we50*&Jc~)rBcZ2sPSDI21e44LCSqVzGPf^P}gjkkTP%4Rj`ZSz| zqeFJP)rzwOY4Fo|JPmE&ImvUfE|(tlAq9tqzQKi9ag^=$4Z=bZeLSDWu+s%vUs3w! ze?4Oy35i`a2;)3c*XwmVIY{()w3w1}J5J92hre2d35GE;j)4TmSgtFY_+j5{uZr94 z7J(#5P{KCbRavS8vFoN&)7lYHjs|a%Q9Lb#q%Izvw=t4w@`vO2xIZUC83o1xaKzGL zLP*S3s}c~c8}AH3JRa-u^<8!~(_QN@MFbPVkdhe%nK5aCVS;StR|ttrrC81gOkup++)9=)E(v0@+3b3=1ndFg`8e*5txz~2 z)SMFyRaxW+PlG)WkZn5zAAkJu1dJ;s5?DqF$sAWOwn9j`SL1WAQRW&mSn#CAQ8kx(YhKtl5MI2;b<`>)EXAjWvXgpbjT zAbGi3s^whN=XkfdBb4Y&M@tsfqAY~e=&+mWrgzCms`?=$FEXv9#nX9o*4HOf zpRp(yLJ{L6%fKXhNNFlV=%3!jQbXzSbEF$Q<|6zB$I26w8|?1PE1LO38st-B8z!9Y?c!2t$iig%Kd3 zoX8;2G&y1izFy2Q<`7x%$)@ReHYCBHeP3GVIc3g~x^Y~n?R9yz$m*lZRI!<_m6DVQ zf%JMcr!v&_)b>L&wB8~VWj~oLlZ^19$RaYk{pnl}-a&U@O=GFTLL#cIl*FbubgayZ zo6XvJBBku7(Rlm#IL7Gz{MQvi5FMLF)D9-E^v(55Ao20zDOcsI>s!ppwpjmX^M55h zblo{#|EpfS5VKeR`2Ku}Q`a!3ZNrNJ!2lk0D}0s9=x)At01qR6t$b zb#(_A#Sj@~gkVUCN=}7L!4swVY6Zcdl>GI-Y}qTMw@Bao^fWw={L_?+{XfvD_AVgG z5+K)|BhJRnzcl=cRd*v<{`k;;YS6>kZ^<*yGLdC|{~X5w|FYhPgb5DT1s5(UzW={U zei;R_B14}GNdOSRWbBMJ?(+Ui(DEN;R0v~&x#X8{FnSpe04@L}K!6FE2IHMa2yw|} zu2M>ue1OXbj`e`xv#;Ru?ExSr7^WlvT=Kp?<3PU{rYWU;(q&y+G ztK;c72IQO%lQ+38$}D#=eA<1aK>Q%bF0@T>V6p{+gqT2FvH;*GDS7_QS1ZQZ>0sJs zqB1r8P-X1Ri?TgKKX}48VMMc%Q>6v(1~Yd4o0l)Iw#)0~^1L&uVpv5t;qCNoD=C| zZ2JL%BOuyybO!2vlsQ8T`)C=Xgz|_9C)sLIetmak4V=zhOfezb_S09_MXA-{XsN&$ zNk$l_C1X?x`n+owMfKgAmoKh2&A~ckX7f1$QXjmJ_Hn=W(R0B$mk^2Z9wi=~?dvpj z5mV@Tmk`A=Ae^L-kQintQ~8^hSBhyL!#G;!yz$fHbN^~vE=pOqRx05i8s zRV}zcfK%6+gu?T_ou>H1*GocC@DzdcE@2{sP`TnLK(6y&fB%(YIpgGb8Zuo1V!{#BgmNw<6NpnSN&fn7Lnz`5cimuu zIUddNJpKC3tg3k5@))=?J|R@(S)oMRnDuJ*?aNm}h_)Yb6nQ@LmNJF+hx60%D5XjX z_VpPfmh%mz_|)u9r-3rWuo!#N3=_*42CRgVk`V<2q=4e?riu_^41G6^);{j~MX7#x zTMaEDpv*u+3_>a?#j40-Oq|lY?R8cOGo<7hBL$(@T5~wngPD8?#<{_mnb@Ytg%DkT zIyV!>Skk<1{oy?1a~?g`T1rWo1_6`2dJV)BRj(fTNmhA2Kg zbx2~$IV2<%RT;sQVy8Fj^5tEXP;BbyTu-Aj`;#dOdb=#go`4rNBt&tMm!+25WpO%> zi+px{yKol921qK)s)%Sh*PXH9P@hvw#`;{&kr$L<`kTLABotBv=VJ8u^~>vKG{61b z(>S=*vUFi!%&+ow-@BsBZm*ZQm@VezvdVEp)6^xDDCV#3?$)y+Q{2OZVtoJpFpO?K z7aS=FjD`7jk+~4gZTs}8?mHhaetsSiN1d@(8!Z?E3@%s*V5j7!bagYYd;7fWo}TKe z(ujmY%2F)O?LaX7`sG%Od{$+PN|T6(sqcnyyIlX-uYbrTtumRgwRZaH=cl%H>s79W zjE*utyIz-sq(jp@J=VLYj%#r^PA0_B`WJVZl+3tblZhTrLmGQ`d%GBY+MoK5?~g?# zvLYxZmicC!oHgmIS68_zt0LQON}O;%jsQ?**`I#@t9hAePGYj39*<2koX&1JS5+ay zsF11Fb5-Wz>3DkD)!rdM_<1+AL%=dE7YrquAUfp0)3)}xmfwAMeIBM$J-z?=nJ_$` z6D829xI&4JLwNmSybHsNVZz)^?bQm%*vdhNcP7wp};Wt>gB69uU|r(de;ntu?D6gDj{;Er!i=} zDO7g7%AXGH?|*t8hqzuYpLXNnWXdI;7tEM2P2QvE9gLl`*8bU_y-paq$$WT!$aI!# zTFrgN7bF%0xt_YO&butiv{|NR^Yxm}vx?Vzk7WFd6g1_qWw7dw0M8=?_oyS($4l zwH2fqTM{GOTo>C_b+ud)gpElEhv1#$Vm_OF{o>BMuAYw02kC-maGOp-UD`Ov7R(oVDWsqYugBlw#Ws>uq&?J%4wxvKWHL7IPvyBWvg%Q*5z^c(AGOa;^DA+ z!5?q=Bh9POoXxu*KYM#qx};4-AIGMr7a7kN-|QC{J!E-St*c-5%9jSw8Ta^MA44RB z2+saJ)e0oY3QgJP6kaYl!te{55)%@f@9K^af(Tk{mzPGF5PHcJ8|tBcK7UrRd_EHx zXDU;d4pm70i?ZgTQNb8>b@!Q_${1r55)j6i))#dS)mpAMC`Dj`zWk3jvuv}PJ$(G> z;o~31_Sn|PEk0&60m3xbRB0SNn!PB#{>x3p%3S~9w|{rqe;V798|rVbD5iueWk0V+)AGkp{1P!1Lma#D zqHE&(Gj^16ehDT>W~5qEsUg~I^Y!}G51U1XlmCam{TnkhQ@ek`&V-Ug&^L11=6DY$kzWeSP2z>f@B*2#QWda`{%=LQc&3d8d3ni$WmwBPJ7TO0h_2cPWfAi*L znRALTV9P0mgaPPwlSPk00I;QEYMjjTlW7lDNSYw+p6W675kNB9w9$g&5@W!R&qr&g zyB8}DvG2^#hTE&Fh#W*-=|$fSnd0k>Rzl4xy_#2?h-n&{y4F(v`q$rcoFtl`mbJZfF^6g zX>V4GRX-WQ=px%r(-;xl+~iuSSy6136~}xU#-{BMLcjUbKPePf37J2T` zLqruQ@}1!RyYHL2t>)^m z8&2IYjy}ssO4M28V6@hn$xNgD?%TWBJU^d?v9(!VTAvags;o373eK+9WudCoa*;{l zOxPWF!_aBTU)|naZx$5AKwX)uTu5s}S&3n={b=#H6lt|t=EsvcJ`aaoz1ozg{j@)I zy|F@I0OSnneP^ACAq<`Q{_XAU?Xv6K?y+SeN0n5rnQcRVMT8WBqj0DjYEK`EZKZDE6=sr@7j;=4rQtCKX%>dnrYOE z5llwwnz6Byiz#$X|MjcuqRI)zpFW&0k%Y3C#wuF?g5cxLw#;<4tg6*g9}jIejMF%9 zLjKtg-)|O6K~P>%l_AY^H+aTCD%RA_bn2?Ox!W#}^|;^F_wUY`7SGRp-AsM3ic?0= z==>CWGkI$*=j1Q`{2R&y5cKp|6D+a2Ai9`IAZ{iXr`q1{pH?e2&zH_ZaQ6ApBTorM zHU_E!CMou`ykXG-Ww<%_O4C_c#)R?`xPbF<%yhPU2!Q=Kq`R-mqLlMOJ?;p71bp1AKx8Zu(vN1hhiGdWWxT*<&q~J{DgQO(}aVC@|JT# z4(A$0w7tp^a7KvGNeBRdOy&Rh_f0=co2z`W&a_~Qxq5o;8OKu#O*8!PtJ}kQ*zX(8 zNZ<9dSr%vzSS~i17D^EH`=9sSFm0~rcDXnojW_A>+3-Y(P64 z^ep>QFyDrnjyVf7i76l>*3CtseAb{^vwxufPe)5m|!`;n1 z%Vlx`<55xLWfT`lHKZSU_501`<=>S!LoP~RmnBYIAeM-NYj#ZoU9S+s&s zOoYjEnh9lH`iK9wODVj3ldsp+tdQ?NbO?cv(4MB7>s!X)@Bi^ZNXn>dn?aVc%rpV2 zO17PEjk78P(m`3TnmT^6QZ;P_?&Bd**6Ct`*RBj zFe3S)V1maODWzW;Vto2^9@>#miVUVz2xa6O20KR}(gAeVo{+tWO*e~M&uL?v6c&ESmmRA)@$v9)}hzY|G zX__D8Ibag2B4d>PKmX=nrj#%E)vb7OJu?$L zJP(UX9e3?~rC+_c`Pcu)A0}gOU#PYjWX>_d8JQvJx63)h+3$Yd5jimBG_Js<5YWSu zlZ3k%sfsd7<1-?NRxdb1^zrc&k-xgt7#Jr?Da2%wlF!TR55I38?*}5uw?CBgQd7#F zpGPHGbLsbRX|6 z0ZvHrC`gTcAACm_Uvnu4a_n(`n5_wCOyEpNL>SVVu9x}GKXo79bzSG?YyBVnZ4LkSZ+~7c#cU=9GXepDWTrBfr9x(>W9rRBvL=&Sv#dEyeV2mA z(P1njVF*H)PEcLTY(ZGy4^OqsgHl}5EYBDsi3_w`=DUaK=Rb7k^O)uGFaE_kJ!f5JQ3p478kc$>rG5rkiNdGD-?wS>re*_aAL?49S2{ zq9XVS7#6BzTJyG^cE{uO?Mw^JDB*-KjW9*^*+Yu$(PF^!8?jo-_MB`;+ttk3c&>-l zQrD-*2}lZ2QG|)$bZE!*WT(A1`yiQ}=8ROcK; zj;LY`)2;}{@jf&R2y0?@cEOMGE-$9rrsI<@o8XX(2NsGnsy`%%`%;p?Bl1i z5`4B&6gb5wF9cJ#YlHO>g*dhjaa@$*dX=?<(OIs9*zfzIYO<3de!VWdhvqme7FoB0 zt{!(|yV>TmTnu%XZDwQdD6)0!j%O?8ahB`DaSSQs70!h=-glk7xt&2EoN&QWxn%ti z+s*@c9MRNzQ4vYhe8IcPY*&l=Y(q$|UoW1XkB4Xf_SN;twB=kfMh{OdCYUEV9K&up z3n|`yS2RZ_Sm^_xFd7p-eHz6Ks*(>w=z3GEup%OPT#v);T}6P=BqF%QN&v#=Iy!F{ zK_pTO21mYLW}PwXb!EnMI!HhcLPbkl;!TP(eo(vvB001BWNkla`ExwnNzGX$aFDZlph`*`k}vmku~k; zlVPl!74rZVBRq|ywQayg5E2Kfkff1M9rR|JFIY4zMI`eyU+{882~Sh+2@9K*-ma>m z6guZZr)Dt0(Esy)J%+%9<}csK)ke)`nhV<0RxkhZ!aa@r0A!pSyl) zx3?m60$Z6e23`~yi_xn*5yaBSWga)*QpKqo!Z4Yl5-+ajlFDL^xdbLL0RH>G-~YRR z+vR!r-Jg_9K&I8?!sbd51eoAF&$TW;JUni0h_R;YTsC8bAQZGmM#;SE?T5!*SrN@e z9Azn`>u|1eN>hpgCl-E~V^x=VO>Jct3VUR%x|-cz%vBtybdD*D_}R?Kl5b!HP(+P?`}UIagAtJQpex zD#Hm8Ac!${K8+vVV@v@crFg-3M(6uolR~9q3n`TRGxo+XS?^2v?%vrPYwi**EmQi9;4(vlEzi3PZ@JiYbZxla*3m-AB11PFcp?!QQe z5TMH~&6lVELB5=+qA&`JlLJ0v# zznqB>N-<8oxx@n_Kq)~=5EBq7FvclFd40#qIiiAKOr2$bDI$z3u5!vVMkQE>QUX9d zGA(bm*IC=T`d}z$nIh+U+SfJaC@Z5K(9l2(xX9$Js7Mg2HC3F(i7=T2XUQp9dahDg zN=`|NiBUE$m9vO(5=mejb^Yj4+~23~zn?43&W-mW=#1aJE)VB@3>pFD%CB#-arE`U z#7KqUh?=MUX)vjrQ^up|$>Y5(EA{fO;z*&ywi_XVy9s3r4uHtTCjQGjW_mZ$wVwBARg zxHz}xV>eX`L3j{EHnn^DWWN1+S>-uKTrj*{Xch>~L25GYsVEat!>mxzA%r8wXjbGH zSl2lq{>4|>FiZhrd%}+&`?o)=e1vm7Q3hXsx0vhzAukKzqbXO6GIV$z+isFvCouc- z2@zJ!CB|qP;-?Rz5aNfo^FrqdAxUY)R1B!PBFUjJQIE`GO{5gg1St^)$~kiu&P{*) zQc49v;c-Iyr=cv_n>Xuj@J%r34`D?Ops8>R$*3Y#_(-ELL2rq=lS1kd{^TJq}UN-EO! zPDql-^zGZ5a~ps6^T$kSCgXm0d_J7-Kh}iPsHXV_b5;iKQErVJ5696b^v$<3DGJR* zvh?czqv}0+X3LWGyolwuOZU0s%5-;Co7>&=5RF8TlmP??&_n~x1Ob`|&`ke8|44Iz z15q>Kf`oYQCA+K3ojUHbX|`Q9LW4Y2x0!=XAd$JSb8RFL5$k>5XVdPwI#0@2X`REU z+02AV+NhNpjztN%T1lm8v$2Vy66WzSv5NjEU%lF9NQgMiOVyR%{qAQE`{mvHyVb_* zACEpPkNd;pe#DB_SG2qAo(_p@EOOaDjr~}D_KVeO+dAwNN<;4XO+&LRy=k^`v+hp! zxtKw^LL52Cu&}e(w({b_ZZ6eu3<5RD%tW)Ev{!z52n>F^kKmu(?p86(E3k#=1oMj#aikhYXe2qOB@uB8xM78J$3 zyLiRlPKIKtC5z3a7h>JLm^ zo%`~an@H2`?K~U^vK*Gv_iye$|NI34__PmY)@UE@e95A5R!TgM{WyhHSI6M@`$hVi zPI|R9KEUH`$RSmArIb!~h`Cg)s;|=QQ&|*(GL}*-Iq@(}yBp03oM@&V-`?&&{k-|& z%hjL0dAz$DpYFV3`}+Ou?c?#wFMdWafB)edPzAH{Gc%~#X{E$z9>*zIjXCAhq0nHu z+9@qQ+=d(z#bj-#jSR44&f8BI4UK)Kq^b&~#2C0A=3$;Mt~D|)y-HpZ#_Q+R7hkUa z^!4Mn-#z4jovZ%lk3T%_hoArAMaYkHJTcPvNGTzLbVmCaV-EA2jp7vZJTdjAt+a9C z!)-_*ktbWVrj|=yGUm+-&WYwZBk87<3UL_Y;WUKoH(M(~%qOu~uL}4VuWViE@4q|T z-Hj=bLHqCj}NhZ_QYMk>pCFFE^ zirua=mGsFM9X8K_G7eKz?Ak^Ei)r+S)0j%QylA4QVUMlb*j2oKW{;2g>u>J%`^9SI z2m1E=$0e4l7phx9$nzgxzq=5Z|I07`hgMaEW4rFERcES3SGBGxDUC2KWhy>OqvPQ) z{qX(Av`VJ)xVIDhlSjlb$}e_W;@Gy;J95fb*( z*8#C0WE2QeFtgNR*bmDTh!~Y@)-@n7fDrN={aH$ReEX!7yb=E|oaXt3lv7jWqf&^|O!y_}q{HFsQl`N&+I~xcZB~uapLqGJ6f6j5SqVUtHUE z?N&RXsyt6ZYhjGAH8XM{qr~d^#x;a z=lc08U3W+%U8AMaLTGJFyQ(j)ZMV|K#<53hmC(PqxcRWXg_!$!Vc@Q5e43({SQK%d zPx=0CuB^SdcKsvux3TJywPITGG^fpOU3JF$NHVCpw2dnn!lc3k%B5wQhiQp18LQjY zA>rk=x!i6ZPW!`gT&8e;-^aucw=pf8A^hqut~ry$GUo^qq<}&xdy{;ml9quU9+uV0 zDktvWh2b{Uo9vvNLYjxX*{*G6i}YZU&|Et=jl|I=FQf_cyi9ZKdoP4^m8zB0SYKbP zUf;g&`}uU3`(c^}dH11ThNWQoIthIEiwN}3Q@S(Bh z?%^~J%QVs3cXw7+MJ_L%Z;cjRBbOLGFG`}HMVL#92^mj^G*156v*z|`nGPu)xL$#- z=&(;|q3z9zf-4YYQ=~$t?eUa{K9z(*dS-rj91HRDS8dfm9Pwhc%bCA>^Ui7g;lp7X z^Zp?`JU%*IpT_?4&o8^qT7!gTDNCi@=@k4JAxkJQ&w2Jl*}3ho@3X z-aT7EaU>TZQ5n=&o%-Zw$`OT#OGxi-dqB9lsht&1@5*{rmqdsDNwPQ%{&?`O-+llB zYvge}{r>l#t~zH8PI-*vHB^VA$1FHWC@_uD7^Rd5X^B(zdstrsOYVn6keu3TZ9sde zfmvu_?w_WTFh@j;!xWYfZ6$Zt)*1QqzO1`iNF3$^C7!16^t9YR9=7dz_Wp3}|IY6} z?^*|#`ZzEUMfJ2FBuU5$hIQr8J_xe;g@8 zT2RRRbezX2)-7x<%shba$!h)BKMvCJ&waSQXdg~br+%nS{dCxW{ml=nt~H{0eCjj!-~ay8rZYl?aS6zBI4#SZ zMKX}3t?=%C$i%J!pOPO6EnIat#$33Z-j}Z3b~~+v5JJY1eaOetLP`1_LY}2TZMk5u z#`Jp%Q>-iV&_6EAQtS3{|Mc}YuWQ#~a&wvzr{DkXv$~dA@wE7`q-88&29dQ^GRAoS zG}?-_A)nJSWS&vgly%9a9Nw1odbho-B#WGZfR>Pt$H3X_?^4FVf=mVb{fsE5Q*=_4 z1pDdWmtqyZe*4Dz*wq_NHbE$ye*NngQj@hf%#-}b|K0AhPcL3RUw!|2A7cTe&tF~t z?B%o9U+qi8`wyqXou6XK8QQg?Tyo5Ls2bZUp#ao%_tGfc)#5lTfBfoU39;EY>7=k| zYcdwBlE%U5j&tA`<7%sgfTq%Qt!5u%E?i`R+|S-s^4EWHl><&ko)({S{Keqa7=tHcsgN`dN&^-d$?@l@u$sz% z80t1AM`~JKRp#+=S*D_^;+o=i;3^dZ)}m@{GtBeTVfx*dpML)0=JhxC{ZoFrE7Pfn zN>mkgYcZTs4lJUpO+`gm<373iB!!queD|S${q`WVlC^GE7C^#Hz1MTliI5C27 zE2tYa^{E6}_UNRu$~CR~HLor# zB2>mIq3-U75K84ly$j&NH1p-fs#R^JtJ~Wn0k>=Oi&s}4zU%MaFZ+l5zy8zz>0kZ) zKVQ`=vf}@HT)!UcZ|<|)eqkZjeZpKU`b`XJ5eS? zfr1f%8JIy@CACBp?WSqFiVA^15J*fyiQzb%9!DVn80Alx06`ze&B#^le$u-$b55nC zQVLNnl(U~>Or(@lM(wUPQVJ$MYm3f#L{IMyREW}RrVb50u5S9|w|e)V?JdGkg0^6$?2W#T5k`L`ex z5DBHLn`g>dUFpBPYrlCCulMln19dO|9(140^%v!IE5eg7ReXB#_jhM<0(>NWAr+eU zqY!x3|D5-e8I)C0OAw-4S4s)`n7MO?nnCn&8N-iIFZpMt0XmQHja2}A28U6hlBlFo zGEt_IO3sBCq?STRW3{o03IOuiBFw=IGOp zO$RgK`G@Grp1Y3JALM#P2$K9C4%Jt~`T(myRKJH&=k{mai{H<9l~=z6q51f|5bgxS z)AdvAd4J~-WG)bvGY%P~3<|_WS6y9qex&;kGYVl^m|`Lp9Lb+(!D1T{2>sFLoJwJV zx~(e!8A@1AfG7pX>)jRzY$Gz4#g7;3>iV)trIaLITt1VUzkC0#ALlQBedDJbrkp%5 z%XtE377`f>D!-|!o9j(n`0;L$R-%?Z$3jT4_@1)MLa>9X@0S!qVUSX5ZHPpXAxr>8 zDy=?$bt4rB7YlMs%XVGeTy>B8i3|Sh`Dez+uiw5NX8*-6pNBc6CC8a^!k7V(OCg3V zl;70V<*H_q4|lWBLTHSXL0}qrITosmP~e~%1|M>g0*tmw8337uk25SiOC^8)*|k(~ z4&kUOT|2zGXdd?yuzGd%ia3Rs@At=_e{tidlzoXagh>=86i^BkN>!aM+FFrpSI$p) zUXrw;02wO7n|H>ko6BxK`Q*`$KmY(7OJPo~N*8VIP*shMfrlw(22gCRl&F_O z3NaEW1GXQQL`kcHAaW5#n+#zYU^-G=tJTW={_j6~JoJlCb)&6iDTI=ULay7D5{eoB z_}zPy;y1s2IUnPEDmej4jvLblS4=`i~&W_xrAJb zwn!{eMr$fW(I1y#|KpYXy=PCy)4cd@RT~RRpc2S{m37h`TQ;H$>9w?(xdRb;=7*R4yqpK7lMBg9S zXmxX4zx;Il?%g5hvfFHo5lYd;wwpuLN?o)UKzKZaF-*Vt?Th*7^NfCCr6I&Ld0&WD zYoS%aAgz^z__X(gsFcu3N>J9p={EO)IHFN1q`;U9M+9kg7d%hP%t3R4pZ&Uh^~vUk zxBHy)uWRIcvFC?u>dO)UfxfaXvz z^Z-QGQe~Ukt>!f3Qifv@pmoE!uo4i0k0A(67gw%C6cWNhLel!uFsOM9rSLSz)y^m> z-o80(Hr*GWzN(yg``uH_srO6Q*tT% z)o#^kslWa9cFBI-RZ^NJLSt?N#ATIQ5NfiDo5R35;hwOawyB0w7{`bthA}LWHW#LDr4txqjwBKR%&0V7Y&HNov-dt8$KJpS5p{)9 z2tQ3Bh9yrI7j4_x9AKGayV31NGRo-5k0}+ZI+;>_xEro-woP3>zqkxbdi~~(1v#gU z(yO-l@ZlIj9{Mzgvc0m-iPnf*C}r{q%Pg!#=h*5sATs3BF!)g@sZGlQ1qvJveMq6* ziuJn60ZXAUr_GJAl}d@{KBhv2x!dS@3dh6v^2N<3*Dt2gANNBjk$|j|T~i+(!!(EJ zOU#rBH&@zdsEtgi%n3?D^rEV{ZPo+`n2&uwFF}=+(A;zq82jT;I4)^<_N=o`rdcj? zT3-uWYo+xvhI!0|soUzl_ow~*>eaQ??%Bn~{%N?qf6^9RC7rF?s{Z!d`+1D1aA90s zXf2_uRE#+l_EGSHO(TTl#_b5GKzMvSmSC;bwnKp;#k7pGPhqtaRc!>Ruy9UkeWU8e zcweSIEWQYZ7gyE&T|dw9S6_bq>|*!!^*$_d%CpwOIJs_CZ(kpm7)ufV^WXjNzqtBr zNlRv=XaB;h3&G_-{NX=-c>m5hmka%7bNbvo7G=_5KYsTuN(q4H#7`7Rsf_pi+1Crm zfFDQdsxm^#Qi@j6Xmzf+&u&pErJuv;aXgoR|A}){;CbL(w`aaADJ_jPMD$a1Jt7vO zdCtwu#_FoEOneR=Ra%~r#b=}K$E$i85Rn;j zE`U%{S>J4JW6zqG)o*^M*IN!l+5R?M{1ZyE5c1n^zxm;ZAA~Y%6aVX9EU^egPH{mL z07Pm%U;T?hqN?0q{^kGs^z@{S5y1ao^M0o$QdNAo8()7Xj6LggJ~GIbI6aOZ>t;be zZH}(Zd6$hs`D4-!3SK!EODBH z6oQDHGfh{O!gxl2{OAEFg+7|J#Ti+^b?fx`{xTb9q!d7m63=NtC70vFz|4q11UY|1 z6z^VLo|Q|S^Y$P9XTnyP#^vU}EX~h2PgULi^M3uc?m;b5YTo)ftG^DaY-SWnl=|E zCqS0NF?CzHzR)T2GRBa~G^b}TyA<>Lcl(>`i(mcx(~`^UuO4R#nRDB!^{Rck^M~VP zRUL}=F>fv_W3U#gK$$%Ig=NON!u4uhNM)Kr%*TF`KREefqlrs3$vIqj|-BEJ1$|Lpm$sp?OjU-tX($FJX^rfzLo=PFZw_uXSkMJjU| z=gp-tMs-pYhQjc4h$73TmCk|@Tf$Nx45Ob1K*{w=D^S2Rp2k#ivk^@vOOn8_^rhSB zszU}GPkvk?0A4?9r!hP|^)FxE{QTAPsSoddIE-;-SuQW@O1rl|^eKbYCgwaW{^G_N zA)FMMpr1?fq*%5cuBu%oPOwaqU*<^JDob@^pop;_7;-G}`ldkzC1P5j-72Zk)*|>k z_C6KZUDV^W484DLb7{2x^!fF}?diK8?h~iWtEzRi1oQPb_tt0vxujUHp|++*nTZq8 zFmf7lx0RJumEQW|8O#1KLUPKov@BUsDf6&Iin}Xqw91*eV3=WbDNThbv7f>el2U5D zwZq`2(SP#d`HSnz$J=2VmiJG4*Qm?O+R5tcuO0!hc6FeXOK}}G#z=-#U{0Kul9#f( zu&eqaln^NNhcOpauoA8)DL5zaj|GW1cNbS6MDjox>W!2Njgw>VlMf_#wQ)o5OQ!W| z)zl_VeuK#_R=YZ%#apfhIXrMC8lXfftQ$VB{u8o@o_9fKYR7b#io1v z`e~Y$!!+(LtGZHx^>^Pr3ee6v5-b#$I#;L>F%=ji=P`4p%d4tuwke0vFZ)ApbfuwE zRR*S#IXDv%<^TX707*naRLnkOM1j}O957BNLKNE@gD6n(aGXm9(7alk+xLSt=3=*5 zH*Hhdum1S{pMuY0M1uV0 zs}G5i&v~qZ{HrYa$2dxu-b*r~KO%eN3a+TWMxI(~Krjz$EH)~_9c=zVC*{rsk)y1mwQ~v5tZ-v86 zSK;>e#?3x+QdL`qWo#PDSh!#*Sg&+0ex9O4-8y|dgyTN7TT4tzAQ$0WwY%t= z)|^g#OmhgJ*rfBtY48YW7oDsBzX>b^m^x7iiYHWU@-+B%ZyzQWC9G$K#<;3|>ew zK9$Ai!{fZWvR!8&;~WwrtyT_-4Z$yI#A2~Xlv!HcIPHvD@=^+Espf^+4ogY<uYEPq)E`$HzSbmQqBja^b+`a6eU@>N=&0nv#z>ue(a30fxzskSzd}l7!aQ z=&qHC5|SW-aVYf)tb_f&N0d!d6BpxTE>vLVBqhqaHuvvlkf5wiAuY zPN$>y1sDanC8y!w=P6x0ubdI0$T51Qv9?BlOC|W=IXQqtRFqY1t+kOUr^;00?B}Vh zwg{LH$H`f1jR8@#Gcg9D07WY;1jzmUtZF3?{amQX-KO2$v~8>ZrTeElv7NG4$l~Hx zxq4|tdU(A5?%Qv))+zIaPDD|;UJ!k&pGT!%0ghHH4|8pV`Dj~Hb z;-;&N5=_7VC=mgr67%4XkNsIHB!s}f#Zkd|Syvma)w$?5&dQHQ*mEi zYh1T(&a-nN&r$c7Q+as%lvDX=EC66&0IVCUwE9^68+8^Ji66s8!xB!9!`WVtGchnQ zNF}?=wX!>Pe`VZuzA0ffaBW-@FcogOCy!=*Izj|Nii|s{fCbJPR$)TAD)K zHqKg2#6Mm?F!Skg^h-p6f8GF`clG>eerf3=gL)( zeOdpC&5lYm#{TK6|M2*5&q6+5$zNWoIi_vZ{hP1<-T(RK|N7#SSD(Dv&C~Se?Yo?H z4iY4S636=?OrgED5@jig7_?HAF>PIsL!Tl6Ymm%R70Q+7m?B|WRjcHMs!F60fl&xX zqAa!6RjXo-n8m3dt4dQs0Y)08QbMHTK3&~xcNgu8o7IO8xBLCfq>&XNfW*hQClJ(b zE6EVZBPu1ts;ae?<1iPmi%81I3<4op1wMt!S%o$RFm;||55UH%lCdOgSI#szj{ysg z^CVFfFWPmLass5_sXvuhpIyCtv9?;iee=E_6BjK|v7~+kav{iJ0zs-?nGlkY z96TUc|Epjzd{`;db( z6>-TCwbia;%A6O>oC@VQh^DDPP)xZLAy85gm)G5ApI*LycYk+xl4zL_4Tpt>{nBkU zlPp{cW+jc5(8z$8bum-!{^WlJB{GUHn}3VwjX|SK_DU$yRaxRZMyq67QdUk$C8f=r zxCAbkN+M3W?W$#2h`5jtLJ5@D*Iix7!(loeCy9=j(ZJH@sxdjolCf|AWGS^mk&<`T z=+ea;69s84AeOQa#@0CmQM^_zn~H~NL?N`aF=gYl)&fn+3tMA`aT-wBxZ0VpL?%HP0YOVGP=q*jbqk?N>~qOrl$PMbf~vI6 zQI;hryGp3iG|f^P$*Le}t%V^W3MXZZNXz?g-hV;%#TQp!`#CK$Z+1;ewBA%H=h~^m zVT^&fC@?e~qEe<_iLhj51d)`Iz=BdK6xQvAqh8XS7?c)D@*HPturfAzsZG%pq>|>v zYiWQ4NCaeIvXM%mX5{<3o`P6k)JBVGEHTn%+s2qLuexRN2y*BrD2jktQU4U{x>ANH zu;*a4L@AJDj*&60n+r~`1Rnvd6#yk<@2te4At~D>X)q?g_++FNLh4G)^I{t*Sy*L# ziVwG={OvzqYpra9OPu$|!-w1c;Vu*?R<+8QRlAY`yS3@Z5dc|$t99{21w)AlN-E=8 zDI_SPtmST_oKaGUWucf7L(Zh6rna?+Xj>49k9{&)teR$-I42E=*Du-Ob-QM5bPKT!miim^|x~<#Qx^lJbPa{fM5VpHUAP$EZAxmMTmbR8s31x&7P`9e8 zH8RXoNjV`>DtemA?$Q`1Yz>TXJf*fZwXLV2_!%;Z%bSKGlv1P<)@osB-=FRto<6*v zh9RM11TD~PR_lxFuCDYvdIA867ne=+Gz}?1Lezk0D>POajRK+Slyh1Dhd@3=D9UG% z3+;AJ8c-IcE`H&zt(DY%CO;zxb@jZV%+VLu2~%lM`Eh@E|KVYn;^UpqoQ-wJ`s!l4 z+11XfzMpa_O1ss%@>80|P_PIvAi-6}I%zaYDO@X^(E>S@Qi!vc%fiyYW>X2xQW47H z7erR;O_L+|MSzg2jZJ}a#DG@(#m^u zPD6oGxZa>~!pC@f|1{3wcwG8ZkQNz06urCJG<9o~h$-a4&Q-gMIz}3fi6tgZjA*QG z8m%=7kX3DjW+4a_`5CeogD0ic#id0>nX+|EBmj)FCN8XuS{7_NjRHBbG)Y<*rsZLO zoaQ+D>2ypn6>Du>)fZPAtDTX!1n*Nc+BGW|mb{E5VOls)sWs7NKOvn3NVXlI0!M08G>WClcBmN*Qv5J*Jp zZFfFEz;l2k)mO2nM8Fwi{t!NV&p)WbEb}nUvyZWq#38cxQ=W%d zueB0Y?cBw7qm==M#ZO9WiO$yMbR1a$K?G*0gsYv=770xawvsuLk**{Y7xE)zhO1}V zYAu99l^G#r-L2f|uq;bqA*x2W8p7hWl5>u^q?mJHpUN`!ImK*Oq7XXkHtV&PD&_2x z*Vaii%}y>$3?&jKDx|G)t^!6amC_`Qq+BFgPBw;;Jcq<>r#Bl5AX#Q1C1}&OF6VMQ z1eBs(E2&F=m|d;Mv;YGO_GK;*{K7dE5+tQ|&Rt(zDP@3|I2qF@ZK{o&#*j)W7;{N& z(^^xV6S0(GWn@a^l;xtAsiXjjc(pOB&Vdj<#C9!F*`_j!&qE(T;yBN?CQ2-{nBpvi z$dD5I%n=kE?tOt$)m2m1yX}q$nMx>83fnZbta&(kLJAa8Dz&Yu$}vc#P+3$)f6g=cJHg9GAt1(>SfRdb93kzkp6c3Kk{OEF^m$A8selalPsq*RHya z06_#o%1qJL#WFZj8p4+vtDnA3WCf;Ac{~@*UDJc zpXLl~g~^3nW$Q)@p(*Q}$T?$_iJtvP6w$a!OJKA9fBxz>Z*y4lzBdZ7DihKpo}Ay)NQShJWiktw<~>rcl>aB9Ol@q&CN|a z&y#9dDIp}QiU`Zlk55laEYz(ljaAom)+lFc!aVs|YQ5gt7|U=9C{dzd=BhJBH^@49 z010*Fln~35O0ZTLR7NW$b(Rj~KmKnnOM=rrKJ9%!s`b{Kc*l zMI9eX|CF3#lu!y(wXJH`xvjN^IPdS5yN7w1C`?6a=WO-r<)uXAQkFDnOHv34(&);` z>bklPaRi7?>a$yph_>4%_;mZBKOSd4XQfqKa5yX}#b5ol(MslEhtr~@(CCi$Wq%*W zK3+ak00NlT+q&ykQYfafe+c7{hAI1rQbeKbYSq?OmlB6@C>&iUprA9h6xGR9p;-!Q ztd;-*F~%ZNj&*VU%6x-Aq>Ps@19OW@&@C@W#i)#ZA-tz!r=`r|OVMk*n#s)*EOwQHU8X{fEP zv?iwDld(o?@!{R^cv!|hS*x^?r-PsR@Y&Crs(~=NoM@TDZnHL0-@REryq)U~>P|*q zx>d8;bqZR+^5O0@4P{zrnRz_1&{7EX`Da&J;o;ba7^{^qN-9)TB$9r)xgri)aiujg zMLgT=c1;)a)EI*ZDbg@3%p|q^@ZmI% zc^OD*&Y85-!y&XQXlezqP7$V4xY)JBvE05NpKim=OItTcS(wVU>*l}R{Hqu4*@8(* z1wt@zA@B=_g^4W*C7dguvQ+;5uK&Z|2owxdN?|4hD5;DOC(7j`SnHfJ!z8P-?jP#L z)|I7_&+?D6bZ6?P$9MaW^J->1=g1J1LR<6>Q z%sG|0pU(9?GXs}1@s|oQ5mNzXqZKf7A*rN503u*U;B)^~O38)Kd;nvV){+XtM;8Sn zfYNe44Ih{N@mVP;5zlW*Da1!}2qQ8R3k1J}@i-%3DLMLFayf@Jt#>UD19LWAOq6{{ zk@7fXACgZg5EU#LOUzPhVT}TL;N$!9CQbP8GzhH~wlUs8CS zq>zr|jIsz@Qb;H?3jKV2RdN6ZEtFr<2Wz70-&fnlY%(jr?=k@w&Ly1 z#l;*BL)FO5=1h0uabGSj3_!WP9ksI}w_H>yG59i1X^hePq@^a1*H>$6RPtq9{4mX? z;S@815@T2u|a4IxWU3Ywgp6U*^0Fxmp=1)%_cP_hxK2*tQl@Jx+d_ zr)SSsh~nXGNDE$Es+{S~no_XRoAn_**JRl@nmar(&WM*V$6dAWZ#Xh@Q zRJB+R$Y*m(aO6RkmhQtIFoSk>^?!8SRZl4y(tKhKf`?^u9Rb_f4flEPBo^Ee@ z%A_m`5*5uV2AfhgK7|~|v-c4)A)95>Hsv&i-b_RVE+Dy#$do8vt)DT<`{|4c%w$Jn zjqz<=Q_lDI*7@vhLV*654-eDv)?aQbDOqqLrQp14>e5YwCvkjmnHV!!ZwZ%@@-jP4 zun&Pyj{CFz^M`-t#R96IAd>?bP~LQXVO&h@-nT(+0J zIXUNZOvYO85r9^8(H*^+(lmz2L_*>C5Ki|=Fg{R?*}<=`lruTRd^p>SZ6hU^!AZq(fS1oN zzj?E#oOlPE)1oN)(=hfv#5|7aho3zO!6L?b#W4X-di3XRFr};$O+ExT`g|!yRI9rp3Iy>O35_Z#fGPdcF0qRG2+FOD!7m{=A3@-C!gHh z^>3~ZLdpmM*MAr<39aR~$%rKj@= z5!#|oIhADKD}HnDmNL`&_Wf#rn5U}rYXq58Y!g~nvl#H zJDg6X(m)_5ELD>*?9Zpoy3Hxy-FNHDf*`R5hx4RsTx_K6VVok9Y_U?NkIsb{{EHXs ztL@_Fzr5{@FYEFj$UnFsE1NCn6|!o|oFC_7gp7~U_5SAcL9mVqAwLSyWnEB8fKq}) z6%r_5eyp?wK;WF555qLNNB2tzfe?}t%2LhNO>}`5#pNIW2>=kva>kp#_!$t2fTFGl zW#p0CNyLX)JVtmtPXHG;qQN&o@=76ItdNri}2r8#Ghiv=zyV-x`i z{2ODH^TFCcfKX1GW%I!}gpgx=d?Dw&zxe?5&nf=KT12W^Q%W;tsr94D3IHB0VU*Ho zwEc0QoDzT(a|jUt7^Aa`86rT=yeu#O_}|5pC}X!j|7Ea_Forpcx+07MB2xZg8RF@i z&FlYT|4Vbq076L48Jvy-C9LoAZrA*2YG~TD>g@^$F$v6ch(3LTB1HQ7``t$`SF24k4O7`NAt*^=h(`)s5j{m00@k`I3m%et z*d0n)5(< zm&?EYn|C=eKrSU4hjB7VaJfI&?reVYq7uwf+#7`1@~~=HM*gMA?lEA(*OV< z07*naR7s_-N9(;eSKGz$+~3}wo;_O5dg{)jnJU#F zVo}tb>$~0ktIP3U-u_2_{qECpx*;6B$JNDrySV#1PygBBASl6M@@1vw%fgN^#aI;L zlaIGwes^c4NKi^i5%O{05y}obcRctX|M;mEG=?B+!ga=phwOk70n$b$~N$oX-kxap+CEKbxZumODpa*Q>&MO#tJ=-bki66-*+i@&3l6FUp!ec~)yJ@9zht2oTJVtU%Eu;;nIIDUCru zV2tNTIj_3&AbDI~)W-ILawH&B;_SpZO~y^HqYCMltm5FdRu^DYg8lL|Oz#)b^3DH_Se`P5~CIdaB9a^W2pvfST3 z0L`yHUBzHyh*TisM6k+E(M=u!Qp{8^B#;5eaThoHGH|&Wf^-*}IfedekBvCxkM}S?OX*_xF?J;>C+q z-SE5jMk>Muy6`CYrKW5uULDSd2m~-uLUWLma-quo?T#sY{$iPO+ILg^Ya?(cT(ve-Uphpyu~VlJfQ);dfa5_ZGHIp><% zV4bDLOq8PJx}6o0<`_cG*`**E@s|1t>IDH2Z*N@ANmBLnMFRlVL|rf!VoZt9D3z*p zJ@qc6kSY0(Kl(?{>*vNFXdE$4gi<9nqR+|s#DEC?NOjDKFvg`OloHOv#4!`h8B=;> zbOK;@!+6|5&blZlW0a7bvrAMpb0!p_B`Gr9=mw*dwQNI%TAy~~eZ!E)xo10m>*ZdxWJ0B}lt-vj25 zfE1Nb5_2YmFx?O?00@Q=rdyA}t;%roBS9pL zoBLZo8A5-HTz$OVe5f5Gfb_SxA3_+Hk0>VKoGmUM6BlXdesgt!%*BW6N`F8%!6W8X z@WW0z$cs_CHDIy|rB~VoXvE|jjIR5F+ z$FDYe{cs!tjzz`$BXTA$*4yiMH)b^TOfBX`vtYx}6H-zNF=U3^`Ox*YT~r}XA*H_0 z-h0My-p)8h$p{m0?#E&9vs&i_c7oLwPN%rr2c@AbMO73rrlO?LgN;!sh|x<`6haFu zA5MG1qAs)?oLObfl?tw zRhP5_sVFocT+Y|l;c@7c#^7;QZ-Wo_ z@Ai}fa9GT%#Y!f047K%;VysK~{`O$KEp@{rrsNJsJNZ1H6?G{|B9CMRGy0e^`b?2H zkFpAP4~|g67`@!qQt;#1NQs3~{g_jBwj!YNI3uj$ngKD1;^hqc?lpquJwurn3jxi&N7Nf*&ojSm#6D@V))fzn(IPc zTvm4SA*7-pDWUfek_E&#3C(IIq_ zr&UQ!xTIq-|?KWj~m{_gab! zxZ9lzT?$1!hW>0*@}tR5o-7r|oIomy8FK(TMLXrDp;Xz2`!xBaG?_2zrj^}!Qj%xP z#yZT2QYcEzvc!x&kh;>RVc?uC=Nr@e{q2!ThUm*e%K|Sh=8TZT$po8pA-mp$4m^KI~7?QG(=h zBTJY_~s56Ot^NifmRT zO++iMC7(ujw;KsV!kM*6C~_VK@QWwQr)5Dnra7nk5fUK_4#$&i#f!zPDoc_gOy2nDm&@|!KnL_kC|qgNeb*5F=yk>T<1>9{b3NLgeERNS4bvU(GZ_ zA|z`U)!4b86aJkvk zRY`y{pvmW98b1BOa;ohbJPw2BgqKQPtTh7y zIn}e$d$7jEgi}gLvQ%(5PS(Qn^~aiP#^Sj*gkxRFi}h?ZYieD^zT_x;NWJM7^QtXZ zgaE*Y>MStoX*4b``-Ae9}Q41nR&?c!q9EZapk1$D*X#?cPj%|)pj zAt-0$@Nn$2RL*ogYUaR8}=m z#%Si%$~Qk^^XI;}`qj<23+0Vbhg3hksF^MaCAL3WGo;{i^gicIU@~JEc5L}$s9!>P z`R$GQ^6lyNl)igNl#oWooG`lS`0m>Aw4Ve7JGl$xdd%WT(;hJEm8B`-gn?+|cD;eY?9i;<^{- zRIUp1=(a(~DNYyz#*ik5KF}Cw@Ejvh3fao5-xu58gX)USUVZhh|NanfeUpI9wTn6D z=n3P5s~kPXi5K&{{v+1B^y=wfesjF-_4`5J+h)#&7%|4gR137onPwt}+mr43V2mFI zQC3uH0y!3!bo~>t{#af7;Qh$I*@s(OI95H`)De+#o^!I@F@=zV^ErDr*|B$%5f{IQ z#TJW8&z67v)$QAzd;Q>Rfr?^E34oZ>&YL0Um_q;`Fve^hWlYo+AwcwuZvTKbPw3*M z=gTj@{{CR#p^N>5tC>zQLQd!JznzYI*PZO?Xj5?3PTh_#e<&`0iq#Xf{^a#Oetm1+ zkJ<%4S1tkr0+?eC7GuaMK#IhB8UxLNvPZa4PASUg{~oEI@!6|y?%kUcK7{JJQ^eMvqiC-)gM29 zF`S(_=ckuXa*Ad!gs8H{7?T-tQ5CbfrkKvBcsj>sE-8nc^Lan2bTMz|32pF6NL(z- zMO!at3ndD3VB}t?B7(;dd`h~M+lzJ>M<1ud(e$Is%n7ZvRBfX_eerVY zV}FQs*=og(=Q9DGGplMI9Rd}rb?g}4Rizlu?*8E@xZX6c0B~NL-I4s_?%)5v ze)Z8W`@eVNU(s-l<%*r(LXMFY2sE0GxDkP5CIA6+3(@^{0sC*B550%KL9h{mKrwjq z69$`{0pCFm-}^uLZoe^kxvcI=x;q`*I3?%oMf+0mLdg#s*`}_Vs$9<(ZB^gCGlV3j zd<>32UbL4|0$0R2?<0|dl?5Nn5JKpBpV?@`kb)`-{p#uV$!7h{uXm*`+qyaR{p1oS zMce3{oAu(SpKQOp{o%KVkH6}__}~8O zC;h48ipP*b0>LmkpP+eO-+IK!B`#S%IEv7Z(`Ef)RyA4!AhAA6#iZsRJ=?ZLWBTY_ z@cD$%H?wkHucRQNpko(-ko}>Xw}p`GJPeb|L{I%N#3+}mX4a@ro!RXyQSg|(v!T#R6^&v*X+96Z#WZ#Pcy)ezg|oa~wuDSwGpZTo=}4Z_~LqN)?r^ zql>&s8N+fu>kd3%zusmk^t`QhH}15zl(ETXT}GxtT~sMBPK%4>Dv=?OgY(4nayA#e z?d%wGCRIa?8z+OW)}L|4s;c<+ zD(-i^8*#R#l;dt^H_gSOT2UldQ36P%2!2I71f*fJE?KDz8=@c;W=gSw2bI#e%{^GmmFE<&dn9RjR6H~h1^?e`g6gE$*9B}tA zO*U>;i|EmfSv8SMvYxGvUB5q$+o!ayII|(; z^^EsNckTlqF6VP=lAlsJ$9c2l+TGlaqjAq(^13Wnv-$naboXwsE+ygTOZK1t;2%HH zTaV)}_sbK1$vF!leE#_t-noz|?Z3P5zmS3;q0yS`GvxwPGY^ZmFGX(7B&MAO8eWdF$F?t3?U(A1Ww{>d(~C{7GmCRuh#3$ z>9}W7qq(~bzp4v?z=G+=-8~fo5E&!CNvKj%>x{@r{>ABH5HBdfl+x#)e-X!1Bm!^$ zeCfXxQs#`5WZxfi2mmB9j08E!omb!SKhn)6MX$BKxY$0r*x7gg<64aw>EqG^a{#G8 zR=@n9tffQ%5K$BbRWc(;@V`z!J>W(5 z;4h9(X?2Mya3QX?PY@9a(}(|a!*>W22;?bX&X0yA#yJ3?l#RnFQ$mFl;NIe=_xOwi zv)WuT$-jq$$LPQK;>Xt77(*uV zS^UcaPZ=3yY~0-iYY3r~0Q(I@h)4liGE9B0e?EP|Y0Mdw5YM*joHG)}8i^K~bXAbkWX3 zNOnx?b_qPu@+^cnK46Gx3==>E%(J%0h?5I1mY?(of9!|j$;{VMDM|tBhL$CH{dQoI zpO2H0&>0s(M!-r|f=N5zV%cUfFqT{lcej3ZL4WY^B}we=y*V8x(xnS@?9=9AvAn$=?{6nJMHGoK-psKoYtBiE z5G^cbHLp7+N55we$@|YqavYiR%JRsZFFVAOVrf_}tu)V646qLs0lE;v5A10u5 z=q6xsG?_9IU2KY3&N+KAo7ai=Lgiubhhu#8s(A5aIdt**?P$7`i3di@npCyWvLGaP zC%%Z;T(o;@-6^F zXEUJ?L)Nn9C?pn8^#A+oKiJvJpn}yhyXx<3y2>6 ze;-1~W1`gqKycs9p84*Ijxv(Z=FPm~!tw&wpFt~@i=pC>+5EKw|GvjrmO^>;2n4~`0Z@#&0 zXXVAVCPze0334KC3OT{D*+5b*4Y~~(Qd#oTDQ>T%7P1uen{T@* zI5SvT@S?1mIpG{A((^g2n)PDMvN(E|`!04zMzjMC=!jHgyKV07&crO{vw6(!_1oKF z^z8TkZY{~8EoMT%c*;JQF5Ir>N|q^;Nog|ld7Qj4q$p%H=ff$-NTkqZp_fZmHMDJH zc5FN&YkFDwvJh$FZbCCg%D4?~7^jbZR54Tv=Uiqa7V5+4WQPOMyp0~NuXjr5mru4r z(ZL-RYiqeEE9p&|`aHq?=29$YeDVVo$%izK+1VTuU0)U6p_>R{V%9W*)1t)rg;12A z@2M;ztNNlOoQP<|`D8;t;Mk9*H|E(#b)_2&oXW_n(dPd6fRL49)$wpNqhHMzR~PG| zP`w!xS=3bp2J&T@+7G`g*byc<{>!%}0+ zm*U~DFGQn7K?NDkc7H$B8^?sJOA#>GFjyblBoKj7Ue+`Oz$~g#=LqeLt+%|8oHO?Q zHwP~A`jQJlqbL17od=U3RdXG3XdAt`Z0(t6h`=Y%JyPH81O^@)I~>k}$S0f2XHS-6 zI0pxkHG;EY8c+AWnjtN^TC$=L-PHSN&*#91hRm4As^Y>iLM%oXwOIA z?eOZUC`%qJ**{F9aYSKM?w|hf@BX7#|3SrTAnv=aece~!4&&+W>BVfjYU)bQVYiw7 zk}?iNV9L=nt2r+zjD#q?O9&VmrEH36%p;%Sb)$}Hx-=<7+aM_QP3oZ+yM5dWh#u<3p zzBf(mZj$YP@}rMeZP668RZ#5yEIx*BGh)sJC;|lppacm8LU~aTDkQ~gyZm;CIPIo> zUrBg*wXP)2N~zO6_wNYTgfb?IM^nAa;@dsX=H8pr=byd0TsBPsvs%vGSD1lNMyLqm zkWxLQBI zT2~_JvI)nx*uO^*_<;~a5h(&eN|4aU@(8X90yHE2_TGl+h0c` zOe7W!NX8{piJb+{oYT>H#)9+S`J7_bve;~OAuEEMG71z?_Ok_5Oj2aWyVNv1p|#G( zoH*yYMkJXP%=EEpgp$;qICAf@QFXF5o$k1jq7Z608ZGq8Cr>5Qojt_lLI$q0E`UbO zB?jy(sbWYz$CM{KMW8G=xVWg>nV?v3&Kc((hDfHxQg9GWp{4bV}qsacRx z)(D;mS2AsVoSX&lz*3G(FiwGQE;W~oWUUJkU=WhDbEdcwl-|7!KKV=?V<<{gQp$o5 z4(EP&{pP$_RI5#GI~vgr#(10vp<&Qk7SrI9kIQDIW!V(<_3<4ql8_XcpDhX!3&PN) zL2+fBOVLS{oJYnvL0;ENuN`+uqY z001fcZR5}Xcl2kJ;$19U{F-X7&CaOK}zB#q{tU5UAGc5Pb44@gpfjus-cpK z=}#m>ti%%NO)#)zo&z;MmSw)^34Gm=2?~a<+B+0gD zMD6az?jG(b0*F(&<+wrA3;Q2Wx<)7AV*MIUA?G~#>owYQceW`Eeh6@!j1Ul zuSO4}UZi%W+D1txeX_<{7xMlvHA}Hrs`Fj$Iy+2OHIYl8wrzAJn7F??*b!&t{PME7 zHQ$&xv~9Jy(Bwb;uV2mP8T&5>1$vRUOf_ zGuci3`D8CH_2KNtfh}5nu~{*ej5%`!lkp@epz?6)=8JN))1qGP&V9~_6C!v<5;J7Y zE1P2uX+Cdb@+^@3$u4G`Q7UgGJkTlST1HE_5hLbWQJshgrE=z5lIV0898(#Mb1bfG$4tDaKZFo z4WV?iT0)Ez^X>fz1a!^%vyr7(&E}uK`sBN}Z@PXM)5L%=%1U0RgomMr2sy#BY;{R3 zIrgJj&dPpBuiuT^i?%G(X0^y*0X<p5X+@ATnetf&ToxRrC zYb~XWIaw}ZOxv;F??<2kVN_RbKFOj;eD~>xoBjTNy&jyl-cI8}lIVV28DzC_1&d=L zd14*Xn`)n>5g>T+Ocr+4d3R!3Q9N4JM0H zZBW&8A{Ns;r_LJdSDT&-L^w3{Kso*7`I9_KZf;hMYI{54KvN-8k!{Lu&>A_H=MMS%)RjnSM36ULZJ z45I2f%Gud`VaBdkcD3t0=t-1z>Rx1apRug$;H+A)NHF$Dku0Ra#~5kfxrv1v`) zA|MDbLhi6>cf(Hy8t{Rh_ue^sVD#j4CX4yOBWT#H--#qp2oGZ4Xf|hzpb!v% zu1cp3!hpOd`2;9MKwMwBzDD>#>2XjA6O7xoY05n&1pB~(d!QZxF~T3%L;%d=_h}FB zr;y{t3=R=*D4>IQAcVjrqV)aRe0Z2%2=4-q5ggp7&^x8~LvR5B|8VmV>^p@tU>dv& zAxI+rhua_g_SKIkJagCw0-rs4x>;{k7&|*S9S9Pa$H(h!RX2kHpVBCyGR>(E=Jope z_&8pz$Nk3Vh0ODOTBI0y%)F4kZ-O=O=FPg86!ZCv0A1JnswpK)owtkxATEg_0{G^> zic=Y7(K1RPz|DTOZyGb=Wu66w^CW$IdU|_%KbWpkbub)xczk*?jOyxc2ZT&SmPnT8 zbhY30rad{AclX2XTT@JvEQ^=3xp$3BYzRU3sBU#xws9Pt9A8Mr@Am7}e$7b4F$Qo< z1d55ZP}W_Vr$W$ql(+!9y4?3=*Z4)2Gs(DMpFMqccfY!;@0HfbvWUmCEUUY=s+IP( zi1LK-VnW-#-F0O)A>V$}Gc2Nn&1dsSkl=fnA|T!l&~^`1Yv@V3fpbxeTbsuXmRSCxmw@1 zeTNYx7*Py_**s30cCaA?%<_mwf+3H$?RMLAu16OqOXb}(%Px+NUR}NE{a}nk9v5Qb zyz|a?qtY%+c$TLkN#Jg`?rnQ~61{n&%s`?@OlLEK4IrBqAq3Dv*zNnK9`b3in4Kqd z_=9iktLo!FUjGYd|6`b*fF6+#$aJ2k$lG_Ssz1{OfUHA_?^D|Ko-M zA)pu`f{~nY$}!`=zWfKV`;pcziYRAfIVtM4?~TKR&Qghia6)gZ`%&p~tB;Rnd6vxb ziB_ubdWCe;cY=sa6iO@Wd^e1O3P!|o7F#!#-CiakfV;V|oYEwoM6tw3$q30f7>%@Y z`&|bZ`+y#wKT}q>eOGsF+f{&oF*u&jIHkLNZ4r2kr-@{YNFq1wrmDNH^I4XB{_H6R zxL>UT@yaVT+7NsuXT|`7rfc>;y8p{R)BkEVz65VdOaI^M=K>u6`gdObozMTlmv1BQ zG-D)Kdb~Vs#=alAs%^El-aE$pqL>s(ysa8UnKeF-nGGQpa@*~PcIa9+UreWYHqVRg zc5j^?kye9=r3{v~jgo@)N+m3z92bQchrTy$F%O%KzP(jRlpHUPTrdpVY)Uypdhoqc zO`|!d7>mo3$9MacHm0n~anv?g$?@6z7{FCc&m*af&jocDNg_7wrftV@z{^GP-48xk z?{?+34AT4Ht??9Nf#a$g1gE`Ll0~y=ghSZYyTw8TGQ!{c&%R5U8&sd?u^Rnqy**x> ze*V#C+j9SVfBfU^ZtomDndOrtE|N5WRo0B7)h0|AX`ZDC7H{w0THtrr)wA!KJkGL&*Tc~EW>Dt% zbW+6e+3e`cZ@zB2e()s1^k_0Ehh|#L5mx0;_WdyQ?#(ydvuE=(6E~}SAyO`~(^(`L z3Vyu4E89UwlJ||)TF9KwGfp{@2~lS7-p4ZC?aTFM|Chf1D?&=aqu=?X-+%e`ewxgV zr(#;jwcQxRDJBJ%gCEb1POLY(emyFqM)T@LH(w-Y zXT{BG4T#8iy2wQqF@%P)?r!g^IF72d0YZ5u^O#D3qa0gnjMEX1l``MHzWU|QK096< z8Rvia_TG!=#mgY%LIbT(GUEl52rrMehKVFVXHL6dONs6QCloD{ecC*v5j&a3$Mb}?j`s3Laq`v_{??I$}Ex-kL+c6s8OaMLuB07?<8#0Pxn@aX5qqAVRQ=Q1A$_Otbf0 zkADlyQxa)&z)_Lcg2ZRDbhxCFFJf@Uz8N5S)gL6(P z00<}mV0`Gd5zr_0)Kc@ z00;#jgiwKkN0_iE3hp6J%MSf7;=-asYaUpXU_wv`2xGn9d1D@kMM@7n0TBGoEa;H0 z_TU0!wAN|_3=rOl3lRc@DB%yN%zHET4`sCa-E#uZbHMmeYRn`&$eR5-M1`Fiozd^) z&HtcHP#=uj~`j_=zS!YD!zkdIOPU%mYApMG?*FPmLiO^Y~+ zqiH_B*RZTC6oMhr;5dqL{3Z1?Oyz{Sb zZs*f1jzk<~+h)6~Yp+3adVAGzN#m(>UZo`AL>4(I`@3QAMx$WZpaP|CGR>oeQ}Bpb zpfL7ky{_id>Cw?~)orsR8I`%;RO@va^Egl0yx@cit)U)!9#etY>3rUF6>{w5>unM9 z<;nDRwa&7L3zEpZ9@=%a89SduY`fCdxydqBc1)<0Bq?&*s*N(buRskrU}U|S&$2j) zIduUn=AgCPu4}=><>h6sTJ1WFMBjxsH`j@XB`3!-NhwFbH&rcD1_+S&*sxzy~a3(Ee-}#t@V}T4YZb z`6rJTH~a2?`kk*J;^F`IwipG1JjySN-2Pi1{^!a+THRl1t!I-YPpC262W+THh0J84 z&1j8pYR@rX6b7Owp`7qIV#b<5ySv?bmSw@AmoN6&B1)z*^p-O=iDw!r7e<71Q--?q zB4%kE6XKIRCRigB0wv|9uAA=Dk3RLt4yyLSIFDks*ze1_+ays;2;_0B4e{JDisxye zwesH8mB%3v?-jSxNvcPe#8R0tAXYamCwDi)U-|kvfARJNVxfi+0ezoV`F{gYBFbiI z|F^#LPnOY22i`Qp?ak`r4?mpb`J2@%WriZ15|lY*u2xq?5+T58Oq9YbmI2#EQeZ&V zsk%nXytux(>AX6>SUTmT;4WBg!`S;qm(whH^>x*B>gZ8H0*VNhENgY07bKvuT^+r9kGQ> zj2SVI?Z!MgTdr2CeczrxS|W=mCWL{q)@r&c@8+{~b=}`>hUHn3F^Q0oG#&H+|K5M{ z1X&n*B^dkkvx{C0FJGwrvtKB`OMxt4fCUw^==7o&0)dYo*X3VHyby)8ph=ey55&Cq7LIBPqLD@2wfiU9&u%29N8$BQneE-3A5b?fT1@Akf>be_8Ta}6u7)QsrNZDLOI?wpq+sY%o+cZhWlO$TLT1-8S{qZs* zn5ZrU<}pWM3`4J_3OJ^dNa7-A*W2yg%`Q&yY+Bsj*4BHL z*x5A6V$n1XNFWjggCHPl{LyiKdN$eYnz~ZRaD;u`Z3W}Y^r%UAnh!%p<`HZitsvY|6s+5vXXZd>5 z7^kL3Vlhqo&U+Vd?2$vrq2N)Hif7M{cKdczwprzwXiz%JKnMb!3qdG> zuCaqstMz)hoDoLPPcEDp`>v@~ziUdbNI#fzuhW!Sj}n$L94%(FRsFVYs%;AaEspZC z8irBH97U0w<$M@I034VOCNN+a;OPg;ZWy%*)y4#iEHXZf0ol{Z1@dH9SIcE0Bq2e> zF$*XRt>12UgaeoIcyY`KX`5YV)M(6p*BI@$n=whKOnKYrn8h)f6?1RAdV9YfYE=}e zv2I^=B1MFvlcU^fZ!862tg#7~7?V*A&z~P-OqvZvq&aX-XLIB%LO=*Z zaB%1h{pu$8cbvO52SzzMJ|#i~9}o(J2@Lo^TVePU^ccV|+%EzG1VFIv+o9Y7A;>#F zb`Pon02Zh3c06F&?1AlR_WnTLW6*UKoPB6av48J|skOlXK7>e0Aw&osA&Ju=!Vl$y_aEG!s51(O00x8roHgC{?!g9h?A`+a7N_rzUuZr9j1hqC znxIDn0D#TVSv5Q?<3X$l*1BO-hchKgS(?Pbdj!C<31;H(!sCAT{>}0%4G@SY_xbfI z+}q%*s*)`J^plUgb7SA#R(DO`c};fPVZYN)p5-B+vg$K_l*ef?w{=s$xheOXQ3x_! zMC)}GPX(rMJQ3DoABYFVIg1$ES5+1z-}(HRb@a=ZuV22nML;gkmyC{?SOOyV``vsJ zi3mq5<(x~2*Y}kUzV2!oSR};LCr>%!>+Q{|Sq(}zTX%iconNF$!nV6!&@?8?$wC9D zZ?87xT4`e*Kb;MO+E#s(b4LBqJPwGCR#OI3x2G$+m%&T@cAqeG>KzYmF;F*du+WyjEYB(&Zos}x4T=_t9od3i?^#$yKreqU~Dmf?(qDqsJ7Zo848} zmwJG5t((ry7g3tvvQ{`GIbTfYK7q?oQdaq8-Qp(A$9%$sJnMh*Z4=8};F|a_5 zF;@FeKYl!)O@H@`FRQY@d0Tz-!AX`%LKTIyshqLn=~69g@es#UxmR+?~#Y9eKVzucJ1Qz+} zB#I)g`(fih|M|<4H{-|PtRMDXOoR79cL!kn=V|=`Q1AiyfQ`TmPqo6o6@*ME}zF@Bj5*{`&v;@%>MK@@*>PM;A*%Eu$E_yc_zmZl6CtlAOmp ztGjB{BcoB<_1oR1$ckw(T`m@@{nfsyyKZQ99svpgCj~-*^evuebIE0#beny9vnt2d zgy7E~&B}VTXpCZdw2YKO)*v1Q1R=N(Q7MJ^^wa0xzPWjMeYd%8IVT@JzaYd~Hxi%S zZT6Svv*{$3G}T7ceNC`X+N{^BIF8dO`3s+a@M4wz*Z&Bw)sxm{r2W=<2neJ9Z?MHe zZ}8&}7r*`8+5Zxf#nF^06@tT9xDZ^*Qb6dlPoGy^|HaS0*{{c;)1Q8H&KL@ySeT5X z>C|v>I-N~pHA2^QSs}aLUSHjFM&c;?;Ms>sEMH!|Xol`?y|+CTf>w=+GnB}5>`@jc z*vf1&c7u8G?OnAWPcJh%*Q+bq0N{vR(Ke%{(b9=jKws+0R zVltgb8+zgr6nN9O%XxaV%&Z|z-Np&E0m^M(HB}^89A(d+JoDJRdi(9|b~{!mjz!sw zg!$PdRUL)@;6HsD#nc7OfD=DhJ5K3#UlELE^C)-*fy9ZIF=CVm8h!cGW*ALbb*C5cbe5hTXXB{Xn<0sXGpO9v z$0yUpBKyN1UIF+t<4s-0g~Wjf8cmiF!6D`OtE=_C9C@NRql;qNcgiStcWW6?!J+qq z83PD|Mw-o;$DR|uFRNi3E-nk?7z9q3krESX(<~N5{^*ak*4g#C{p9ndknDIV$1!ZS zgW%BY^=y{R7x{}9n^CLjjFj7TC=7JJ4ZVcGqvU2l654SB|=*`(f&*Vi3* z!4bug?zMK#AV<)M^8b%RnWEu`Qg;VG7`h_gYN*RN|3Bc}H8*-_t^ zuF<<)uo}gbj$t&&qTrE*ps-v3VL0ZzZkt`%KDwMzkbncF9**r>P0YMTHLNJVn=_E@N@%7i` zt8c17sV7esN9R!<^P8KI5Qrkuw;jde*|XE1e|5LnwkM~tR=O-J5sCRC$DRT8MEaCw z$kP`uH$-R=`&nG5(X3a#u1ygOW8LUA=0-5m-6A$Y@tm^2yffGLyQ5{Cq#S$%$a|!v zz|Wr@zkXT0dDGn8)mbJ!`g}euM8xGcuS!5+HjSIAL4iGecKpq^>+759@=@OPU0b$E zkrYK5hxrH-mKoA259RJ06xcYL(BhanTdgkXBG4b^?u?)MJ>K=p^66$7v|d$-r22QUEOy6Rwj zj{t_cIh+6>gaWt+0AQ>!79;Q>NGXI6A%x%@jU0Q=p_J9p@>=krrcsP~RV6HKE60MK1+)d(1S=e^MZ5CR;GLaISPLhzIekrp9@ z;DZ_zh6nRMcz?k04gdfGi~-(ZBeh+5qYrTk#vVePy(lI;FZ=-jV1hA2zqn60Q2of; z!zYCRC}D?}@Wxh~)dK*~!!J$%((D%iAWi`T0tjkARv!R>>U;BmLqb6B0e~O11_U7l z%4iZle34|HzZ(+@wyEFSp5QbK5U68sPrmxcfAlkk@#09dO-~u+F(3;RBuh;irKXox z_q(VV1Sc`ehSov|tFDhcfD}L~UZ-9o` zj5bw2UFHY{;)F;s;cgxs@5pW6lXlQ%42XZUys%}iiq+i$teo9x^k0CCUYEt z-0j<4RiB(Eln{nuLcNg0BSjfInq@!#$*%AGdfPvG7Nxm3KbrP~sVbdk^6q9ICG>;m z7eD*y`ub*lcAk3gv^Gg0ymu@_JVu1!qx@*I>#y$i$wU)^1WK?E+r8fIbVRwbiV7?< zG87r+Ff6ffr4n{S)jo1w19IK_{i7f17i zV7lE7As{LE>V7{dA}->e{cJUx6F|s1B~wW#5X&$RamG?sI0G-Qc0?#dhH1QTCJ=D9 zcVkr>>M4?aq*GgU;AVp)PTsJ_{II1E<&(# zPGb1*a`|8U`+rk%`XB%O|MegK(-$a<{`8|nfILDFLh)BW{oP-E^oLX|hu+-0?W?NQ z#yMao92VxUHzNPzA{GjhWs-M z5dtEVr3Jz0SLJ^@6K{))92}(tU*E1dC;5apP196L34~zl^(2ptMz3GCyInJ1rt?L5 zw2*DD>c$pHthKAl=F#IL>&%b8Sf#m4Q#`5x5CVn>rh-Wxhlr--)|6e(lAcphM1|FA z9Np`;ZNw-A?x@vv{g^1M~F5`19|cKL22`-E~$wApz5Hyf~vA{p_nN3rfbg8#?VerO~oD zW|X?10m7EmB2a3wkG|cC<{^`V?6{SIW7vhe8jDC-h_S}i=0iS zQ4wWn#^QwW2zsT8Jo(ul)%Uk`F-=Y`>BpZgmq!H`*afiK#W4s$&WO2rQ;fM8O$E5s{ST6TW!Nzyor= zYWg%Ki+PmEG?FY%D31^oA&#Oie^kGD-A!ld(~rdY#bi<>E}#IwSP&98hsEMtTl?j= zuhN2u2$lOGfW_2HnD_v_sQ}4QqwCd5B#w9niWiZvBhjO9VI<5mjsP%4loOH_eEFDx z1Mt3TdMU}#QIv^93MyktI665?>RSEax8L5q^{3~>ul<$9Y#B`_iM9a~;1op(1?(5| zbM5SlZ{8$1M#R^Z!VC}?;?hCs!M4~(jcKp%_dIeG6W{aYBsM+iTbiWES|cOGIc1m% zPU8YE&UsMCJFARIQ<0@Kj}pnLh!B(L^fcS zG@S|`T%6L`sqhKf+eAZt{0x7}0b2_~kcC-c;f)M-AM zVx=|1kQSJDYD$qG!_lSiLvYsiS|XX2zfO=blZnWCqgl%fDsZ?B&S#w3S?*S=xOgL z0B{P3Fu)K{0E`jFh!Bslcg}n35r*g}VCiwR+LRjcF|aW(DF~sAFz&4l82b>swV2TN zL*cP1^VZ8_; zAnfqi(IU_+&=j$B+l<;XgXHLV7Bhh0y~k7{OhfPpz-bkng#dst5Db`Lf)SNL%#g^j zEDTLrjR#MS$EiRbQ%oojf>1yh5C(*CAjEs;odGcqEDJ;;npXALX`~SA9pju*PBG=c z*dgu2JBt8gO5f)acxQvR0g)gU0Y`x*4n)mBpX;GhpPU5Fm)j64e7`@;wlCYVwhLO_6Vb{SY2XzEE^HtO&t z83Pr}qY%LRijSLd6(=w|X1jgYwPVv60xXuitoyza_jIhv{grRkHJ*HA*iL{za z&hsf*W{Fn-4CPbi8X+Y`LJ@+pocn{F6@^KbIg2QvKpf@hl65n5k-SPLD47u@BfT&!c`ER`*TU8|SdVQ9D-m+mbNJV~eS8E4N$g$y6LK zG6<3oGM%w$9JwBIiIbeUl2J}^q9{Rm!Mz29EW%+qD=_9(BkRoRWu%qrdp-8t^#1gc zEf+K6ec22`kVnr7BJ_4Wo}WA##=(PLo<+*&&8q8qZ8f1m?3(+s8S;q;OoInw?5l5^ zEEAV!h0~HSTukURio%E~Cuza-o=`?;rU)P*m>z6^kq|u1G8AY(=n&kar%B(B7>B;2 z5Q5hF(UX~VXkQInz>}vFBGu6QkDq^7)t$%o^dfEBe!Xg%uD2Q!C-&WXG=xPS3k`u9 zqu;!0rDV^ZO^}VFlv5fq7O}vif{2Lr_bg4-*Zuc@??)GtZ1gVZQF$66Zx7m=KOgrG zz8xvRfBE5=%U2m0yfxpN)^ z+}&tB+F?*1d~{SyqO0pVj#-qlC^w9;S$5R+gY#i|CY4gRcV*Km7V>tiYkkjHN;#nt zS!xJtF?#wuOJb(AdHqV2)kv6o z`fQ#~=>4`zvIt>^`S|$p+>Cg=ZO$&Hgh5*=rS)drQkyj0fM|EToMI##jJ+C^8`taM zXc0eql6%Am$UGIqP>yMwOVsi>Mu;LDuuK3G5=Ycn!+;}?oTJ^SrwjSXCv$?GHAav0 z?R872ef)HqP3YaWPV>Y;Pr3i->2qbq&1O8gm@takN+~_A?>axS``wQ4@$6(uKKkCI zY5RIZKKy8z&uP;S0PytgepodTt$OrEcPGhcYUo5dP zMvuN)!~L}$NAu}tr$@`=%dhu!Gc;`n7;Sg;t5^4&CzM73S4y|mk4-tYZO^#mlFjFG zG`<(AAsXYCDPj*mLJ`V1u<_Ju03mnm7QjdgpB@3QQ?M zhz`0#L`{xBkAAn-n>&=m5#`~tPZxT`Kl^I6+tEf>B}OgboTOS&j&lW$i6#O21gJX`I@gZdT*nZI?wp!l)l+PQ66QEqtblZ0$H`ueJuFd=}y_v@Kg;?0}p?bSYjo-Ns{H~VkDT}zQ` zH%5_8GxqZ3s&BOrj0%UP=?0V}@v&S^?ZgIyOdpa9fATjVy&Tx-Pv3SUKP|&jL2<&@ z-n-zf(>-A_1RK0VMm>b^qQKLfMhO)WkA%PYjj;S>dGeh%HU9E$D1G*}m02cFmobtF zi=sdfFpLEc5c;OJR++JJID_-ww0!BJ^V>nZs?atR8=HS{k;x)wNzT)}t+qxFMh!y7 zgfJ95U~K!wj;*)a52c;_k|}-(C8u`{{^Fba^}t^30b%_3NFXYCoDji17{WO)GFoGU zv)(w&;NrJjbn4@C6JP%D)o!Jt+cBN9iW3_!MgUk6%rH;wH;44D;7#z(pZ+GwK0xUclt26G)|7tQz_Lci zOTME>J7+NE01$!+!6Ek``~~D$9J4fM6yxbLfB83I_EemFr$o~)Uhj4;TWMKLlF1~- zQ9`5Gg9T23Q((03YGah{YdHC9F8|oFBa~i#c|TlrY#$~!I=eW@rn8J^Gi!BM@4Pd5 z>@gu+NaQ_W?DSyz%In^t$ejF(mMwg8(S+g;etv!5k?RUo3Z9<`%q0^Nfd+;#XPDE` zS$lvEPQ&S6ciD52J^E&&zh0Z2P2cuegolFl4iQX&NP;N_ih%$jKslkDP)2}K1OYMW zFaNer9-;KHi7tQqwprVJWAm-ePuMDWO+xsx|CmWkjz16EZdW1Ic%^JNnc#c#dXrB?KA{M391%g;em@Y31L-_b zLm#yA5sxH^`qmkP0wIKkH1;rHMgWDd+4szQo?;+zxfz4(S%UIha7Mj@zIAP_quA?F z?dw5XJ(=;NbBVAi*LM8|M}k(v76PvJ8c}34YQB`^oYDx%roA!qoN_r*mW9sp|jS z7xDhrK0N!)U;W@Oe|-LUnZLL#%RztfYIVD=L9l;LO#vY9vD>}gJXby(%a^yCE}PK# zQX~Z$d;j|9W09t6v?^3%@0!{W#+$akFW&;9fH9$VI*mDDjN;qv9Yfy56H#2RefwU@w5?=amj+GRX-SO%xJr61Z=KuoB2|n zKT2urto2u~6azZ;2Fa#x{eEjB(q3(&fArPG{rFg0<^YVx?-COJl&}hOKLmgUc}>7D z3`4^a5*~U=2@{MGHW<~8ZP%Eg4MhewHx-fi(UUX~6J_M?t+vLFZ7^O1+V9quq3C|y zAUecxQk9lcJDJJj(>&#}9oknn`)M9==2qLC8iE;Eng}UL(~kEm73JjU1jU4h0otJl z%$3swxv}zq6Cxle$2fN$9CD-W%bgmUFwMzk+cblI{$X)^!IUxUduO#Bnqa*~tlzIa z4dQOI*0w#robNV9Yn5hfb`-@j;ymoC-WZ=IK>m$?=gI7d@XR42hc+Y$?^JuYDbFru zj1Y#1*1B){uJ_xm!I(-Z4tyW8NkUl?N4g8UwIV>0NKg{`&X()Gu6h%B%)CKJ!RTN_ z;F$y&5i%BP41GVS4n+}0ILJtxoldGsIZeSwdNf5QpMRLm&(O`?9(0r?aU9e8P5Jum z_LEOfiy~HCKXhYV*?pzQE>OxvLy6il5bTj#F0)CI-QV`!aO8O!(c@G8`S-J%yYg<`oX$@2 zMDDus=P&L){ODvhiOn$f!!R_yZp~(+ITwsEiUTHyyEx?{j%8Pwa%*RW!~klrqt;59 zz8O`pd#&SK5+3The{&M4KlUG1wGP^2WG)_BY!GaAzd-L@1kzitVKOip%@c)aw zH|eo$OU}b0Vl}(pr_Icpx3AaLt9n(%Vv)2=%C;<8ZUEaF7zR8xJTRbhX;A@d#_kziDYr;L;{I(aQ2F|W98W^ zB369g*OcJ1}a-k-5o2z=+tLk}^*!dVlUDaqJKh=s6VU5GJhzK|CEcf>5EmS9EV#X;27V zzhi(wc!xJdrQi1Ua7@`bgOC^xyPKgqXhkW-b(I!5hscBiImKY_c&S5-NCKHj*J|-T zL@Na~Rq^KPnIt5LkJ?DUoDy)dW&i*riZN(i+_lXl?|>7cK#tfv1l>xELw`K(Z?%>H zFw5e38SgmdQ}i(y1O(=o_^nJ1DYf_rIT9p}?&i%)0SS@M zI(vJ2r6eJ8Ciy`V6EgruKf*h;;F#`6Oo)I)#Fis%Cq$h?r<5D^4h zt&3DtVz+Zc7ses9vtr(qnb048v?9W7x2X!3!EQ>0`uLD=k%I!p6eHjLJIzk8k{1TNk7=t#&kK_+MOWlPE=udMfoLQ2t3 zQGgb#%7y~N_STv)8WZkc&gv?A@Ss*wF-DdqSGq3pPk(kh^ft>X_T*i#!G7?;{peCv zshh(=3CgJIdqxnFr4PY4;sS16@?~2 z&T;Y*64i4#*?8Rhq4!#ehmYC^j|+l~L`rhhQnzLC*=O6XvzacVBVf3?-8N16;Qm>r z5k%^yPE)}?iy@^Tl7o=^WUY%vO4J#5lQk1>uAD(rG?bY9sFR1Yi$=xTPGPbkiJ-J{ z9#W7gih4%Irtawb&YLMdxIdpY+2#E*Q~7+MOz5kkoci$U)xIwC$s})Lba=hnpRJdV zAFmODRO!@Dm`W{`Gby?heX_ymj1Q+?D*)tuZ>AwwAF_sBl({uO8h_^xkAFuVe?;{< zlJ>^@iXH!7B4MNmlm9RN-najo|KvA}3sQ)6Tl^n?^4b6LPre@t&3~=@f>BT!H}LiE zt^P2A?2f+cEFsPp*@vIB{n5pc9^6|c2#nqjU|kTThu(R^F~IGvd++JJ%livXCZ=>a z*(%EsY3MyLM9(sdKKRY%lvflujm{r-ZhzyNGZG}+B#=>}XtVR^&`cr8P!yDx`qcT5 zNI=01iT$frCxFz{>gm^7KOzJ=Tbvbz4bDI zAEq&rnfH8iyYV4JkIAXqT_4bY_d#Rx;Y&8o87^C@)n}eo$d2VeDjn0&Y9=0x8iU8M`w1IACI;lMr|ofkb=57;>&3cSEi0Xi zEKfzjb*-yX+8)dpe4O$EmS>p|fFJ;2GS>O%yiZ^w#elJHGH1XZ^*Bu-I2)!qFTeHS z6La+Dm~LL#!>u_U>;!JH(uOv?Tn_AVi%%wirdW)c=Mt^Z2Vyx`@K8$#-U%I<#i**&PPk;KuYSAgimQ!&hM`;rooI;*mvV* zJDqy>;PJek<+FJygqJ$Cb5-Ul6Y{WgDTbKrVx^l_Im1<{V@QY7e-L?$4%I8!eKkQ77K=|c(fg}`)y3)>u&8~+85hs@J z3k>~!3w{nm|L$V%Zc&F4xfX(ty(91f7_LXZkE z-J9Q+T!uLH#*d@Fx#{yltuAYoqmY4QZ0al%GS`qo9J>JMNyphTPYDaHXLUY~e!m|{ zv4zfXw;!ygs;P?%N{+lcc8Sw!Rs7q(^>MfLFMoQtePge$Cf6m(1Y=yTGa_`>nj`s% z=5pQT zo4&Uw;~0-)>h~wNXy$pQbt;^*`$JDMJ$bnL-Zww^^oO^vK0V&v1ls`xGVF!Iv$HHF zZ;cx^^5}+TJ)4PHWCv;yvU@Q&A!TCT?Y2s1Qs6~C@Y|T5gs$ENWyIkvM)nI18Q|!% z%Y<17u5M=IG=|^-)w1My9%BMRNWrD#?#e26Ej$PjWrgi~cl0>pH0|~~Ar%oloD|*&asd;dwENdTvnMM@4$>6LEAt51h3eit@2|$SH zE%6UZn1B5)tdA*fwzotCB+qE0C@~TMqWBU5o8I9QkOU$DB5;7>G8OluH%e#Dx#RI5 zRi;He*M|gzcZ@(XyKARO)sx7Sn3-X-*#H0ufg~>Sqa^4g03ZNKL_t)mkP-lM3|}SyKKQ!?NY37mqDV0y z;%>L~AxNnb&}GYo0tOMh3EtlE_DHRj${-~~Ou;2@5ff7$s;{N!8PIvR-EO3mfTRW8 zZ$i4GIdWen03jv-f?(+4-@y7|3=WYFhy7%Xk}{#1%f6y1fj~kOUv%CwzfF4p5lKj3 z29jy^jXS@^n6}$nBq9=oc#-W9S&)1lt}y3c`{2FZ&G6G7+(xUTk>kN9!60F=62=*4 ze3~=`mCI@x00^Ewd@`FAnU3DYZgkII9Y}|=x#J1e#6%GkVOzdQxqRRee~?J?f%*XqiqjvNRFe_X|bYl zG#pasGr=muavWG!^yJ}_vQULaW8G<-UR>>~MrEa{%3PDehyq9pYL~*8csjWdLSD%E zvPh1+O;Y0R{%CpdA&jmYy>T2KK3KM8TVvy+cg`mWbyhyUck#0y-MRsTQKpM-Or8Si zST*cSNSWmmVw`%j;iIcf=~(H^?~<*RKwFY`(?RjEipKnbJ-vM zBy)<^x`~}GxTtCBEk!XNgup@w5h*@AzqnZ4E42O5?StR@(?|Mj9ft!8{Z?fBS1!YL0lJ?y&7J2dD-fG<}IKXCeGS&~H{oXe}iWbLXh)&soUFSw;hcGSI z8E}Far-Lv(W_hj@maTkp`KTxhq0=;(VH%!aZAoBNmANP+X2_z@GSBF4=NY;XV)8a+ zr3@h@@G_^<>G=9~A6foj`}g}%K-w@shzS9R<6r3n;0`vH#S`Zr-CL^fJb3N`jb<>; zefHV5C~_sTQdI(!QlcspA*zg105h?*J_gh|F((#IW_*2f+U$-h1EH;B&jKIcU(K7Q zmi0K<{ch?9v!2bq`Qek@>j_-utuUP*kG2aFirCC3xZo!o_lSb3DyM>%^Y+Q*W5ggS zjCMSnhUcFjW=$n|(hGMS&4V8DIp2_ z!3HMJNERicP(IU*(pgB>Sa&!bHMCL+RZ@zeBn+p)#woTO7|T*AMay~H_x9@bj#!RUbTQ2qx@=@A z$c$cOG&)EQlL4J4tuWJbsc?7N596d#D|9BwrB*3H?IypxxgXIr9hh1^=3CrqnjolBiNAUYn>@- z3T2GB5mu>VEJX_<+T2ym^ zB)#L~ezYOX7a0J&d3`)v&zq)NH4A6_?R6KxM-EC+uCuZ%Zf-hjyqUaD5E&M0ttFLO zOp_0h4HG#4k69U&)R}4%x{%^#x1*F(%(I3`pb)~2Q*gfbT~+Djs)$wq!!Vk9Cd)<& zC7q3@-Q*G{j_dQH@7!TGJbZXjWck@_aeaLldpkvgf-^1Ksz#=lS9@<`V)o4KO6N$q zBFAayf=#GcP{h1QLS|Z(o^6V0cQ|0u#93C8Bml&|8qtxAre`VG6@x%a>;-R{qE3>qtVckmt`2$Qev2%r68W z>P(Hjvs37LSJbMSiQDUrKwg}$*YjGTe)j2x1@~r{&oe?fuiMS0ySm;tWn-K*E>^9~ z3)x7K1X~kNeabUEjN@-Ff8&GtYZ0cazWTwgtz@)5tk>rsfBcEF7G*}$YqkF)7CCVG zxko07yZCJA_ufu`Br*PExZj6D5QpGD`Q*E8(*(%m=8x#`Lr@h0gfNCM+=b35gb<>n zbc*$l%tsly5Mxy}-~RUZLhwie!;tO%08j#O7>-|1HKge8_#%Th(K|-e=zr=SZ^A-T za^8LL!N(UD_go}3ey$FG!lFh3KXlX0Yn1Yi{GTZyum|<8!nY8ZnWdE9{qAo8FrcE{ zAJX^|?&diTUjTxE(_8u*m4T9+Sc~+$Z$Im1nPh9-g9ne^d+$T%6S@t(`rklgcjC1q zH2@Iu=;a^ZEF^Mb{_b~wQz^}y0EN2!J&e;==zHGg8Ssv}bm|Xg8noc8Yd)JUG)4FG zD~02geEoYM3*hM7;mZWTxi1jY|8n}6k%IT%`qp>bb{2zYk!AZoCbtFB$&T-!(#RY* zg*yhI5NvQp5D&5Zfqh?Mj4736^_}m0FNAQnQhM`yfD#afSI@pAP!f>=6}V5+N4vCA z7_74&e)x@xi~HUgR2A+1h`JwxDA>DXrgt&Qm!bh61ZFvM3M~F)b8(j*2qC`v-QRkf zmZ79){}U&dQT~69zwhd<6lIlH&t7cI2qa;&zFA78u#qB0^eOg+-IPS6W=4vrEEmR^ z#NpVF!6gov$YW7tf`#{X9Bc$HWLlr+AtXX&hKPX6OC=PB$oP-45tGKmE#mxA+YcL-&sBw$&B zq)bp5!1x%Cr@k@>N<6x%IO(seu z*5~ETb=Nd?TUVE><(sR+=`Fqkna^FUtZLjrRd;yUZ)01f%CP+SK=f z95gds&C%x&`7Clm0*PsyW@~BhU8XfIS>=e6wsP9KhrWxN~zOvv?h!u zR;6ke*{hdFDe3%dxol@mm4Eu<>tS$19M|hgYuRM=)$3!|8$}rk*muL?EYn(4B$)9q z1|O0?rFtf-Qp|L56CV8c|NQTY-Jj6;hyHL2S#^h`|JD2cc|ZII|IRo5?suO2r@#5W zmePhmh%u!_mH&_b{Kx;@|Nf`X-W=>-I{^SdNF2%!E`IX6@Bh<&D5Mr;D*%}!3@2-y zpKMsIs|38;^ox00Vp$ivzy0L*8;z4UT|XYWzEHIyEvt|` zD51uoPaG$2=W|^*%6sOB-atK3&jWFtymF01{1h>_RpMV%GPwt4aSW-@Mf z>Q`r_&cwW`w!87g^FveBLW_`+$`i_1un!w|hR^I#WH24@}WK3Cd@cK9oy>~8LKB`1U zEX8Rwh%A;8JYf=A3XnpS=)JXl5K;)@*`ll=lS)L#hr>{0RXyX$Pty%@63tA{=XIXt z*Sj0%d{Y(>IT-){{Ol(vu$pIM?@|P$>};j#dWM2x4BcrA5qwM-GCTOw&JDd|=JN+d zQi8NN4MvJIn-d#CMlFO;Bm}uIf@c&Y1n0HPajvD3kaa^JlAkYCOmVjzf+ww2Ju8(` z%<%g5S_#=yr8nM={wF`Us%A=RF^o>B%uKwP6?vwfzDLt!r_s5#hpta4)@6R!pHc{){q&8qv6?F+c=hsB*A;+$^6=vPa{lJ^wGY@@008!~kE!2} zW9O=+s%wQg`h@)$26NlCm1J26g?S_fQsj(t5wyap)_EfKNU}sBOteW(L&rpLJd7z2 zByn*$%Q9srpJ|fmh{pORK&F%4c^j5gQ5UKOR zMc>`p$Vs0IT@eXlh6LDX-)e88xQng-vd5#$Wi>xJbH~E(S@0J{+&e1%#RA&V5lpJBFsYZ?$aBsEWZiD3j#zwC_n&+K;`)ABdT zyaA4XVWB8RVDaa}#(oY<_y7Og`8fWK6gz*x-2(g1fCJ!NVt{>bPR4I`H&33Po!u{= zK0dp>*Wdpg{X4o;cSB&AYRrffPwyUd?FImbx1H@BPZ4YIHSo2p=l{mD9Sj>qj{ zUY|W^&ex3qe);Nk-^XB7$H+p2Aj9BnaL~%rD2OH-PD*KvsVyrthiRD5f(;H7m$S-+ zJQF;1-i1(PswyjIU^*t_kBMWhGbK<}S-**8o4xqW-4BQ5&CK1R@528t#FfXjz%o~c5M*H`=FX(Y~p1Syn&9;5Mow5atVB%4?&DY8t?*X87fI3}M$ zWRusqXUI5bk2YC>smuzHG#psuZWvExuC-K9Ky=XW_|c=ab=F(=lTSYfN?Pj4^J3nN zgB?1vg`qpfvdqu!HRoqdRp?JYeQ`S3QxXD6ODTw^G#>ZHvfdv353eq%RNyb-X#+(I zDgNrwKQNb>`rwlX|M}nk_&@tMKYF$8T#R(5)kt_8?eBj3@jv=s|HO_?C&T&(=;imR!u#g93ZaeD-h0w{`re3a*XH_AcBaF4*hr= zj#;7ZXyWc&wq=#&lJ6*4A0tm($Gq2}Qr#g*BvpAN>BA@l6tXzoxV+G$ zRd+i1a@=fpMWKxC5O^9LL4GrxhSAltyqRfZ!u@r_5UX5!53gTu2r>duX!a^ZQpX`| zr`t#gD75pOISGhEH)a_Xx{xd*JDXzga!O#m0Sa|l^oQgO>Wo#Xq#_w6_QLF;)On`# ze%l?ogCwCUB?NTFZZ|UCPsR+Uz$syCAWWLRlL_2#4cPWGFIRUub6D?}v7l z3!q%Kk<(h|`KcvjVQU_%5bN#@CiaT>T# z<*X^UH{^9>x_y}^c)#iVLDu0-G*Qk!CN{K>&(xrDHIPQ9@YNblyC(j&4 z>oTp%QX}Wa`oUQj5$YP$g`^{iuIy;+r?_~~*I5|to z6G#TJUe?YeU_>bodw)DmDMgi|C`yyYo9o@-I5Lw|NeU%N_%U&Wq$nhIAyNuHK?t#^ zGo@5?(s8hftnVpO^g(MuQdV`10ENzm$s|ZYT1;AS_4;aCx4Nl{hz>;>Myn(#O*Vp* zx~XaiCiL-i4A%M6Y07gML17VY_q#W@yK(eHBvn#WQWSP#lp-=17m~0s4~XC+u5!1| z?X$i{07QDr+z&r@RLXx|Nc)AvRbsr%_Rq&Neygg200haU<|%cbSwiH=U;sB71K6l=PA1<{Eq9Hkpzn zl0q36WhqjK5XITOB2(GR7u(3pgvL#uJwF|Xx*uj=dwSs*Nb@+1QZo{ivQd|Hcd*BO z1Pb$|6p2y@qcIWU`E0Jk%!f4bz!9T&&N?ZusddxLGNlTYh1xqG?4X!csTzQ^+3rK& zswxSfEVVJLykm@6skBgKp6yKRPZJ0_jnm<$UDFo(ZFlitCJRX!jH6+Q0->Ijc~U`fXd5Dl(K+k9=eSxl0?|2~taHhE7p!%Pu&OexWL^}RR6=3bkC?(ZK~q*7{hOOZ zQxy*BrlE~{m3l1V9yqmvBPk|dY? z-h`N3^Z=r$$QlbFY$0l;tC=3Bm_jkJjUh~vQv^y1oyi0=UzJj!F`1jddtogXd3&&s#zS@1oM8EY zh{3t!L*znAEN5vlDg`!S3O>3JGy(~U#qrwx<}tkY$D41UI~4wzNpg(%E7oBc0FV!! zAT+;r`IB$VzkfAe5?be_Qc30DjFCc|%#`O!3mFFCA#~n4>`~ zopo-CC}oxcy?V8;nryvXq|B!jfJA$N2+{jUNXtceJPy}yZn`19dc9GZd~~@gOSQZx zjEUZ|akf1t1nUPB5`7?GeK>@&ks*Z`gY`N zCSW^mQXtEybvd5Gn>WML_m=IlVDRH)R3(d*kSfXD=J;|9#wG%hn4>=`q1r{+HpO?p z^}*}wYcoxo{YmF?ewJ0D;6SfmAL~YyrIv!Qk^n&_My2oxaMQcy0X1Stw4Ot{^j zrjd5LAmmWh^4_Ctzq7k-?S6qoZ-%Dl{HLqGJlZV2P>>2-=o zNHI=s8s@9AsdzWXk0h;%{&uYWSDmcGmc@l%!@)tpBNmHltLhj zFrm=a^B7$eB<5Aq4Yup;b`zy=RVB~Y@_4kvX#Ip)uId@?_Tx01ypLt0ik4REMk}4k zw(F)JfB$-nBat+d4>3VPH;wJQsAt)Ce(l@NxSQLXQ$I$Ii}OmdL>AX?_L)}mMdPjG zgn$kS1W|GX$OeYwIr)^6lDayahTXw9%fxnZPD zbDFQp<-GPja$u+ei9|pgQi|f_PK*&eS3>1gal7wATwgmW#l_j$8ZRUY z8AI@aUG(IGlX+UV1t*(Hy_&Vw`orFb=Rs?+I8%#Nu|GH;`0CYkcIm4H-M)4Jq=a5R zER_N+-ObIu%G=xh(K|m{#}PRlV#45)o&0QF)K&ZSPaeN`es%1J-Er6-hrHHVkS!HA z*WF@SmGfC}2}BUYDTXe%XeolJE1_60J55@WOca0i)1%TLHC#T(W_5Aut?S_!#s^O# z%II7Iz_u##1`91>8pf`aSRQu$m|O^f6UN{Hg`K?4q%OtRo;;p6)w9p824i-ou9#V! z%ZzkZl-JiMV)5kio;8jLg$f}$?=5#C1Yec{5(@BI>P1~S4xjz>XspW%(a!Yw{dT)I z*75N$tj^@@Oy0bT$TVx3tb(G1&F*#EEZcf@`}z79Rb)pw^L z6)Pq0JH+os92oP!GEzPBli$;Tjbo&Lq=pKR3c z$l_UwktG8Cm2s$lLG_>8S=AK!a$XWq`uT5NVy-gv{TG{6TNFgjIn30rpf1cI3F6x~ zyS2Wc!Sn(!C6=5g3LvZ`p-DWxzv_E;I_`$i3#3e|{2X;gowd_I$%(R+S(KU1%oKu4 zueWcSrdTdY%yN%B9n*x?v&W=kfEaNcEfKEs;{N5mi`Cg@&t4ekt~Xsh&$Cigp&SP5 z2A-`eAxNUVIX-?id{V}j=5%9q%N+g&j#=J5hp3T94 ze&?IUxR)=ljg3dw&)1a-*g&;4oH#9)Ghie{V{PJ5B1upnD9|K8YC)G5r4sqg%kDG{ z)__1EB&^Of&-VSC%J*0a3Om~faT22Vg$RyYfRjKEmu z^yq%0l6?6|&=WlX03ZNKL_t*fel&I*xM}hU6aL5l^}QHCC^1eUd0*68XZpd#QflZ9 zBN6S7r)I7N-f?he#-s#I|yh0f%BRhT{wowwFB zGj;z-cGx2_xj2?pHgAjPpYu)HKQp|h~MXp;xqvk5~8ez$c(5+K+q zNG*z1-(N4|=1wUtG?e^;fU(;+oYQ8xLwPtN! z6htPXPr;;mmDN@L^ugKj&`-upCJ4p40Q3r25b087rOIzkZHcCoA z%2U5f9Ht>1PKFdo6dWOM^u3E_HER#MzBj{YtP(13K%z*7khCDVuG+~C`(dY*W&rPb zGA^a~;L+-M8g8$iO6mtsVKjuQwq5 zei!mQuV-a4vO5hv_CDb0=tdWcJoCmEW!5h8rw`X|4Ew|BI1WmQ#VRvHfGC->wk(!a z`{MQ)AZsB_@G+wIi80>0nD2JOem^4cd|BvBPJQw=4xM@MzAj4Xr@WiS7_HXo{GuMZ zaD6ohP$YPE4$gry*e+{<$`3f0z4O)@+@Fk6k^lj?YRmhV&Ah62H{H#!`F8WIUtfI3 z$B4*Gia{VUCq@7w1V9d+?Ok&=rWCz@D<6x9^koo?Uqq?mt;jA5sp+mjj+DlZ?}Tgt zVhne}0y3{uRdWbP!rRFY-QBUnSG#EVU8xL-Wc^l4D|z)14$4APIS=O_u3g zD}C34#LnL76Th1!-tC;qT^;~ZuwUJ4@BXN&dW#|eh%w&1&j66# z9TgK1(Vb2)0NkY?h(xM<7at?j+kT|4_WP&l3jtm5-rkK&L|@h5eOF6QnB}Z;OcAA& zGJ`uIw&2p(-+3kk|3&PbwTmzA!yFHHITe289Q;oD7nns+kk)t8;FRv1k4V-G({Q@e z@kQ~)9x>%-M?IOa;H1jhT|W1biDWpQ(T1jgV} z#JF7NQ_tRDe;O|z>Ggd*oYdHxL)V?(tLwJ7`h1v%Fbyut<+px)c{tep&dpXWB&3)P z=IDZ%2JQ!Q8f;q?nU=c9?%$iwXT|O7Zk)!$)U8*glF|-QhzvkKSgv9UueQ$#Pzq(8 z4>2XC^|~?E9d=`;Ro6|kRW1aX0Zs3a!Ux|ff){p_+ru7+pL}h(yS2xi>-KiGl3)9v z9XdF5wwhJRN?@}7I1bL*)KB)*SuN%H`Ali``2LC^9Jk|O%oL{ON>fzcrUbgw<^9Ea z*WYZ8TPZ{?GaG{QA%s*`MLWx1zdjI9iX1r1mbo1nC@2B1I`0()} z)9UK^FbyHN@c*&)CcoA;+kH^2RqfO6?zC_JwYRfBW50|tBjlk!frYw*Z%Ln_v`EI-^#K$ zZf}5NN`E?7IE?Ah`Rp(L%9H={Kl*cn_4volbVDR1@IU*Tf9HSu@s~_;`cCgm9Az%u zZ-4Z6D!z*ek2%aKrI=u`D6Dtw-Xh0gaP?dvayKz=eTwnPXF3LqL9~6#7%i4Xa|qU^ z!+M&{#o~+u833L*1S_J41f89H-v$?h3#r`?XJ?D~vbtE-F@&aVM;Bs@WlbpvNimSR za$o#EUwv<(r=FQ%m?8lK{+(cll>V7qVa`It)vrGK`RB9W9lAb6H-$L%mZNy^=yX`anM@83pPKfN>bf$e-fum5K7|8gH1@F_tPd1jNCX!T zRv$e+3D)notp)3CS}e7-mOSS?CxXYT^TV)frk&z)7^XykfQhBmvQkRl-0Yfml3W01 zIztu&Up|#}T|9fbTGaCVeD>f;IWKaSXtYfX(N8HWjTBM}nTVwnntr?P)=Eh(PzbE5 zBC^zt!|6#SIiJRq$X-6q7~{^S7=2#i<4+0()HlpJ*YxA+w6NA44g)HGeo}q$8;{#Q zc7qpEh5+7&Na%fRced-oFvU-vUYxCpKiYkX#sV z57z;Ll!{o=nXam0*B(qJmhDms~(U8=gtP_5(AieKMiTK9T&6m$)nT7LY|#w7Z(KuW=9`!1jaBT za>-GdTqTMr`B$4)LmbPzPALJhlhr&>82mJ^GRCOy{P_d3Je7xCbS|dkm*?X0aX$65 z-^O9GF@@PlF^#Ti1}6OJS@y5~*0astwq251#K`Ov5`z%a*!ZUN)~3%sx?C=@(^GwZ zQC6iIyBNtbbPxq12UMI3X%Hap+TH8z>#8WZ{{RazdJ;bikqY7bmkP zk4~x@PgbUwi@vo00NiIrW8w@rg4V`lIXUmXxqd$RDbET*LV#IS=?tbYNr?zBjefZ* zmS-Y(>RV6XPan#&%kr>|`@;~TKRd6ji@R+v6lEoQ_%#3Yql?!!V@#MBOr!I`fe@pZ#!o@u0q2+n5lz zbj}flcI*J8(RF{Ay4F9qTs}CTmzi9w&{SZDm{`;r8r+FEwv>u0z@F96zPbl zPmvN4V~J9X;k~C9@RyM@j4_5v-P7Hq2zY!1Q}UjrdlywoiSDP3fKoC*0;J%Rvqx$m zB1%N;DAe_iz77EOdpJ!z%EmHqcDzqEI7*BGV~ivh0C-Q>86!)H?x8jCb^&nD=R?F8 z3ZagQS47_3n@p76UPbpRwTy_Nlnn8hWN_pTdK+1|w+Y_M@Y3650Wd(|>g^;Rj*`5` z(^Bx15~Y-aXT%aQA{JsubTt0Hwf8Wqdy!!VLZaZn2oMnPUJ*H^`&AY|I_4JwFhG$N z4Dddo*-iiq-~*}Pd%OVLFI0p$p84K)513*I-T@*2B60u#00b0503$e>f8^}}KtOo= zIwoT<23$%Mczh3vfx-u0t+!+-_Z1?Bh*BOmeTaKTy6Kp%f}DFtc{jt!Abd7c#&7ZNoT0{Q41Q8bxq z-JWaOcfAdPqtIFwg{iV~nruQ})jBWvFif2DqLB3x@{-@(Od%yeUls;XY&KJt%d(Qf zKrs_}MVA-L1Ta_^Y_cvf=|l3<7^ReDxft8<;C#MVR)P`(@1YZ%7nL>zlVBv1fhF%^ zQEE%QrQV0MZ9A2VU zvJ-M}FftwoKlP(iN=25GQDvEzx@^0V%XoHHB<9D-R=Ls!wc(31+}(L=Lrhk3KARWo z^_Uf+tfVwxN{k^rd9);?VQ_W|qnk|5Lx?f5%$QlZ7&`yxa#`fcO_L3iEJ9|?e4Y~v zif57w7hUvma054qfVH+wB!u7~D9;Ncvwj$)g2mF5bFtaBO2TX@rIND~vESIk-U)3P z;e1}+-HuB0)kRiR92K^WJv*z;&dWpFL*i{eMrMT)TJ*0rm-`zptK3`rrfOno3z>If8c=W>l>mMzCQs|&ClQLH#o8>Zi-!^?dN2NuXD=q;!<~m1C!2Pai z2Roju<}SHr>VPBx2o0GjQsja8#XLK|EDudLOvCC-)wM<;x3^ZAn3x+|NQrH?(}PD< zz0g_C%UTUXiZMQVSjXu1-2pk1TyZHQ_&mcxXIf<`=}e*b5xjC}mX`{79 zhIZ3!N1L=%d1-n(aKQvuky1FgN&5WzXU`s2 zO48tLF%y}|$FZOMFm-W0t5GxLROWJbXz%t1;+}w{R(YA}Ow>izPs8qTsB(cU4SgRe zB#18Brkna)#u+k(K2yCol$j9}w1DFsuo{WwMz+IA$KB9Bt4+1zl+%2Jpd#wj@;15L~M?2{+YzWU~NyKj|A zT63dC^dwoXg|zh3jDKB(F zrVP(=ooCAWq3woD^XMI;fPxO)5XcSIj@F@0lZz%-Ss}7q)HB_*o%Ml`d9p>7JwAK- z{N<(}tzNQeFqnQvMPoFW7QtY%tDT&}W|eA^8PFtNx4 z<+A2U_ru5_>C9zDQ-CyySyfYv!2J1xvYyG=TvZiEBs)Mg%RnT?g0u0Nd|C=k6p#@D zAP`Vef@>ueN2QfSkSt0m1Tusq1xk*RqY@xFNDktIqKpw71qUfmD=9b%fg%PD>39M% z;z$BHM5nY;MsWnB0Kp2596@8sAt)q+Q2+r)fsAtyS_&WpCIsfpYD^hVcIp`g1VSLe zxj@E|0Z=K(@MJIvmJpca?3bE~3>XOnfuxksnGqZWN6AqF9jz0Pj+Y#-k{l#5lV?f^ z$x#Xv2*-*Ps5mOYmE;^5OMwF+BV_4VI1uOj?It0|<2WafRYh);G)7C7wB%X}ErsOl zzOICpLP@TbKwv8-AOKSI$2%l9QuK7cd93*8 zZHg`itF#hI;PJCSQV93oB4m=Iz5rze#X zJkLN$87$9BsWTDc&<|7aKAY)C4j_&L?b;!q0ax6`Q7D?tOlH*0-2n*B7WvqPl7M$b%@3fs6DgLK__=};R82@gX1Hc&ZoSy&a!B@rN z)Q8apce5UZ4ye5lC=>!`MQ+N{Z0>qapg3?92-B_|CQF_rouM{3ImeNNLdJpdbi3K^ z50fzhA)!bQPcM|>HjY^idBLAPd%#j0+bJXuj38lEt7@iZrl@uIx4-!dclJ})kK^Qe zcjRvVu5cg5662CldMm^7Hr$v%Vlb)w;lrOQ!*rG|E>~x#^q5~t9FPfH%^&RoD+Zt2H$`7Btme(&QJMAADtr7*gF(_=tdR* zWIQ`7mi0^`Ssw+8`MeliJNeexlx10cnz=Cf=-=G60j7E`0Fw=&s?>Z@aNzLQ{>JBm z12GmnS4yUoqyi57Zr!R(Gf=^W&32=eC<~KiC_$Ks?Bn}zw3r3&vMWqhLjxSs&+PA-|V$UqWGgP zE)#|QemhM-gpm^GQgJofNeG@B(+*=wjDZ=4u5CLh)O@D13{y;;!*)M1LdGIc=sU(G zO_RkKBLk3Q+tt4a_ z=KwL%&25Jet5R$>kwMH$ahS&70VoMlob>7edKX#5qUKTytpG@cAag8S2#0PvSX)$5 zDwtYkRE9}Ce|ZB)I#-{5ww%w*)z#||u$vK3*+P$3)NU_ed53%A^N;NVR??zNG9XTfYAa$g(yXm%VPP} z)mKxri-}|G3F0{`g`Ae^Hr8*F-9q*5S-pRX#s#3apc}Ly&rw?uT10k0Y2*9d-UNJF%m)?4u}8YZ~ix2@RZWLt`YIr z!WaWF#)z~wQc3`3C;Nl%|LD=9N6vXlsh-cvstVrcMR{^^8AD*e5Ksy6?gQZx?=9f( zF~@@IqiI5DVD};N52;5HIXi|F-u3`6MwBSUx3d>~H%j7rqln_WzJ1?sA%#RqYxDa* z{k`k!Ybm7=^2PJ7H=8>lBx5Wb1(uFE)5mNR07@x@c%(91Z#DpsV$6%;um7k21rZ(P z*j`+H{UQ4ku_RdjjsG8Geq}^1rASFo;t%JKuGUvCudmK8D@vH0fW%W^*LOQ@Bmn-( z7Z*~})yvn`<1og0rW3^&0h6LcS)s~Ot=HZDFe1;Tio?)yF0~R>DNOx3lTulKtbx8E+7d1my~K=h!M zy4&m%V@mR;A1}|&is#?FvM#g(m4!kMDIz0uQ#?JZh{1ZZ_b%BWvkd!T&p~RXiUN@V zrF3)GDv5Q4+pXI-e!ft^p|_UB6eEdLu1<70!=Vp?GgEPil5;UxR;cQvJUMjjmoLB6 zIh!qtsbPMCswj86rs)S|#MycE*{5e$uU>C=T_CQtBo>gV zWs5>oUtc}n_3P8~3Q6?)pk>L3Zr3{o%;d@#@%`_ecU^ORb7zAPLJFA}Aq&d+P|dP3 zSKEEN-Hs@7F1#HFA(U1k&ropQcjMi5oY%q_y1w=<#Q8!2c9R^ zep^eP{$y|u5g8@_=O2Ihpa1uNmkT~w|6RP}$P!@oXFvP-zxL730%c9pb-iUMgpmEP zS3)SRvVtQpJ6UUk_c70zbF|&LvQmh!A4YNH@{GAwVs#I)hzz?4B-*L5-{#dyH z&Z5rhXXo9&``Pb2zkRh_lu}B6w25&-cDvq}r6Ecmf4WSRu3ujhN(LOcPXSoaTyY_J zU8wzjJT#-!g$t9NdZV=xVm4FOdhgsgg%DyrkV?q95@Muv7{S2IC@v5_|M;^%`q}NxzVBKRayWaK zgoGy#=5>w3klL22OPt)aK5V--C69G!e1yXuq#=X3$XVA-SrJb!UGzsQwFljmf4 z8swW7>+N=PcG+-A42VUAQ?}jTov+TSB7b?fnx9~vb5HDgbLU16j0HYT-YTj&lP^pUtX6pV=~T!)jF%_q?@)O#EW?m zqH~lMOAWwZyn1834O1kRNKfR|)bmW1%h}@N$B%yZC(mEM==;IWSE8QNgY!}dEDCJf z6n!!a=)LO?jqM#qXx+_C^YC#cGM*Ks@4)Tg7eBw@60Yk* zpfN9$X7hd5HvM5$Jk;e_&Y+qLA@KHYB-7pCGL`45_~ECYeEt0P^*8IG zAG4aDT`D6CBA%Veu1j5)W+#+_57^rgZ`Xs-Qc2Ob$b4Z`B20;5xd7+c)pc9XgobQU z%cegq001BWNkl;xE6t8~U5YSr*tNI2vAuiT3UF!{xFnv)O8=G*gpF0=+@&Ehk&;;b+@~NDaB}F_tlOfV!Pdtx#&BA7IF@5>% z7-Oo7tZgC1LQv!?+2|L`RMh5YKigzEoSST3E(NO4;P$$`dbwYnuTgp-SR9lQ`PKG{ zmHhF82hzNpoL346hcCafk$iA5G8@GNu8Lt4s6Tu31P+&7ui!XMJVIZR?xMQd^isN% zl2S%%MTy?JpWw*Fo_p~DKKuTGt0a6dz`V~26@uU6emH-3oXFFAWDFxln$ne$f5cXK z>PO667@s=U14snYJf(z;Iud_0&5%)IaL0e}SM<+`F#tGN8$4rx3h3)pZ=npRWe2iz z6IVzny&HhxeiqKy(OvG|>v0nONeh6Zna+&ZYi*)54#Vsseu~w^I57OBL5O~N zOeT^j8`pmM^7^=MwwO5Q#~a44RAg zr;t+0^W5_njo)cd64hPLuJ=w##u#|#yq^F#V-emi08)r{nh-I@_~v>I05Qg@@{pY! zMHN^|6T3|;!P^g!C@EgPxaq2kj+bUNFWNOtUHo7E!T*()Dy#JV#+Q{T@_M_!Yp1T7 z=O15uezSe^)h}-5ClG-#WK}6bv}0;SGRVA-v80oa&p&SNUdp6*n>{z-^rDCs1*gSK zP9wBkc=kz!9M+o_Ge7p^H%Um4JR=5(Eb(}|=`Sv;Df(}pA1)u{^LeOdCyL9d3IFGh ze?O&^)w*4iGj=gwNg;1H>%gb)J^cP?$Coc|`>r8O2{6wSB|lJ~0$?&iu+Cf{m>t7y9ZAVkRW1ZfkWroCTJn+Wyw;k3qD#pG`^^X03n2&!X&wviDyH1%_wfV zUJQJ`6sPk=m6>VqfAB|NwT+L`#UP^X7xUGuDx7omsgj1GXWMoEt-M~Xa?k8xA6~uK zn^{5xOl4lkU2}MHdHK=hv)_I7RV5{ZWz${pT)G}b>9vW?K0<=kX^jYC92N`MwG#m% z<67tl(c3ULkH~f*?ndXEH`8LJmUVS9D~5h}adX(dah}8NRi~t4kjkpaO)2u!wWGIw zn%Gz0zIpU;RxNVq-0PPO>Lg9XSZX8tsnvS%*^`fd{Q4{8teh>Iew^6A>$yilJyo>` zP6HRFC>FCO#dN#tw2{Dht^^SF{jgj-mO%~a4Ka50x+!XTewr_eVjA3bfAj6vBKeZR zKry?gM*Ej~367wEIey4sl#FFZh6va>JLIlDKRh4O`-CI z=y%)h(0#N1{KsGZx(c^kyf{kyB4a7VqkhPD4g=sH8%|*iBFddx3QX87_F)LD=fIT` zvwEque*A3KHdC`3zy5lg=i>3x)BRx>#_9UCV?6R~2V-fZ0rd4efBg9LAO3@{b6r0= zJ74dwZ#MhgPR?d!S*R=%ZR3>EkDla*+tz#E^@GX;N{CZ(Q}Ur%bf19AID2EQJ#@CJ zbkn)>6$pjMq;!j^qgVTu&}*&AqB=caF4900H|wT3SjO<#Cks1;ZuHx`IE;bk4eOO-gfQSjDBi%(T<#wOhiT(RjGhMUNWh`jwvSA_qLkT#d&#J&f8tQ zecioydH3@5rXB6+BV)=4N$Q;UV=s(Q-M(JG+8=fgAC!xg0p{}}E?4;CWpjPo->#d0e%-uyeRJr0$I|>9Ob!`VlbhPUdHVPyD_9>kRVA}rzPTEJ zBNrS<7@Z3RT%>7ANb;mQ+il0|>;3DyS9t*+JzFveLeS|2Zui60o9^cJ(DsA%W8bnA zL?Tckm&zo@v_O+VRsaPIfo|8`YAMby%-qb!E?qr8yn3^~-R&GvKBwx087x>5yZvES z=I0l=lW!1dKG&S{>#IHlCXF&OlTvUQy<;KJX>~r0@#<=Sv%LSoQd z)b>^uad|FzG~+mqcDOj5t2_i~s<|?m+^yYqJ48lC|Wwx7tg(^SmZ@+5bC=o(vr8UBsAnMs zhOrxMZRTBT@77%ip&JipmnxT>j^;!=uCRWSfdWDGYM z%xZ}UU;nH(IbJ@LxzaqzH_zLf^t%qk84pHQ$#L&dv6JHrOmO5JgLluKJ=<;8{b8?^)KV%bIWmsG5d^>g zD+NE+Il{Z6z(`5)cIW#d5RVl^CJ>HHIQZ^z01gZR6vj@}Yk8J|1ArB4pQW3Gf&-IM z97(1k;LqbyL6SfS^o6_wAOsft#3&(xg!oci29z43Ccg|D353YrHS(D2fbfoxhxq%J zu=f_d-3ctcvmNLj%k*xK;K(R(gp|V5r%xY0d1A)_fsVIAAOtwF106|`+^+8c2pFyJuDfQB$S4Jh?jFI#5(h#c0EUzpMZp0WP17hi zB4c@;{pEk}KM)+G&!jXY%YpUbYR}`F+5^vWH1LlHH zKrW<&?)B|;ps6UNjJe_xR9~M?!o*E;e!3Mus?{&Lr zbD?CfUK5rcGGv;)|| ze(%ZYXP1jiiTFNQihY1rNhu{n9#fKn|KzKipMH4_f`3QfI5N~FJ~_QsV!GLEiN(b# z2c8h4ono$YBQp>K0$!X|gR|RR+xAUw9dZ%^?2x!1AA{y)NOZT^cs6;8b*1gZHaC9X zv~AOyG7WA35vP`d1M3NR>Zbkm%~lDw4^LioKlsDzUndq@uNX^k^i28qgLD0GE^nGY zJ^r76W-$f~oE3(C^~pa$Ln*PbVcxOH(&XF09d_H1D49~s^{EzmjBDUgWk9ynQssG; zNj|xjt1wRE_4;ZsRNH&)&FKSI`9EQ&1>~6O~(OhJe9JYpu8O!IMmx6aoyL-;ZnLyqL*n zkG_9s4*SDyUT45CCMF;)7J3@To4eO(D7{xE6Iu%)2NsQyvYN^DcG_1EIfzG3a*o`{+;%$~Y-WruqETE+Ax-cT zM#pz;s|V$H0OP)%3oyfa zyPNifQ%Bo6gi2dlsXs>Quu!0g(+?+gB zSz-Fl!mj&3R%>m3d{=-DW<81dA{;6`rw>HuH$Fln{l2Dr{0BKGkNj| zTykC)GOu(wDp!GcQ0;Vwso`V@=#5{k=+k0Zaq1rrF0B z8Dk*?=Z<7M;6p%u3~j%E4#t?AbHR$` zCy$4i;y4afH9KB%lp09C{ESbDKBS6|40UqPi_g!;=PP?1Krx_ScErCw`2#1<2eo$x z(uan?Ki~LcPOwtu#q)1I`sCBaVwqC1*7i-qIi{4fHbqgSL@C9#Z5U%m0NY|d7eXYW zvaH^w<`N3|HvN~%A{RnrSzZ*i)&}5sw_NC)f#6aTBLW1*5~a!7W19d#&^_xPeaNcB zrh9NsVDF$lzZ?O0AN77`|A(Nh54#-RJ2l~*4>AP*4h3{HXdK70({m{mM=qrT#+LJ? zkOF`=&9?7aA$SPE`{|hE8$+K>$`#=4?WAtRcTqtc)Oo-UFO^kst znvm*3bz{D{?fT4CbCXvp1aasFB_uG;?WI(XIhPVT<`3>#Fi>7j2X6b2XM%UeMU;gp zuu5ZEhpOf&>hzM z9mz2-SChfT;IVSET3()(S68hY z)7`BD78sAGkFz5W!Z?N)AQCTy`p1XA^wagF>Hn!C$xr}5ay~2cr;k^kuGCLo9T-i= z=*OS>%M-99D#rG=hbd*q-Ra}(DEl&544x+Is-k*!cKPb+jdRYjP|m>^CS}aDb|a0W zM_1Y)s;XSg6zBBS?JtbVl+xu486ianz+&JxH@#2cY*}bs9h#x<$;>G@4h*;?LVsEb z9;?aP^=4-bDUHASgT-#=?(U}DzUQEYVk!@_lZ-)R0Mit#_mc~&`D|6KuCLd_;6`T4 z8nT=+V+0q$L9?HvDC54?il5bb-M`+BeI|>=IaXHl-}*Ps%K|0mI%8Qyh_G9aSFd*$ z7ay0|LaTh&cJ0(njuA^?WVzy*A#ETttQ)-zDFD>PVp-37+vozXUJnbiRA{c(hpNhE zby*dKlET5j5Y}58Ls~9X*M;^FJ1dwgGHHr}1Ng>mxxmp4Z(jB{H_f4qm7a0V1!9q_ ztO$9<5cPW9y?C|0JpZIH3#02p-#2|TItU@fi86sj4tWOJ&}gIe$uX#k`eL;h~y2=Yv6$R=j^0?c&X$q@T)AzA$;y5WrDpyi#kbhHbpd5Leht3`u5wq^V6qgabk4UPvgGdyU3<7hLNnZrwd&cm}kto zG`i>sioCo$I|Vrar?0;mYBQ@%eb?-z6pOmnQk9i1XTqgvv#~b%)yj-RYMV4V6_Y59 zk`lF~iF)g&-gbxfaP|Mu_9nfSB-xqRvDtjS(;H*X$e}8$vWi8rn`(5k2eJuD=mxsA z(MCW^n_je_hW>(f+G(Ywet-Z0l7JQj34#OxqDYX{9Bas|oMMjm-kq;cHk)a2BO)Vf z-~`g(c+aj~bHDC>-*Y?PIp6utm!ngB(4G;-2(N3JH-SqGk#>W5^!VmRRJG6f6LJEG?(7Ga=WAD@cU_C)XWbfX;V7VO!_w?ydifUR+w_U5W6+$#+Q52$V zs7~f^FxHvLB(no^*MIAoNE80#X-CBNCfJPd6+w1*qqAE48k zV$LY9r$|;Y%Lydfj^^p()qHw+I=f3yQIxr|>Y#V+A&rAiG1Mh)Y9={RI<8hG3d9(H zc<)k_-unE`-MtC0{AV<3dRF%#b`GlURI z>CXn8$2_T9_dcOZc=X20JZkpQKvuA3u!YPZ{XA42eI9G^dXl;^pWk`gLq#u#Ue zm1Uh}g_OCJSzXt8UU0_GFD|E(DIiP;E{ZD43xqHiQpzl*cmxK{`xs-0A;y>x3L%8} zwFUqo_z=7g(R=r53*mL|*j~SS^V@mvy>s3j&--!;6qXVLBX>7cZ>ZaS4^!D9lRW1Cb6 z_^^u^D;R^#ZqO-W$?B{Sj8crQch~Fv1}7Fn+%0Xl3*Bge#7yR8Aqht!M=0SK$jcY| zLRJs%y_*%B5cK%v%WmkE3EEnU@T3xjVBV(DxOTMVTrk1zpI;(OtXD6u2BXof`ANZx zepE%pnkMreL_us)G2s0+2$D02HtRtrha@XykwU^K7;U?ux7vs3_G`aiyZvB+q+I4@ zA(+5C14uYUa`pTmdH&A5_eDkp%bkxe*3Sp+v~?U&$!Jb_3{e@kZB2d3siY4s?@&sW zRX5A=dO1?W@1304XqdnR6GUS%5!O5J({`D%jB$?ktBi}PV3qIdk-+8A*Pq>7o+jrs3c_>XEBC|P>kTg zFu^euC6$uN5R-GMGlMcF*eFY0HQAlh+s<3&G__r2h3qgX3bfM79hwHQbG_IV`LaLNE(f% zM8t?9HiR+8xb@=Wr*{)Z$@^pO)L-meM<}HvIR%7{4<&>E$Mm24`iG~J{MqVobG0Xe zrPs6jPW{Gr@4a_9Cm6@{wF>S>8Lk+k_nr`9oIh`hNh$xIKYQwYcsuRqujc;85S_S{ zfB#J+?qsqEKD7OztigHn;$}aNHYMUyEQ%>06eDn%@|-Zrw6;EY z1h_7%S<{S014Ke`0<5(gwe?ufPcp%>!(O|9Fr$TFoUjzI4ORyuDMnI>u0Yu(#*+Hy)Im{fH2;h6GOt#`Ahn@Jt}IT<;GDOCtN={(T|1WO=eQ zlX+Pb+K;R4_T}@o8?@YxpdKN+wJ2o*JB@)QQmv+;;6m#@oYZJb0!PAX>Shw-f0>g zB|-KB@`lKgR1<=6LL@}wd`cmr_0rU3`R#As15BJXUp{(aoQ(;!TiXrl_J#P~H&5Em z`+)UGV*-lFNpm6)LBTCoiemZA`}YwbE_j_a$VedtkTke<-|DNEgR#ar7Xm0_jSqEE zPnw)%m`i-Kec2Bhe1<#+C)+-;43$$#Nd)W@L}gq67(0v*{qX%elctCel~ylbZZSdL zqW#XCE$H9*=*$>A_Q@FPTwsh&iM z-fw$t9V9jyv#8!gI1|Z}x}Y8^KTpo_B2`5*IT@um@ya3^5`bl8Zt0`1Ex4 z;Lf~PBO&uG^dKt{+B|ASpj00tK%{&a#4cX1P7=^vH1JIAtgiWg-=X=a8Za zDIlQTsBH+|h}pEdeK|E&rxe!fw(G{=gL84Y>K@$6zxCd%J0N3_8Zn?G2&=LRC&Ym4 zw|X4H`FwWw;v$5Ui7Y6Z=ebK>dF6Z@Tf5l|Z9f7ak4z$vQp!asbH+H@^jBJis4|=~ zjOZ|Wo-vXolh6bYgBXHD2sr|P0QieA@qpp$003jGwLSuX$K-NEl0fu`U5<~l zF#aL{fG|c!E&N}+LjOVl@cNRE001EzV|efVZ_MY57^AgDsS#tGQhFT$h%v^#?~YXz ztTjLW(VwQ2LI@#vj7f|!#&EReUk^e`Q7N@poHTV4LP#k}nF%2Pz&VF0$z<_L#1kFs z5D<(pW$gG8z10{KN0>(l$Cw;9LMSHWxKTo0{UC&3^18j+2@^so4JAuW001BWNklCtGM@tYf#$OE*LI|z zO5VHeb`@g`!6Sq|_~1K?QA+4^J|~2vc#HsaAq0c~Av&awjcFMvDBzN1WABGx%QXNB{<)6r|0Nr@Bb4hEBi zWwO>e<9q-cgNq@{Bu;r%klB>S6p<&%aTgS2u->R?$sgRRcl&@7Lm(hvADp#8&_ZA_ zE6SUjea7YG*=bf}A%xv#=)uJogDxAx3?OK1CxL zVVsM;Gec*AC6CiEC}jd;)Ip$(L&%z%&8EV56-OpCHVm`Y@~F3-6Tl#m3_9=znDsV4|W8*IDR%l)D2wJfL)PI;Y+JSNH{ z;XLcQElvz4E;y%%t(HT?4mj$2ZH&i+MwAf68J!YJrwwmvYK*18%orvUsjRxX9#5v( zz4M~m14AMNgis6#5J&`~lCos^cBN+J2l3U+4Ltly=(v_V*ri%I1>29m+gDl$>+N2QS7bMljC* zFTeMxHSVu12b2IKu!=rBnRXICRsnNTVj`t1`k@UDODu8V!KLL*XM@qf_z+^m1hWW; za7-v6DL}t&7VOktsQ&-$;(RQ z6It!Hx)j-bQbmU%j?Va@_4Dbp$ZJHBHg4bb+jeifp@atHJ&G7I8&Jk46pC@&VW1>2 zl5jA1wH%ezqqp9t1cVWa2%>^>To@hZRXJ&djhbQNO~RP;qyOT|-K}|bHp{F@1TX;^ zTa{#X`{1M4T0p5FsSJeQP!;>q$|0 z?Vdfop3P@xXY+Zppac*^QE-;yR`0gEVYgK=r0tE#^QMZ>?V5EQii` zPY=5gA{cLMFsB!_5Exm6IEp0ook{_rNQ<1-6J9piq3baS=i|29VvI1t-+k{+Rg_&% z@xnPUWm!0fd4N$=XtcBKzHqlVbGJ}(L> zb8E@8n9S>01UC-D@_HEqi=K}|G|moYoS&An6TvA43nW86rM}e=2~N0~;jCbY;uMJw zaoueQ768!H{JZbn;WY1ioL4-{1R>B#&qQDRZC$rOf zG<`c9HcNfj*`f7yQ&Gm1wmDfWnmHp7!MBHYxm=|nA&Oz}##tTo>1EYa40}k3MidX7 zayFtsxj;peB8G@U^4xlV7!M3*l%{XIGe2$4hLOaCtBI&8nept_*=*jFl`K~4{dUt{ z-aZwKd6(w%3B~B-WXf{9>vme(zI8(zt%m8WG1hsXN_sZ0o4Uq_zT0g#H!oZ!ij+{- zJL3$^;&f4F6bF-la2Nfd8wHaofQRwUoml`M!3$aid|sp23Pk>hz? zimZhFVW&E~S;jn*A;94<2ITXptV=->3KoFS!RWEKMV?2nHmcdYAQYNv)^`1N*wsY| zDV?2Uld1@=CWHlui+R?R<;8s7l(H_X{cdp9UEE$Yb+OqTB+E|bbyH|V|+ghJVP>sf^e82CTx%gFgt2q>{)30J+1xoBLI@!+MhPKD*ZvUzc<%_IjL{gwvnP+TEaO}p z5rPnc3tpC0mPsiE=VCsaR%MxG*?d0FrA#S8iku5V$kCUNjtZbgTW7p;-dXRg_dccQ zj-A)O`D1M0=$m)mIcHvP)*0ihan=~4tWm}&qm|L4F-jX{oejY|XPvj^t>&Dz*4S5L zN^7OH(rPsJ)wpx^*dO{lUAVp7hUX;l`S zVidtd6HwH>n@#GolQ{)e z8}I$75XMYoFmGm=%wkLolPo7y!RxX(nJq3)r`^7%k|l`itv#%SN^?qHO16cfS7_NKRvdXJM$h$82ZF`mhoQo7nK zo!9ee@$SQ0A3S_VNU>|zo3&o5G1Tg`^2z>a)y_5g+AAS3@$uDN*?|pH-x;YTeQhLSgTkXd`d9?i2y~Tr* zX0#svOc3A=bF9d+*|dhwnC3y&Jb}>mEJXpPkl4 zE+-AAm~$$vafIT#rx>&8zx({3A#a^a2%`jm5yVb^=iSra{O*H)_~GsU`TL)L|I?fJ zH=qRi7x18HXpua9H2mhnv+MJ6NGb2Sem<+_)B4`!9Zq=PwIRBQkn=7CO9>H_f8*Xq z2*reKUNA`b=GmC#0ubuWknpHSJPzn|epwe;Q=#=%52Nwcqm+=x-plPuYvr6vStfk4 z-7qBLZLnS6`v7tN_SKbcYD5x{aYQcAc$$R*C{{kx~D&EbnD zyJ;>HLY}(%B&Q;9&L(9(Drb!Q@+Xgt3#0b)IiFSn%`m1SAq)|a5ylStakK39DaPbM z<`@ysxG!>1W3NB^@s)AWy4cLb`DsQGU0=Df z$#9}zsA^jq%uT<8fKp6lNbaGkJZ5r*4i=?qDn7c z_5p035y=UFU2g4sR`_TzhAJyntBtW|7tPRz>vh|<&kpNhQZ`k=t13~zF~M@P-F4mF z+jE3r7)((z0Ql_F7fqJWW?~q7T9xxtd3rYO589i-hK=8cH1c)dE#}$X`}4yxjE**w z1;xyo4%zU@r`r)mt=+VdG>bRe4zoZ7&N50X~4reEnDef@4Ac=G}1 z$Y4j#Ic>Dj3S%;zPTyRhVo$N}oD_YpaTH0#=TEnJ&R$%%kSGTs8K2a-Q9}T098NCo z`w+#b!8#)vbbLFjNXb2oj+)T5PVnaSSe59d#{eIgvNZb_}s>hzL1K zygg_pfl!1Tr?Kq%{;^xzyKa5xCe=h8wspzX7<<(ZPGvCh#&k;0Nse$J6hD8w&2x77 z&g|)v^)QT=i^fMEN#doY-ZZix2(pX?MM@}^hpyYH`}Zd8-p9exP=E`jr3`p5w(D%M zz)jH~c zvnF~-Mr|L32QDhC7p^dn4F2GD)e?(_ZkbB5+xZaL^%%TX1zaK z)SPDhF201rem7zsZ(p2jS0h1sz1Nhg;KpV;p_n3w$#>s>_Dik3h5HvaVZb;6APliH z|KOuL|NQU1^Kbvf-}`U=r{Dj-fBd{CWv|@d8vW zvqvZMDHWL4+!$BzG>&Gu-QE|30N$yavZPgg@$zO>%6R8|hB12a#TZgh&QBU6Mclt& zMaAm*S(!!f`uWTK$!Wz4aK3{S4nuI!gHRM$ljqkryAa~V`BW*hTWMCNiE1r`$BZ2OqfX#HX`C4jf>&GN9FHggX{l7X< zLePhm9bq)KDmg}kc^S9?8j7+802EhiF{d8JPXX5vM=ZQ7oEW3BV zoPIQ)&719h7!H9_GCz%sfy|N{=hnnO`oZT}PAEs$>mj7*50Z~o#8}i5MF4&v4jR;K#+zZL*Rqp}e7q_}=QVw{-pC-W*I z-5x^2E?-=~9Mn)xm~&yd4JJWM(fi22?EBBMN)&vS*M-NUV4fnhT#nN!zyBcjiCuzT{?P3~(Pdh&z)K*A2o173~ zJ<)j;#7{sWAEGenC3y^*)qTBl#UL>w*MBiZ9?#(heET@B{+Q|YG(5QV_t z=LFEv*Fxthe0@R$^sayYWBQK&8(IetMt^w;?>CVU00^(SLvMTIj)O<$kM|zG5$+`9 zIBu<@G`$YU*yA8V2*1U%!k8RoNC`%-p%*5Yz5)P*5JF#7ZFnmnL&#S*C;q!gu?2*wxlDfYOS zrx22{fKZGsIj3`;*HYS&B8=CY7Qo*+mlr1|pZsXGx^7eC?|+AJ5ziKj=g$vaZ&*M+*85Tdbk7;sP^1U;Y3!Q*BUy-PMGMzA%`D2uU~WRt3zM1a+Lk5IaMD_cy- z$3Iv(YON6s(AiyG<;~r9>*vo~Wqe+efDf2(iq20@^YvD(cIwvs^2O@;qo|+K z#$n{9#iVJb*2Vo!F$z_g-up+lfAaBqeX~QUm|v3mj=Ibz#@5fC9uNsd;fe~`um^N@ zd4A`IAAh>-)yb{=i>F_F_GJQ0w6c@Dp@H>g51ie;w`k2qgW@%GPH**iXFfT-AZ6d6 zlr7FpBEk2l%q2Oc?m$Hdn2=y2LnLWDAWLY>GI@Tw7_~j@HN|NH;3V0|JHZ^_{*DRJHDzE5)#Sz)9d{Y9t`i{i!Nv4<{@`<5 zXX&qn01!f86Bh3Ld}n#4>pM3bqmjx$lpI%*L z$!W~&fA-to`R(sLT<*Jh$-zdQ!cWyX|J!IGrWk{9PAUG`$JZ>c?%b^@C6wTs_3pTq zAwXl_3(h}y@6O8?`<=0&S*qGM#2w ziI+=_4?q~rE6JSo(QluotVpwqAW4Q98GFB8?-z?|xmibxc?MaIPRhnPp-+6tGeROTZ}Ox;DQj8Uq0jj z6s5&v%E&+XXJ>!>XWPx%LL~2h*i=)Z;}8+rA57Ppy5iOt?>)hDV{Ag5%tMI2+nESy zKN{!Z{fASf&350rKvKd!>akZbd8f&=u8O>%gylSI_xl@%E#w8$``$cL0Q-cwyw zG?&7vh;ahqDUnjhvfwHB0H&Ga$yB^}u7C97tu;8$`8U5k(Mfe$b-ha=$&9E`rx={W zX3PjPm@2@=n>2Rrpez&Q?q#KI7)EWqha_BZ#*RKI6c7or$n#8Ok_w3U<V#cZ<)zXg~hZVQ3Q|a_dfhc~2g6 z=R)i|M@XU+oN?YVttFtyq(azN4OXomN4FjI**u>&+4XWC5+vYCc^6aw3n>!MZIA1w z%7tK z)+Qjvg0aq1jQmJB<<%rZo~psDZ#D$;W}4Rxl9XDTly-7qih>qWAV}7F!a`G*$J;9u!>#JcH z-KZU7b^G&6E{-b#o1{^CEb+J}*8A+liZW$F zNY0#hltPwah}=6=7R)Cdyrm4Co)#~zhUYJa?K+)bX77BX+8%~o+utnvs%Dc~c<(ps zJwYYK`Div=hSPJgyzaLfGw4uN^wwF%7~c2VM;L}ca}%QTHhPV14=0y(LSVetyIN#S~+T=qvc~^VZJz zrvBGg`2g`P3Q$T%3Xr>Z|DD-<9=u0ir{KSRAC6oX@BQZ9=Q<(u2moGL%dZ+BKqv5HiD<0HEn?$|!wPgaIL-I6Jt{_vVW-ml#K@eLwWpFfLG5cwoT?v$;|s zK->FUm&IaEmGy@~Iq--;UZBI)j-!J_FrkEF3M7}jki?Ekkep&(*8mA=g=p@0ma>cs zjx$bE0PD5&(OAeOMhU#NXBRn__}L4EB|aR?e(T@+V1BbXZ2G-1K^r}p2n2Dz8@&@k z$Yx3bd&Imqq1)I|c}(!V`(>}k(RvRF5=em=MccIwF^yeB1QAX%A{dT#FdQ(Yxny)Q zMb?5dm=szFJey>k;^uz##K7Q5h0)d4_i@tvWN>C^K|=%D0En1Z#XO3Ir)y4TCaP#c^=5mO_wu zldHX^2{qLOAXX*Lax@MoLWE2$=0#Od-Lu-@L)~vU~d@7`**Vmg6aa~nJcz}>ewBMSsGv24c`uT$91!|3UA!0-TMQej` zUiG2fsfZBGS()*Ivtc(@c}7WAxsNf%bpNEu1p7b!{pXlqc&*{3wSBtnfB&%wL3Z-+;^{nlVLk2Im=ItF&N-vadZ~EM z%UaYtOD2uIq6pVTol8=dM2(<~!_v=Ynan5(DaGWYwZRSpFhc4~bgd!;efZJBq0|k& z-MiiL<`2L8-Zp$g>$M9Q5F!}IPE9NMU;fKqe*f0##jO6r&#(XM|KWFh0&P7)f2;og z*FLHgR49MrKiF`z?iG3ZsIO|?)SQT<(_mfD*4GsyECI412*yQIGscmSh*Gq@>D$iS ztou86OTwTXyJ2)ngK#Kdd>Uwjt9&B;tS(#bc6s#nX>pr#{ThJ72 zu$~$d5jV!$^(tlyQ=Yj@as;Sddmmg#9uTgIJOoRy&u8hVfbr~0{qzfU^Fo;x{ra!p zpU&i$Pc}zM>+|!f>&DN&xSljKN^&VkR`|_+yFVOuYwcr9I8A4mQQY^0F$yFhOeCj9 zduQUJn$sjn;^VtHJ7}(IYVSk8|2Rf^vELnfB-N7Z4Fb+~k&Y5>cU zr8ErgvrmTo3pDQCd?tV6H{NY~wOkG;VM5T!Nq&93zrH?5UL!)YJRmf#_Zv0Z?P`b^ zFiR&Vr0>C4d@QNWD4`U0t&t>~RZX&-Vb<@QGaiDKf+|ft=s?EJDp}+w_jOfsCeUGP zR38wEl#onj6yunTtOC!Ykod{t_W5H27VmG&H@|iA&b`GKkG6g1gO6wDc~S6BKE4{2 z&$9`j#HCYaJoMdeqYrzHIW3x4*JQJWlrR$n5yS}fHg!99dRCUCk~oVFZLf6OnmQ*4 z;ZZ>(!>Ih~3XzFwZo8_=ypP>Mdm9r(&Y0jVcx%08g%^3k1b_Ua-Fj)k(xBnje(h2) z_TuH>ModV$|4zN%jZdCzl(t1a!^BZ$gv8r@clDyB3=>Y8c_5T*w+Um!1Vsoig55fy zfN$NdGg=5DRqHo5DuytvNk2H_Qj&JJ^46g2)|gi$&v?SVKUkxZHDT7|gkWt(OdT(i zEb%yoAN<+Yj4<5L#a#Tozkhl4Ty3|`s5qPRlk@B+A1`;iE+&jo25ev~at==(@7sgQ zN+Ao7xgV`ttsSGhZX~1_EUd46Q;GA7CL@LF!eQmwolVG1Dz@L7M8ILay+$Mt*@co! zFoAsXW^`j8Acc8-BGY#O!qEn*KK9x27qwJ>u002-*Uo-v@Lh!~W`+CYR z`Z-|W7XSbNzz`MAc65p$IYckx<|OU|X2Cmz5M!LAcmx0(MGsh_@XenA008K7dM5#j zh}|E4BBK5&0DxZq{Hp?hV?yfJ0KluNz!9OZ0f3{4@4Y|5gEzU+ug&PBwff1&KlI)^ zYppZRI-|8V+B=t$x7HY~PESwrOcIPKqbbFs%Ug;}$_x`sFyV{~!5L+oan8lDP$1`= zaZU&&ln9a0*Xg?SRZ$1d7zacMW`r=x7^RG|Q-}VXr%sQc5YKl<`+hq!=+qj4{r|F+G3~JPyNpv$ED2qlR&4+k;X{sqsxZ zfzij8+8Aw(j?o#T#<4#;I}_qn6>9Ij4-O(7!l#3Mp$)qCuv%?~r_a{8tGNdytWrD^HMGmSb!_Fg&NTUhERN&xK3V7&JA*tYDvu%}ed4-g*bxl(W0CD>~fE9P|Rjbut z2Z8_{T01|>ijsZ#_+>lvjB+6X5gdX8!25O-47r#F+hgj6E@6U%;0(AP)6k-j@cCsX zC18(CA47z?=7UoEodOyX$03BnHDXx|LQBag#omH3$>~sJ*qCv<>wF4`2W{+Z&W*F+ z(X*fUlUco(%k9cU$1tFMYi{3Zd~~0G`5Y66J6WO&o#Gq~PF!uo>E#Abi3(BC zZxXA^mZb-+wRRWX-<|HB+r4{Vlg-PfvMODjNn@ib%XC5p0Yu+ncqK{l~#*L7MNoC2j73v??)g4LJ(0#Z?D@gJwATx?&@$} z{Rw4#L=1_)^x*LMcKAQP`A%86TTb9F0RTV-YCd=8$Blh=vqxvqSZl=ARXKUtx4D{` z!ZK1qP@0Ox$^;*upLaR3t&-No{>%n!#l)gEgbJAYAxcgLRpu1pwC^ULy({SSR0k}E z&TY1f%i(U6C_n%pDOUyk>%acifA#PD_Pi>!!rkEi_V4|%pbCk9;RHZF`+5Hh;ldK& zjnyB#^}4U>!d3G8-Ra#Q4qyEI-NWi2#uW18M^aiX4$HRRgfs+ik%Y8>(DB_GKqSSp zi)p*-T`^5QGGwC)09Dwcu*K!oqzyGQLzqd4k*adqXt~-35Q`si9?z~4v!vH)`@ZO!H>tEey4kI=lIP>r@MZywcf5{vnFeym8hnil(2sKm6tgk00In z%2yr(vLfH^rlF7PtE4q5RcOMLqaSq`N#TTwv_hW*1uItf?i3R8Fz|IZ#fjsXj9!2O z(8|ogM=on~=Pgb_j~hKEMMy=(%B0M&ZToH<9=^6HoJj*fv?}Vwd^$OS<5T_g$@u*r zzfVdbo61;i==c8bpFDW5`s&x-0FEN#ZaXSZyLC>Hj4eb2vUEF507^~k^)#QCfY^o5 zD6O>)UF@dRjnVg6GKaBrRiR6Rko#e*S7<8?y$u=0q*73>$f&Y0c)i;T$Xjn7a>CRj zPiCfFeJaCYd*|Lf`1JdK@MB{vp>9f(0{wsg_^GSpi(j};N}NsYZW^bwxfHF*xiWEN zZ}*o5bdo$FqR}*F$c(GX`c}4mh|2e)aFpj4{`6$woOUzCiKa1?r@pBjPtA4=m<^$} zE^C_s^7(p4B=_#k>#Fo4=Rl{+)6jU9{FSfIh8F+mJ0DCTmSr)k>;8&<^xm_w)DIu8 z5QEW52|j(+?Y40>uLC6!@vZWxjb%l0bI!3ZMMMpI?Ot`Tm2GqZ5;T7>C@oVZWByY^DgO==-$>FjXzg`RZ&ppOwZc*TAfz ztM?|%EJfH&$tUj4M?W=nvp`)=W2cMO983;s2z1#_#9F*{E+5XVK)k%3h@glxQ)Tuf zQ~vTB$5RM*PNsSppFCUpDRYY2nCRh0-)g%d6J^rr=$-~3mHC5b?J(xmauHGtW0uJY z7&5FBKYOx4g4v>49Bb$J`40zI>47IE974W&nrB)cogO8iq2Cn;6BHSSS~q614lyQ* z&T3hm$TS6I>L?Q-=A5_N%}o%0@BV`)AHI*DiUR)}vqgk&*&{c8mw#dbf*>C4 z=ck{XnLBHJ@F!row`U;u7y;=M9DS1Xw0h%n?RV(s=>InnKO&+a@}H{Hd#MK?y43@` zFxm&uS~KTYn+n{pZ^m&L#}NR^vYgKs%uGZv#@%jft=aGQAH4sb*5;;`{}EpZ;NHDs zL<~NB{a3$wbhL^wkkZ$emnmi8SQf=O;TfwzST!qqX`KBSb+Hj&SR`~&WZ>E(8rucZU-y3&64-s{`S_Fg}qrwZE-#M z0RXMF(>QE5*VgFG=IT4&{Z?5N05JK`?)F3q5v+a1Tb4h%Th2N}3}Jfv?YD6@6A>cn zx-O=PIOzpwQe&6C_noV$=Ta}vH|N&qd&S}5!GYvxl=;q&pBjT2)%68gMV3?=0Vu6^ zU5IIU)a<*SL8i3{TLrU_SuUT)(ioL7To*?tcRG9N(-1qu29ePew)MdnH}%xaV_E7= zH&6>hpUPUAs(5(En!Bzr)%ke~_5Sp@@e`bN`>XR|zaL{%mhAQJdYHzqeeDerq&ga- z-}&GY$SWzfR}8?0)YvB7;MH~KIl9KVn%l0MdNW=_R1s3xTt-4v9fipr9xda%o6_KS z1s6Q4taj*g&{prZY>u&+yQ|H(UI(RMvBdlLXC>uFcQxhm`f^&VP!nk^FR#0w{^+W% zTvN@r>$rpNax>k#zq)tl?m;sE%H?`rYQv*z{X~@Gm_6id^EeHnQZuUr!gik|>)6@0 z4Fl(4%totmjk>57%i7*uhY_RjmGO&NQ7&xWr>T|QCa;dMsPuO4!}DAg$~g7<A zNmd6mUzv+*AD)dy(_&SA;jLr;Anf)14}S`XpG~z#gqR({zy0+$=A|7%ER25hWbvIJ zKE=W?GZyBbfB#92{Mym{FT8PzfGOwS{=&Wg_CNZ@|L}MIu}56*22hGw!0Ml!ZQr}x zed*zm&-qV$l!=e|wWE1u_1KMQ^e@Sl5hMk9+^<`Yg;6jLK8(^-1%L?ndVyz`Yjd|| z}s zfDV83_fQT z^ygtHSO2q#kL=&ToxrW2t(nZ)J0=l(>Nj}5krq829pXNf=3}~_Y*|WPN`Zg z4l1&-_m^mcDza9V6G_mLG(%v{!t5g>sy82<0^>BK90}PGF_~P<3$mWpWt zGZsxgKOeg;FPoLoWR3D8y!Yh!o1Z^;{Kf%z4nw*+>#uf0H-x$@W0stO$P^ArOO0_# zDJ6R9DUCu|4Lb$I=-3r1v#PQ#N%`YfaZz{fB2)Wb$wP=A+u#%~`u!PZw9i;A35s zF+og>pqx>zOtmT`%dDx`t2h8hwZFz3QPmj;Ap=IHN~=oES31j(Z~z;WX3S<9M2kZ} zQQnlizDU7KRq1=j2g~{F{Jf2xiqfG@5xXowi`@@h%;|7;gy)T1Qrs6^+LN!>1Qx2Y_2>D>LhM?;&gFNVdkR)#%nql}iUuw3o8%X&F4 zn;gN1xb8Qf|NO~oj}Hye)zi)8)wtVFRaJ1t5QWeplG4fAq?0mQ-8or~TkdyxYz?#M zSuQK3mBtJzL9R%Z=$ub9WC*}aDy0ei01iqbP}S6JVYlB`r7h{PKok-0{S6nTnJqs2 z;N2V3o?8R}UXlO4f&jp)wwSLvfqp6ri0Ds&o#(;SDmu>4gA}Iqv!jv)~h>sD}R9ju4J6P7GaZlb2;~*?h z%v3$2y0WCz*k-1j3-5ENDuu+;ID#;W#7P-rtFmNKW11w&uoD2_i1+UvPBE@G`*LQ; zNZ&_*yjW;uc-M7}U7fBDtkZ=lHf_7vx39l>xZ8K34>?otqO=vJoNtmt4m=s18&%Al zTg;lvv$SsmCnzdY&9SO<;cR9I{Uk1nfzp8{8pbh&#GK-Uq)g@N7$MZUHwueQpubH%>x0b^b2)ynMKF$O%WPnPr28uRq>{Q1RpaZt{d)^|QU zeeH2SMfwae03nVced)pBI~TjF{pk6ZcFa@+4Atw0?=1B?r9uz@#QPXx(i#ziB6d(= zvaYhbjTgqIam_+03qXVzATwl1HUnaz^w5tnMgb(>O&WM94-(2Nh*wDm7oaI7nt#u1aMP9YBr<88gH&MZ_3H3k4s22-;*} znnu%b#g&){11QoFT%(sXOyiP0mj-3;gK4 zrw2#X7ruD9z3#Onwe{QCyil4c!q>k1uxtIhKiH3L&MZl!S=f0!YpiBw29p@}LsSeQ zLCIV?H(xZPNsKY%(2gzVB5aMT4G1UBrB&;TP2xDk>FA`ctjSTwkU1u8XmM;sC^N<} zWacN&cCI8>>KyZvi}S;S`K+l=7k4`~b(a?zILp|~ZO-|%hf8Mp@W);B?1#(>w87Qk zJY{LDBESqXPI(BN5*kfqP0X^Ktr$2gEuHAZJb?KL7B-XKx(dIjwUf zU~(n(d*7_EoRu+BPMmz)cawBr3k1X0yN$n!_wOFf>x09^a=d;rhA`wogzK3uD*Tnz zgUxn$?{YtOoLDk~vu3t5TEX3>W{{Mm^*Ib+G8ku#Np)eWYUb0B=6Tl+X)1k6P>KIc8ZM7s9kys=l2#^Z8Xfj-i>Gq^BoOcZaLR!Se9o zoulikZhy&&Oy>vf-C)D@w?#q&*0IkMLV=Xb1tEN2E-^=)carmW3kuA)!l7(z@x zd-sw>sylLad7Waqd*|ft;mLB|%*x^Uha2yGANu9WJ*;Q5;&iM zv~cAQzI8s05m_@+5@(!tH7>~#VaRNZZ3pQBs7%8?YLdH0$D}#p#0jsi_5=!&D^|vo zBq?p%F!WJr71_f~FIQ3+1B~51)wP|UIH4Bt3`Py=hF1DQ1CUbucnSO$dR*RE*ndJC z{L6u>uk@fzpkCGZ62iplk=p&bIs2n{qLE(><&7~vcM`Ph|E#L8KTC<|)luKFp?+Qi zz|5=F;Wz&B@BZU|@PCzMb*sI;ndnuqc2m(H6Y05>+AFSEH92mlcglDya@KaT()$ZbY<)A!(Z`&RHkL;x>D5idsY z85!5dmW_OJ|0fpJ3!#Ok5b29=zEzu5-}$HSue;m}@UML7;jE}O&%)Vr@25=Q@+4DE z#?iqYW0@>rf*c|xt9N~#_MvjBs-bAWUr$w0y!HBhB1|n2%lURUD=X$S zquEIE{?n(%7z%b6VvZRqpqdX4T({%k0f?tH1Rp9>Z~@Ixac6mVyT1}Og)IBz_dcBc zw14CCN1$w77^~eBf+lH}bW@|FL54Rk&gbV@liQG*#xDb7YQn zt&oIe+^mB(%33Z8wK^%o7|BwIqU+t$<6}m9$azA|k+2)PU z-Fx?JgGT2p)D-{w@BjGA4-bFxeDl?Z$K4bJq;%$V+01L#`zW{Kdg1SUaP{B(hyTj+ zP2Uun|3o5CO#EN}d%yMFCs)_c!!P@c69J`yWu;gr51b*V%py>WR%W#-x7U8NZ}aG8 zi)wYy#FPRD1B>I;V!J)}Ds8s?`g#~5&*tvYYe%!9LM0%nESM#0m60GO#%$|4u0K4W zX^l1m<4poXg?n_o{P(}{C2RDJ8(5)H6Mg4LXTMDO|6lkIQ4*W}y);=W-Fz;_C_%N^ zwMG*v(KcS4d26XCm9i{KCYk0%S=31`TF_5EF?CLx|tRAT=mm%IA1NA`F4NV_0z@Gx^U+Cv%aeBh# zv5UL&l>4^bhR;2CO=pSL;y6X6jV7HUA=uLDT;{UE)6?Sm!uvj-uX9xubyZN})b7YB zM-g|;vakwQylVY+TOf4*KFIpxrbu9|sM%$;#SHrjT~yQ0)c)bFOv zm0ui|q?A@L`N%_F6xGRm4jHE1@Q3fdOG;e*;_cXv0-~H&h*(t=4FlzS4;*AzpH14* zcF%;kI$ZG7g<-1ZI!4}|1q7V0`pkJ4MrVssSuB(_WVA{tzyIX9t5rQ$1y<3$mO$E8`UfdVgbY)c@szE_{EcE%4A!WP>xhjgPb`_-Sey?j{fb|B9OJdq#2q6Yd z&RLCuO4-Vo=NFspuDx@&PLfyU46@SFly!mGb?TA;gjpH6J{yKM9iCJn=X&OR2vZ;L zESH4Pu6N(P+V3`^3-02sp4;FtMI%TFc(q)B(CAYP{NOd$Z}V>Ly;bWWmxY_pt8u?c zS?ZbD?z}Mdw5{i68Ydr8Sy&|qMmviJRX6&#bAeDu6g8i(E!Vo?;35z*=_r87T!ex5lU->I?~trR3( z%_{aq+1OT|`{3(ZZ?A@-%}CJ9-Evunkf&){&1PCKjD5e$Pu{)m_u%GPX{f8xdlX}y zo%OR>b$D2T;AYorjrZ=C>*u~3B3cteGGLpTJ0I4CrW~jp@-Xd-8kr&bga}2Ui8TP! zqPyVF&i6*CqhnWU1qg;}O;&tmkNT0fQwXNWk_iw*L~DKb?tKJQTD9#SL~i<1dOwwA z{fQUJ4OZ|ntb8@1la~=E{;9?Om!=MI+q(T_Q!p&Vf7`ruAp28Z`zmm!T7M+!P%n}J2FUVaL`G|;?Tc*WW7Wiu zW=ESBKCLOITVSMc^-aTsT(dR>09xx@d1jrn&J{&9tCu(Cr$z_PH;z)w{87l1UUHO) z5N`z4gzz#WV&>!H6C%(!KO4UF!8^}pO~2nyXHP?OMA|}SOYig9&>tSHgc*^PGS}h^~d{+J7 zM<0fy=O;4|n5!aX-ghGc+`C_dk!c84k%-I>tL?fEJQPl=j2}LI(ht6xYf`AKx%;3( z%)kve3eW4Tn#yo%9(>$~rztjcBC5GiGZ@p>~hb2vUJ&fXhRum~uY>#}P5v~Bx? zW!1I&?d}RxE^Fl~+aP>?Sy_W&h&S&4)cXTJ48F5QfypW2HpHU>-$@@ep+023`LrxYS!7O1TG55Dn*i~aD=7)=6aDjlcUVkG}W8gC9LvPbrHC5Td~U^nZNw zKmFaW{`OmU+cA7L2mn(|4-RIHvz#&j!Y|wyn26vHbqJEgSx1ToVju?PALi!s?t?$*F8Vq9G}dr z6GT}wRZ=G*_}!>(u22zjh=1c>`|@9T`#vBL;tMZ==)d~-B(%LcTEL%M0st6N0^|PK z?r;3{#ouzXC8Y|ZUXN$Srm_TO2{Lmc5#w_!As%({xnGs19sH_o|_2qzxV)FZ45LT;$xw7!E(3%t^2~j*} zYY0toesR_I{qbp|6c*ae=A}{^r&^QVP8UK7O%}+Ifk34Mu|o~YD(`)I{`5*~AjG5D zOcywH;X6P0Kz;Qa3laD5-sy5NBNFBugJ)!A07dnC7^mQ4+H6P01U7`2i$aIw_hWx> zST>E-*)T_eWOOA!F?*k)B@8ZMJ(|4n7VkrD?!!m$cTaIzLX?2acacDW&N=Ih+jW}|gA!6&X`^?WIQXepASu}GMrN7<-aR?Gdve&!3g(bGDrB-8 z19dw9Lqj+2_tUN)s7OMostTWdKMhr_7K?)NP1hAqsDP|c8p70hZwfkCm5N9kRh4C3 zR(+Q*uP>6?7}6=lzDw;kS9P&Gs$Au)w*A<~7)U5FyVCR>xBXNth>Q$F*ta1jTGaLZ z)8nI~dCHRygVPF$_q&vWrc#Yl*sq5v2hqV6Xsq=q_%tdj%VnuilYl^C7E~^Y@BP?@ z0F;i8DpaDBDqUfXod&tuUiJBsD51d6$DzyBte7ndTbjxhK8*b^T2dh;-o}L~c1@Bv#HJ;`%ISz-99xg13k0yBH>5fMQ~a2uN4Amk5+pDN&+%lXuT zm)v?!{u~7GGS+AKx$ReX=A3TFetdH01^~IGNZsTE%#8S=1AvGaV=gYvzWvAFbguXW zZqPK<%}3t;;@j0rx=ZlkhO1Lmv!bkS*frKzYb<|U;qW3*ekEtQ*|M&@9n-D;PrXC{ zUc}jm@T!^tKoRMeM6ZwcQ2Ug!eF*;cqgvaW1rVdpIRT(jdcC>q`~3|C=<@RNrk7mK z+5135H!9~>ruxOHtkpNC$~k}G?XTQmCIFzd0TfN;dH=2F?RNofOsqALMj|zhA*679 z+3)v$v6>wp&mO&YR97&L-TEr9kg^ICX{WdAZhg6(Ep1jg=4>poPC^_*T+ZvJE;t9^ zoKyCJJp|O)EJ~$FE6S3GapFiZPvbO&IE3iOJ}J;eWdwN|1VxsIr8Za>E@j^IZ5A;l z5NHG(Ni7ol*u#tF|B37yEi7!H2N_@nlEeR3=3+78FES~O^{L;{Uof0sT;aj7REXQ$SFb?^TBad z)lL~ez^mOpW{#Y#Q-q3vL*Nj6yPLMVsj91H;U2wqc>nG^`0@Pto{_XR%7W55az1~0 zZM32S#t_R2JqH%doV2FHIlLYVvn&Z=P;`Zg${ zvUEO0P7o(vuF9&`)@f2|*Y#rxu0+mImE{ydjN(HWM}K`iDy^%zdHm?`?1Q6OV)?AN9ti;C zXkPu@fA&*jb$E%qlLcpAuvjmR&VYG!dRy}_*RE??YidAII zqEJXuo^obPrk+)Wwd>0f07GUb_54{UA|deOH|L9G(M~&~_4A9Xz8hR&5Vb}(^RnJv zkASi|m}g3wvT_(Rr#umXWM!0^&nrWEb3Foxpjux~AtlLT4c~iI>N4-g{dU`4T&|rn zij-CbXz)3QA?>?d&8@8vGUqHK#}MMIDYVi6MW4D5lPFp_o{*S zE`Mrwu%GAr+ytqA24A*>`cuK{Pn7U2@C8@jiN|m0Z2)}>5h%!Sr}y4b_cdhsm(~?V zDRrydy)FO$@CV=h!rNayIywp=!z=yKJ~0sdY!1vPGm}r7hfnCRZ_M#Q+$uedJ#OZi6B7G0%7fWqkG2Tect>&rGVXTWVcq?F0>W@AGNwlJbd z7kM1Kb_^&=ii5*yDD>2G>*H)DTt;9-03X7pYY$e9E9*S!miG}R5;aXRr-*>FMps2u z*QFt)mCBO0yEKdmKs9c$+3t4TXtcR|cab71g*j_wL9v7&$XG9I;mpOw-cON<#t?S< zA$^eM^CCrmcxRqK=>msgA{H`CVrF%z?}7KczDml(75lvAd?juR;ZoMkd!s1F!Nct zS@-RB%tQ>__T%oS-C|K~*X@HxN20ZIq=>qqClDgESl_ufp9XF>$#X6XRnJt831aGV zR+^foAYCV~z~?>($uamSnY%&i${J(JvMP+z2K&)V3O=SBbzN4->Fi=NuggVJrVt^J zOv>8CBO?_vTh+z}ytrruL==P^-+lkt^|rja*gk&aj+<90L<};HBXiaYnpsu3`835a z$&_-}kBfytfaJpzLf}*uMKf#sh$*BYh0%{Oq|6LiszSNK6=hKum0glgX}e2}<1amY z@BJVA8WFz&?tN5Q5QN#H{CnSe_uu;Z8vsIx`_cc}>nH!}S6}-_-~1Vs?v}>GA~bXV z&-Xs~qxUXezq1&oh=^9x2UqRy{^nbM|C{fiGt2^odH<^YTYu-D{OVixj8;?pOhZfr z42l2huRQvjzw?#i(z1Z&1Q5?Jv%pdj}J^ii{mDY zF@!iwL1|P(^CQY*6(T2=wvSb*T?HXUiLsAiOlDSB%98geiKY}7vkxINHhQdFYLoU; zy!n}rz5m7+PX3eM`5G!^^a~FLLY#bDRQA^%9=`MA3p%I){+u!ZM2h3SnBRG~{|jHT ze+ag6mJe5sh_qHIkPl%DU=(T72=lu?yS{sWd3dzQJOsBxXCm#Zf%uiIBkSEP3J~2dK# zC-7-XDfy6`ArjCUlT8Qnx-dp-z3;miIwCcUpve_RJ^5f=mge!Bhe<@49AfYuT#e-n zH78zQweNR*2#Fboz2uzc%TyG$DVENdd&kAT-5ZUgAN#SZT&=aL=C)r?>rIPVz$B}6 zVT>yb0w4krAi|T`dw+Q7QtSLhlzxR%GGuXo)rR0rNhoAc zX=}?_fg(z&=yME%Dj2m0gVhMB=-SbHuZqQ!{U56O-hum-1Vhew90vd~#(w=b{^B?P z@SnP(1QDc<0=Qd3wupS<^&v0XzkXDSxs75!^@W5VkLdvy@VNf=J^y zXst-wkBZYEJ8{prc^lULb$G z8)LL_%shucI zo0Ybexw|+3;Dgm%A&x`Wj>E3&j4q6ma!xC#FQ4x6lw1L%3!_X`J5tCQrWA7+fy5NJ z)TJU24o10BXF=JvevCX{;{VUvoBZ0AX8A#Def@4vce~dB$3Qs0MVAp78If78EDS|i zHl{38s3ZdegBT!?JVgwdA@K)z%mf%PK+Lg(+#wlI39!npHv6oM_Qh*%bNbzV{bF$5 zi+B+k;VK(DkIvxgY@L1g{`S${>$ldgi8+Lr>#{`5yDi1Rn?f+gVgRXGRn!meFQmlj z5W22&G!Y?!V$4p~r!l5DPRAiBTWLuX*->01WX}Y=F&Dt3vZT+r!@Z zq_xhFR~OA;-|z1RQ*far5G##VS`e_&IT}+4p>B1VWsX_!m_{}$DoW}4WVNlv&N{6ys>85aQ;rv)*V`)^lYd+dS_CajBS4$WTZwh0v38(?mW51Xebc90hY* zDmBnoa|8(h8JleQgAbp7bi04JY!YQ3@}pJrpZz=UtxENefBd8${pshQGBJRUKD_;} z|EK@sfBdh0w>C0o@FD*7?>>D0wX+YecaN_Rr#S$m{N}H}_Ip2m{MX)lV5CU-8}kbZ zz{m8RdrLog))-2Ee$h+>z#2}QRzJ3URn&gFp3YY@BAhQ2pqn}{MuR|A3Pe6k*2XD@ zKuHcA06@_QLgG}-+fplG?c_r|9{ZT1F|{sbT~wQA9S^EhauLR3ju97U6+_g$_aS>n9MQ*~MZr8HmbuOa z*DS@bSY%PIF&}L<>jNp@pv+IxZdmvT?whq+Q#)e;1Pg}EM3Sk zd$1OfYgrIvS!6~i87!JQ6I?&;LrBbkP%xXB7&8&^hu`IggPo@AJO)QGfRu8vs@k@G z|66Z{=y&_Ai&Hm@Oh7X?iW>%e+$1Sk*-E2ip$Z|1^T%yLz8N$)X>ns?uR^x*28a#(M6y_;OJv-3g=VT1~S#(k`7 z-Ojb*veHVb445bd2E>Rb@)<&$k{<&@QE1f-Q$M-=F0zbeC1Rl2%#1c2kD*^v8j$4}Jy62T0aM5>S)u@tMOmstH&~zc+mJnK zh3!%ZW>Tc%(RUlH3#m)GeLmhi?Z?px#i|xEM5C~s*G9KWmiyb@yI{SK4r746qm(dH z_MXZ{zV-U$gL|v(cDvtq+x~zIXXk|!z%$>iZ5Zj^}o8nK6ydP9xY6_S^MY{m#66Gi86`$>f}ckj}eLKmJfi z2>?o&U%mq>rM_+&z&QWsWr4k9<9z-w{K_6sk^fk|LC6yF*VA=FV*(D8mC}q03F&#R zo}^Y`iohT8{xyCKz#(UAEh1x(9jcG`gA?=Tt^TJkMYLa{_`lj{|AOQG4NYpwFJ=i} zO9whpfDkdo^zC=QV@&ZfN%y4brC<7YSqQON-~HsrKR6i#rTiixm@zh+HHesr?p{syOFN!SC$rJ2s=fdKFPB%T;`3wpoC3sNxfJ{rLGTwS z3pqa#nZD*~eh#BvWTLItH!+5nhm=x^DMiMBF(Aqe+2Oby$6iX=b=`Wi5rP9kipe?u zk~T)4Pe|yc#PNlA_yq;%yC(|J%R|iw>fnFgP0u*$@eqU}uH$|aQq10kZs$n_#8fw; zD4If5$IXOZX2>C>=y{ARGjc9%*Ime-nf&IXd&_yd*&b8M-shB4wO|x8k2nsIF?M;j znpX{Dh?D`ncP@q)J$ais2Pq*=Dfn0z6)7VlXVdyRbh~T^xc{*5j;0Zk>Z$V(q)!2X#lTKB zHPht#Zp>o@N6}oS4~ctz)?;)g_L4SEZ7Vz z7$u`iImW6qA*KxZu#LMrvOVnAp{}ISVw!UDe800*OI0g~pg&q?V|R4AK~tcc9As?k zxgQgG9x?$iB18rmXd3-EjDZ{o{MH)}FE3ZoMsu ze2%dRfEVKVv(3N%Z@vB2ZoZ^klb9s)(j!kRXKA_kQRDH>3+}~olI{^S-40P&e`0>5jx~!UlD@ZW8 zDP|`aXNYk^$T?&$1glG-q)<{G57X4A`E~(@3(&rp%Iy7}9qo&DM~s%Glzenr@}}lOaHDkBO+y!U>l`LF9FgCDr)uhkkh92? zl&ky2!+U3!i&aeS!;e2X_I->|m0%3#S>OFdC`7@e z+1|Nvus+%paJzQVLsi!hQ6M{eP%l^I*=(-4`NhW{><)(zqp3kk7Dm9x2{=PGtEvQH zng#&M6euGjv)=b9)9So-j&7b0!;m5&F(5=Y5GJT9&;~B9Bmit~^Vqwh;>}F8O}V@C zw##RW#anMJXDb;z^&O@pR8j3WZs?pRi-4Ou@1|TgH4-wyv$NLB_@Zht!7o1g@OHCt z!OvPD4JMb#u}r|2cyN9`*sdFnK$LSz5h=+W`JtPNS~gAj^hv+n*^Dd#kwA(ZBDO6T zBCjrlG5oN><9;$mv~xM16~}EptbLB`*S_~)ekQ%kcI4BrQ?|065 zTFe`Wuvj$pLN%t4$e(<6bF_zj-!+XcYo1&p&wRw9G!M?tT^PIJhy*#s5ORu$q`P5K zg=lBh?ag?7(|3Jf8WR#FK@ppVE153t%N(HF;dVPJCFTotepwyX*;|T^-g*1#@_yl6 z4i5XCXB06|-+7;GCZL4djqS&{nm3SP-q!8XRE5+^JpSbNI37FO&)c$Ud2}&a%9$%I zA6%Su!*J;L95Ce=T=qUOFoSczK`6;UJ$=?~cNQebf-_QrD~=?P?!7K4!FXWf82Y1| zFZF|mO~1=_$Q0pxF@OEFMLSpfZLkwhAY#arIBpG(MT?|6irh#GhG() zvrq53@p!a7W3ZSNjFTTy&VmW~@bb(kvpwtv+jC&vNAFTj0)UU+=|Tx+o?rLt^+X&@ zC8U&v)&h`ocQOBNDIX^CpO=iBi^F06_|uPtlrP+1eknQfE2f|Df(w)wW_ zUj_g`z&=rL5VDBk-S}wOF9-lqdgt3G0Fb_X?q8sQ6J1J5x!J5g2LPXMKLLPKY5vKl zpMLlK_c`N$Z~_3Q@0Ml5xFpJ_7~wA}W6sD**sstirI* zkeo9HfLw^@k6eoXG06-ul4dw%v zZXoDxJj`ara?u70oN>zN#`x|#=Sry0o(#xYNW_&?y2v?k1c)3NKX!H;{rPHUl!DA+ z@Kfx^agrz!h76%lGWu+tQ-#*LP+ZN*`g-@g8#~OL5}$0ylnHnSAmF=wU`*U?hU4Cz zUDburMrkBUE|`i}6~m}F@|edE^Q^5G%hHX22;DZ6g?My-IgYs5bcs-wx=@u;k~5-& zl1pdP?l3NAH4>Lh`N?@22y+~XSQv&$a)iW&(WwHFBIz8ikyt*hR}d8K2{G3Af14}bXa?Krv9^o{_K z;qQNN{a^m>_ro{K08T8V%SE-`k3aa~r=ryV{MI>QCRhE<@BXjffBj=%bHPJ@jN_25 z?zgIt(W2{#GbRPLb(TfuoqF$@xeGF67|RsG19N=c$ka6`L>R#d7BSxIJ!Th(#$Ov*0jh0+7wD5}XwZ0m8G*<7QUR z<}=8srH(oI1!F7&PqM(-LcjK)v171PaA|C2;{0BzOEGl9#}HUwSC!x_MC(IX zo)wFgspoRvg_~Osz-M!_-%mHs4k7h1l7OWUDkWBz#e<7kGiQsHT+VBw`My7N*d!KTMWI@F9t0Gt)9E<3Z@bk7tV#DA~oiDDc%Lf$`xY^mw zHV}z+Cbyg6`Ss4nA%u)%7}bb;+13xPX7i;esx+I6Mwk0;pShQUFK3PGVY9Ksxi&>n z3(aYCU1yI{@Y$>}g_c4QQb;alFEt4Tz@jQ~w$K-=QVAA=55a;8%L{`b`~(>&v(&Dn zKs63t7rAWcwYL_R58B61j@w;KnVCW{$lHDY?D?7?L)J#kDT~Tf_pj#jMiq6QEm>tu z4mmLwa9lMriu~@z5@W=eGOBF2wS6}oloUd+x-LzrDpeBX(e+XTuv9mKt88X`xhzT{ zV+tvGqM%yhj3>`CQNqLvs%L6ECPZpiczLh>&iBq$!5=?4jy9#ljKV`VJbAi49J>rj zh*Dx*D1HBOF>h5Q$K&Dgr=KXLawZ}= zZF*TXz7S=eh5)bT1fPn(Z>SVs+_hh|q@-7$N-vErKT&UFUO4-%g5>aN9b51!$1lVrx z`r{D+`=LJ^jzTETcuM5FKOq^8j3Gb0k&q+f$QWlYNKh$%?=OA7uG`Z(W2BLKedq$I%MI5<1VP44|0c0)@oIqG@NdRcK12B$tvQ zr{$_`o2n4S-EQOJIGd?KvztbxoP#Rl_AAx3Zt`(p^+*@q|76FCXzS8T8Z^~bUrhd6fYOE^Q()M77{7Nvac}$ zA|h4l?SA-l)BpDO9x+6Q;A8%^*Uuj;n|B^A|M1VA=a|^%1Ut?jf3{g$|8IWlvQR<_ zzU%FyRkI%L4}SVYXnE>U5Yd11o9{e2YtGv;y^?YMl{>JH>Hf00+YkTf|Ng0H%k<3% z0FfZ+Uw`vw_sY-KI~!8xqi<@B972d?twiaXGmw&H4D*#NTdoZs#{MuK1~)N|QUh0X zI8F?bRN0tnwOo`&rxaZrh0dz>i?*yv%_XKhWzMhKn;+ag9PNzpM1*ZA3E)5dtM6y} z>R2OXT2$um|Ivp(`Q$nZVQu(TiJ*u9|I3g5-+9?fCWN4y_5L^xs?<`cgqd+x>ryII z8k?qJz!*YR>C7FllyYoZUREedtd|lqMhD|KPS$2RjeJ1}(auWKrgp`ZXL6P}3ZvB6XFCKg zdC^GZA*S&B=7w`dM3VFKi+f1q!z2sx!4LkJbE>dSf%d&G=Qx|op-(^m#YRXFg1z(p zr5)nXC&rnnFeDDqbbUvV%SsxpfS8-|M<3pqf-e^wDErB`RkN5~>~61-b6o~Rd~4Nk zk%4uME`{VdFdvfUk_k9&gEF#gC6E9ay>riRdLdX&RG7Lbj8C3t6dJ}bj=rx|$+;do z?>)6EmJ)sN;V#4=Bo>u={n2vj;y7ekGJ_zZvLURuJ6-VE%w)*k(Z?Tb*W1w)Y}Rss z04blHt;(X@+&t$%+Jv$)g^|D}t&^6;>3|vIb!nob&FxTBrd=2mIc9h0{WwK|AcR;f z&WWSX4k$C3#{Mum+v-wFecW2ea&*L8d(@U+R%NpNj{faav3>uZsL&WtvB9aJnwF{i0=GSR)q}F znu@qV#VQ2hvlkMVVje8rt#|WfTU2teUC8m~E~h|BA|MDUJY_+^Sdzx^F#~1I;b!K5IZfMZc)ra_Aa1oPQ8VkUsOF>m*W#d0P!y3|dcAC3_+366m1A&Hzb zA|LAab!oI0lkhbYEfoULfLb=$qKYdOW7lU7PYm>8Fz*R}W}wCe>CYdx$ND9+>tw#tuKp57|K-OjTll;V z{u-Bgr2pT-u~+a92qC4E2q1*8b~+srV@%2ymZ13?xVc}mOW;g=ksk1JM_+$xpP%z9i%;}o075Uc9RK33dauxeDCg7ObIy=oL=wah zVhE87%EZ`d@(lQLhyeiXRsHwpsXpxU;q*?J}3>dnPw=?&M$_2=O))3cTBOWlv)aoNphwOTn7}q&}N`zyuok0chwuV5VBOlO4E*{oZ95IR~3kU6z!mrqXRIV@ikP z#2Kp#9Ua&av2~_~BIE7zqzj}nJ$$WRBsd&gv>*hJ9FAQ;9`AnkX;GTO$VJOJllwz} z6jUY7FU{2Fww*6mm+NQi{cde)i7YFSJZO}GsZh&G8a9qzBD+|Y&u*e+mp&aR)v@eXvsgbZ)Jy&Q(n9Xwa) zj&k#(H(!72?CE3o9J!F(X4L{O2F&N2DN)XOu^?cIh2NPC|J&GfnSHIPuyql0{s;fpkN)$2 z_r1UR-ox$D3c-$}`)lt#{N3Mp^Z8x(zx>^Q3TMqJlH??;`Ngx{)v_9GtQp>4*1z|Y zC;!h+pO%YibnztIVVr+*xBq*8@Zo>+pZt|g7X|;CyKyFJjQZn`uK(xX`|0e_*>Up7 zzR^F2Axly|$hz(Rjo1SMaRii1$B;7}9s}@1IWv^HP|u!6ASeqXLzIUeLiC8JH~=;_ z6jd!H%F@IQ0gz#swtftrNtzHjN<>H$0k}oXz6BOf>?xn&zx|K@igk`l`IWm8W7yg7 zxBtfXe)!SNr@#LZFI4)Ki~txy%DJQOHto(k)Lcp-oQvz*-F#k`RpF!cGBK?gxp!ETR}vHVXEXRR+KSElsp2F_3`G}=KNxz zw6v~g0**%)LOxEDR;n^ZoX|+UxL@gl@3w>R>1Z8kNj3#@_Z=>tepDbgej$o8t3lUKcc*nV5*NOz0_#M67Mg<8ksM zE}J&`e6*v>adLidk$`8)Mi-_~nfbmS8AqvDjMk;3l@?qIQFYxklb3B>{@LTlx{xI& zV+6-?9KArDqTR2%vNqLBE|*41bfe2jc0C+JKU-B(a4}gofMjxUR;yA{2r2RFC&77l zbyai0V+@sI2pAKqYcq^YkY6;)PQgXbI6Ds0ZU6$FQmo5HDCUzJ#)&910U1N^v93jo zT&ZfZepx&)hJSE)BBc<h< zk|>2lV8_k^q~5#z)10#aMK4j`Xjh_XPA(xcjnn{@3EM^RMW2q9 zuCCe`z;=^hVoW{bs1>hDaemR{oc%O)T|Zh{omV0FZaB0ToNc92vR$g-7$~#cipQV1 z`d!TJMIjKOSv>*}UL_ z4dXbwKz%5r7G=w^XECIzmCv4svvVyJjbS8$wlqpgCB)${Uf&*gj-}>N#N*!ItQ~R` zl?ar>=sx&xLIH~LS!+1wLLlQJrmWjJAml_O@SR6*0>jfzHk~V6X{N&b28D zU2x<%_M2@#qFuIHs<_$uF$7d3kw;+r-VHw=g%n!Iwnom%+b2;%xH`WIF$6$Fn5#C4 zwBPOQl(=95fgJgRVWvQM5e$M*k+We;0C*CdFvf+}gdh+QkcgCkX&9_?FPa(%yD?Qw z=~-Q{$oz(>GlH+X6(BId6KDVZ-~Z#c?=3H8rS&lo^pj@{{^oDK{g3|i6B}YT1wbGm zko?Kb;s5->GYNnrV)g!x!|MC46&9i@jMQlw;2%? zuTlpnHEMNg4FiCHijvKNa!T<<%c3xxej4W*K(G`u6P)>&_mjQZ_m3`?@yo&O2;f7! zcQKR31Rq6Z;1zSWe|@h^h(L$%Mj?NHw>#ENQO}EtqAXo|iuE5^_%7#SmjauSgFz9;b1=-y;Xf`K)d-OKmH1R>LqT zrG-!&DWte;&d%m%kDot}$w%shh+K3+r@Agj9?LX0di7WI5S=dXQV0?R322<)}1`)ys8x-NC| z$A9p6?BZh4=FIlH4TE(5a$Z%UDV5e7fS6>2==x}F-t7G}rLxtGVe~n;5{JQ z7t1r_gIlk6H=Ch%6R;3Nat(d>q|z@?1;Cq~=;OHBD|+FTeHZTiT?xa^9~NGwBhDq)T4+u@#&lLaxLBPr?sx0x$=l$S5fATQT+Yr4R=OeE zE#CG&Y{38kAOJ~3K~y~J)`vACl0s=ww#CITjjDh`m51(t3^K#3d&U%a=(=I>&+hg% zjvkI<7cd)R)cuRAx8Hnt@9f?OKi%Cvn@ZE%znV))eu{$1i!)s)Mwzv9PMEuKEbH8l zVY?4Gb1s?DMIw}(0}%wxl3JZrF~#+*m71ZXx~?uS=8LN3RHR;E=IhPj@zZBjC7Y^+ zXsn$8a$A?)(iDPJ{NZbD(<>o`ZW#ljW;a`-?_;SjTDSxGf{bkQl z$}e?%L`3;(=s+h{dP?cr@4ly$KB*Bt_X$O0M3i%SA=b@FO0`+9fA*6fDQ!N_D?4@h z+m{p|&iVWAy? zO>2ru*QPjI&hM_r6!^mj50y~eeoT=VDIrLTuqNomQALWn8R%{G*UX`15X&jv)% zCmEZDJroKM)8XJa$Er4MqtBQ1tZHI_=+ki<4&BZu*Qk%=VZ!3UA61|OEXWFq%n2tFVNP&^jreut1DK3}Gx~eGvBT<)2 z%sBLuAQJ;H%#3@6KtM&MQE{!&PiQALn-xt{0KSm)x+&|pTFw^1<@LwKVE4diHme9C zU2#^p-C_xa3B4dCYfFeO;3Fs;-Uwi$$oBU_D$5YIo z5ZrA$uEc-vZ@)86p)$&b_&@ybf7%@pKtMylnF~xFBaDEjeTO-~GKm zI`$R?|JpVMM*Ke-&;@BRF_8$4?MtMLM@I4OyL{nsCJ7D9~UGUZtGgf(x-8*mpqGSPxiV16d}jRMPAJ3%f)iAJ!P84(04&Mg7G|SVHn*sO+Ex~ zfh)!(hEdol*L5*#>Ng%;GSJVT*=cZFqO@2PV>^2dj2gU{JP$Cm$cLuMf{|4qTI{oGw_~6dcPC$xeO2%c=%#vM@<$DY+c_ zup5td^3kPwMT?~pC}PSNvx~ND+Opkjhd=(4PuA<>>Y`Fr(J_j~}ns+vDA~H`v#&HmT0OX0G<7)~>H1ms?9=}7 zlg)NFswQ)t>Z(vu2v+suL@}+Z^Ro3tjau3%PIDQ3pgd3mXM zQ5V%OKD_zq&z`mmEe#4iaFLeF>fs~fqu+O7vztI9Zt}C|>-}-q942dnlB`hGbcAUD zu1P3nDgkEvN*`fRh_jfZ{$%mM|^X6hk$;u@sk4)>AwpFAE0JDgpp<-DEMrL*w# zv;OA!@uLs!rs!mWWzD(3vNVF3ei(W^z57xryxaIgX9qVC67YDpp7w{3b0Ub4WC}9$ zoH5QMa-GUK5Qks&jYgfD5(?r~exDhw?X&h; zYoGOfbIdX37}r;qH`kY(bA&el00Iym2QU$lbMc}+d}AAVrSSR6$*El<1OSrv{s;r!dHgjYq;vL->K|WP;)HO_ z%1ywz*lgB6`r$`PE5sMgaUx=jCUs3n2*?@#@WT&}Xv&PoI4y`Fl=YMgnE+CVDFPuO z5HZe}fCNIwvZx^eAps(!7Z<|cm;tcfznT$-m$DzmUbt(dR{_fj7%@idi`{wr90i0g ztM=V~bDS4PM8=31BgP>GNC8q}gw0_;j-!&I>xa$mz!(F-7*k5XIcJOkM11K8n&JyA z!CrcyrW7ANe)o8LUz~hO4Ap-8V2ti#D(1^Q)cl4n-{UQe|0+K}7ZB$2U(t zzA7snEV?nKnCA7l@&5L36QVm`oFcHUABly&?_B_)$eZY0Fx2>DoQ;fOjA2qt9^ZTL z$3I++9YTb@u~J7Vk&r`*Wyz&vrst=3%C{a=3~77lTnO#KAz=zYfyclYLna_EvbOKI z!bsuivpujF(NF3rF~UGGgzx|UQ}CoR=6eV>X;tQVy=m4C2FCDgac-S?ez6xK0Wu$B zh!FzB( zo*`qKW|he0Dx1}_rtO-;fEZ&yWYOAyF*+Q^c<>=0U`(Eqc>m!eGvLQR+7vo#_BIAv zO*ka9Hfcp!#)IRF#pLX6o@FXV+uL!ou^}Y}M3D$pjG-)ZA7Qs|o2OGQ>9B7Qa59;s zlpsM$i7_Un>ia&1aKygW+LV&guM_$hnpCYtJM9!YBn#1T$C;2xXEZfluMuYM1-JSpS-}rt)+_&Qqawiu8 zXMgs?`{%R#a@+mdKlsCsuXe`2bp1yFADxeX@t5BD`u&A*fxc|9kU&drT=;MPm*4*J z_1=Z}Q@w&BGQoej*oN+q5FtVE!FwM<5JJ9y=!_8(BF5km2>^o+F~p-kbW9Nexs-&2 zM8_`4(E&MzW0v2Mqd>+5B96v{;3EKe`(-@%uE%?4b(W)b z77+sueLq}Wj^kjh@gYRS)l}o zQ83g}$Oz%`YV8IPMU$8Qt@A3EECe6H0*$NnaC>XKw|y6!jYQxF#aUKlIp-1xb&e-@ zc#*SG3qkDiQ^#4#OT2ql6`AlOYqn;)Zo6?9!dOmaHyYw_@0~J@B3dz;9>q925mD~8 z>(Pus3FR%ny54FbC&iRNoXk%+$lb8!STInGi_s4k7kh>%$~LdybdhCJxag4FV7jMI zyS6pX`NPf=OL>;NUMZuhJ6lz>yg zIoq|n-Hm6$Fx^h3{A^xeiUB+_+jPVJFm#xooK3Dlem$+Z$ZVW_4wU$UZ*g-|ya-Gu)_ zknkB-j1l0a=MTOyJQ|aH84~;k07&#IKK5S(0KTI01hI(y$LgIU z0C*gp3kb*f;8y_PCtcETZw=Yrfma6?Zw>+b{|^knE2F2^(+LRl zc`uGv3_yHM(7#H82uCY)#@OMoABLWD-u3-vw?7^^gy@`qb*I1lr4ZrqPcFvzwf8>E zvMiD=3tnb{#^Jd@l&bgG(1RxPm_yjJ* z(TstjxVyNUQb0T+ux7_amQ+E4Ne)!iL?Z0lX4kF9E|z(bSEB8^XBRhT=aan1 z1P3CR&V*F7+K<-SXU{jAeTO1I0v}R}v1x{wFq5S>%yiIK4T)#IwY!i;z|c3oQ01NZnHG9}>XBRG$r+AO>WuRo1XBXBnox-L zYJGFFy+Nm|TC0p*uhwnjw3gFZB}C+m=1V!7%ig%#&EfKDa~KBVQAi3QnbEb~$WThD zy-(NITT2a4AP$_d^{s0Up{$~hL2~Xx=sGi4(+>`bk1o1kP1>axLvVHkPGVWl%1pDo zMGC}W?1Yv|D9#megsmARaBJ|!3D(RH`}2obx|m(QjAzn#B44vuJ-Ho z{_1AGISe`@#?TDj7~l2A`%vh*Y5UEl-Td)6CJqT0VK)qi{hl#a*)a64 zNGE4)icxC)I*NiZ;yk{A>R(b}^y<;zLL5DCUr|`zdE>(SRTzP-oFe?{raU51jFO?0 z{Crx>3+-bhq+_f8@BCli2SOl9J}l?euYCR9+b8wo^VuIgTm4sm>mLhF)<<|_Y5n$l zch08ypZVJPmjOVGDO3D+etZc4|HZHUeL(!m@*fc)@qcyR{mQhvp9Ps$(R=6I(c8dU z8@!WBADceMz6E1EL3;i8rvx$LaTiF57-K>pK=A&hfrJYoIA^&K$HNk1LQ2lKcP=5G zQ2$w|V?rSCF8t`}s@C*#@0^90kUqDmgb?R-_P74=5C6gUKQ+kG&mavTf#8rpe&@mO z)UrVIGPg|d*+K}ez!tJ#jKA<`wy_yqW8jcwnLq&$rjyc#u-P{Cq)Z?_g3y?N5r8%E<0nl*8_D`)mnV7{UG!+iFm$0E zP22T8jourj1Q*1KGvXpux^Pk_t@vyy(d8I5%e{~+y6C+f!+s2{rQXE7qD(7R*VUoz z`OsonEANAIy`H+5QkAPBuP!fFAtm6D64+M9z%%K}nUWa`4$u}&S`Ds0JyS7R#RO;E zMFUYJuj`uItQQ)xDT^*y501vJGn2ZS&#Q?%L15eF%J_D-PC|sdLWLP8G4%H19~?3^ zfy4}pLa|v@A`9NPkZ5d!^P$~RR_O+PElu>Y@2?!JCJ4}q`sG#ETHs& zP%k6~6)j(fOXq!2@}lyk%0q}g+JqRaN|9zWoSo(%!)O9$X&j7op_mqPQRckLs9I#t zY;v2c5Q48uUMRu2-rn@X;20={s>i4`fBXC-gy`*<$ab#ZZEf30$zxf|A@nQ>o*Te$ zqKi7q`oZj)&ZEab(XnY=85_BVq7o?q+T0cG?Rq;~Fri2gD-^fEI*-PXl4`mLSq^2T zMq^#DDS3-d7F1;Qo$6k+@L;+h{HEO`8%&vd#U&%^_hG*#j7%Vm6hW}NizV^YnO%#OzViL(JJxNb5u95kC zf|V`=rx1d5-g}X0q0R$P;wU4g-uEt~z!Mj!nO>Chnk{d3&#W74lbXTl4Dw6~E`#^& z^Q=2~$rxiu!cDTeEQK*6<#v&K9vK)<#kj9ZYhY#M)6IlWU1ic+YN~nX*sABnfeYX(R z_GH%#w}-Vi7V^rc6qQoZ;^wJ{)(TQY2{hiqEV&3e`Ly{!96s(D>G=LchAQdzD9Q?Clz z7dGx8IOmS*>9NoC)mz1%!ppvqWJ1@Djd_LZIG3%L^j0x-fDzam!or*seDb@T7IHNE&r`r=f;=P8;$ zjn|tN{$H_azVaPkZ^0|<@za19B6{ai3NMcqVoWK82#7?g3}sf$78G4f0cTle zI@n*Qd}?>weT;|ax7WEWIETeKW!ZTcs81Uu<)kP~m)fzH${~4(;735O!Whr) zFsbOU20|WuBmr3lWmVKu7F>b=U%Nkh{?sH-heJPfPDsWxnCCjHF~)?1G1B_l!KuA> zzeKBoV^42BLFJ0v$4LDu4?ZfXQiz+~eleZab(tV6=eZKMtHaIJ{(_K8MGqer&AJM~ z4Q2xgmv!B2eP>4(4Ch`eZ1)UEV#Jd(kcx&5{J;R1522nb#$mB!2uOm48g^^Hev0vK z)9iX7c_O%bzqHO9=aA7j#+%E)aQE(qvofcCgO~fKQUap@0zv)0sFWKwh3!x)&Y9{D z-uZZTdYUUPB&&7!?Dk_94aHmvT;63WpZHFXY|prxX0`30iGvVz4NEL8B;&$6dxWoyFnGT@^xrAtzSYm;9NAYqg$a^P=?_0!eecQ5 zZ~fre-}uk|9YTZzF{Quo&A0#EKlkD9e|-J%^$q~EVvp}kmsR%B)Ab)e-%^an@!uB* z@_{A%&ii-YUe-Q*g$-x|;6zuu?(hBH6IEyv;+KUrbCnt9*l$sr#1djk@ZbKg|2)^?Km6BzKBm-;?x=4Rj7Ar7#jkcPga|Qx#nSgL zf1v|NP%G25UPKdENTVyJ&JARmB6!D#f@87TZ5Fe#lzD=nq+0K82H({B1OYOlvaXX6 z3EgPhwvY3W0}@994vU$L35+4mFnY*JBA&cu(K9VY1V45IWB%k^W5hdizPjx{xf=7* zn={KYnB{1D&X5A65Q4Fz8DrmiCDo(H;Ein$4#Jo)C{3#LAr=q?@28ycwm;Zt=hYc8 zkdi&S{S?_wi$Z7Bj4Sqwzj{8KOgW1}dZAO6QPYfLu! z0kP-G7X=__j>T8tr&{xJnH6rWc%~q+I6C(4p~-aVZf%Dl(-c7rA$Fyx!d~?Kq{w z-aq-I*Fq^J3q2{boN+IBENeo5)os7q^#Fz9wbsS7o&!O|c<8MeQ+EhWyU#RK6JjjZ zy6XCP=&TPgozChiuX4r}woN+hY(%gfHq9VZ#uz`JFY8KQt}hR6zq5n$K`G9d5Rl(o z_wA5OiY7WGc$SIDL`iB<*b?#b6og56DYzs_{;14Zs&?@ zu4R=MSyfIBQ`ff1oY$AmAxzw2CYSRraNSV#%lX;y9g$Zc8vCf6)+0c69 zLY5bTi3fMidv`bt?SSSmm;{lC3RO3Izgmwr!4M5n(p=P)lv(Osf3v^UI(i>J`H49k zg0+z|S?BXCV~iW2Fw4pL(0A_g`hb{gQA?Fi>j?=sjIDL4?_%_!>6_`4S2b`(rK+}j z({z?;g%VE}b(M*Ta5#jE+g(3+9_0QoMn-3g<#JX>X7=5#3u9vk?}KqM*Exgi`nt0K zLvmv>igPX4Y^qo7dfV`==z~W@^wXwkzm4mx>=YsR2Hs+{NAwWXng1;mppQ^VR#0WS|U7h-4xv!K) zB*N4sc@uL4aKIk(-I4|m1OVRq1i&F|seZ;zMGAm8aT^`R<35yPgp^*)>b|Pf(+dsI z(E#VTha|*=knpwj5gyGwUorr1*00A>KBY9NC$stdsD#&eSW;q^8NhO6iHXT3w@axBv+z^8g4iG{Nbv=+xu zHtp`X%@e&yB1fVWLX0T^GA{a|9nGk;?D}D|-g3qv!7*j|C>%;Lyo3-jrg&6h2|=7w zN@01jeDuzHM>N%SZPOf#alKjH+TTrj#bqjFJ{UJRQ%+btEf`@i2^eFHbDdC!ejFos ztyEd7Z@>Sod#7istCbJX#UaGRIPg^PQ1y);dt*m$I-kpeqY^wpOqaJeqwP-?1wy)B zH(fs_3OW zl;U)rF(#8ukU&bwB%$)iqqPPJ@+|-6N~TT6*>=x!?@k|iAAnMRh67c;vhJQ3<*;Rz!#WYiz4JT2^uafs9k*Nn z03ZNKL_t(E7TfI#SZa+U7M%m;%S`5DXS&t|laePw8EoQ+{m|X+RveVlkuiUH-Hpz0 zm4LebjH#7HU$JxeeCDcJX-ET$bJl#v>#=+RCd|l+O7h#rLJE@Wn&I*wKS69#@AD69gCa zo<2X?8&evrXM}(KH@^3`|L*T4Ez%c(c0zz8 zilx8(&hQ7#p#?6gB8xG`l(M`~N*QCk_s6Hz8WU3@LN4S{uqUOGN_qcgYvYUehZy5r z9PiKZJ<+^idJvvtmS-}oq*krT3 zm}PZcmmbFm&9>dNofAw4!=FC!n_FMjx?X0PVm=H~2jVGFG$!>2p@dRGJh*qCb20RG zw{0(OZg%Z{=;GDQ{^5CX_cX6E;YOmQMiZLBaLLN5oaW^uSDQn3b+g{@%-e6>eQb%G@#U-r{SF8OldBIUNTkLm) z$jYfw8Osz{-)ha6BoAR|m>b17g!kWhFqjRgqg8W#ZFG+4p0j5Xg;P2nL#VfB*og z=>`xnUP|na{#k@hCNnLTRR7@i>D;~ z*<=zUbnWou>4mYQ_i$*3&1U%U(QHv?eiVv{VT}C{g(j`EW^$5OfMMUX&oA~Y$`2kq zJYOuCWN0b5)O2kGNZh;NOan3CFpP|_A4carDU?bq%emGHX`jDkCBqhW^{%`SYh|cdRvxF>9?4PEgUo4+s9;QqBbtBuWtujU8=L6TX~H-abDg zt2>5a$XhL+h=#i(Y4+9+4IA8V-;nk$~RrJZq_QtfDRdx5*yQm zh+P|EplMx<-tW79NY=@e2^j-qifg70eH)TvgvR)1PewaLV~`7(t2}yO42UPLAOXX` zhu&}2yT$xuxj4ym#!=sH_pAMFH##M`L>?UFQextSaA;lIk4&Me#QoE=I;*z(#`$n@ zb!fKnWHOVaHr>882bq(LKFcLn(3^1_Le~bZR9R~q{jTdqa)HI1YaddT=@`Pc-Ni^c zho&7@7tW5*4K60iWl0H`0OV09PRN6$&AN>-+_`gqR?oG_hu%M5KWq9fL;yenJbN^Z zH(pZm#&7-L={t93zw-Xw-nfv`^}hYzfA=Q|Kr;HP z|G}SKcjmAB+OL1~biHdv4#dzw(!V@v##8%YON1lk95O{pbJvZ~We; zH=U12U$7=kfP!JV6K@00PV99gF${yX767!?A%vq!hcV{8i!l;0XHDO>M3m+Ek%2|T zqpIiVdGI+w;OFnp3sN*CI?AQ21pt0zP*Wn#rQ{a)E(uIAaSg$Jdfoi~pIrU=A73h# ze*1^d{>h&_|2x0^!zY)Uzxj`T@DKmVPgs@5pN$77i-1#}zPqTqEU!~Cy5z*L?fYRg zArUZA8T077(b(V}U;xO4Rzi9MkdVot?|j$Ub{&Sn`amIaCAjw~%eYihaghQ#8--+D z(`Bl-vv}BbCSr&fjO&a=X9**3I#XpuF4bTMADvH#jB~*y&u7J=ZMpz{=>5e-n-{`_ zcGYZ^EC7R4M2xr)Z9nwJBoxS_(11KPeeWR+A(b*yJi|cAA_~JT_{*C<%ajztrOx?q z|L)1z$!r|x`gZfl#V1NBNW75Q{jaG>rIyqAV8ZpLNdPg%Wj&crGtG0!#AnZ*L4rD; zO={AlkT5`i1n)n5*MxE1-Xf%7wB5lzebOvWvn-SAeQ(29s7aj{%c&wFW4qwS%j<>_ z=TrtCt@p_3^nNWQ3X0ZRm9u?2`n_kI)nyT2^f7(w>ko}F&c*5ElC? z=Ui~p4ee?;Tiki)fdq%E?JmpY-IJvfr4V9o)`wvLpEfIZ`LrV*@tlvYkICd}Mowl* zS2HrE8^>|Gb%OGMJX!+qGK(BVrWGgWgGXYA&Uf9Q6sya+acwy#)P_VjIVr7GAN}}a zrIh!ON&e_gQ5IbAqRg^=9Ab!tW<)TnD=oD^vAVu>Bb?8c58gR%cKtZo$)vcuTnJXk zOkC}rM;n|C-oevP+oBdqv$h{mf+AJ1f(rtI!S$QNB?e7NGh&p;FiQgR83|1(4gtYO z48Rz%=VZG{E%f1%cb1Auj=LeOkNQv0!ASDRT7{v zaS!bHhA&8fUhQTPC;&?UJh}9>*>`;zn}egW;gxVPRrYrn$Og1*AH^#9dP^mFM9 zZ_+QHZ@~R5zr^?kGms)gL89;5zVC#P|Nl-55v>`+n;w5LAth_@v)lexfAP+8E?2v8 zyN!h^Y)H0qt8pJaamFWQ?#9HOaW;PaYma&}G-J2E>74WRB+rZ7C09V`$nAII$IqT4 zq)g?=Ffnq;)OmrFdIxo}+%;FLYoMg2MFl{k_p9rcWKfEvKr~S+0hmnmy5JkM2ZXEEIvd`7IDP+N_3_g#x>)CV9Qo+2C7(+lLDWUTlm7U#o8?>6 zNB8b*4twM6>h=(Qnx9mJM2rVCtA5xWnyznmhpsLPB}8Dc4b3c@4lYS4mDJnKZM&D? z^1G)~0Ni!s(`L0e(W+w6!Qc|($Qbj?my;}d6)aoasjTmI%|L-n6B)B!#6Do(hd=-A zbFFB-vl0ag5eMv}dp4}+^-QZwaj1Cp2DeCN@_iePF~(T{sAiY$>az51F3M5^b8xp(!*k7gJ!2^~PUc>_|ExnC$>DD#Z~{WVATT zO(S@cC-clY>x1n2Vs+Ca_sCLoVzt?S_-|bND`@yY_QyV@d$=rQ9U}fK6;d!&5>6q!be?v%mMz(;s}gy1w3{ z7ARlmekAMeoK8PDpZur)<}bW=ceZUtB0N^ZoCpv~E&sd!<9GhgfA*t~esl%70{*$g zT!NHP+%r%2tiETTB%TH22#JU`+uhCT=AB3Hp(7$e=yx{a+m`!sbh%rdfS$pJHgL7kyjB_DnOo<@;vc5t%`IA0} zp#fwh2&G0yf9-$%Er9_8TDQaU4W0~u{5c7u}iddnEyU7lKN^DIvQ?ZFhKnw(4rW19ZpeXtj($Q0Z*HpZCCY?7b! zu4Ui))d>c~fYGPNkMEqEP7m$) zPZra<(prnbjBVE;!M-~bc{Zua^Yhc?V##^(aX8q`V4D75+z`9g5wO#xRUzniN%z1V{{d#`C87dLbABo-Jo}l}*b^a(VIms<(D=XI2!dZ!BX}l^Lc~)l(4Ra{shxS~I%C&OZOF zo1Yc4Wtkwx7!{vZdUA3mQ3TU>ZL`0=G@LXdc^`c+J_T76b;VdpDWb@fb!O;CBAk@f zV0$6M{kx|zrK*?-R($t+-;a=@CjfZ+PJKF?O^W&Lc1SEq$r!?XR?jC@UFu0$Z8rPu z_AouIXN$>x+qof3XC)_IS2L-^#s0H?=*QlgF+6?J3MuZqHH*my9|4qR^Lomd4CAl| zu)7Xyhp;OO$puqdJ-GYecE8<^2aGC& z^wxQCGObgn0eD2na-}p)%kr($rB>`@J`*UeuGXh#vwB`S7jAF%WtK}pr_1G}s`qBQ z?{{MtiD0v~n_GA1-hvn(%n%&p{3Oq1IiX=ZaP-Nm!!9w#62LfG?`&SHOluYrML{Hq z)Bez7qN>P=$Ifnv$EwPv_58tGZwW=8+&mXdIFHMjKAV+h%s9&fLZ*3^u}rFmchBo0 zUrZ)tQS$f=!8K#NC<-a1l&Y@l%gg77!{NA^ALqT&tNuM=j1d8jMnG>$fL^)590_rH z@nVdzmlBaTYr8l9VM3A^-%Xcaix=;PXAk2Q!HZcnDHR=wZKRXo>0|%={qWg|aE$Te zCt7P`@CjLwhIhlW$MO05;n}IZao*w^ZR{5(i7!6;wF?j+C7>7TCLja?UU(eSt>8vPgA41!9LMS1WF}7(stusJs+b*S}nmWE30zUE~$FE5UVvKob-+A|g z)AP3g;25hclq`#>#oN{Jy=hsG&I8DKwFE*Xxd2XpRi4#ZHZ5jn%Vn;3a9-AO7_A>7 zL$+8CpCBF7k>t&E@v66AHif z=H26v<4y~E~OCSwILO}=E+_ci;NRz z$I)RzaKM&q&=_{C@*yN(h+m=tQj}8cZx0Xd&i?W*J?f4BFaPFm+7L(MLyVt%a@$!? z`n7WaBSIe(;;($;-e3EVf0ezI@r4kz;DRwi{6`->{U3h)d;jA<{G*G@EwA(RdE`Nm z7)!wx-~QHT-+(8(YhIv9jE>7%2rkBS*zb4y{bVv>jD-*w<3dV8Jcov*ms@Q z*>M0Ci8vQT_<|jML9f1|0`O?dhDeB%Vt^MBgek@7t!0cMB7+ot z1d=i|50j%1Hq+b?u-tDY=}Li}S_30HX^oq?qUO z=A!Q!m*oy6IyY*I}!ofl<_0A1%GVT>__I2=Y}*wB-6Y3v*jQ%dz+-`PEv z(3`#;_9yenTj$fWv+5fkd_6>WwONOhF0NVtJeif#x}N0~2Vt%E4lv=pJ113@&+2Ja z7N+l$OH2x4yl;9W6v#_mKDzr35OlT)A?Zx?ZMgiT)1_dHLh}1z2Qg>A^ye1Fn3L1# z-Fu6nch7G&SI_o0Pj}0+GRtLAkl>c5sWaG&ols0^P>N?N*P6FoHyRtq(D!}Yx5RO= zn4Bz^^XX!(eyxxNsQzmA|s~Q@j*=w?%gHg&#w=+>-``6!H?J1&3s-=>wG%F zX*CH>9J;=DgHV7NI8$e5wNI`Y`rFk`5F{4bq18%cnRxi{UY=!)f{*>>=6ScZ?cSz9 z2((zLx6Uigg%Wz6pVWLYDI?f;b-Vra+3oYEZF_J`lFZnyJq)2&H424XxY1Y}BF`bE z$cQT@f{kt0LtVky+#FDz7RH z2>aFw%>!5@&|DK>*Nx7)yJu%E(B;j3 zwL5(D{g1o7yLacLo?=y^6fDK;a<#SIoShbc2>_LpS&41m->kR62cgqoMgn3yz5CwV zMV|G;9?{+$p10ePS#j7qme|Q@_V(LV9FhR_|M2!^J+@?7n$TKnPd1&=hdW2yh{&4} zk#kkn)DkpZjT+QQJkcP;k3a$m9{VTozzax7s1dw@KmxVYAchhGstc-ts?4a&jL3+L zhIRH z&9GhB)2CHP@p`=r?7;+`rD;WVJG6Zi5|ap-$T{#ZxTfxpma{A?&aU@|w*UOg*PENe z>1=s?T+S9!N=IDn4|cWR#>h_|ms(3jT58S;+Bb*YzMW3g;D@&BQcN%2dGz?n=`b`g z4!z&5HXCS_9l~xKs?xmraH?7O77AUQPM&8ZOB25Oa&vZeX!>;Vrl~43KhAA%H|rYn zNXpGhG6n9NJ_IBkB`FEYJKxl;mip<_BWw9$y?uRo@$*m5j;FK5WICUlyz-bdBz?Wz zw4Ghd^V!TOVSGqgNj7%ZH@l_!XA#~it}wGP=I5XNtZkZ6uT4rdW|tqPw24T{-=Ms9 zpNFQ0R<94f#{c&hK++s?0g8i!c$dE??|qhK<7d;*N)8%=5G14;_i5*RN)ZqRvf(Hp zXowiS5B^qN^1)&6(EvY4vA^wL#ryVCNQrMncy75m_%KcdfRy6hmM^~jo$uc%UBvs2 zh;i!fENmG7vn+e_`l~l@zSi1|{s7~&NGYna7^yNJfAsPFH1>Tz9&t85Qp$`ctfUq~ z5K&Ai#yGatX|3-W3vaIrNyuB%h7jMT%I+041pNj8Ac*cMKyOJ=07(2G`oGQ4@AvC* zLX63!RCl{Oj|RzY*X(zjkxSNf-FCZ^Ql^x;u6vM1eG91W&rnJtBJbVH_g^iKPGbl} z6k`HlK|10}m9JCEdagrE98@=S^`X;-UcOue&n_g-1L^2vWQ6r*jnN8)rcfV#^j??{+)i_QRp+XN#Rki-zYND-R0Ylq?G z%SBmeAE32^$RY~{qSa;-hL$i1Lry*{*!Td$g8CKii4F|XE5Bu$H{4{fJ1TppL(O}{@h zkPW@>^Bff7Zs+}Rvdf^dlp-o|weSA(|LwDRW&ZJ}7v12Uk4Q*L!d+7` zFp$L54JhP)_;3D8f9D79y>m1jQ|*MfsIs$d^P{hB{=NU^Pyeew{@EY>>E}TR(lVxp zcIiOKi8K;E!r_CbyYGDKyxwXdh3^H)#0=iMaozLY_kEui#aN=`l$6$aQE*Bj_wH+&gGL67Dh$yuCLchr81L(==fxr<+3bvnP~uDnBw@j%7y6< z5itsa<3$$J5PRY4tjtxWs@t%JBx@}|w4rB=CRczEDe6KAfz}Q;n;WA= zro{4iDYeKA9nUJ}kmq7KFP}V~*g7T4s3Ig(GKt^&JM(XTczk``eE!*Ly*hmL#a0Vi zE^?vc$!W$3{Xj$LLyB4ff+tdWrUqxf_{C~pH%-%V>^Vl5Aoj@s03ZNKL_t){5G596 zzS-`sw`UQ>SW^{B^h9+6` zqGt}qD=S_)=#%vz48e6E5@tw-0q|yXd9%OpX_!^>H0afZccKIB zp1)H}s?4@Q3aBRep&P8Lw{`dR#nz{gO}SdgS&{o8^}!uIHS<{^S+Gwx*L~z56_#0s zPANphNFtp+s-8S8&(8N3XNUc!?dqU~o-Sos;j}7-4(jgE+d*p~5zf!oG4kHkl^dw?b2pk#rL#ro6u!D7Z*Q8R zNhc@e;QOjl$Fup+^PxWs&Ym1kw(Iu#dY>1ns^puq-Oqk{?Sj(^F+~RvvS4zt+3wFT zFIjsMv?vzXXV>fAf_?Oyo;{loiZG<*GHYD7Yi_KwSC@@XNmrmtIDMA6HtjdV@$-Ck zq)JoF^775=ecL-_lF3o0On?9k#9U5v}gv2JRlxVq~1o4zn=b=9R5OqJ%#hav)=o$`Sm`P??W63^uKy6701$$|kHVGGBLIjo#ux!uDg9Rm0OGcmf+2DN&%1nFvgHlAfl!@?DyLduC(nf0Eqwp0Khlz0YC^LrXa{1`qw}I`XATZP|Zx9 zsj`GD$3thwiqK};ym@`o_4d)@>eElJ-kk5HkjIOv_qMgoYIAk)`$N;$hi<;i1qlV& zteUP54Ux=CRE3|FWi^$ia)WEGR|jPD9h6g3E~Se>ndJKfo(e5hAvs7xrfKcf<<4kX zm6E-Ih*?HW({^^>cCA1>InJYl-L_j@HbWnDrcn6VRHBT7^D%Jbbak~kJ6oj~j*jy4 z%kBBuVOEwVldbE|FV6SFdQ-2rbsIfQ=f)I*yq?diLuUt&yF*eF(pP7F=6UR3#z6WMx~{?xLWVGLzycj1tz7Xw$ASMyKblj#`z>aeN=M5 zW;3jBy5_)W0*Y|7P?6*1^&Sv|Pv;k_tBbAoetDd~IbR?4?(}GqAg%WMuit!C+il~T z`p_9Nc_ARtvRoc5i*?--k*<7IsG`8?m=pW+%XM#q_p!*b`DvB}1BK~a1;^ad^hkvW zN@!%fx!Je%aD1Gnl#Ixv5P)I5-l1?D!@KXy6^YGF@B46l7V{%_{7zVXK8e96xP5X% zNLndl^j#kd3#pXWF?u2*K~la*{Q@AQBq6%4jVa!)Fe!|Q1tH~_Vjw{z<@jif zDF_?*nHt{L%?64(7C?7IJ_gXYUbfChAJZTG`InuKgAG8xDw8E7rNi*UkDvcL|LPz7 zi$8ep>7qK{w2Lw;jNG;M&%V0;cmLx*`cMDozxd?yt8Hg7)BI}?K8$)6r2rUl^r$bsi4;uxYj|hia-4q{wj?LVakvzT59R@2n4YIxU4z&id`9 zt%u#s`g*kD?5a~ z4OPWu!P)%G1X)iFC8-RnAA5%Croz>05mN-B;VgYO`y0`{Bv6 zvhS>S?))&s6p!W$cR&}fq{iuN8j`+lHiPi$abIYxx461-FQ1mPBVJwe_NHyxP6;hp zoSaq(L$V^ZV0~H~D-@6d6A0%z>+SMH&Su#xpLvh0A<@8qvuVDZ=b!&WTQ-TYWom6@0Vk^sRGT}oIK^5m%a`WN+~wnH0-PCt1;@4R14C$mh8-EM#;K7Cp$ zDSR53(mT&T8eI4J7Z=-|edpB#IIUKD@4fS}tn*neTgiNJe_5QpajSJeK_RAMk`>4-Jc{J^BJA<$vrObTbU~olA9`VMIm@J?XbQ+)rMlj&rdXR7b~wuv9S|Hx?R!q7B_Z-4X(5PtmQuXlU* z?Ap^e|_bdK*AUWfN7JM1 zgAdE)VmY5>hl8#A^zJ*yd9HkLCr{wnlb4TAPk-_C<-YD;yq9|1Ie4yFL0Kd7N_hE_P<;(ZSo!~yOd$<>+yH3`JBz{B`M0YK$_f5J~ zmeqIyLg@SNXW1wuM@s1s+_+tJT{qYP3G+O!s*?F_(HQ_3*av?f$FJ5mcY8WMII(m` z=pDB}CL(4EcU#oGh^G*04ELGY+5wROe(74qR3ZS}R}#kW6AD5>81XK=#)muEL&eNn zeIiC=!duNEsYprzfPl9(5KdAFLP#S^=YdAZ+mRn0;%y2a-U?{k-{W7>J9;?Uue3h` zFmqW>N2sQhMic-9fX3tinNminO-js+cM?N<-)e#n#=Rf^fmPhdKO*nF9eQhrG5EN< ziUcTu^5dgi2v{DKMUmSm2(c(sQRw-CrN|^NzVW{4x}V$NopJT1?b?Az1PF_AUYg13 zs&~-L=SRxOXSnENT@O8qfDYXdszN?KtyUWjfb&y~$w4$EI9Q*VOb$X=oR@+l4tTEL4wS)i`W5ym(xM`()5@@M3$c)yeSyc_*_MHHO5^=0Q%5Qe%&yqo9qBVjV}ttU@s=XKp!X~Z{PowV&CLCnqax4wJ)PyXz)pL~7& z&dX_`XnpN=Uvv>tp>xR1F!-c8k>RAAzceSCc3t;_6dseletpmipTC@Z^_9&_qa_8l zT4Z2TNPafS?N-1>&7MJG)=Hf$W_{?J+9{Jf+hw(oO2-7qK)KCx{Kl)H; zTz*l0{9FDH{@&`3{<91aiP)H22zj&GoE$I9G7lk+np9HCyePZ2K|ls3qPA_Evw2<^ zlZ|Nvt@UED-0ik^*=zL90;0|`Db@H#PDELr4}Cv!UTV|HFUsi|hR_ zuJ)f_?V4>1Mp34i-kO1S0 z$iu~Vwc4BaFJ<1H9zENwRNJ?&FVCupDk>OyySlc35W-zqD=xm(M z@{eAf3_}Vj2`!uzkdhB>U$;X$U?g8l!RB~5NtQ&=>zl@Pc3PUMD#|h%LBL>LGz&X@ zg!7q^3Lpg^t<-Tg&6LPekkiU2Lm@aN;oX8Ng>``bS_|?n{T~3nNRZGhQKLCVLKdr+jNJ` zbxR3{Jz~%&C-dY`SS?BUwpAo1lUyn)GC;<@<9z1xlVD27gaQuCo&;B=D6%3&Iju6C zQ3wGzJ$*KrOw5z{tQySa=Y#LExLci%6sHoM)vxwvX}hxYV158mx|t+QTU9$$0?MM)AAjR`@S*n(QS>c^IQ0Iox@ZZK>oE1|=%~_4fm0b~zVC^7 zT9#7cq+)^8HXsP|Q>!O27s?o92#6^!PzarZP6;QK1We9)iTKXD^YhF0N1tq(hU-Im z=e_E~Z%=Qw^`SdluMcMz^~rH21st08P%xHz4_|vx+>*jX4^$Y@B=^Jk@qsj za6-uE&)+d7%d$*LHFg&mW3<*bjHlydAdP)ciUd$5kn&(2;OW6~{wXRH9o zvdqT{z=t1yd^_O?ecJ*9r?^-gYkgY=(OQdJ{Z0l3K}3Y(WZfMIe!T(^V|r`AOf=$* zyZeOzc;7QEh$Q`*3J?I&{Qz(G-w>jdLP|v>0B#+9M~h#rO6Uawu(`pv!>oYOiQpF3*OO(;P(l`tqh3nx=Ku z`RPPug=(8&yFG*;CX=$Nz$nNI3Z9$2S0vjZO=s%K<4ho4T-Tdj(+@5yq82JTuD65l zFnI(NN2g__)uhl$fNi^3HPIp~a+n>F^Ra7#Dr}%`I?>BT!I2S&Ir`}P0VN4z6tdWD zJC)&+=f!lP_gx4azy7>GeSsf*SAP9t9bzhqoJb%-+jLs%vaAq+gdifVja1qW{m70S zpLFN!$PpT|{z6Et4H8PJq*O|2rR1#@_uJ5sgi=C?;Qc5Kln^n7BjKJIf5BBqn8uHkgZ0S=#>nV>W8BS2F~t`jH?w)V{7P^n z5{w9WUW{NS#&~EB&JOeWe6;fuLS$KTNMSE|;?8*e0dLS(>y8g+nsOBn)C$V$-fsEavw zT?)~HYszG++2d}%KP1`<%oXL;#AI3&rKu_n30xOD=iLw=o#aBq)wYhwde454S_$UV z);^|`9C*vekBhRD6K$$oH~UtBn$9b&WsxxhANC<)rwf=Jsl}`!Ac+`#9DHv*_Z_Fi zlH_(b#2B8xTfP5k)`wWP!}a;_lb>vbz&yv+)otJH56(p|CAMuJLX)5;EQ>5FOPQOj zETt6G9b9DG?Vb1W^i;2Rwe_9&@O!hr^|xQX_u_c9J?wTCn5^|jM@4Srr=Oj92gb~V zkY$mC@Y{N0z1^;R=VC+_0v5-_fK82AsX~f~!f3tSIPZLwmB-UL2CXQIHg0aL08YU* zy%#c1(gwEcYv}q^J_?g3F3+{f`LK0u9RkN9lasOl00Pfwbs1!qh_Gqw&;Fv018uL| ztjhlI4?pO8cYV`_fxL~&<7_$4LyVt)aXGY56jPyXmcgN^yP>_l?%KviU{o|)MrHWW zgy2On(J6sMfr1WOCrLaxT`0;GYEAO6@!QRyL@F{kv{7U#igs{*a|6lP>iM8^%5!O* zYj)lTPKnFh6q#|(ONuu1W*Sun2ylMZUY`%`wG2H!c~buHx1U~LwP)vDwCG)Y@}yKo zeD>MZcHa=?#$-$liQb37I`{hPecJ_t(wN}x)gjN?eKLfs6n zzuF5;I+Nwh7bUEBL(}kLUZNmECdBPcQY4?hGb{6~P(>K9-T3v*02ro~-0iJ%33M8g z-CmNKI`gQN2CBmN7~6wOA+>ERjH*gQ2+sBiohgGUDJ$swtoiE8Iv&ih6HlLJzyAkM zUw_^1Hs1Br_u-wFmCotUe{^2gJ)$90AP+*pq*C25eDV14&%TBCOMj7WOjTxG-?eRz(q&c3OL1t2zxZU6X=<-^Y1H5R!>5?!}vIi-{-q^_}=$VcWb}8c3R3{ zp_;1YBXjnqKEGTiwgh0R1Oh@#Qoz;K!TFHoN=Wulx3;l^jGU$uof+vm)Kb?w_L08v z;WRTM_6Q6&Hw^*JrWr%3>n4ZTzvs!C&$(L>)r(}2#^^LO*;BYNr^*LFVBx|-_swh4oa3^M1T5yKu> zu$T^rGz#Alp?B1^X<8|z(rUAJ!A}+xI52ZHm2GF;A$1#CUxaUc{1_NEH(s!?HUQx9 zvDz6~* zfC<~irNGlkhL~>FZ47}Gpu%<|Y#*~_^bn*XrO6K*0(FNJd@KvHw%cr*1W}lHI1DJb zENO5y_W0!|>3ct%zxXKr;zuY*3xx=1?QnK}R+ZIsI=RREQb{G19W26qH!BW9KPD;e zS2<&{F*tsk{90!o0cIG_O)!gRX82c@*Ap$I(kVuO#1wo_tIv*=%$85Z+3HIV zZF0ssX7of@lybVz!MgpS*&cj|PHN}U(6!!ZA(fIsO^Q5t+-zI~ET;le(i(;)5lWe1 zVd&<%Z5mIQOciWh`c9|3w$AB7NJA-5N-%UT#9&A;rx=H>b1Xfe2NPqR_dRMnE-(5a>JR6O% zyUwoGO|y$xrbtjs0Ra#QNoAQp0PBJfsI;&irX@m;F_4nF?)q+EX6~C%YB8TrP+}w* zZ112obC4*Fp?-*Vh>8?36Y+Eoee0Vcv^E^i&CzkmQ6R%%o62mOQtD$nJx&VE#T)CK z4J@R@q9TR*tFxPKuumUP-~YxV?=3Mx;-7tfHMCshMkyMs6@<(JNo2W1fX%j@PBN)w zNHEC}dg%6~mFi(=JLbgQAyh^zPZpqb2sXIE%g$6FNop;+K6o3IP`<+~kMkwmZ2E49 z3_PFe)6IwRhfGAGOg{MZ0y_HiyLF$>ZsJ@143}1tUlP z>F1Ze$0FB4;NTn~5#$W1s)P?|f9R?*lS(jPl|yX6HBxKQvTfQFQ}mWAA&yU%po-v! z-quMCxZXFVEXAdVQ)ywxz?BE1K3h^hOU1C&KWkN{KJ4BM0Go+%D-i6J+)k@4} zWnh>VU~hzNWU+w8+qR89#^hk4#Nvd#hkk@)Zb+ke=$EeVlQs><@0RVI-+WhU3!+|lUyVFh3$ zguHt7@yPfLA@+SY{@R!dVrHcj5&<&+MvfyJrTPp^001BWNklUE+zfHYqU? z7Dah~?0fZn=N$i%wDv83DWpJ1DJ4N-gf7e+NA?K9F!YCJk4Pz{%d3m~LElnT7>CkY6A|+*9VmoQmers9@&EF_ z|H&VhWeLpAJ7+B*7_CoE<}oHj{Qckm{a3GEg%ABxI0Fo1E_Wo9L%k++f~4*|df8K<|A z`Y`nO6LKp+1Q?S~DQa!ry!rBHKmD;WnGoXo`ug+FKR3pB@3*_%J(`Nq-QI){?xBU2 zBm{MB`_KHXf8m2y9}PoKB)oSadI4n%|Mvm@QKcR;xlUe@&y!Oj#hZ0&a-j?Z;C>w$ z9SXl#OrJbmVoDPD&BgZodTXSvvZ5VqSK2l-fRjZ!)PV$5ic-|m#X@PU57!_d>A;v4^Be%i zr7|{32wt8*@56R)wZ=RXLdZvtOV@L|h0GWuir)7$+4)XE)Q8sY_CsDkUa9rX0Eu!V zBD&>q_5As9f9NxbU%XkbHua<^h*e0=honUg3}tBm(`MI(7*UG(G@F#r)s$-OZ5mI$ zuA>r^OG-h{kC#eg+wMIKY&;+@<^?l%t?%oIQ7Q$?6K-tS*VbstGa-~bIW2=r&4vx- z0<+>#{pDxF=YRB`l8OX$UDtIjB0hWeY&w}{nTatX0+F!8&@}Z!NRNoq=}buVuw)v% zcXs$C*Z5aCf!2@`LEv9i?0;aajexf- z%7-o{%uE0T2tO!xU-;Q~<%Q50i2_FntQd)Kv1N_?AB2qXn&kG_i2 zbH88iK6@7sNCjYI=G|^HUSo{$#q;Nr$u!Ti5F!x>AqU$xbv-WKcN|WfOy^o_PKkj> z3Xl&W29LjdX%FX$kYWt&;gIg;ibriFA*52wiI_W9U!@5#hXg-yvlz#cX+-#|5rkMC zi#j414hv|HGW_NghRAdWY`V5dDUqNQFJ5s?(4YeKhAMM0B7k`8s}2>=O*uqc&4p@i|R>|3s8VtFbruMgfw3A!76B1a-Y zQa7tZl^dmm$RIJi_xxm1W`Fjh&xIftqIFTc{J!ESCizTC)JnDo|Jg4tUVU`*&5uu~ zliW47sqJ>vuQu(z832XW+WUwgGcApwsn!AjfTR?zBi|*ABtQ-gCj!cnmcn%rJZM8P z$JsIm6&iaDB8bA1V9ABEk-e6rVsb*q6k~HpF#$8acyd%^MRV|76Qh?|p-3gtURRzi zU94)YWv(V=o=KwJuK)V{Cb0eO-+56LT10f6+pN0Fn*$K$S;j1UU_zN`VGJ6>87O8j zMosd3d*dll*NAq9GGoxuXekASLom4t1||zlnuo9s)Qc=|N|Ho$6b7L%PmxjgDez_! z+CE4no;_M-Iy*G3twV}3E2YrE@F3 z>&yLqJ6x|C8&g&0z-WC+ED)tJoEb1I-QX7UsxW!IcCL$UP3<08Brq{A6(NQ;>O#Z} zMNV4VK5POFi9BK?mfn%;lc5rrle9vo^|g-?id;TAUMyx)U^;t!AT(K_NV0{U%p*q0 zi8swIllgoy(^ADihrV^(e(T$hpFW>Q7dMyt-EO$LIfTe%ktas$Qeu)q8WW@r5+OOB zP0HitB=o#ryY4_kLy;ntF*A}FDS!qH2CzVFT*BUC8^H-;qG)?`0~#nmB+3Sq@#fMq zLy=2D@$}JAh;Vt{3`3gCa+GOEyTF4MCdITm>=O8s*^v@DMQm-qZ)#!qw}1F3N)J*XX|TIz<0m*A}{34#csQ4&M#^NA{CX&9#6j`6iA`^p&uFZpMLt2 zF&-TQ+56b;KH!#83KF;WQTUJ@B*v`#@$umh1c+&jbVnJVl;D>t0Km*CMF12+{?70I zfzg>#S}Q%+v2&NJYLaJ#lqxfsbvA^cwK+d~eR1~2Xbk}AwmBGtpgcFs?3~;0cHjTr z_eMHw(=?+D=<&%Tt@U{5JMoQ3NJ>d5gcKx6A&Rje&Tl1Kg;d$C#ice-w{S;)}Y!1X|9TP}E zfh2swm=Y57&H*{4*^r!N*<_M8HD10BL!T0W&T)23MWM1>C7`|@5WJNxsaWJv5c)WH z8)EXoQgBjfsbw)lk1}w?zUC0Yhm-;?=Tqy$y51)dOevezM)p$i@zOB)rt2%YI9)8K zRgoEUwOzlySXGsN{H%KYdTk`d$bKM{0!YM&Ax0$Ztpl=BvmsS!HJ???x;}*c-T|S? z#AHrYCAC(2vmBY7Vq$w(4_pUGw>-FsR8SaxsRbcW{BTmglMO#C4@c6KM!&CW)319lw}NTbjs}H7O1L9338_Y(FGLg~ z0l-jKILv2HyKK1?D)yU-1S6uoOKlL*ZohXvXsxxDA;b{E$O{!hjzirVBRU(r8-*F} z);fWJ!TY;}18_>5c$7;fBmj_7jh)t`kOKh37-9@51|$L^1>q^Rr=oi-x{AUx*}SI@ z*D(t`GN8Z+hzx%zMd&Rf5*PtNQ~J2-G4$W#v&VRNhPx~cEVQ|6>KN_C$94rGmL~N# z)3BdvUM^mfo;{l@McrWlAWWJ-CWORkaKSp4Vw93O+1!Xi6cCj( za=RTcQdY{MG$u!uAf#Xpwi}F)NyS89gh(Eui_W>|gD??544p#IMr)U>wQ*=*w|0QY zkjjZEDqQdC=8#CRP#{&xa@2w(iMF@Lv-z?*)*|bz-R};Uo6Y{ved{~V%3K}xy$~QP zwXn|b4>e({HRpLauF*L&}MAVQrf$T`bFo1p(6;@;y~mNdH$JLh~Z zP1$SSeYRhBPrK=9SONo413(gjgbXPK1d`H1+-a+=_S)+|QBWI3AOwO80RaLa++Z-a zr>E`f*Uw#BCf(=G(IV^CyVEm}5C}0)tGmdXRryurm*@P>&jjeUerRp>I2c(jYf{1> z*2=@%ciaA|4=t8-an-#zjoT(XeD$!HXj70j#CZ^r`E*9a09k2ln;~@Bx)gIZCC(Pb zu$8RY70PH@Z`&*!d@2eRbqEPU%f_g~>B1If+8Cp3S;@7=N&2a z;Nh}M!|mnVDaDYrIzY%;0bty2W3%;TVHuioLe+GVJl0OEMPtcYdwRYNDOZ(djDv3z z=aiL6`qpCRAfq?yw!1vPQU=-PpLzSi(ZRbS@WT(DwHqI!${9F-u2dhr*5=kN+c#2SH-h;)_VPTzCkgT;4U=wWdndu&dzL!M$7HP`LF)+yHB57JpR$fXx({% zTo7lEIk_~c^?Xr;!0jf+)`X!rJgBus9yrF~&HJxbWiiBlh}(;c&ifP-zj)TZ^6I>t z83ddZ7C@WY5Q0(w5CMrxSYJia0VGeR)ua%PNQgzLtl;w}tJSKV%v>0{zF(ta5xZ(a zuJnU@_xdZYbh&P~=i4SYxPLVN<)3@oI{n>mKf1g~F=>r6io9(u&)g4QTmF}v8+oaP zm9PKGH~#$}{{ENo5fJ=ak6A}VeCMrkjl?6WYh#?m!URh8)uf10N*l9x(!AdKx$lRv zEab+t0e1X#y1_fz364`rA^-@Z_s;mB-NR?sJ~>~C+4^!m&q&%CRe*n+3m!v2uW>!N z(IJfNBl_DiP!Y?r{PE8wN~y=6fBKa--q|~B?AfaOH4&7*hvYVZy(!;~561BSUk2Ir z*C%`O7$W4%LmztADlJBlK)zTvg!;{g4+OFbMUM3O>2o4=P%YFP>NJ}l&W9K3^oxzj zGeC$b3ZtrpMT*+gRk6P8LL>_1s!5c!A$_z2QgG++u1H>Q&dWkwT(*9QSKDyD9qzw& zP*>Bsu!X6Fqo8QTI0aIWGOVvUp~Ml2!rr}KNCIZ)w+W(zei#OSdU`RPIz_@FZQF$m zMOnPFJRnjqll~daJOyOgKW=Ny<~|oe*E$FwYLv#VO3VOs~lR9tN_(S0Wd0v z-mljjJ)q!XQ7jK#@{l5Tn?VyumW%Th$V8JB_TCRe$VvF_$>DNR#|@!2=bKeU_3~(P z`uXP0HOu8hx5zMD182G#V_Fg8wc9h+B&Pslp_Hb6^M{F?0vskC7>(>)l|(73lNAyzPxCS z2IJtx>4hscle)C?&4XY4@RL7yt?vdT5*BL>i#&by;@;icBTPOP@zdEN#xV3PA_0x+ zxTdbBql3-Po68tLh~B@n3SbUHZ(V`ch`2G<+5!oi?RGaT1&BkRiHs{q>DN^UBCK#Z z=|?jJ26UJ{iPInYL#?t_DuDW#V*RFV&$Ipa%@R@la`F6#`iN>mc_ImoyUJ#+B0>mu zIytPv(6?ZUT8&EUo4t- z1v@Guh=_9q0GytlX{~Ra99yGvW~H>*ovOP=4JgKtbFS(skwO$^Canuq<&@I3?;L=H zp+_QX-3YjhO0c4EecyL&yVqRhoQtv)qyhD~<-B4V0#PCh<&zKqSj>N&Ze5Ub7#U5Q zK$tB_Mq*SUi3Tgz{^bJkKy2^}Laf*=AC z$CyHgikwiWr@Ee**mKwQ2vF5(y;=D!8>`Dw31(LyXNWXVQBCF$63oKwGwmKdd3H4n z@5}SU+58{8_qF%me~ka~e|^O|Drzl))1uyN`?Iq~82S!aKo?XNXiL%xE2RWPX&n+= ztOfyatTlnQY^W})N-&4yH`{*jgCY&7)K03Y(MVm_w~Yr*%8-wJS*gS0N&qN3PO58r zrgV76y28f5DRLO1_sM4#fqJea!|I~Db$mFPTBFQzvV8LBqU{FK(8sQxXzers&8zy^ zi`8cBbCw*H&+KY+mP|pFBCALcfG9?~YP@8&tjmIsveC1$w1U}(;o@q`%m^CUl@pDM zowgG@{mpy7aA$JhV^GA|w;_b5rrPaamP}@Sg+E()v2M)1cT?tYewvv(}P{5co z8Iy}S$*3;=c`k2GeUafuGAp+;DT!C7-gF_-Btw|XHl$=TY z{&v+G6RX7Fx2t}&1_Vi&hmMqTvpHb`5M7kzd?~Sy?bb&GVZYhtn1lq>4%_Ix2cStk zRXi|&t0$A?K^*#Fy-H|_NEHPUsA8&(&Ay2#Nb*YQ%kyVG0x3JGr_)I-%Gk*fAaY8> z`bu(QVF?3Bj>CY_TUWU0%!?Kg@dF6}q6m+wNppB4c|cS}Sr~2NX4RaXMJCA!l>&h3 z)(JT$0!kYs91%>+{YWc!&VfKi3O;ui&p9&^<-V1awJVC*Ows@dW->R%#BM_=WGZ6U zb*l|(0>uC*AZ_o3MJaTybXt(W%?~vxPC0hlA%ZDOQy3H>TPjy^XhXjh&c@h_^B3E$ zuj|FF<6F!ONN#!yl=9nk>U%^;Ib}Z}hupP@VhiW0X(AVgz{4Or$_)U5Su9jlbLarj z6{QmHo;}Su`GlMk094Cmad@0U5J2M!pi%CMmb>Tu^sg_EN|jTVQ5Q=@K7`->oqtV4 z0x+rSmmt)2-C4N8njKL@ZWzUkByX+F!-ub5d*JZZ)x}uOO(xTE0w5xj$&8c&fy9Y< z)CpklLkw|bx=*L`5lYiq*LC%h7KWN zc<(Q+&J-zTe){a`%d+*_T^TlGBIU~Tf z*^U=j*OM_z0dZ#}GMP;O;?Mr%FaGR5)O9T)A@~svwALIQ&6y>obnE!|w|?ut_kKXc z7tdepos{1B>dzWunAsXTb^?TZd4>=fQg&=}vfQ8mx#=!btoJu4Kx({DtMwk&&m(9l zVvTXvmZLY}vpsQ0Zcu=3_!YhM9_{*V@Pl*3lP8Zp{Lv4Lby};_)6(q|vL9m8Xsr;Ds#>|~i@*Nf=|`WyF2D`PdCh1uKbpLV zyiBAunnc)@&RUB|Ii=D5Hu|(vmoOu63fT`H7_>F@#OBb)m|}>`qDyD1QV|}^ORY&5 z5+_6wX67uys4Pqm1r@ZHGIUBSBpfZaoGo^gd9B41lG$35Mpf#_)TV3ut6lex*In#r z2@fMvUPgXkOxNVJF{VyiGM6;`o_a!n1}Vg}T{j{zK_tTCJ0$@DtDLys=4zp42L^$Z z)_oV+O+W>k#=BC@7bTha+4tk4Kf0~70$^ioQB)(MfA`Lbb8Zht0HF7M-?cY8+p3z7 zQtHQeJ~4Rzr3Tm*J67cTn+FkHSqjm(B4*^Z%Lup#12P~0SXT&u!jY{G z87RdB+2eJ$kOdLZIR~WRMzY@cjw7#Wk7v*3ixIil@7{gijZx)@!c1Dj(OVbUY;D2s z|B*R+MB0kdAOe%g?3y#l*4m@P<;Zv(R}T?~zKb#DyrXoEQm%S3z4?xS7`@La-t>Hiv;sm(ED9lm>Y7cAVWfTTNv(BVlTt`H3Ma-@WzH-aWXwsR zVzD)c&%CU`r1@l87Deey@cHw{=P`&Mn218oZlcPGc9v?bQf6Ragdw8@iM^BsXo8}w ztgb?iK;VO4uNzKAL|Lm{MT9_vDa5`TLKPxr$A|=I78p$VoKI2?Zi3Pcggo* z(|BR2X4X1duezMMuBy7M9^5{0rQ2L}?RvP_uG?;?CTcRZr789DuoQtIa7@x}8m-lA zKFgVo?tp+eh1S6N^S}WbG(<|W_!#p5rL%? z-Nn$i?GIO{wuEY~bV*0cDrE@?VoaO$${1763T6<<)0uJxkm2IFkD9Ww2wIc&elS_1 zNL@KUJHGvDom0w~IL01#C?=LOqspaT zzQf7C|M+p}L$~qwm(}8^OhRes*l1Hvv?-L*%9!MPOoMTgp?teA!~%~VKN>QfO!CZR zN$lz}^&3BR>dD#JX>+k^ zFY>fJI+>*;G&E~fR#Dhyc4Y-fIeHEqfbimNW3Tq1hHEwtCH4K z)kC+U>AmXYEr9&VXP;s!Bg}5oX>7K-)TjkO1AzBI8?ss#$?h$N&;Dz4AW(bsG_T{qja$Didm*P32grj#Lu9?GiO ztgLfIH5JZ0cmb5y=UZPLLfTxN2TLq3pIf7=!?@w5n9Q~7ztDA&OehHQ(;(Z?4*%ni ze^eBXS*~Mk0RWn&8S}G5q^u`I3U&tmyra2Z2fZkw^?G$}F=^_0y3Zxpzt<=&K*V7< zzmDa?VHieX@p5^%SS*=2#_;0B(-`Aels|azYR);O^yu@?_Gtz$arK)F(y`(nQ-Ns5 zaUY2)`>1;&@_zWefAc&4`47+L%1#lk+bkjTveqvUzr&tkU*R|{Q%KLsyX1b0;65zaZ zDQ6)7OA3jywx~6L#Ocp5qbZ8>rfs%uY4Buf82~|2@*pgbqVFIlu8wH-y5#U#*BGNy zmXleowPe7d*^K&cSJXt5eJ{c&3~tHO*Ha3gJb7ZRWn3;xaS)THBpyjiidiWE2}7rj z-qyCdc>Zj4acYY>pgL3=7DO{vx`aFBX41xS7Re#czp4+)i>Hs*7ZHr74zW1|l zUw!^K`JlAgIi!x6N^+ejg~%xhGY~2wtqmszEr5bZ93!9@MZqTk5Wr-nq($qLGG|G6 z@>X^GHSV?{=JA#^r2|DhVO?4Q1kM+ims;!bM&p#~#X-3^<`m=h;%c)YqUn4N02xtf zEkGPvy7&OfX%tZ~0FYce2w(e9?V8TL_X;3#W=SlFN|6A7Rv0rN$T$+rIV0SL>L2HO z{}!J{;L2LJoIiVU+4)#c-TE@l78bHhr*&2Hup#tCHk;5#R~i6WUwDHmbet2WFSz7D%TX$JjM(Gp- zAfg5kIQ`z8`rs(v{pi)NZ%jF9F0s8-%I2Gs-WcP@AALHX&+b3Cr?noP35v3I1#dTN z-}j^xBBnSnOHmZox&2mRor{RfnR6aLZ5TSGwNi$Z5@8XXOeO#@^j%IV=QQ>P(R-z} zcJ8`Y1O}A>6e0pD5CsqbUdKyD@(BUp6}5eBvJrrgCkdFq8P)WMWm`HBAjC2oP`;Qq+j??kIP#x26c8Go>g^WwVh9@ zH{Lusy=d3#hCr1`v8aBNb0MjOqopept*(5D5;WmNQPx>x-L#teNjVqB(93eM=zSl2 zOcC-1ikh@hn%rVpB=3Wd&o9om>v-#=VqjsKEQ~@Mx>VX(>I3Om&noLwig|VAH!0t~ zJJVKeTYq|f6=EWyquKoE_7otNTEDp1wyQiph`!x8*8E2{Fh)m4DAl&$vG2MS~pi5>J zV+?`jV7G1R-4&>z&ugQ#R?0`%TqRrR>2Z})?n5g{Qp~k;w#3WrHhXDXDJSOOjwQ{7 zwS6aDB3G0u`^93K6SrM29Q!_(g|?(FpZl1TAZ#y&!sLTnRY-mq{G@hSQX6^()DCLn zQq10Oozn)Z+yi6UZ&zu3W+sb}Q;LC7*AM>1{MWwn+JEw$_rJSZtv`RNZ%_06 zNfHrNASc#jL&i9CcK%QuzKio$S4n^KyZ_UY?WaCJiLP1mq zZ^QB(TE27H#lQUCpRP7DZQak!KNs;ilhRIO5Oc_P{xepSZ+-BC^?LJc`}*6<^?dp? z#Gs2QnKCDz+ZJNfRgLvTX~e_3!_hYeR^R>bgH2z4aixFmo~q_iP;>I3U$Jo8d$z#c zxqbML)ct?>>C?yG`qASqxLJMw*KVhJs#dGZocox45w)EynK}2HoC3uz-~SCf`T36@ zeSG@j#nWd{82q(|-b`nCXgCeJ)+w79IQc6zec;~ytpVM){^~EDJ~g1{ui58EZi|H? zhe!l0F-EddE2oTu)S6pw(wqO>XZ2U#{PP!QGqLqM(-%Y`WznVr1XPqxzJc{U&hgvd z{?;d#w;#;n(c-c99g;032P}!#YYs^hkt? zR(hw0Q!qyA000Ba4GxJ?dW4SlFxyQ_qJ62oKP@7TFgY`6t%(#f*Y#w%JUlylG1^m( z{+o)_y}S3HJ%9S+yqdquYlPfxL>m9t$NSQeBP#agS;OD$ec|tg_46N@Qv{&tONOgo zT3BRBF?DhCyqF#!D#?jJfU_-}nJpy;x%c0IE=p(r`j7wc!>6A=Jl1bMsQRoBMK))M z*tVVTTFAX|wh3vRoBK+;@I-~2hOmb%=0diH1M&zjo~kL%Nj zg#u8HG--;EV?xA?k(`cULnq&$qAu#ycUFIPdC}c3H~;C;rtjjdw;w+H-iHiA0)!|6 z+9+kz-in^H_T3=NoLQGv8OO{5Kt#%_q3KbWGsLb%VXj2V1zLkjNlKg6pS<g^Q_%%%!{Af<&d0^($1l4m~zYu(+iL~YJK z`h(-WrvND>Aw2r*^M|iKbk62oZOTrfRan9?j%lUFSZZ+4Nm5JzcjC74y zr{GbMF?Jk+gR`;fat|lCOQVc4hRS zw6?C;>-0o6Yyli82NVIi>NcO_7F;X}f!>?vB6q=%_C~ z{?m$w*-cmn0GzW;(>#9sMOBu^w~lh&nYK-4bLWb_?{;C{DQwq6QB~8~eDC&VtQFxf z3^`{aB2tn$X0Nr;*6mdlMOAakZL=8^M?dsgsifNf>)3!cDsoLR1DsLK+CsS~6N2 zMPm$y)lL~A#Lc$r{B}|oBj+wil1RcZncL~oav*J}>6-J4b!iGB)W#^V+fB>B%8&?e z*1m0{E8NN5#VdD@j+XNw44;1XdCrKSL_`qcptV*R`0DvOPr)Cd>UWfN_qcSf(mvBxyYIvpgq&Od@GyLw(D<;D6ag{BOyZx#ljrF~x%qN2edWQ! zwjUu+ zJ8y*$bTN_Vf4Ugn&#F?UBE-!3n-?c+muc9(`|f*!8vD~_^Os7S#HbV@X#kMSNHlcK zFtkGY{q~`lDf{+oUwbcsQq7Zt?KjC(F{K!U(R)7v<@5P+He2MJwAPoG=T}!3L{yg5?c4WKN=BQuYrp^gcgzhU z@AWfQt|>ryMEf}j*f5r=7051{f|3={PY5s`S<_t-#dNr+_|Fb z+P-T6$Xb1PFlC06!mV2;zx~_)Y#0VaeEQ@iN$Kr(-W%yvdmB&@amI}k0Hux6b_^m* zFI|9?HuczP^fxF#w5I^6n-rkk1i%_o*uBZg%PwQT>_2q^aFYVmwrlS@=ZYs!AAkJu z2gW$9)r%LWAAR_db1tQ{-fV8T09{jnVjRB)t4I+dQQvjH@{Rxe)z{w~CjjGD<1;;+ z4Zn1<=_6=kVT^GQ0l<`e(`*z$py`j=`!U9c4imMu0^L0e_&s9-%;x2M-?9^#lN`_5-^5uApPzT(6r*X4IOTBM`3- z|N8QlMtShc!>TM%nQHwlxcWY*;?qC)V-X-tsShJ72^C(4*6sXicilCS(j$sIvIH?F z5oKk2VSeR*G!Nd3?do#d5uyMfQ65@w^{rRlFiLfOw_fiuoBO^)z>`}i)7dP>*tIRv z?lqdUXr;AM>&@!(&p#)^#bSB;&RtpW~AZHmvgN#P2K_q*>n_~g)m_*jp#yv^RzwSN)jm}vC={oNWSc91} zvsAWp#%5+?txxTGy8(b%JpqCt4ZxTJPGDxA?grkpxC`ptjr|RBEek*CP&8H6~D?lD+3}fxf%qivLFmeq8+ixC`U0L*fAdCAwzrSaaV>U!M#M=qrZbIzO1`p5bYL}RVGHimwQ4gJKT z{gf3ODOh9U#5_(K>3VoFl95tMDTco5#?L>h!->>%I@QMP9z8@UgloS$21I0+d6>NM z2^L-7cR927f(kdAFr605!>K}e<^IXl)%xu0LTjCq1_Blqk(_i6Y3RMNDhU{k+Ca_> zN&}082#AZt1Od{3Ak>GBv|@!In6d`}Yb2#)v{s5rQ*$CyNRqVPUJ-#aB_c%*0Kgfw z*2j0NoD*hBQJ!C17>kezS>gZkzyFLMLQHA1X_?t*Oj#;h1L&^Hk|ie5TF(|FEIG#L z8}dGSAAF3=pp>%OoSmjN2MMx|45hJIG0NCNG3TxYjxnW_qB4Y}Og$%UQokLVhQR=P z05Zk^0OTM5SX9PYVIDb!%xS&4NYRtFq*P?m0ChQWg+)LPJ*OZ-lCy~9EGZ_X$|ta!$Z8vj_mEgh+N;Ypr(<5IZLWOw0<|Sf@wvYxY@`vej;bQ!WZ3WDqcl zG*WIiERX?X96%U}5Q&UJ*b#iGnj}!bNg3y?Q`+QilbQ_!<>Uc?jJC4_(k8W=p>3H3 zgprgnnpu!zVlY*uodxEcBLFbx_3AvOgaD!n5hhZ{v-*eYgCAX1PUmqaymqYr;*b9D z_lu$cfV~kX-Qau|^@Nlj0h+zB-Ama2Z+NM_!wlVE+l&uR5UZ>rEiWU7$4-V+nm|ee{c*L-;u6A8P z&S4mCGywl(G`Cr;uJ&hGES5LV%$)1V?DzlO?>+kLld7zmX4^DdL~>3Y9L#c-7{kfQ z$^Y;#{>9h;Jbv`}Wdrcl8w~)`^~$($rlF11*Tj969p49$NEPGdzBoPGpK6>}z&I}7 zQ-H3YsD#(JqR6P~V`inyVsUWY&ZV1kp8cZ9bpg}u8-OQ|Km72Ay9VI&^rMe<4Zvpe zQUk!(HlQ)4acQl^k^Me401sb#BZlDp&@_!!)JJ^#F#X2E+(wL{8C{%|F}sRkN1JA; zm%?1uwKbN3V%JE!22v>n5Ec+OJ0xucv0q=sc8jEnq68vNaWpm8)|sLZ0OrieBhqGl z<$aIBLRypo=IL}++9EN?(Co%nfCwl8Aw&?#0(LPM5lg5A1Sq9AikC*}8-SRq(uD(n zoKj|BPB9~AcFs9x7?3$Z9FWwoUVr|l-^?k2j3Rpw;Tz^mf+G`bKW&o)y1?0OOaZlZ z-}sj_IYMng8%~)y?|FB&D6~?TlTr#qvSdUIKK$i3|8nr2l=}5w`_-?!_WI*59>4#? zAH)!5v)M2H!Y?bO#uSLUuD|o$?|%RL-yeqV?wxxNUwv&D25Su>0vRM!O1EwI_=`s| zMq|t?4<1@uNbG?FnA)6vr~JXc0s#SGvZ7rc22On4*$|)r5fCCG$1ItF8LFbv#TR+= zfA$~5zyy*wQ--oK))}MqVm2WFBFs5AT^Di+F)N};QJ-HmtJTI?bLaLP3$~WE%U93r zXMgxW1UL^PtB!M4*1q!Kp0#!#+ebuQ_vIcyDRp>s{1OlmL88rOz1eK`L(7paKlT9o zToEGLuGf9vsr|MoLR!0`_|h)=x9S0Y%3(sJXqR1ZBf+EDrW8l2;kc)jWi^>juQ8fk zB1_vgob%X2f}k+c@^L==q`fHm$FC4l9!w0w&8`Cwk<{_=!NGDlj$6l`C+D9hLRbB5wU=T&bdw+R(G4@OQ!B?OzQu;2lyKf zQ`+ne(sm+{p^w4ueg=rbtca%bIgz>{Y(Ve(7$fHlC&uHxh&lKeBLl$3=j~OREyY%}n9g1~xnC6455DXA)q30cK#pdnC{*c6>INT%A$cxJ zElB7GmVq_7CJ$Efk z=3~)BPoJ-S$7O9zr4|cYI?7>|BSFFKHeS5gW|qzm!YCPHj6;WA6Y5!>A6WzCn_sz4 zgu)WS&@_F=5FyMDCzOrRfCw+nE}b@Pq(=4I55E4|@_tMhImaX^1jtMXNox*Ka#Frc z*AC*QbbdYfwjXz8Dl8eN=n|0-NsNk!xoh^k<95@Kai-dUaB4OJOj?c8&$6x}k91zt zRh|1TU5^3V?Y3<;ws1-*B*h|ywOXn5*>g!raw4q&F{fOX<>-LUoOM~H)fK0tIHi=^ z7_S}HNtgklSj<5v|Nf8OlcC+@wP?QC#2mltObS3-#VzmXy07zO3vn!m|I>!XeP?Y)V z5GRFV6!hNeEGE{U4E9^D@Bz{)UT}m!O!uypVC?G5Q1k{l50O$~klI zhau9ycKiWI$Rdo0C_Aw!g%tp7uU6Vtq!dTb!vI7e!kmP~!azDB0!Lx60Mu{0><2(4 zyH2mM)4493Fasz6KzESB3IK={A_;NR> zPH`-%#zt2*9Xf{yQH&O^A(0|Y&~-8(NCE&rTY|7ItJ#AG=kLF7sv1Q|5dh_!#-H;w z;p9eSTeSpch+RB>iv`1H-!)(T4e3^hSQI4!kRlOKTD|!Eljlz#*V7p==j)Mz*4k?P z?Bh=$rT^p858i(3t)eJD{q*CMQ;hM+#~-}@`d32mKE#XFdN!Fn{`3O|>f6R>R7&TZ zv@s(i#hFSeRS+4Yh~V<{*~!U?0HH1tPsD zO5?tOO8DZ{%1o$uR{zYWr{B4avLr;lo^o7IHsJL1oLS1kRaF&ZBqC$%bUq*Ye$*L{ zpXBQ5GIJiI;>S0wstN%5z8{8u&lg=?UgX)_IBWEdpHq}2hB4UxtiwoymQC8MjLSoL& z6-7}FeV1}hF%T*C?&7cBaVHnc!&PG+r_5<6s=`gDhDapy(Dbe#X0Uo@dcWB=g4FvK zu^So!fNJiLQs0sk#nJI>T1}kR>+SlBr_Zid4Jln(H$QTSljgz)OnvaEWIn5{H8JL{ z4FXvtU0=31V^C$}Aw@ixmNc(@8-w^DIY*q&NofR8)x_w{%E!b$FaSoMwNZ=1GDd!I z`=oFdB@KOi^u@Db2&~d%VzqV(fn#d6WO8{}lxmr;wwHzsB4i1D@41B-voUtLn5;Ho z7*e;z81iIZTBn3K2UMn5Uv!1%2d|Yyi4saox!JBl2g^l$bVyw@3?ZIB+Zv5W_X_JE zbG$f@hlf+rM7rWZhRwMkw}a;l?T`dO5{j^Kpsb!&v+2Ywm*wU8`uXX3cP>^F#@kTUb-#o9N6 z-*(C>ARvt+_fctGPYbQI(n=6fVHjfascZV2GKYvns7M*bz;#_YXH8uLNM;rhFN}z! zX}fAtOno~{<`cJ=jy*dPWrT~W7$qtH%))>+4Gz-8A3v&aXLxXnxb^pYEp{F*)?Lj?wVD@oF&UR&Lm4?DRX#q zpsR{y43TBObCB3AOZ0KJoSDhBsUqS4a{26XXgv~=CP1;y9v&TJr4U4fW6on*5^CiK z->kO#C`Vu}mUEoeF(#N)Ei!;`q==*xk|7QN1hLCtveH1Muy25+Fr~OK<{ia8fCefI zY9qq{XHPK)0u&LY)#hq@_2f)gkdO=_f;L7e%9)G8mX#AA!Ep>Km(Q>IrYAzB6apau zxm|wN;qf8;KeWBalV$03Cw9*H%=OP@W>uDJOLR8?Hb8ms3>cOX=1{NEs8H`#BAOT(kao(Gm59)$=~I?J%2}|Np9ILd6d=AW$-y#-RtLtfCP-7-xFd1n2<3APfSM zPGHzJ^Vi+s7jS6g@h6B#r0(3g2LOnqjV`MxGymZq{I8E6eX5OZhNy6Kx(6WLFQ4sB zPf(kG`ak@)n+O(QUg(3vLnNHfrir!Q`}aQj^mNl!x%tXBzU{q#=P$nZmAAiQwTU7o z%aqnuXGJz&?AsGIz}dC#O>Veue*D{4y5$3%76IZ!|DNP3&KJgP>BE_ zK|tTt92u3eMk_*KX(_yvO#jjRt$)^joF>&#IXm4vi#{j;BoBm^5Qt(>v1LpgFdM?O z6syhQ9B|YSMc*R*hvcWAjWzUE6dmOs3N`%Q;37K~hCo zdGFe~9>;5FTywI>s>P-|J%6yCENWn&YcYXW0*SM;b5eBo&h4@&y!SCit?gu%_HDD< zZm+aG>(xqYJ)19#u`$LFqcJ8))9sda+bvx-MXS})7;|uVWQ>V1GINq;X`a`+UE9=` zDGlPfj@1Bh{@pm*}8r5c<@e)rh}VC*G&)v?*a%^ zRUrt+H)e}j*>1bKZ6Bl@?{d%t59`j&xp*E{DUM3E?YnUz&~@6KUj%+R{`-url6 z*GQC?I4>+QMaMoGFPvz+wYc%6^2P$vsY=IkB7-700TGCjOfs}e+J?_g#5;*mCyB5S z!s^jkyRLPr^TTQ!QgIY9Fqu}`YHRgn;5B#``hE}wog~T%q!}ncLIBC~d^Vo~KnMXq zP^qy7Zkw*YsQuuS);C_dt&F-PUQ@lQyImK2uw_n~0AV(t8e^bghX|1bB%SA| zPzd?_oa!|og0_k59(OL+yS5#aO;8aL33ED|Bt_27<9sIb$yA6vArLd@j7SR-3~fZ~kvJ(32tm+* zrV)J)sDSh&mt?$?`M7)n!l*3@E2Hb>ZhN-TX+{dkARq_>68R9zSyfhfjQfaM1lX-= zm86rhh|U8GASz2^?{|1~pta^00a5KuY=98G3r*WFz-%!|vXq%eDhwrNsJ8+-D@y8^ zwAt;pyWKWPlBTUm>rtIHxFNBZ){vL;5QNV}Lyh+xf}abpk0W6C>|JX-98AD{Uw>(< zCLYwA;lZo%@j$7t-{;pzxS;a?vTvjq9I6}6eaAj>vgbiFU?Tp{%@@~L8VHV(H~a5R z={%yjUU6UArtCk$^PgVX-Mn}oz5M0Ak&w$jz$;K`Z)vlC{$w(}dao?Y0FVe*tK~2Z z0MHKu3tOwT*;C!eK?0H5+n~VcIYfxa*Ln%O{1u3dTsx8RSZK8Bp(~}Jz{uqi5y8C+ zP}A1WdCauO%B?npYUBXbkL zlpb~-^#olV)+;iaLmUOfN{<4GQMn5uh}vTGDA9iVKLtP7Y%0n^VSpARC4)!4wo=lz z|I>f-Un`qVd6>;J5ZoDAbpx`bN&2NPe`)AnQy`-lw`*GwiIGJDix{o4Vyd+Io$tum z=`+{2#bh>_A3E0;O6CU(t<DUw!wTcL|`HR=@QR|AP?1y}K_>CKK;n zmgPl3v2WebKU{9G_|}~}-?3@Nl&GiQSIZB8jBd_JD?OdY81{@000z;5t;AQ7**~^# z{j=udO!?#L*2C3<-g%`^qXv-PbzvO5)pB@L^h4a7bxOJ5B?`?Cl4>H&R#0T~Wbl*a z7k`)E{g;OvU<{%qB4+vI{--a$bnl9Y!p!+N2dH;fWS$t~YI&iRDkszN3XL&lS(c`$ z01SOUVk_ReVdz8f^Tpv6Whl#wBuzK#Rq+0bDHF=}n{vTW;myu?)!+<-dF z-+ZfjdV1cw!CI@8`ph9|Z9?!5K7C+}xqEjUp>PZ#Ni(I58~V0s5NTvKu2)N?by-c2 zh?ymXEX$3tecz4bd#!bh@#5m#Xg!-RMm%MtpCxJ9HqFp?L`X^rvkw6QvZA~O#2^4g z@WS$WaN&i!gNRai8M3VR_Ov5qYn0g_CTXg)W{zFcjI%N~49>Zs@3Nvy)0CN!$flVx zCWg>84N}B3xYL`IEK+rI@zT>xd+I%O>$p1U@4lX5?(1zIqDG`*k&;x=fglfV=REga z%yV0JgYV=0PfkC5aC-aZ(R@}dX2qS`2NxHcrXF@(-)x7X(phEEP`3*{O51ahriayy zXR8wz9U*C@oDVSoAUN-;X`Ur^*ZJ+HH%ckNX=QDug~4^8{h;1>{n+&bgEt9fGld?z zx*bB_$98d4L{B2ou?MuN&C(3560PxK`)GSsmsw#_Yeh%qESa)!AKKpcd8xG~7l(T2 zZ@o0JMk%7cjbORn)Fy|6+gcl`H&QoEJ9yH3=gw4^>YY~_EyI_-GCw++vBVEPIos?4 zV&Vd#;-=mWy$?Q!kWsd&-T6iH)*HupZiXRn7>WZji3V{^?bhuDD>*pKwIq?_;2nyZ zgO3q{m%fkBo(eM=3rHcvX1Q%vTL7@R zMU5a3d_+PbRZWVl$ew3jM&4~2jshYaVhlkWjT(r^7(H9e#yk-p{CMk9TE)nH(=DGZ zm7=3thuVy6FCoMjxviV+`GypkM31d_HLdb2V`1+c3xfb@B_bT-Zng8?Ypsn|9NFY) zIxPSxA|{gpjY`W35ToH?w`n(>N^=BId7c&~$%@o!gebxLddsBDWC1D>7S}b50)hGB zoHuJ!dfZvO_sa*TVQ{3CN)!-4gv;1hv$!!IGYtSh8|v$!t9wEe;m~^kP*#n9Fr7}S zs$gNh^gaW^eVKK>Zg;IsOq!>Y#UzG^h*~QazBsuU+TK`AnmDqxc5yf#Nk$@kHCH7? zLpN-f+p+r401{(1t4yA;8z3)rSsCVJQURbFhGw}OngMmDi(F}4&eEi)h(JS(?GBi| z_qLp1I*B0;ZKJf7;Qf;m2mwe53mLOpZr4xF#x{mDf{ZL>2;NoGs;ml*5doD#0obnU z7{w;mJ15Kps0;~aefEp-yZ47hyn=^j?CQmfRTuteT2mqB*-aF?U5g|E% zQCo&TM=?B>9k*`Zdie0s&mMwWzB3IU=@{4~2e8DJmzmiIg;~*kLYb~>h48G}=LKG$dGzQBG zBnl<{?CWD6^5gg4-L=ELnY?lAhe*J|4;vzC+bs)7X!Xr+n8RQ0o7KDb-%(mchHu=9 zR*3+$yQN#7S(_G>6<`qY^#)=WkG>wOR}Jvl#n~qxe_)OM)tiMa3PBajG6si;K1vu` zG+8+Kws17sy!-42yUrck^*!4<&0$WckwlJEBlgTvCY;eQo^jQdj z5cBB-O;XI?SpV=Z*n3b)LKwf_OX@$u^bWKu{ra!#FaC}QP*w_{;xIPJMNxe3```We z{wK!T<Z^B;j*nyH?a41AUjMfL=ud85#-5Dcn(mWN?!WTN%f^_I^Ucg@mZe$N)^*pl``D8hdheOJ zy0ix!;h4!}x)m5bf5yRD*LAQwpDzxs!fuIZI-76TYv+b>D@LMW7z7~8i^~R208nWg zgTG$667AuX=g}r2K1MS}5nllxa#_m~?ZswFRnuAUzHMr}WH#2jT~pVS>C7g{^FXxe zEO^&7&A7kWgb>raw{JZa{Nq}4`lJ}F-QO8WAv_{0PX-8aO zoW(WUZL`}=XR}csOi0Qm#w2d&`>sVZ2ow0}aKB9G-t^T^hN=ZU$bcmJ&9`o&;K!d{ zbc1)^MX$9%o98-=G((E68NJG5z+ zq+~KpiVWnUVB2nN#%Y+fb=P}|f>~t%{2;;ukdK5Iz~@D(4V6_ov_97+$nfCgB(Ku> zJRe-wbx@UdcAyo3Vrbhq41@C_o2fK2L^?)N77w$$moAELb}oi!QZXr1v)ovG@c8uE zX-h=jL!Jj~WawnG;=D+-lHj6E%7cS=d~|nYGa&gw5GDxJa5t+h9^;tQHWZ^x|-?jrJ}uM;6vv zBayax=!T1DOJ*+0yqFX=u^br$j5S@|ou6DFh_PA_L}W58%SkCL&bb&P5-CMw6aZ}3 z+rH_M&{#tPq_xS7%@b0Z4sIlwc~V>8L>ijUW?7kd#l}3*ag8P+W0g&-%skmrv)%RG zaCmrUdgD$6r22mF0hN~ZMR<0Cq)=%jl)!!4)aUEqyh#me8cUAIQ7L7tsiwuAAYl{{ z?N+;H+YynV1m^)k8#P9TPp4HmE&bpFM*u-2W%f}ltMhfUY0614JDQ6KM2W^-MJ^l9Ci;wzth%o@Zr&?7$b~XPFA<8 z-R9}}m@uL=jo3d3GRMiZtfpmT9uZLval2}~3q>`E)6!oIUuHVfIoxe^pDk0|L@sq z4QPBo(i(w~5Ig}X0WSi~LfR(T#QVN=K}C){zKq`OHbdWxa~M<_B*NYXL6k{VT3Tel zb=`DH3YT^~go+4MV06Mn0!TI~MIr)pgReU`K!B8mSx^Mkejb4$2pocl{OIG=Z-4Dx z+c^dDtg()5ad?n0`^XYIa_5v)b~^3PE|enCn*H9N3NNMM{_fZM)w9X4qv>sN9UwBm zX#046`s~i}?SJ)$e-K&P-IDsjq^J*XPvVf|*^?&^s@Z`t20=!%$QVLor-;T+h)Sy@ z4Q>FUA%;Ym$Wd5^;L$nM>GbA3j-Ev*5v9!F`mWw+lk~n#jfvfw!a-S8_`PuFpEn;Ac{-agQNH%tD@3^G`U4b`2_OXTufTO-?%O6W z%Dqwv#yj$Ky9GD&<2QBL16<4(2YmVZ05F};Hmmh8^y4;yh;HZsz?d;VWPf=oZ9v3( zcV!lYSKIQntJTG*5Y^|JcT{R`TOIn-h1!I)pLD6^nF$o zHc8sVfLf`NBI~K&^AAQTP;r2>=e_w?%hv5dXQL~WX7cG+1Uokx}J7BH?5L` zgZ%8Y9)_4@`pvf%Wi}FmO6fkm8rUy4~ zhOP&Weef;}RhfZtAZlJ!M$x+7ELZEp!~FP8J`98RLEku{AbMB3LQjmld3uABa1)eesHLTN+e82X@^DZ*hGY^t~0UDt;qD{`%e+9N~jV&{CCi%FCl zWV;P%PRgJ)_Qr9!-S)u;1R0|DfrBTY$jbMfe|dgyURHHIxNca?vMAnIg<$J-L@_Vl zt-N=;H3K=M?a__W7(*g~p>u;DY*FQCq-)#2gE+Hpn<0exabY#>{O&lPetGtdFHc^6 z|CxQ(;=^t7>MP$|EDqwmH?VmWHy;xNUz~B*$L$J?1+BHw!>(OEd@9T)GlYnQ%pxEh zxG1yfVgdrpOj;r0cDWlmH#EI6D!71%dSCjhyvUL?(MGpz=X$5D)>`YtL?1WHZM$n? zh>M$xyv#YUh}hH)?XX_0n_Ytl#u@?6vMfn#R%XL61_J~{Op8=m-PN6U-uK>E1Bk#8 zwaE|Wgrce`=4F=K4_3*Kb~g~<=GcbbN7Ui@7ZdE&a#m@^2pL>HLj* zuiv8^H)A!A5B`vb0n%0SWDE!(ARw%tUbLH?GRCBa2!TOh&xc+d&Wtr9!AV=) z?fSm$+f9pzqF6u>P+P^qS-$^J&bhAZg@uUHBGp>&Hnksovu%n=IX|3pWWYUrd40Ox zu69b1Nwm@`gpj1k{BR~BecO8<0Kujf35jUvUA?K5R+m7jA_dN@>P2Ijp6(Qb^gAx ziG&azeTvMWv@k1U+SPXR%x>)IF-P)6nm5^AGD z2t`#`YeNV_KX?}az^2LA9c?Z)?3pwzZY*qK#|;z&w9)6Qa}gi~I?V#JA9|Lcl&Y#J zfXwHMzU$w4=lf}zeWoV++2!Chr}n=gTzv_-3!nfJybv{p2%hPH`Y-6!<5(g7YzjXE zj!(bZ#|4BCKT}j*?)QR#m$UW#`qOoWihS-_a4ojz@_)F;q~`BLR>1g~@;r~x z#~9Nz8+|;9G!Y^R642fOm1Q3@Mt}rF<7Fb34olA|NtaOHWp>v-z)SX~l9$vb#LLnU zS=hT_OkQj16(O*Qq`6jm&!xWGiGZ+ZYphL1!VD1_V*o@cC3}H2{>&!uS_SgLQH>vp z8Lu;d@HrP5KY#jMxBfTASZe{qIk(&GnB!tL{o=3v{q2YUhiWgB&1R*4vhvCpR5}W` zy9)#esGl?+qHtAKlgV3A)Ktz~^N7(#zvD0nBC>XY);-S*^}GKNS4jlQ`kp(j@dq|G<}GsPa+EI9B!G#ZUD+s)>^AOC1F zn;BAn`Y-=CMmk%HZ5~xolRwO;e40esK{+vNSQ8m^rlx5lj|` zTI(^7&$li6A%~)C+ZZDuR+Gu();-s^-FA&ixxRgR|NSs@CQZR6#+dcf`*3g*m=n$q zZ{AAMOoW~Dfbiq@Kl;Ca_>+3O`RM(h{+IvcpByX}ZWxy9t@qwJclz)hrhIzvyLWEi zMxD_5LGr`@&h*PD!jVQMT$jPiYW9!Km;NMq)JhwJJ6(0d5Ytq#V%-@AF@#x`+^&u^ z(Pr15pKlXwre&fcwEf`wUaapWP{g4R-gltE=;Z3G*IGL_JU)4P`__#sLr-BYs)|G4 zt4a|OgoAhLT5zF=OeWLqWm*LIK{<)tc_A?RM3tw>Qa=>yX&^3%jLP&W;UOXzEuD~ zq>{||q4#bWwbDwdTQ`sTVOXwrEI5j_;@)1*j|d0=7^Azcd-C)&O_TX-dc}h%CzH#q zZ*SDb%-#)3Ya)F)y1>bF=DpvnSC?@C)HF?9*F{mLX_{tPj1iHhv-vReZgBh9W<&(& znl^@Dj5RhH&98_^DZ?0p_i$YhB><#eSh^TN_{G%|BCWI4wh7hAiAhZK-7V+ZP9zU{oKM0Q2>so-*Bro#BkRnuv)4SWc zJ6)b09Ob0hb&#bqo9K4uB(jLF8=vJ#U+cU`%Bktw;l^av4RO8eLB(p3R||W7u?n6s za_EP2YQ1w|+xo~KKU``Jw~nVuQ|DPHbYprz8bpHCX1%U;(>oC%g}rY>Oq~;>QX-r# zY+^N&Y_~l}Em&wHg#ENE5K(Ki77#@d4+F2ZUEjGhkr;8a4Gf_uby|?uup2yf5ec%? z;$Y{uNL#!(Yoh1L!XkhOrHKYqF<3)sf@z**kIxG^XzQ(Rfkrz67Mcmk>njq3eU89GOHkX?1+N^b&>;o%8?xy?<~czj-e`xX54D z2Y0IVMOy!b?{@V?f2;mC;5Im1gq;hU6(C}g0Z4RyeR39hhX6KDMnosXC?eYEJkPXI zLpLN@s*TxR?E1DJx`B|CAwVHOZIy^jrW0$eO>K-Z#;CQ@Rj!RzN?n{SopXKD&kyHm zo*JWKjLK*cK6`W;TyULBie#Kq)I$qhKNuR&5jPV(S#H@Xsbu=on*`rFou>)JAQzu?7H@QKYEdwf!)l!GoI%V=Z$eJ(5!NcC`tE zCqiwMiparx@0lGDm1P+tr)l~#3;mzj06b4={adF~$zT2o0cei>YkK`joF?#B>qn6z zJg3Y53|O0pM#HY_fIR&Ijml?d1*Fn64IyZ)hhb=%dc>cut)WZPj9Kz5GscWU%(2ED zeGW&O=~%_X)lc^c!7oyKqbPN~)PAAh1^|(t-J3-}2x$Q6+kVf3$0)|I2q8A@;C*1` zvYMu88Y7P!LSu{wUpf^1qF?S+hqZ4@_(f+VywZ>SERq#oEdXk*jj;eQt|}3&R;xe! zqkr)VeR@njhB`V#K+u{s`KAR0GO&K?+@g{}rr0Q=d2MpS@= zvF-YYPuE{~>-Dy2fAdx87rzc1KX~s4ecMD;+{vb|&8H5N#anMZd*>aUSV0gZ>38NU z|4_a3RVzHmaPs)mrP8aSdiAx}0dTdv7(IEkgdhLuA1x-+Z+`XdGBs`Q2qDp`UY$45zGL+BDvse;&v8~uVgf-M9oOS9c-xn3>t@u$D> z@BO2`>o|ssXAeoKH^1_=KmA|+$L;F8?W0>ZfOv87)KrJjJNxK<Hmiz!UKNSCXOh&r0o{(=j>{XvSN~(`mSQLBDrLxVKTws#R)1J#;=J%R^J2gx%Z9-{K6!Tg_OU`5ed~n%cOYZl$P4z$#;C6E>$;919v&`u)a&ov_aTNT*Q|ubcwHieqyS`8+)k(S5JSD& z?)^E4nx<~sda*c6vy7QT2*%hXNwv|t&F0b|3tiujv1?ggTy) z02DFl{P|57O0zgGk57h9LSzo62NnprU8ZUF_8V_Lc=Dw0JCjhPWj~}uX0ph;Iw&^2 z8$5VaSvZr$qELi}!n`osooniWG#uVowB4?2+Q52up{qrHd~4CQL!P(G)$sJ`wk+** zo_HVP5OvT+mZv!-*6M)=LY3MyL>#=!vkUvbPOB#K1|>orFfYgLt{EW8~YFytmjQQ*vUuJZ}RAg+%g#;QsZs}pOCR?aE!s8WU2 z=Gn#R`wxCv&5|rjwdCFjNJw>BH{Eu(W`-oQue>@xzEwnyj~+knJ3lxMBGzbaNKwK8 zJ07gDw~r<<#@+{C%U6>xynXbVm4sXQq<*CI#i9P;L1>R}4ycz1iiSS!YPVhqGit50 z7LLmYPkrw=Ms1Br>#csT-$*9}A6zZ4Ls;o*Djvx1J(HJglPI0}#>Uz}WYO{bKynPHA;n$8Ypds|;-K+sB&O+ZoK zwCl6g*prOJ7$iz(Q>92vW@@@1W1Hn^-E2TFQ}g{2{5PkKO&2OD5@E>?V%x>8a}9gl z$mXoVI2BhEwe-rQWvV55<4-@`UoD7Q>&?koyV(hgO^h})a_E8pFfI zulwbb)!3Yj$gHvmC?Uk6EM|*ojEo?FqLl`Xs1*wAHoNV%Hi@-~nIF#g>=^u@_} zvu>1DNC+s1G(VVYqxX4@L|UnlO&OiruC{wtpHhGz%-MWu5-Y|g$M;B^ez)DUJ2-z* zAR8rL*0tLVuS{-Ep#)oUJ2e))EQ6~&B1`m4g3B3oRuEnV!h8Uf5S4m;lYv@ZU zJIdcdw5@nFzt;WWkBi?7_}T2?aW4*lgXl{w=Qt|>LM)2%3U|MHHK$VXKZiy0cf)KM z$rWAKUXS>>4rX5~o%gjmAjascYT}&hyB7XBjH$ozI$sSCkZ2#&N@`4UAVjShKryq@ zng&-V5 z7%T#h(pxe_sDY}?1T7f5pqbZ8DR%=t1<$v{G{3mVKh7cDjTJ}e`Zhz|=f1ikg z_YXgOKX})7{RcmOXXqLZv8i_>c_ZpH#CUf4^!V;A()uho6$eCQK~M<*ptg(G-U`9b zzwqT(W=A3Tr_WBm@b=e4WO3(JS6^ghb@IvkAH4JD)ok(jg|?Ep=%^R3gt0~ z@bn%L+Na-TDz!*Q{#(1-e|~rxkMQE@=5T?Csj-QKKJ+_Hx^seAOf%^QUz9KpN#{cC zxh$}Ey6dBY{9vkJY0j7xj#mm@yP}DdIOk4Ip5DH7^UBm;07z*DxPFq0T=f9^>81!& zlS#qlcC#LzsFVsJxa}4I#vWkYQj}7Y`C_wLj-s9M{YMJEv3A^TMgu*Qad{p$IFjw9#XL+NfvPYlzn?+HMvH2V=()LP(Ot9^L5Lrt7*G<2dN>&T))+S&hwu zjLA7xf$URX_6sNi5??@J_OJwiFkFr?$NXTWwKn$ZG%(gq^lbccg?Uudg%G;7Evw0h z{)~%Yl@gAwAB0)Z4V%I>Nq=&iZholCHlM~sXVzFBBB5%1dvkuHZ^NV0Pe?;K3pPX7 zLOG+Yv`v&Uz<)lMm869XXH zXl>1GK1C#!csZ*_QY!f1yHKyUqn#y!2un7f>cnygSWV5r&FBYLZ<}rhfF`c74_=^} z9i(L;EYU+~8zcw>qJSijZ-7H&DYQ0u#X}!!=bk6y*W9nFVhCo;wV-ho+&zKo-Z-WDXq{#KdFu3({ZPWDd z=3+F*B&4yqx;Q!CUTk%uwI&uOq=Op=qx?wrb>p~StKj`+xe;a{R7wG&#F)*dI<;U^ zdvt5`5ZrE8A`xUKgaJaDq}6PZRaJ=WnjTmXA!JUkh=`0xd``}K z;pKmkZ+jmF9YQe1{DN)7800sZ&a%ANOPCOoBw^4=0`oHMA`3@QT0@j>H}oUP3v-(S z0BHQ$YzH6|e+n095yd+uivWbhXuVi0=46s|Xb(dwJ;-ya)sFDN29O?6&e5}6bt z`JsuxUd)j_znLr%NuN9#i=n|eKtMq<37J$_g7<)60KPgsLn2=P8Jv5AC?Y`sAdH4R zAfk)hSc|(Zh7J*j@=M)vcX7VHF}0+~Mz>q95|a?3RlreP+k&X1supj)dHRDN+9GEG z$Y#=Q;>nLyS|ZU%j3%Xa+ihL%ilWSm@}r-;TTW+PYNm_n)6?@G|HTh}^=rQtyc`@K z|M<`UZBbQS+YR0uV@+NrS+2FVd6~_QT;I))7UMY!aR|OgfWR0Ti7+W9Rg!w|RGQ2t zw@*)>*pENB^YUw;bW$CJVfXL;{(nfyJpAbWH-7b-NiqH4o$nhX)>=q&6iE{cq_(?V zYPBJJ_XpqW>g`LfywZ0aBBo_^{`lkB(cOz}ZMDkF>g})o%BU5LVIUl5#n`{~`v720 zzRO7^Ac@!Ce0KBkSCBjV`IXIq|b0f^D-np<{ zZ^GF#X;+%YxHe#842TRvzxTQlP)hZE|G|eJzWVAbS8n}3^O6{QfH7S5>W50H>3q@D zTfWQ}1AxA36;V-^qq<!Pgm7>61oAm&9`l+|*1(bVNGWNPl* z&6(Lp?;V~mow8CD)W`b4rz_`TSBr?GiB5FscKH7>_vSygW!HV*T5C^dxMPiP?Dx7k zG)IvXLrK&SS+*>bjx5ND4FpJl00#0){-PkzZ-E2E4r~}koWPC{$8aP{qDaadME3lq z8t;71xTlpL_PzD$b+;sIfSmh7b#+y}y65aVXP-5E*XL_{L}D`xDp%P+wCa2|kL!7` zz8jC_-Q&q{lo6ZDiw=9cxNgobR#~A2V@+8!(qy^FvYdmOE#@Kk(hLR@Q9K%~HW2_h z0)TjNzGmUs0|Y+0M?z}~#dg~TTuh3ilj1}G{_x3DGcW%3ouB^N$>R}4mYH%?a%4`Z5=2B)QdU*ncl~C$&CC4Y_<*E{J|dwuYCGR{b+=t^ z(}-vAL1{HTInYXb?->GMa!moDr0eW@zK$UZDNrB+sv?(K3oS7#WL}8j#P?0NxDMWF zlIeM^@{)`eX!^}2Mga&&2pSauCg6@3LSS|dr3`h|zjzjHk5T~%lA>O2ZQVA@jnGOc zOv4XM7y}Q>!elznvk)Q)K}aF^&GlMq0U-O%apV*fab#u8(diKh3c)kp(DzVCYU_4B zTXBdcGY7lqKN6DEa&TSYjG$2w0yCl@${;dZ%RX{w?DHoO z!b^=N(fVSJlyv{N>mb9rDvCVDh?LeRY-Ss&2|@Io+a)hb1Q)b1hbM=-hR@6O z0U~JXb~Rro<;LOZVJdYH2|xgX#pQyC5Re4L5Q%7V=kC4u)^)hwQpG>hGTF@+CGd*P+kSeV zssJBfL8mn0#veh@;9jR2caS{(5De~R34izTL(rbv^8lE%{>;g|MhG#POn2vUE0Nf4 zx8A$1Gcg9ScUmAqq8;}#{aPtyk>`EaiCqJqZ@Mur7wu;0ZfStv=GumokiH}X#t6Vz z|9B6SE{Ek?wyWKkH;MIfvA1c0HFtgKwWiB#{jn1MWF{} z=z7#9M#0%(_q~5vKKLT&;znQ{WBkE?_-@lQfAiOV!#CXzzyC*Dfa5z452kmQjlVvB zUSwIct#|!#Y66SHEtGQVRL$FMhQgO`Nrf(M}{5iwll1gt)2d)R-*~ z?&!R9&ayW5Kl%BlZMv>8CXYyZFck>D_Fw<^zxUh!$Fq0e`qD4{Dk=S=Z+|Nj%`i70 z1-DC)4V6^O`Ha02z<>06zjOBfkF}I}IsEKbe{MLMbj!=P-hS`d`Bn6N-PGUs=HIQG zcC*C-tX&v+YB47uU1C_je!U#ZV=`dq8>T zuAV77o7WE5dSAB=v>zSt{29%EJdlOw07~f?qf`n2ymz?Q!6+r`di%i#PaZ#hblcpQ z_c!yaIemguKX`dV70?+TL_rbXvMqS&~L}W}RwH87o zmDD85x~6g7C6~8!k*wG2EYC8NK%$X3nk+Y2-gn*3xl%HC6`y>i)n``DxA&ghdyo}o ztfjg4dO5q^UccqJLElHIuxYEsay>a17;T($j6OGIZt~;F;bOVotheQenZ@yG(KQ%) zAi+-7o_p#zI9vD4_Ux)K<2w&0CnrbG&#wcx>F^+eTW{)v!;w@XXC^7}Y<6z9vMkw) zr4Z`g$w(2kwsYhH_krWpRqs58;JYPMTN+M9Sr#HH|ucm zuC+Ey@4|RAEK5N^^*prAx^8@=(6KvtBd@k@v8g`u+EgfvwQkqmhd!$I;3zLfw(@hg zDu|>~s;POoTt@H*ha+P$4ty{fE}N^ZU!fF&3r2YN>irz^U%T`5)7Qph8Z6tj*m>JZ zA{l&dn=Jsa_xAEC_ILLh_#ispV*LsEm?IM(6g%JVZkDUBA3u^}Pk)<9jDcNfg9^g%nbW<<)Y2HYXxo zs3iHAq~9Zz_cqz0A`%kC7*?~DcbgLP0S`lk0=i!^j+cK;-l&Pj#2JY8JC4 z0_t2J>>}VuL{h2sY&Cx|Pb*9knIlO$JUtRh#1IiVc}ga1o_BsVPtiXLA_PXMP|E0o zBdMlix2=#!NNI}k&TIe$2$E&Fqx9oYr09`Dx(0+KlE(Lqt2ZQM48D8vltTbQX*3{_ zpv}cR1)Ygp4h$#}0b-2PgK=KwAp|5L1UT!ipU;6KB8BKfU_=m-n4`+f!RaAjB0I;M zp-%=RA)2a0d@P7c!$MY3}uLG$xjBAK8>KqjKYJ4aH9HqcAeBO;NAF&rEm4~J)U zRVk%DRMSdj8u~a};8#fhf4LX!W3b!dZwj&m#AVFh@&|92b;aV<6yi^Ncl`6yJyR*} z&s4(P9Apx%e5fz+u?}k=dKazr<;CTfq7w$VzH!BuG2#i6pkcL^fz79TE3?W1iw2R>rU&Z7*bUz6oO6R%j<|pe` zh$tjVi9sUKo}U8%!0`sSPME4YG495)5qH_i{*zZU*0+nl#6S@MM3w_05JK`^N%;lQ zO>o0Wu8jynuy;Uk_Trh=a$rX9oNr1+1T6BQ$_M-Oo|suk1zP3h@x5R8`O822ZrCow z;b-Uz--NzGWq6-465?cf@T=eW^?&^@|Jm8ocfascUy^n!mChx*<*f1H+v~+AAKx1d z2czl1d+&art;@^dSAO{$ecP79(U-seOEE@e%=qvW5d;Y-B{RR~KH+*xggyix88{LN zX);dEgF+9=0vU#7!OV!j!G{>X{~};TPQDY)?x37VWH~7Byz~CW*|R!$adcDy_D$^t!Dx*0b$@jkn%1_B zHJKbA(fE*-l92%r_1*$SDrKF$xgXlLky3VD`@shvJbLtKZyCGKGx0;50^}GY1ll9Q zQVvj*!@AzaTRA}6)ZRIhWqDr2n3{5OoK3Yh%f}^pW(Lq%W&v)r?}!wlW`nHR;)G*M9wvMgV(R^HpB5hW?xx`xPu(Fpc~ z{zO;~hQWuXsdw>u2&3VkEb^*uBV(4AX$!q|ciZId5@USv;(W1K9v`1%+5TK^e(vQO zatxl405RoJX+z8MLMh$bE}e^%(plSgo%cS`EYfQ<8oRu31GibP_CCk5Yun(xHd(TF zh%qD$PY}ZP9qz}ml4mo9fKu+&wj{DFNEt(LeSfo&wrwMM>pl9EYEc`HE$CliFKXxQDIN*i#u2A1)jWjayZ_i7>tLX`|9!R zyxFX}y6%t=r0Bv*Nf=M$sLXq}Y^#;Rd^$eJi;?FJ%$g%0qZ3eV0DUQ>kIEr}57Fef z>CR?P&w`hC#`ldV`JmX=O;elItdXO9gaq5F@tufr1r+a{PK?ws`pViEU5I|M3{?d} z2xK%mJ33K9knPZRe&@9!gAgbsjHiSV1d6VSPv2{77bkacGBtT78New~y@>z-AOJ~3 zK~&agJ0IDH7+3{GQYyKe*R~IjKQYmib#uYYLDboR^@u~<%&+p;4Vg)6HNRfD&=r|E zI5-Z0r{y4$JzqWRt;^_uv?LHph+n7{FP#xSn$ap~Up~Kxq|Y6eNTa+x2#SHs{Dv$%Km`qRHVjD>IHU z29LOthBH76akJbcAg&~V%%n9c2_Xa^b8;7@?0S|OZR9K)i2_g>6BiL+bJ*X!rkLP=6PC~-o0M&{vYFdPqp4}h39 zg3G6K?|k$Tkdr}yR3c&VbfykZ4gr86-g?3kA+>G0oUeosB*o#$0TMBTAR(k!&DQg? zSz`Dk=_3hoaB?W*F8WUo^%M<+ee|C^mw}m#CT-YzmRcU(5x~6%%8Uyj^w8u6NdR|b z408mKKt>C45u8i$9u~PlnZS%yz_!yMobJSByCq)=PV&gr4n#f2${}w zem-AcuSp0JC&qpFh>}nw+cG^Ijv~kI`fO(zw-*i9+v+CN z;~33gpz^#Y=;}6jDaxX*H~FL>DHq$mZfz+Mh`cV7TtQ`q1bXLCWg+x>G}6OC=PX_S z1o~fuhd&*v849^mni17?HJKh5qt=Tnl=|_fKJB*4z$jvX+BMa-+HPInm1TZ%=g!sD zb*Q#iPoI3@=YP4as@c``mw*13T;B%b$GbTc@wRA*GVlW_167n%;Zw?H^809&iY@>!#B&A_4~jjLhcsuk-oyt8ML$ z|MSOJ|87j`Ym4b`4?bwnj!gFW6Qg>G?5VCBR?RdUMvJwNxt2$A3Z&T?d>HS@02E~FTZ$D8$%Q-U_h~Ee-m`Peu_y+qKUdfba`QssWV-T;UP_wPv|cakbf#)#mZP0b2KWDWov zMM%@P=_QpGQZ{uJg5Qr-$i8cx>y6G#Rxq${TO?9SjYi}3X3a6CDHrFg_r7iF$#l9; z1ENyO7~`Gm+U91%E($A!S*XDJo-TZH$zvD9i0; z?VS@sgfx0=tu{s{$!Guo&{?LKqxXAr%c%LpZKkq+{ruv`qX%o7Ed?qw#d+{&&t>%ME5IJ*vOnc+7c z{>`tAzi_^7pKZkVXYp`yrzpx#KKg0NEwl@qe+Q)q%dKBr6OqzNj0V25wr*Evv*0`l z6j~vIRDzTgL_*S_ERm1_ND7W@J6o^oX43*;gvb$y(uRyu%5qei+%U8EE}^;@Kq=*e z-!8Y_`MfOhB3HSA7}IsrHC^4+SI@2xP-l`O#}LN{<6=-mj^4feJwi!f*seCN>r*0& z%t8p#T9p|}g(f%mUnk=4oXN9xU;;jR?eUwR`9f=1wrBFizmCoU5()#p`~IbTe_duu z-MM%F3!nUQ9|X2n^z2_T32;6x7ZQUU4>&R@*;noS={YcT-kuc#k6Y0M!vltmk zAR#kcKbzam5)mLIqnV_@A)x8$R0t75xH+#hw;H_nKGd7aWM*_Q7E&Yy0U-$`R_#=esWC+3aMQMB8}{=r%4 z`$8%43zfXpcRrnA5Myx8=jEXpr_;fvY5*X`^rTKyYQ6w!Ns zai)xd+@y*k3EEuDw%4m&f&>5nI#0txVK^L^Ovk`Tl;ZfSr?cRLAo6?bLLo>H1s{sC z7>ozWAtCP5BSaKLP1SU5r<76yHJpqR87&QeZx`F;#ZnoCh(coUQENRpocP`WLL|1R z5irI$7!0#4XXc_9y#3aXz4t^EFx-;HybL4vvW}hl=hn9n{sjEaD|iZcS?;;{?G|-P z16tG{3gSKB82bU*2*@9&7XpBsyO-}ogiL7>UTHw5Hv|L}sRc*3<{Vz}*ZD{V{pMqe z6yx4rKK&FCrPWJ6({)Yy?&;|r05B%IzPhTm6%y?L7eu%>|4m-k#u$uD48$M>?%FI7 z@CJ)|WBDU^Z(f6h@PGV|kwP&X2)vHY2G`rR6@u7{ouiKzEQpYVq_CGpFaQa3O=EkT zIx_pDQ-lz>$agw64k1QB*!LEYo#PNdq;aTSZh(l+dEa&%86~1Z4oopZQ9z6w-7ee# zB*Nf)=yt{$EQw=eZ`eylX6F#4AZha9!~6Hc>{=Q1_8R`i*FG6t|C5>d$vHdkPESt1 z`n8{xW`Ol``ToBM9UXoCb7%klcgVH%+rPVl3E0*ceQl!o}6{}6tc3t1M zO6p{i^`Y8FjN#eyvn(_B?wl&6y!YwArP8}b!){?QhR`*&R7z>XiAIH34u&ztwy6`h zfQVvC}KZ zB%fv}@n*Uj(PUY|7Tu`1g7@py(wJOnedD4aNRGyn?RFDFNXy8~ecN_zn-_(YGC46L zqDXS75SW?KDTUzGz9O`qnKT^K)%8~Af(eew$^4 z+izxD5(tEe-j(Qi%&{De2BSgnfn(T(9J@Jms5f=jcDA>}gHbUkcEjURdgqsy%gtij zx1GsU5}D*hu8l6rB8ET`_k*J(1a)oadgr=6-JcjEDQTu--~dSG@u$UbLLn^7o9cc! zIeVvBFC@c@xBlR80QUS3JcMF=$|wZ#N`H=Fcpxul^O?vdPe1taozlkZA8=^nVi}e* zR0>F>k?3|^&!1ibpb&&2F=#LuPAR2^;{h;-$cQMF3_e^xo7vW)pumwMqX4Bu8aADt zOa%!JF)?7$DhVN+b?e0@gdl_%9*l$(NoPV*2q~5q%h}mXDoF$+kQpXNQIFxp;>r`hYD_na^qSZn^z# z6F@1W%V`W=X4B{Tjf2nyT|IAd%k(okEb17=q7>Vtg=;o{@lV!Daxt-qdwf1Axx- zU_9K}qogKgi1oTAnUVowW^MHJaGIhoB0%5=_Q^Bz`m2hMq{d_-^4@tN)vG#AxCH|G zD||h2&)!#$0GM7q8Uk)veooGxhvAR>;fKDP^ak)}Nr3*-mbCl6`|?-5`r`T1YP*#} z{7FUqkA6`~_5aV4`fFZ5XYIT1ycL-d;BE-s_J~cN??*j^kTL4&@@LRAuo!Z z?r85}M>|OorOlavi3IOQ6aWE8_^y*#c2vX|JjEEm^}T)e^!(1<sUPh!^l{F;#az^?Yee291Fp3zWL^Axll^~op1iVfBw(^ z>5raWRBiXwhj(@enCKBv3+%fd5V)`M;Qid3meQuN%wgq4t!uas+>D>px+ts$YeDOj`i2zqm-fpUm5_ELu-o*!R=Yzq~ zy@y?0g%B%iA;$Cbv(JC!XNK7*1kZrZ`_bgEbiJ1+_2H3z=U)s#|0aF@x30eZWU(y^ zgS5GGa;$))cGj~LL6?H0>gupuZu;KlSpf({LaCd{CfK#cfg*8d+r6Tl0d~Hy*4h_m z7x(Yp!QEgH>|^n)@4Fk3PwLk(!i};B_QOAAIjZZ;Zc_y&q^_wDcS8sOz#%B5rqjcw zuBvK#qu+}$&aSVIj*f47fXp$^3qlIsB?bR(yoNbCM@rq6*Xt}JYkdf5A_$PI?Ypkc zi!#e|*w-?ol%w&a>)O8SZ-n}7-5_E)9Lihm$5gb4`)nlj2gbvK2&`@Uz6&wzK&UVG zH<_RaZQEX4UKM3A8V-3sEt7gCwrgVyH{Fkr5dI{Dls9Ca!Eo$c-_%u#768EZjqTB7 znUp#uDyj65Wm#SAmNDJ(^VzjFrpSxD$Wvm#%z0i4BJaKH`#m~|+1iu?>|GRC8GYuQyT0$cwq<4_fxt~&6Hzf3D6MbivOr3RF&T5F zfg=tAuRf~|uZx2XiB9yn^={ktj=@Eb5Qwq1A84f>oZdURbN`^Xo2s5IW_`;xbUxO( z%F8UD9F}e4szTWb*{f-hWtl{v<)Z01QX!O5Lo77O z(x~2d^X97Uy8vD*>3Vwh%%h|h-GBDr^FR0SOK%>%Q7E%+uYt=i9Ije*eWzb_oAb?O zGZ^*41!)=TEd&S3q$_xJc3oYsNJ?Fp9jk*75Rjl87D@?0$T5N-B}KJvW-k^DEcCuA zpi<-+%Ry-}t+a90rWpWcz@0xgtmms{+Z5w+d^Ax;1s_O|5F&ECes%-nNzmg%}`hs1kkjf@pd?LBz;`#J+-z zNP?`jtLs&A_D#`$vI3Dx*6V7!tlFxRN|1yk*_|Fvv{v3al1X&SfIxyc#?4~uosS_X ztpI@ot0Gf_GWH$i1AY21v|I45w(y{oXsV;}MX)cbAAPIQU9Y6d27}k`5(*H6e#@p zjs!8rcy{*wg9mT?mE>CdaR+uYu?zgyFZ##C;QKSzK@j!5{SQC*VbcB`JoFNwbB<#q zgb1&olMo@s7(zq^j4#K{k_(r^m)`-_VoAb$G?aqw%e^SMhGd0 zKK+132H>|ZG#`_N+=SA_}yYIaH){iHX$$Gv1z2EtF+L*2Z#4xd-w=qSYBVw z&Y$Ol@$&rrV4JQ%h{wnG9?qV9fD8wB@B6NHO*^lu;H-1~uYU74mDbyB)mwXXbPRw9 zA;|k~FvRcwF9#y~AMX9!Z@u`=W@C+(PoG_!9#4kSWG02$LFR!7PiS=UV!2sXsewd9 z@}^z3^K1rW%uH^y2H>Wt0oa%fceQi-;^N}|-8({vm*FpfHko}j2Z+u&25Ahu%mHFT z@od)1TbKmguGhoSxEu~|s{YATSW3BGEq6HpQH*guyPg~zB*7;Dq-r-w;ge4N#--SM z^j_~H`}9&-Cel>vtygq52qE{Zp~MItj>cNGo6R~!Fv&K!sj8wZ?wtd00NG9Y z5u=wRFw3$KcPP)%Xq@MH+qO-$B_WiQ!TZ%}(f7q@JlU_d z7g8Y!BGGs4u2lj6eb3B7snpEbjS**A^ghPO;pI~!IBOAvl<7~CoC>tbj5f~Mrm9lN z#LR77yS_Jh{*oxYCnG_O%m5VGO8>#*?Q%(FV;(-8jD~lz$6asF7iU%NmUF8F9p5|L ztm@TrqqG_ii@eZdH3;CWcU4m_s^xmylv#c_Ek^^h-gK?CIG_#mx{;IN$cW%Wv6`)` zO)VGO1_{}kzTqq@KmVE6tm8g#)m~j(EUTvNW1H*3NU>bDU-(?{;B;hNe16__)?1Gu z#t5iEjI)ts_32tEvl52$fF{2O$Q})^oR7wp|n2&RK8! zqMeS1owFf;kaA?kN|2EvVwhKFo$LD!CFYVyq4Lq0!VgXH-+k@B9cROn!NHQS%jwr*pH<#;eW905QKQELqd*UzuJ zx(hC3gDi6Lk=CQhm=GgJPN_(ej|=MSuH7~<#Kh%I)9Y$fChmKr z>i4%H42+S|mL>N+4~{=MoE!r{^fpEh0JQq?y55w6Mg?}*SOr`~-JD|xAS6dXA)}(oi|U? z_%Yzn{eOGB{m@P2QmX4}I2@%j$6LR1uj)pnRM&MMI!p&b?HQ@JF+}^^iBKeDObX2K z!v~AtZ?(%`zUj{WU?=sx6?kHdv1yuHr;E3j6cYUtDc!Avgg|@IOL`CD$iasYLJUC= z38KhcZB~(EVn)#`5&JI5-Ai;B0QS8Ryk)h^2|WY=xlwS-`7*^MSyAZ7%xp|1l}MUi z?}Kw4Kn#JBo9{=(Ir~p`A9wJd7&y6mCUdh}Ho)mB#a9(#d>f2&;{$xlP9cQQHBDe1 z8ve$cUDLEg7`v*EK`0f1zo7{6N0PCRa2er-xpeEVg!|NIXLaP zB)8E&J)5~XT0-ocU)Ejd?e)9wosN!_e;PQ(!1DBS%V&S^$KQYJlaEfCCw~}T{G^L< zWU{Y5u)$j?(6`R@EfMPnkL=oUaX5MQ`|20|o6u~M>%MpGwn8FYuQ*wvat!$pb#^s-@#r&Oc;od? zY&Wa6-n{nc^{#Dw-)?OC_|a>>`|tnl|MpM+@o+F=j%Aq(Nk8>dU;3G!{kh~z{eS(N z|I<15!3Xbbx0|M^&d;BG~kK6i=F!_@|{?66eb2U5^z+K<3Vtju2y(cfue&aX)q3e60v%c?z5Zmo`HGc>4 zkvaP1hu8miN$MZn|MEX;ezFXGyLA`mtM1g89wl;M&WsX*P~qW&L9xgdw}?_nVd?fb z+MO{rqA@ulR@F99s&-l+>)v_i-8|18K75!;f$5sjCbM0a#w2#Zt9Ky;sbrG4qzIdY z7!Jql)hg9=(p|pYZtA+4P7iLFKL9Wo4gq1kTp&`Cw#FEji@6YTI2xzpN$NzC6){9> z`x}A~c;D5vkW%lJNJ$VcjfuB&03z?K_g-ne>n)_gR%1rvakbg(;(7pJZtI%bHY-co zLo;``FvCp^#W|;xdhOo5&i3b*S4p!JV|aBdU_{hftyZh;c6)GeaC&+YLbwt4Q--$d z;1*5J+ul2?wLua$iAp-)y4u2itB*0P7Bi{T3{olufI>=BlufmLIlTbrt-D#Dn`IP2KBfxSE3KtcS(Z0- z-E~d6Fl^s@=Y^7aQS2TF%!y%uz|ngE#;k>A5St{}m%IP~AOJ~3K~zD#9{1DP;^=%( z3`hBNqVe81Ud^`4Wi=g-?i?L$+A0RtBHyk%DaB|!EcD0)*VuYB-}biaovWLMBaRdW z@=nslx*leeOqbJ9=7N)59S3FJd20qd8klUTL)#phF+0&)f3=>EhQq$Ic@{tM`BNfQ zw|U?BK`A1J5Mqcp$gN=JE7Xk0MAL+82vU zfue1!?cwU&3c*JwV`Ws`IA%0roC}jlQ4G25T?|dz#MP39!(5W=x^TXj69h8?3o1?oT<0Lo_@>g1AciP}kV=lm<2?^7rsog|L4w+CyPmH(M3t$7JIAn}9Fj`e z&Ti(LYF-H~NRsznX*oTd?nKPQBzB5b5+a1)JKLU>#26D}WMmSU zHe4YohG?x_&)3n%$?-(zCUQ)*vK0MaKDk6hp#&1g5P@)VFww@u5K&^H^U!{4-p)56 zcp*~sMI58djVcGB??qnfyN?i&V_@sSdtsEyryL?ksZ6F2FmmjCzg_`iHkm4uN6vz6 zR5tKU*PLIX6b6|$%U#C-05}RMHkY$%z7|RXG71RHiS!zLC`V;p7QuTEN%@0q)m=WF zAtXM}-i1i+f()eN%j1NlwKosBqBq)9d7Zg05K-o zD(^4=J1GuAnssJ`kgT`>U%LI^D+wHtpv`KN+Os>4)!oGpw~`gy!G7@LK(;qoO^U3N zu~C}cK|o+1BSa2;ADRlKjEsVNrmV8CSk>LBBb3msV%K@1Ob9hFkvXan9haz8JFaFw ze#XIxW+~g1DMuV519;~izwyb%?4qr!um8d?DcgMOxBnF$9FBkS=Z}w0ocC}2==&G% zJsAuJ*YnL{wu}r~$?0&2fXET7O(U?M_}VYkHH=L5xzGPp3?7jt2S(cf($D@&A_es6BVt?lf*EeE5lD0U{k zLX5_f;Ch(%zxzdV+OfeGx3Z-^4)*>Jh`JAuscUSlL-m}3$IJ&3NXZKIb$adq8p?X0rfrgnn$cJ1mWXe~bd*@?+STl>25 zIUbGjvCcv{2+Qr}`IG+ni+S)YB~2!o$<+CBS#SHFKKazw?!NiS;r*4bbvD9iMeSTy zBZ4Z5z>Wh$-=gif?*J(xN-g`kwXLnLR|rTFfe<1P5d_w`Qbw1fA|;nHQ^AMLY+J2r z+ghQ-u69Ta1R;2()bwzgFfT|uwGT50CHuO!y27#{P%3FVyIpKJM3N$D-I!Sq2Sg-B6HyHG>0P(o*yTD|ekfxA z+4oN585x7j!MfN71n|Hr({)=BAUYeoRYeiHPUbm#8|w|Eh1%CV*Jtx~+Xy9v7Rdn? z0U-hs7Q;MG6j4kDnzXvwF3y)ENGd^;dZ>tkLkI{sIh<&vz4KCwy|fQViWuYKV&Qs^ z1mlybDKqbb6e4*Hx7+sW>D7)8NX*P8&$2wzT1RG~_Pu$+q}<)k*U<$eBq0*oPiC1K z3}WBP(KLVbNe;fgIENS+SQiCD^i3y>CaEy`$lyB<43Q({d2c)JBE=Ye2aKU>i=!jo zckc2G_rX;f3g28UtJy{<3BV|J^R9%HXh_Paki>$3N%w#CbheK;_PPVXfDl6*4u{2{ z2tK@0`zMSsZm+jZ)dIj^QVtJ>NgqWdkkIwcwpK{7`^zzK9ASnRE)C9T#G`hRGs&1Q#D0p{ClfbB;}R z0MPovr!0hZS+aEe)!G=7F$W|9Y`qTvBtBwX;s5unf8FL-ixmc66s2w0ljFe2a0>vQ z8w`H*{r7BLujo5h^`H21Mk@jEzxaOoS{~>M6!ShNV{ECSl zUUV5Q?g3r{ricKu4}ZM<+Gj#Fo;#(39O2Hv$@!fZZtwS##v1S077IkO!Aq@ynd=69 z=nV66JD(kmWj!jt_Z9!ye@Mlcl+Lm|gmB~5oj?6I|N4A9Dy-`bweZ6FI#6r2)%CauipA*QIy_?rm3y9{lRcHn`T+Zd7Fgn4O*48_3eS5II`~0WB@XfFO-%=;Q6s#qp z`O)Kid%xEmJpSO_-5bvlsZ1;G_L%vd?|l37zx3s-)48G4XtwZyz4tD#9X;XX8ol_N z{U85+N0@(Bg|O6VB_R>;$^*MJjAvlrrfHmQ z3B~4}7IVkn!{a@g<97NwLDK*o%J9kS}W3Ck%; z`Q*uyqa(b1`_|^vMD!l^>rrC_U}zdkf|NF!0bHmgk*1i>+O_5>;A}c~j=R0yW?0R; zgSKtPqw`=dB$(^bC~sS1lFd%A)LGM1w%rtJW9Jr9>&vc=7=PjYCG?6H3lh>K>H0ur zQj%sqn=~8xtxdaN<}}Z>F-!dgL;&Q#$kf_qWl;>(dpG8$O_H<0PF*)%rgZn!8+F~5 zg{_KODi)Hb#UxKVKtUOP?YURxi`kR&N3LVbvc3CqudTRlU29#IDQ%MAp(w@*`ZCEx zx2v)&ee`5Bnl7AmZSBf&Gsv_3JKe_C-dRlvT75d3kz=PNl$l2KBkuCLio4 z?c7T`MWTF9Nfd@`$lc=+&3J8!;r`}XH=yt;7paXCVQW^`hJ2vBu8 zq$HUH=W{4$T+D$33mKIeCWmKj)!3?$$@2b2j{x8suT$OI?h&E)K}eEXjZdac*%Xsf z87Y-q;z7WH0|E8>eWjQ5e^La?5nUodbLC(cCsIGfSgmwylgIr4T@L2kDESKq1|HHhFm8Hw_7q z_WB_NuAItK0&t7Mdk)d*j5q*S(@HTCpa7vdISDBSTXr^XAC16=*w2au^yJY=Q#L9t z6fP~SI4}_Owz@je&bi3{6H-i0rsJcjRAPyALEI)e_|WNglvY}429{bx^b7??7qGL# zb6ZH-&E)(8eIhkw1+@WW6ORRuLTGX~qTpH9Y%`xQI{htj~P? zK)$dl0IuY7Xwcqwy$7=QGvcTMv+-NBAQfDUpv4SqJ#$78mw`>^rl+VQSKM^hknhF^ z*^ohEK_W>K=d2Ji1aG5Q1ftevg{FgD?JFdNj1-_av`PfX3>Z8|nJ@3Gcg_cov~(KT zT<^8NF9&7_7nGG{`LXUTAan3O2qBuLesu7j5HiZotUsm@YIW)h)=EscL-59Ad1v5V zn`S+V;s;kNlMNfM<$ZB6OK|BG^I${<;J{bDd?H%OMgc8dSx`u2OcD`OYumV<-rL1w zB-wZlC}np2dW22`|G1pYBSL>c`(ao)wOp!*I0SDkdy4Wz%O*?YdLkgAXSS`25~)h7 zrC935t&3|Vt91*25Cz4?+DaYBh7g!RC?O>=b5l2w8n-l9SPjF(9|JEH3+nTebgO?b z?GGIbDZ2gMgOkNz&@ug_nNJs|M; zcDS|M>-BCw_u?zBzxl8J&;Kp!4Yzmqs9r3p=Fx}m-+lhMq9~q!;e~I1`@3115~;as zgpf^T%hn+zW%u{|H^E1rcKiAZz1y0;ghl~rBr#I2`Rnzzxi9g zbMWASHm0ho-~C_y=eOSa&L8~2@5g1=+H|{JAw-&_U;5JD4k4VKpYQJM?(Oc^bu}*w zK*HtZfH#FH0YFOGH0^A*SnGSPZa;e3 z365-t^c7h31Boawwj1dn05ZGN)AN46?|s;O0IRxPHx}ZNMK!k$BWk{Rq_gg_{0=s4 zt(3ol8HC`Qrn%x}Cd(%8cGoA241XbH-B`YSqzWvhN8}Abe{wz)^J2ZXE!kD8#DE#r zW4l+d5-DZ$3fSGnB(oDkP z;r;V&x8Ln2x!l{|olfV@&eB9bS){g3=x^0T%!$nna zYweg9Z8ACz^q=Jjw{bh zhH6t*et}MUILx~yknW4E=WccHeK;!Wa(EMjuqsWA)PlS;UK@XMGAfEX5xTBJ3oh>` zLVGpfc7jjtmoM)<|1W;)pZ8^!tMq&^(Ucfq02x&u>iM*7YP3|HoVcUI;5{mZNDz2- zGPYIgnieI>RK?@th9#vKUK>g&Vs}?4Ai~knWO6)3L~ZnPD-cU?uGi~IC8N(A3dGn$ z5CjO``m@7x*E(R>xv`UU(%?dHA-47B;u?`T$ZJwk-w+z>Ff>zmDDlAuwC- z5CDQFR18?pCv8>QwhmS09v>`?Z=6R#^W#xlHQqX*#Cno2X8$B;`}&qp!Z}YuAR!@6 zPG+Mg%j|!-wafUJLATdQ^E9R}Qpsh0hKPW{hVv(*I4IoT9b}!%w{b9<+PXdeaOA9G z03nc(gXeCqljezSTOoy1GUgV`m=btCnmg-=PzV_fgM~3dDIk@9>Qh2%DUeX^+El<@+gZCt&SX&%3iu7mni`kGK&CC~M>%+PL01&H` z#c|LdJ-qwVM1BF+NjSiNXzQ?X2wnU@6mHIn^N1pu$jF0YC+t*wVh&2F-5a-?#zkYG`Qt+*iA1h#+o};#T*mVGnf7NPu(yum z{EWa$m^?$&CU$Yu9#I*!@g;AZ?5ZvDiaE7%JC5S`92f~fNnREetJ24_Oj4Dm9C22p zWd-7#E2d)qniOD!e_>A`CMW09rrlM_C0je`)~*srLinbxrxQjB)eMZ@;5e0?fG#*4jkijqCff>G=Hc{$TreOq!ST>0~km1R#8LaKCPv;QjXQ{$Mb0 z&JDJDn7QM65yce~wQKlre>f8*tsUll@Dt$Y8$eE>!w z9^QMet}3PV(TDF%&rXu8W1Hf8fAJlYWP^S$v?VjEG!?SL%qPc>(yaU7{dZ^6(bn#+ zcNR$Qy!dGVeCO@AUwPw=G)b(rC?t~T_Xk;)BYQ7z`0btYyT7+Zc@`k#e#oXc3H@72 zYOHFJr8IkQ&n~o7VFU3+?_3niUq5c^UkM=tcxxL#BodJt1j}ha6hZ*_r=FXukC9Yz z^G3qU)#XKEtyH($1=w_8++>$s9GPW#nkE3ec_fFxD;1p$6h96TTzWvfX9OT|A+*N8 zLW-rd)w*sWS}f*Q^7Yt7R4QtcuHO%BT?rvJb)*5o`LNtvY-??cL|W-MTDI}QgAigk z+(x_raaJMxs-X&!6hdvjA5XKkJX^2-5`x*VZvx7el;m;M++0Aoya0=^XVfa$XN2_i&0vnvtOIUDzlxQyP(!43Py->FZ|%-Lvc zjAROB(axu{EKm0K`Y*n?|M=1T^z3Z7W9sST(c=SVR$4}7dGFB}(tX%6Fv#~9uFZ>j zGFzz3$=vA4sCxh1NeCpQ*}vZX{M}t7v9mpJj?d1@qH1s68~}#EjSr#UA1c_f);&2n znwPWd&!_BpF{{reMQfe+XtWx3GuMKJg_PRXi5FDX=N1=Y8%*ii3aS~MEb2SAbe1S* z_3^Ru5Rz1b7g;7dN)fSjetvGZ#rD7W_22F$SXI8ADu4?*b7H_lMf3I2k6Du&r;(`uy<(5Mye-)Eq>P z2CHeBn8Yl1Y8k1aM3R8{{Ad*U+5Me<-tPns-g&8{_n|K9^T(s;{Ujwuntqz5CNT_* z2tqHLXhKN{Je$mHYXLwh6@6q#3X!H@ElAaQ^;4T^u8h*ni&1(=>I~2_=LU8|(|@5a#2VwQk9W0YD<%>9Y4IW%AN% zI?b$gb87$?l}Uu;gh;1;@(4rgTSh5WZ%06AK^8#<*8<2+-htpy89O>?tAd^LCr`k8 z6p}*#W|CrYIx8o0ia`X|GUpUHAmY}wp)`^mqaXwnN=#1Yv-3hou?|`&00{zPmZt!{ zKtjJ+o~_qv-CjUKW}t2hYG3?#5AT4x;zS~1f&Nllh#&N)K5I904F z1J9>3W^|~XbLf3ov4BDdpa1z^{OTWng)d}OE^QUoT0ugulp=mA*}njva}nJDt|>^y=cyrAppZ$L5CJVi7OrQiMbvJN7qk>Z1VJd4jhAJ9 zK&uWw^tKX$Vl{s89bwdfhN$(qUd-t58|Mk4_cXnm<@bN?SANrbi$0XKl}cQ@e&ZWo`*W@I zcyzY4v!|3+TBm6`U(Ay<+uysE<@w&;{>jOSkit9H?GFH;uIsWavot?=@Bj%L+Xx~b z_{rhJ;JuLI^vPjURY{&}rALnsbdqR6gvicntx?K)F_k2`{b4biBJj@MzH_!Xy4Sh+ z>b$JJ|JGZtzW#dN>DaavQVA&|&qQ(?_Ft#hesliT|N6J{R~GHthgp&J<>C;Aw-qK3 zh`GtY3sBMgYpE=?$wRw>ivuu4ZmLpYWt9~Nf}2!KTSI)`Swjl(fO~xbUdH0!Gc2_v9F?RA(Dg;*%2!@sQ zIA4yOwk#K$(x?DHB(Kmf5wWT3WjT6rP7J|g(%in;cb+HHHX+Qi1OSRzaro$TcfbGA zYs046`Tq9~rLvt)MuMxlsEUR(Y2)StEcvMdwF zmlhj{laom~uMnX#>~?p$>^X3dQWBB1?)2a^gdnt7YQ1~N^2{WvZCjxQ$>phtNJtT! zpO0s*b+Lhi04Rm(WWhO9%G|jNwqDH6zcb!Ds%)01*Is-5rMoXW*7m`-?0er~MpRM` zxBThjs&3v|+!(c{lj%=>^3Cp@=gJ2B<8OtNBg%XJ>>*eSQZfeyCQ0+NX*pVuB49=V z8$1z4z^(nE*4jHS1OcOvG(DM}J{d*%CLzUI3no@RNov}*6;hC1tra2wI_D=RlcsJF zu(#V!dzp7$N*O(m>asaKJVQb2FN+YR6wcY;nG6L6V2&eMLWp9vuytbyIrye3ysLQw zhY&(6XM-7lqkQ3oyymm;tYv)s37I2vKon0OzyJZL6BeJYfAH_J&+E(Z|HUOes~Wk` z!~yghBLNpw?9Eue3COI}9-rckUwTO?*SP)#E>8$RKnO&wZR@(Msw%32z=aXm)$5l+ zNF|h#gdk(K4ZtC4U9feosLG-&h{%{UgupB!3bk~ZSusjmTN_GfX*a}K}D6~$(WgoQ7Ra!%(L}E4@Rn>w>@JCc8 zxbmimRq=YKTc2uO8ZooA);haxe@KF|h5!8Jp|AA@m_TA^^ zM<=dsfpFP*W0qP8K|+WuQQn8>izXB`5|tt$XgOpFAT==p`;eKa(C2-sH}B+rKW`Hi z0&AnRB3||Rkx&akT9J%60|+5HS?0YrMy-aYm*qBh(um*)A`lduCGXN+7RuJSfNOT0 z5Y=d;hbYn$A6SqQLN%>>^7wSvF|e5Y>GAbN>)WRNxu5&uD=)p&QW8G=i{fj)3!U9O zr_td9QmXxvf2sf3e~&`;dc9t+PlWycKr6K<76>5g>G=52Ie$EwU4QQ7&Ng=X!-w}i zNF;s!%}@T|hd;2+IZx-4i4b!1gCBq47j}i|eC?}WxqkPx7hZp}m`!Y5x`u?1lEkA2 z_tP|c@BQ~D^968_QYL9ymF3pf_LqP8OWK&5w{Gt3Ur*DVIgH1nqA0v~U;o;lz4g|2 zfLRhKDNslVuAZEeQswE<;^YX4jKHphU@IxbAWs;8!K<``qT^iMN!88UcWhJV-QMo? zTgZM^j!sS%b=^F8_~^4g_jBETuWg#aVA$<;LkIxmZ58@AG25lO_)YoxABGRcyHzGt zI|-eAmbzu(7G^Cvb=}Mib~|}SRa2dw zEpl`1)mN`SelqgG_P6zx&dNnqF4|(|n#Q_Z+Exs@(#iU;JP4d*X(AUB`t+O6?eCj; zT|9bJ)osI}s>_qRFKzb+bar}P)oq^iq)3(4wK$vCjgaBm_2m3yHlJ7_G?F$+NK(JE zEvph5KUb-ip4fx)<#gIEW?o9%-Orq(?m*@pQ!L!UxEXZSojvvVcrlsUWEWNHd>bYc zC~Eh2ZhiJvckA_Zd%E*lZFXV2PPp2X?!$p%BHPaWn|RIQzp9O$-u0%LP-!E zA_#>L)6t}wmyBSHmQn_05<=y9Y-l7mZ;LcxTk-W@s+++}sZ#geZJqz%d;jhxowf(x zhtSI57AlQw<&Dob)VqVj^wGWPY}z#KgCBnVg<)t;e*}3}e)t~OB}&DNzySr-({gb( z0|2Q75U=Sh@o^pQ4ozlk>!LrJRB}F993PwufkLiX|8ewh89_Yw&{)KeYAyTW`H}9nSNIUu6(vlpG8pcv3pN z_^Y>D@v`9i4<6LT^c&y&)+<|WXYy9qyXK}Nt}75Cs(q25;(S(37D5YvwGzpSf{w7Y zzom?F&Iuu+-S6~le)?n_Kc-URA{PPx0F&rQ2@_f_=N4B;WK~pESxF_kTivXe1s5p# z&kvnha-uHUFm@ZuH%den# zB~nL88UaL+8&{9o59=S9Yhz48`wMv%b`x`#XYut+gh+Kr#1N-Qhvp(L3kS6Ar zf8mQoQGEAXUk|AIaDHcd%b_8sJHy`i@!3VTh8Ua=J~(iQXc8UyfgwPer{1sF93cQ; z@JxaN0}wIBN)k8cxlLl~s*tY%AkAL*#FMT;pQ}09c zSsQL`Pp1>_{m*>va}VDCaZ${TN!r=@Qs3QMVA~mPfw$#+)}mkt25jTp$-LO#>JyQ# z7unW+XKSY^i>4|}lFrXhA%t|erv%*^q^;ayhLgt!d%K_6-Px(C^5Eb>w9?z%*@o`5 z@P&U4U;Ce^Eq`6z{kL@QgZ|W?n)8P^c)23eLdZAk=n%ZKZas#sHr4Jo3tz@!dy>rgnH5?E^P)aFnyma0=>uh&9(9C~r1ddqB)3NkQww)vMjv%N&K z3>boMyZ7Juj>xqAaHss#&+H~zj$M8KV38&wGkRw?-`+{aljFmKMV9vZ-3~hNP^Xzr zbD>Pt)^t8v%y40{L1t99PqW2*GOgqKS$)pjA zk?MsVAJvJ*UPl7hgQL=Wkqw}g<@kvztMChZpLp|y=dL9w^q)K5`?St?(BsJuzFXBb zpx9~O?y{wB;!Ecae-x?`r3MJd>{~xSoqFp?3DQesnnPe<@R0Sg-d2wxuDAezqX(yL z(>9egiPA20fPs_!4Mv9PdId2Zkz`=#?uxm0Sr0_nFAR$FlwNDP)Wt@>K-z4)=9NdOU-F5qvmWBNOjhYPDU=qGLsD#2R9}^IPSir ze9apvY2=Z|h@T|c-#A6)k3B-LDdR&B;z&T-Hd%J{zY}omr%EZ6Qmu1WI6=fA;C~7c zn~$*?S(ZyVc^dn*5nO@i)K^sfq|={R7#q}tff(tJSirNSTi6% z2;4MH*3CS7u`&vc_oPrF&9bVhmd=twv}Hw7nM5a8wPmfOOtKU>$TXclew+-pq!!?V zx3$#iqV^BY%3E9dnk@15?Pyi}-S2*PJ{@_}Pvv0fXQ*=B?UthvA-ng#rhfLfA%y5@ z>}{*GdG7fah{UzMYv;f7PrvbR|7dIP+ItTkb|pFQ2g9wG-*_{4_xh*aT+A0`vDn|g zetrs7Sw22^m}TkfZ+_;<{dd37RG2z^@XGlW0a+>#tX=l&Xl@!vXSuveBA9R0L0B>*gbdt|!Q(zwS z2YH&+RekvQkr2{3cjMZ1&bGrB{ww&}{|HU_i~hMf|KQ=U#8Y$p*3R@{M;OnHYt=Jm zcHYsmbiLNEC6Ol908)M=JLTgf<%r(N1&%$97TDlyyrBsM0r4mAhDtPbz zW;)1-Sl87@5O}WgqvrG3(+i@tzFa?G2*EjfIs4~m6OC}8))QL_0Rl!tq$Q7^g%C>5fTIkFaPoxc6$#**_8Ez_i=oD^3uzL zPk!>&_kZ-*I=?8LKba?~x_xIb7v?L{K8wR`B%M?4`o(b0NXxfymv(^RAy+me-@+@`ItGS}N zzMJ=dzS7BIUn>SG8sv47rLtrK-4H_+I5asKWhgb>-@96Wnpj27NH01#R( z(JBHV5J^fQ({4&c!F#232*EiwI+`q|g^(giwIBfy9d$xP_f4K4qS7j|X_ru{AX~Td z={&d~gc#o0BBH2|X^cUH$;osvDj?>^$Q*)@BJHGcR!td2L{TL}5QPw$x~XOhL^MVT z5{L*yB1?b>gfKh1dV9xv*Vv{x`vHx9T)PtN{JGX^Ws>cLLdU}(2t=uzw^kCKeveMR z6DTO>KGy>yGbw~bntgEK<`ZT{lI%PQvQ<-zX22kbqD=uH=vXx|B!eW$6K2K$LP-+T zRL#-D6K_2UGFrtw6GfB+0h4Nz8SeuL)MhyoNm4LkaK0=`?_Ac+RHE}<9&^q3w4Xja zvyBC2ArXinuuhc83^M?MGHTgI5P}g2U_PF?rcI1q5`la`B}FIq)}oZ@b9YHf4p0Sl z_x~7!D?>AA7N6@1g~osc-g5z1D?kVU76ae^*KC_w;5FOa*dZy>lq3XEKRGP!e-OVB z_5p>c=Vdin2qo6g5hAG7&6f9bDJ44}!G0md8hEA$)l-}L zWHMgS$w4Z)LcxU)5&*SPN|7>}1Wl%srdb;IC@CX-HmvG_urb^m0u#i6;g$N%(ljz| zM3R&NU}@6pH(y$gCwlwz6^5k>C@3YgR%=PnB*{bYM51l&%J*zTt{d08X<)|abuX1d zBq`OBo5YNOMjIiBmt45zQfW61VI?`|SIcPB8g zKv7IIA%@_EF%SYu1%WS;x78QGj7zOpgaBwA2hT_XBt(onLi)}IAB%d1n4usdNeax} zt^V|E;;i$`j2QeW658wLwFaGLpT;JP!^x#2%u$3lRw<8e*18)ub`@4Iy+5FCPckjOR z>cRc@7yx{z784F00n1|1Hg%SFzWen*d;IX8$$E8DhNiAsSD#H^y?e(wJDrYrKKHiO zW!2rk^Y}ZEeqHv+;Q3yt{er8V+vxFaJ02 zjejZ2@vl`ceg#KI*B8x*nuXMvV-`eoF_g7xchW`(a*+^-S2Ag=%aVwyvaIV85tB5( zxPdPPC=9{povvOvXj--iMV{3x?p!#T)>Hyl|dCL}e00w9c;c z+NE;*0<|1C38YaCq-)Tg^z|Qa}u8r92+5 zuWg!j;I_8aml-?W*$^(I8W2HBy%E8DW9utZ1evkAD-x`TXY1q^R0z zE(D5l?%sW8Dm5p$+1=NVk4^}v+f~-J-F}uN`Oa2$ZO2zt{lWcH-}>n|7^TD~eo;;r zWv-J%Yom=VX)>;+^ZD+6cJubuotrzp^|r3+(w&ZG2gl>wWJzM2!?tDiN}?ekAe$<( zjjd|CGt3n!S9#w+@HBahv(wEErEHsab~b6NW|ayfGssRRv}Whb^&9!! zmnrM|dQsIyU`E$qeU7dq=9E%x34-G!M`MIk!MBbbh9JNh;Q_o9l!!!WjmV1!5A0;L zDrXrbxvDA7X0iPjhgFD3DnW=+Nt2o-mJcYEbk3La`t0$!_d!Y-GtpJVWGRHwN~anD zg(R&NtSo+!s9u!w@!VUNq-l4jr?g^bK_Y_vClAk>s)gl%0I+9el*vs9OoYbhRq$Hk z;`8yWDH|dpLK1>~ASG3|%g&NXvX@>(ZGgF{7v6jF4Z4zCArT~_3NkncLSm8%ArQfZ z1~`Civ_gqqNm8T~2o|E9&&vn*FsdRhqYpOoD)|ZGb%m{^#rSAU z%W;CGyIk5yW4f=6mT`EU2mw%#ZERiE%b7`{z#!PqdUvK~PlES8)O8)fm~OB4_|buo z5&+f8_jj#R;k=VV3c5P0bfq_a1#?;>yH8_K0{mQb4%Kx7w!&nJotOP#i;57FBn3c$ z{I1`wKxOFfxxpPV?^6>{TH9LZ6!Hu^2V!4?ttnfm?w#tMLyaH7?A*}%_$b(JtrNGB z77Z6VHZJ%`hrNCK&i3}sGg-fJORK6X{y1IHb`fzgFJj&tCB#Aq{eEw6cgHQgcu){U zxxM~y8~B2Nw}i^XvJ95WtlXD32BVP>W$fIw)~9|FXarRQp&(m`&_L) z@+CqltYTn1xow-at)n{1bUHpgJyJ?p=cdznBp`+0*TB9~VnYoHh(z$#I~%QGw{~{- zuicD#7csdI$e-zafWdJHN`evy5D)>Gq*6LHXNSiTTgT|wh1fBa5_VJ5%ZiWT416Gy-gJLJBh|1LXf~3pp%=%2dO0j#z!~~cl)L_c`itVz|(o56YagP%bEnW z^KrhrkA&^gj`g0sg|;H_BD54dFe3{LfQZ4lc2R)0KoZj~OpkbS z1WkeY5My1#ETyWOdNP@&d9T~+8zO7%!Qo-QKbV{yCt59Lvz_ZVZ``@t-`es`qmx8w z6TDkY#-|4#ve2iG4;sg#Cl9N#NQ^0qh4&t8jll|K=A*Oe*>R`WJ9+fr$-@tCJ^$it zd|s6cA*5|uq8R!@Z_w{_dkEa$+U^d9Qt3`_FxcKDsj_Zgr`h3y4@oGYG1kPyjJ-nx=_KVo+U@V*%=>!nNov0t2UcuC%6&!+^Oii@+fSAF1}y zC`M|%5#W%N)7vNAot8b9Ra@6~Q8d$WnRm?AKK}U6dz0fRA+|23FW7P3`?c3^d|$2) zMGV$@zoM*QMECWjbRWPvyV>Q_+DN5-GU10q5K6_7=uMOHIxgM1_6R;nQl<3f(s}Qz zs=QJsm?V`lx}`5)tB-cc##~BCs}V0C04C5SZ9h_p*CO))oOc|!ZQ7=3Kse8BQ&--% zjBFiLjjy3Dn%Wltj{7?>+)<>+32=^^x)cIB-E6qs6M_M)3$_ill#rwX7(sA^4ysBB z1!>N0>&nv3Cw4TdtYs-hZ=kbWp=j94RP~y+@mR5_^Gqg+=8I}NsunYsXp^c8oU9u^ z8ZG8Uk>#d0$g@ms4^trnV*nO1Ro&g29fi8F&BL?D$LHg`FF*0=y*szIrl-ZjdymIw z4G=XolcrSUW$l)xvzoMKq$br;1T9%-gVY5YpI4J{4M0jOLD1U;p_x4fOK4p?Z8^b^ zK-v-K?U7Q0FK>VPZgwY^*`k_2@NApJXp}-~0jz+DOybL;IX<$}Nu*mLFcCJ>!Zp^G zHk!poUW8C0`qJm!Tp1Nyh$x?wVs<_|JsbmqHcN&{2!RL~m_4LfqKpcj1(I4KWI%$X z6wbP0yl7iXg1W=5N=$GbmcNzr@#6e&!~jwfA~Smqly{Tp-Ae*jy)7h3-uiM@G*uIs zNQf9*pwvjMF$6K(GQEM?zwWAqs|#N($XRB;#Ijf+QwS|&8EP#|>f6fuHng>jK3s}O zDhLEjBvf^J;)=pf#wb;A0SUbGcGB3QVTfrrBLYb&1bG*fQF%X)U>^!05JT{%2WMqb zD$NMn(Ui^V#Uh1O|QJqTquuD(Zf&v#qvj=A#*} zbYNmqAhMK{jH2>UizcG})>`wLH;xsbEP7* z9!=ha@HcnV=p9RhL=->BY9nMK!k^wMU2M-QAD@`|AhP!^1cwNbceJ^lQI>@pE8zd5 z?ah8IyR-YgwbpOg)0ysA6RSuz*__FiT0={+Bv_6tE1Dt$c90-J93Tjgw>;&~$V*-_ zAPF2hu;Cz3^bnvGIhJK9QY$@*-R$OEB#SlQ>729Y->_C5e&^o0b*sA7ww3cjUh>>? z_ugmk-){}y_4zUgqb*aSk3b+G%*vW_HtARODSihG!5@9rHja%R=8LF}*?|8AQ0Z=M zfgd@@ow5G2ZcG;~gqTppM63*n$j~YT#q9H=md?bvh#YzBHjWBND1xSr=AZ)r@BHdy zNlN9J{`J@P5RoH;h%f?5vLN<-FL{3L%FgZkham(ag@8a%R23Kv0I?fb=*|*fnwZb- z9Bl2*Z8d`!#`O_uD=aZM5Q#9Dm`B8NYpc2Uz=g;MpZS0B->dD*(yj2BH}&LMqjQ4l{>Seg-TTzo42dNAm*4vG zIP{BQe|zV$AIGAqE?>Qh09USD2`|6G%mPr?-7t2gm#SJ9(Bd$Gj{jSFZVSaNV%%M*@(OgJ)j-3Gc)I`>k(1cm0}CN<
NNf@R+vn!pjGTf{!2! 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 QP5=M^07*qoM6N<$g1`W}@Bjb+ literal 0 HcmV?d00001 diff --git a/tubelib_addons1/textures/tubelib_addons1_autocrafter_active.png b/tubelib_addons1/textures/tubelib_addons1_autocrafter_active.png new file mode 100644 index 0000000000000000000000000000000000000000..6f3f59b49fba7fa0bdc0ab41f7f8ca2ce8d211d0 GIT binary patch literal 2524 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 T*1OMj{)Yj~jp48=BLwb0StGtd literal 0 HcmV?d00001 diff --git a/tubelib_addons1/textures/tubelib_addons1_biofuel.png b/tubelib_addons1/textures/tubelib_addons1_biofuel.png new file mode 100644 index 0000000000000000000000000000000000000000..047391a0463d254b5bde287f84dd2a124cec6168 GIT binary patch literal 2730 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 LNkvXXu0mjfy}~YH literal 0 HcmV?d00001 diff --git a/tubelib_addons1/textures/tubelib_addons1_fermenter_bottom.png b/tubelib_addons1/textures/tubelib_addons1_fermenter_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..62c084e055b85743de127d101f03c96fbe8f14a6 GIT binary patch literal 2691 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 literal 0 HcmV?d00001 diff --git a/tubelib_addons1/textures/tubelib_addons1_fermenter_top.png b/tubelib_addons1/textures/tubelib_addons1_fermenter_top.png new file mode 100644 index 0000000000000000000000000000000000000000..52efab6c4d21976d05b9f93d78c4bd18cefad91f GIT binary patch literal 2460 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 FV1g6R^xOad literal 0 HcmV?d00001 diff --git a/tubelib_addons1/textures/tubelib_addons1_funnel_top.png b/tubelib_addons1/textures/tubelib_addons1_funnel_top.png new file mode 100644 index 0000000000000000000000000000000000000000..fccbbb9060fbe7f594682d0b2c9c8a25485e209f GIT binary patch literal 1998 zcmV;<2Qm1GP)x2U|%* zK~z}7t(Qx0WLFW#f9KqDU;S{~ZM(;9&xD!DBvBR!Bm_|c5sgR!63QYX5(2(KHhcpR zQoaFVnFR~PA`2Fout=g{KuCyHkkBL&WRjVQr^jP=ySv@p_kD`Ry}ll2hCGy%)c3Zk z>eS=K?2mC4qRy#x# z9PW+LTH|<{&E5vN%@JTeUC`<@87mm=jqj7sMpLxo(C&3fiD-o`*;L_nH!!Q6Hck=I z3rJ$FT;3jCCOQ8+j^m*3b#jj}tu=X+qAF)7h~u=(u+pJ&@^SeII$CMM<_d4#=+XSn zFVJa$QQ9yV4A|Y><$K))CHU_dLD6L^oE;NHrj!mBL!f@b-}YcAw8f!`nlwwJ1&z z1xSuYOm6;$CtC%mi)fT0@H9cQgGv%83Zyb(t;O>^j4=#v4?mZ4V+@|>p_H82N)!Zf zj9Qd!uie#Ev}s`c7I~hMr5Q+xfXJ!Q6C^%s=BK3UXBx#M(__MJpJs0h-E3eGc=N+f zIhhuJzzh8o|7Xba$~w4p^VTN@5Cp;f%&MNe(5HF+A>Meu!C)}JyZ$QL^}MJ(7XIFI?qx@`yY``m$WZltn*f1 z4gjY(R&D6CSC}2#C7nk|6k}F)E`SKO$e9iI5G#n3t@EW6f}Fm^3MkFaH=ks&e+L`K z=;_`qu3pnD`_G}!h)BI}C&S|l`Iqt`)i0k-xOz<^U;P=&!wDLZx(mXMZn>fmlvelb zUP)=1eyYO<>7;4-4Nyj7Ykw#(C|JJp3QwZEQ+)08~VKht^8-|my=c|EuguvW0P zLLh8l;sp|C6j6jm6ss4m5Ug%j{>!~8tVIf`Gygn?QGdH%k7E&wwL+0wL2od4ePoE?3G}_S|-I<{sjdB#tc0dq%XrnngTClp-!Z8kaJ~%j)fBhk} z(JUrQvOJ?9f-!Dggg<)x5;~tpG=^{R?cN^7^|00=MF|%u(kQ|AUHrhUD^qNNSX&30 zMoBg1<-zhar^t%(cn@1NhHvo1>igug2}S~!I9gy6Ll!#q{5~<{H3O^&s-6qwo{9x* zxyN4UR|l9pP+sH(aZ&)V|G^M9oub7ejTOw{yEk#04ycqo*`P==ifXmBQf5^d60wM_ z4j5}or?$*ol%lW&wvhYej%RQSp-3{eE^YJQKfh12x51rTW7M_RUKUBmHtYcZE zf^Q4L&f3|#VSMrDytVfTQIwNPi`noFy4l2i>LvcNcm$`_BAy>{IK07f>skKvt^*>( z@q%Kp#Oz>%07*qoM6N<$f?mACVgLXD literal 0 HcmV?d00001 diff --git a/tubelib_addons1/textures/tubelib_addons1_grinder.png b/tubelib_addons1/textures/tubelib_addons1_grinder.png new file mode 100644 index 0000000000000000000000000000000000000000..88855b70d1f66558a42057f32c7d5aedec74e286 GIT binary patch literal 3038 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 literal 0 HcmV?d00001 diff --git a/tubelib_addons1/textures/tubelib_addons1_grinder_active.png b/tubelib_addons1/textures/tubelib_addons1_grinder_active.png new file mode 100644 index 0000000000000000000000000000000000000000..704b17b203f105f8bee58c39b3e99056332a8873 GIT binary patch literal 8206 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 ADgXcg literal 0 HcmV?d00001 diff --git a/tubelib_addons1/textures/tubelib_addons1_harvester.png b/tubelib_addons1/textures/tubelib_addons1_harvester.png new file mode 100644 index 0000000000000000000000000000000000000000..22f96f9eecbd975ab733cf679839b41be20217b2 GIT binary patch literal 2167 zcmV--2#EKIP)aAIwa_H2&TJa2YsS`A8{;)qnN37i`wiwQLjhPX`=IFgt_=l z-sM5EbWEN_xEh-C^LP(G!_}Pyn#;?$({&DdTZ|VT=k4)DrtiL&!QKvtknC+Uy5lh} zU)MC}=J03g46~SM=}F$)S^`huH9VRf9~CIl^Izl7!+Xh-AzC49WQKF^V$nh z|NPw#MY#b=EM_<)Ng^EAMWJw7Z9G3DAMBH7DPeb>xVMD}hzP+{2a~7tcW&W$KFxX) z8%HQKX_67nOhFW3@~rf4lVv%G;5Zt@;;w!0F5Q_kjQR(7jXKWu8X~ay-a2mR5(GZ& zP6JVJV{HdVYn(u{uyhBJ$q@zP{vqv|79$1QAMRB4(fS97g1zlM9LJ%vG{@$6NVDdV z9Von+S=^~k3&%t>Y9WMRP`FBPv_>mP;uJOA0tK~ZjVw-4N~4rQYYnB3<2Z#7wYtr& zwMJAeXz(fxIT@J&3f^N?&;<^saGxNB9h*Dscu7Gq2) zw(wI5ltw!aN^34%>G8kg(jWH#%}+j~07&+F?61GVLrnwf92%tveNEWtpppcPq3ml| zYm4nyg&u;M2LfV?Xi%V(pi2Lb8$Y^cdG-(6pdgH6)Tk(X*PEI`@(kDWh=#Yw;uNpp zR79!}FG>kXlp_czkRnml=V{TOHj;xwYBP(to<`L}Gy+#X>=2##3OcOeH$s4l$PfGp zA`w8q8iOtO$`5=#>1dq2lehY3$v*uw7=!kFzY;}~=cSueL?$~XvgM%zf>=S7PCve8 z`Q*d0va-ToU;ix!gMBnWxN(_B7j6=d28gvqj;n>(ib$y<^|qWB;M-UF6Y$TSi$9j$ z91f6w{F=`#_KEv@=xBEr#|;U>I$=_hi>-*t7lL4nEfOI`DlT0;m;is}$vG5??_W$# zCI9)CyM>^V6weQtzi>A?&r*6@ACVr6X`MS)#4S`rd1{bq>nZCRzW0~I3GiP&HeEF% z1ZaKl)BVNIZC5|&hEQkgxST$+4w&?33g6jr^%{ju^E~E7|bZu^i*WdLRFFe6f z4Hl^?Rz7jEEsT((NR44UjEROZZs3($Y)`cpRaWdqo<&^UU99+Y7DvaTD06lsx}#(F zWF1R!6oNn)`h+#VtQsj7f4kk}LL8^%4tNz`^RDx_`7ols`39e#-@)~QqL!^KS}=<5 z-Z^Grsf%_sRaIJpwFWDK5=cfd%(jc1pJGpw3}XaqEq<+uyZHtWPTeFQbZ{l~h@%lU zami{Nb-_CM0X9qN-FSzc%{8)5eWSP=`Wl->`0)^> z^N+t9MmsxnE}WmZ8w!FOa@*aoUTadDZW0~tvAVj-{f~W>@y-_Qr3GrPseIExgozb` z{y%p^RXo+ky*<$2w%h0=AsUSUXf2*0+T8`9*6orV?BldrWCuO0$?0ux;TTITtbukA tYpHjqK|nVe<>&pI+Ls~#w^$ROkB~VDm)5S3);_%yZhKvjh9Lx(c|DQ8% k<5x+TWzuhUo&^=~89ZjP^RE##0_tP%boFyt=akR{0N`gNAOHXW literal 0 HcmV?d00001 diff --git a/tubelib_addons1/textures/tubelib_addons1_pusher.png b/tubelib_addons1/textures/tubelib_addons1_pusher.png new file mode 100644 index 0000000000000000000000000000000000000000..d623a769fadd6571a8de08daf45214a31d823b8c GIT binary patch literal 423 zcmV;Y0a*TtP)7ino1z3R4K7tGrMItd3$)7egMREM2wD$mzkE_#Q@XQ z(p|I^z5oCK32;bRa{vGf6951U69E94oEQKA00(qQO+^Rd0vHiH5~|v34gdfF0ZBwb zR5;6hlIyO+APj?@ok4+gBjf!a_QbtNlOR*oU!UbT4ruz;l%5IQc6?s`;rw5pM26NV zcqHuBCqbjYMoH-}!MaTXXK2IRA-Q0m1~@0hv4KIijyZ>JjpE zu*I6rzC!lC3|Xs|XbZA0!R&Adwynt(a>_skJ(^6*s>zV=kc*10Ymy=7 zTB4%Je2XfP0~xk^3)^P_x6onja+pSt`G|4}Y%!v^KuZlrIK!4N!J;TKR$YHoT~UVB z=vZXXT*4;FkhMs33o@@dm++d-AV1y%8D!Y)Foh(8ifB|68ARoNwDW^;_773(DWyXp RYn}iA002ovPDHLkV1m}{td0Nx literal 0 HcmV?d00001 diff --git a/tubelib_addons1/textures/tubelib_addons1_pusher_an.png b/tubelib_addons1/textures/tubelib_addons1_pusher_an.png new file mode 100644 index 0000000000000000000000000000000000000000..c87d5af2af1426ea29969b92c8c633a2382fe120 GIT binary patch literal 1305 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 IM6N<$g1Y%hM*si- literal 0 HcmV?d00001 diff --git a/tubelib_addons1/textures/tubelib_addons1_quarry_active.png b/tubelib_addons1/textures/tubelib_addons1_quarry_active.png new file mode 100644 index 0000000000000000000000000000000000000000..8561d48bacbe9891642c7cc4122490442e850430 GIT binary patch literal 2978 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 literal 0 HcmV?d00001 diff --git a/tubelib_addons1/textures/tubelib_addons1_quarry_passive.png b/tubelib_addons1/textures/tubelib_addons1_quarry_passive.png new file mode 100644 index 0000000000000000000000000000000000000000..86e86eb62b5dbbd70d6a6bf13965fd2925e62d06 GIT binary patch literal 1442 zcmV;T1zq}yP)ES1;I(Jcc2`%`sY}(6VhLqR7&wZXE&mxLEMhfuyebmjDxHlf)?d>5u zH5Stm(coF$kFL>q{0Ww`F=$OXJ0*PN8SWeiysa%Pzs4$0h%bGEcSn~%8K}C#Ygrh! zL3ZW4e6V_gB3&U2G{fPL{r!EM<^Xhs*=R5wJzV4Ya!wJ?F^jV`R+R+}%OM#b5ih4} zTvr9@D8LMZHCEf|BeaDhYbeKC<3c$YfBE%~wIOW`T~V%9q-l&PB?bm&qlvN{ishUl z&v3eZlIaMoL2HfOZc!E)!T1DIS$H*%Dv2==WND7$w;_%xi~PU+P4c_|tuajjxNQ^Z#UI&Zy?oQca~1i*K>0mnyVbxfW9qI04t)6jhxoovzu#vt7|`qW z@O>ZO_vv&xc%FxC+t{`Zz^z-i0JweoHffr&TCJGPW&}Y%5Clvn6HZP}I6XZj2m)Sz z@rRVLiS?MtDo7Dce;X-Hyq!MMa@cg4rJ%jtAzOqrx^;vw75AoBNq4`6X_^}s;MSYG zbJ(Z;wI3m}5@86*{{BA0;Se2#8yBEj{+iG2c9F?+N1@jU!5iH0 zN-!=XF$^5bK!_GPNjEM41DqtmFigtT3aQ#{bde*KB3_+regca#Tz?y>1V+t4py8c= zwTO4ViE!MF3#jit%6q{s`4?V*vP3A$TALy*ip@U(75n@9{O;{vu~^QL0M5}JzCM_- zI$Lg>zC2r^|MWAyvYoI97KnHLJ|^7!Zi1|Zn^@(se#300CH7Do@cb0CPepTj_GoWEGk zxpN@UUwnaRGDo2Gr>n8&U)V1g4u@cX#DM6dH+i~SQLgG2V#4U7H@V@RVO0%;vK&;N zp_Jl6%B>-j5S`?dag0P8wD+!|(WJp-8s!2Z|{9Tz274%1;)W! zuW6kH6nTV_7M4>ZjU=|W#pLgQMk5=Ctw%8YheU&C`OU{BXibuYlwpKwHA%03kKg~>rphy>fBl&8@gez>&!1;QOHk!8RXpxALybl{{7*KlxgKuEBR-ok91i)?Gv6i}k7!;R;L38{n=NC?#6TlH zCmR|jh7csv83>TgCL&FV!}Bw}vAsh)IbTw4w@bd5V>TM(iz!uEFg+b%mKCn!f-uol wMXlQb4WeGB$TPIo7>33)CFlyRHRy`}04DIQV(|5RfdBvi07*qoM6N<$f&qN2(EtDd literal 0 HcmV?d00001 diff --git a/tubelib_addons1/textures/tubelib_addons1_reformer1_bottom.png b/tubelib_addons1/textures/tubelib_addons1_reformer1_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..8ac55bcf96e5a27b8f9d5763149d353ca89b6e8d GIT binary patch literal 1635 zcmV-p2AuhcP)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00qlQL_t(o!=;wbZzM+*$3L&S z$1~%$+j!SI*c&O!fHoYs1aUxc+5?f0Ktc#44jkajnKLJj-19GR3kU%R_F%LKX%|Ei zB_fCwn2^Nw&M&WjjC-c1s~(5yuI};1KUS3G8LM2X_v-uozVCbT>)-xL_xASq!|xxG zrYQhvnxd-2ag2zB-)jAG^V|G5d&t(-7QdLj&QFtf7>!1J;aflAHG9Zvw~KWJ_g=ln zY?iTe_Z9y3_%X!7@$`)U{%4=hY;6D#Pp4CQy&g+T1a%GoRV}xK>(*D(bDsR=AB;yM z);e9@{_7Lktv0Xr@3H;a9gdHm|dg~+G~h=BN@s)`C=3^?G5Jl^`(jE&QC zrdiHBx5Sa~%{RV=X~pD4&cfO7up~+7^?JlflCZb8hYF}V1SwzbzeNOfiitrY35a~! zdh@-E@9h86BL^7c=xy)t@&3n%z`_>c>~uN>z*H0%F%6h&*qcdQ6})E8-{AmNXth@u z39%7yKo4}o|J3fJm3$zR%WqhpzUi`jl8Dl^-Tr(OD+1a^E9LG3Yb2uCg>je7! zetkn3Lv)#JEfcyf2j`sEkSeGnT~CRO!5As;Sr(yb@)2GNSa}iFr3|lIWwKJfQ;2o{okO#MK`nwL(Qb z-yv|*@&3pLlyLT zJygMkCQ{LHu@5Njnr6^U)>n?=5GX65X+&WlNsq`nOs zWT`oYkqiS3YA#J6GKj!be-X7L>xz`D%RSdpXitskkAmml??%;zu$Ob{{<=KcC^|IkvE@%7yyQq$I700o9u9f;y>~dzXE^7uMS-=h9!M%aDwT%EU-15y8OgLU zk}dL_KmGYJPoMsq$z)8HWlYACpo2IVf_NXdIB;&ckH7RtCZN6&L|~p5y#4O`WLZv{ zu5xg&&zHXZdTm65!2pp6SB)i=T1Eb^k<1S!QtAR!l=1kOMd5-G$=`qTbJcu8u{fs{ zudvctWquxm!s+0ExYeS&xy52Jr+sV7Lo2?yoP6>T0IijnxV1vDDCpklkspoGb{l3H z>MZICT;!PMO50hw8=GX~G3|{tOfjD_``izC_{n{;tRUAlP7V$+NkZ%EKjDwl`$TJN z%+8J&9el|7_8a`}g9uca&8FDtIjxP9`Tg(nWWSADWbm1eQN^9tE$1VH!pZ5GGRiPqOy9FK9fU_5w6WF6g37fggY$Lj4(KZYd<#Ud}; hv=T*eDNtV}{{sXyZ=LF-M9TmG002ovPDHLkV1gky|BV0u literal 0 HcmV?d00001 diff --git a/tubelib_addons1/textures/tubelib_addons1_reformer1_top.png b/tubelib_addons1/textures/tubelib_addons1_reformer1_top.png new file mode 100644 index 0000000000000000000000000000000000000000..89272f634046b0fc336334f0b720747bd21a9e99 GIT binary patch literal 1674 zcmV;526g#~P)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00r_%L_t(o!;P1_j~mw&#((F` z49Q)R%U$hqcBM!T=-3Vrz-@x0k^u(@1b0!BEm=r@6W%r>F}I`Cy%*t z{WTh$t0c!qq|*smazVXwg={zkjN0BVQB-H}_z_u_(!73ysNMiG07R6Frw3%oCG}2+ z`qnnHXQzx#PqDypnT*-oXtTBxGdek;-f5xfBq4j_C;W%+F`EuaXCp#|RvZ)k-~;}0 zv`6d44Z^K;o}C;r-1{Ma9lpWVx8CC7>*i7>ho=O|sb5>~#;Db3gzH3&mS5MXfqed_Uz>z=#2ndRz+^Ha z2tx!RXm1eJ8l)HJq_ZiF?U?b&A!cA^)Hge1>6Fu>uLzWlNpUGn=l%Y zrL*Gu4Q8_x%m@MnbA)$i--a1{`1_A&wOXhutyU}FP`?Bq3`2r2z&JoK{;>HTKOKF- z&dwUYOTN!9oB!hY_?QpZ-sQa~e-F*kk|Zgh2{3b*Hx|Lnd}0E= zRj)z-gLr$3_kZ?2lj)eVlVdI}6OK=x<#CGhk|aT!&1Sw)6?5jRE`tN}w=cIlDzE^PEkG`SEP=qx&>-aMwX2wO zBxmOg2A8b2+w66BxOM9mW=0uTOEMs!A_NFvmEJEXaiwRRB&aGg9GSq@c9(j+jznQa zVf}tTZ$TW#AmRfE;z_vZ4=<);vI$PU(`sqKJ&Su{IL?A1Q z^Km`AS%wJ&W|#_Y0R^uFUBwCV?*(JG8{;fPkU5eIE%YSp_xn(?UKO#IaNgM~;GqI{ z$s=#?B6)KbIORzg$MK8dzJ~3>QXlfpX=cnOQyO#uKOS;&YatD9LISAyT? z%{+l5NnWT}Y+)8aF{D_HfFhWIU<`)?RMbN+3vnvLC}()dQK>*J&uv^K0f0=EW_yD` z1XLg zuF`^BjUvKmILKu!T9BEl4E-=F*<0Lx%RuEIvf|WWg>hU071nAr)|-q+!@L*+w_xS{ zexI-$3T1n9y-I~li@o*jSgHbJG8!?RjFCVIB=3K^kbke&o0HH%K7ge7AMjjoPefTw zij>#KFd&FRGz{~?GFSBhKNQGyDklC$R3TRJb4%Q4G1=j8m|yUmAYugqR`G%V1JHEk UOEK=0!vFvP07*qoM6N<$g6bI&jQ{`u literal 0 HcmV?d00001 diff --git a/tubelib_addons1/textures/tubelib_addons1_reformer2_bottom.png b/tubelib_addons1/textures/tubelib_addons1_reformer2_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..245b784dc8d19363add66079017b3ad21adab0d8 GIT binary patch literal 1857 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 literal 0 HcmV?d00001 diff --git a/tubelib_addons2/README.md b/tubelib_addons2/README.md new file mode 100644 index 0000000..bc23795 --- /dev/null +++ b/tubelib_addons2/README.md @@ -0,0 +1,51 @@ +# Tubelib Extension with Control Blocks \[tubelib_addons2\] + +This extension provides Timer, Sequencer, Repeater, Gate, Door, Access Lock, Mesecons Converter and Color Lamp nodes, all with tubelib communication support. + + +## Timer +The Timer node allows to send on/off commands to other nodes, e.g. to switch on/off lights at night. +Up to 6 independent rules with daytime, destination node numbers, and on/off command can be programmed. + + +## Sequencer +The Sequencer node allows to define sequences of on/off commands with time gaps in between. +For this purpose, a sequence of up to 8 steps can be programmed, each with +destination node numbers, on/off command, and time gap to the next step in seconds. +The Sequencer can run endless or only once and can be switches on/off by other nodes. + + +## Repeater +The Repeater is a concentrator node to distribute received commands to all connected nodes. +The list of destination node numbers can be programmed by means of the Programmer. + + +## Gate/Door +Doors, gates and locks can be build by means of Tubelib Gate and Door nodes. +With the command 'on' the node disappears, with 'off' it appears again. +The texture of the node can be configured after placement with the right mouse button. + + +## Access Lock +The Access Lock node is a combination lock to open/close gates and doors (active for 4 seconds). +The list of destination node numbers can be programmed by means of the Programmer. + + +## Color Lamp +A set of colored lamps with Tubelib support. +The color of the lamp can be configured after placement with the right mouse button. + + +## Mesecons Converter +The Mesecons Converter node allows the connection of Tubelib nodes with Mesecon wires and vice versa. +The list of destination node numbers can be programmed by means of the Programmer. + + +## Programmer +The Programmer is a tool to collect node numbers (right mouse button) from receiving nodes to program +sending nodes (left mouse button). + + +## Dependencies +tubelib, default + diff --git a/tubelib_addons2/accesscontrol.lua b/tubelib_addons2/accesscontrol.lua new file mode 100644 index 0000000..9790c7b --- /dev/null +++ b/tubelib_addons2/accesscontrol.lua @@ -0,0 +1,156 @@ +--[[ + + Tubelib Addons 2 + ================ + + Copyright (C) 2017 Joachim Stolberg + + LGPLv2.1+ + See LICENSE.txt for more information + + accesscontrol.lua: + +]]-- + +local function switch_on(pos, meta) + minetest.sound_play("tubelib_addons2_door", { + pos = pos, + gain = 0.5, + max_hear_distance = 5, + }) + local numbers = meta:get_string("numbers") + local number = meta:get_string("number") + local placer_name = meta:get_string("placer_name") + tubelib.send_message(numbers, placer_name, nil, "on", number) + minetest.get_node_timer(pos):start(4) +end + +local function switch_off(pos) + minetest.sound_play("tubelib_addons2_door", { + pos = pos, + gain = 0.5, + max_hear_distance = 5, + }) + local meta = minetest.get_meta(pos) + local numbers = meta:get_string("numbers") + local number = meta:get_string("number") + local placer_name = meta:get_string("placer_name") + tubelib.send_message(numbers, placer_name, nil, "off", number) +end + +local function formspec1(numbers) + return "size[6,5]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "field[0.5,1;5,1;numbers;Door block numbers:;"..numbers.."]" .. + "field[0.5,2.5;5,1;code;Access code (4 digits):;]" .. + "button_exit[1.5,3.5;2,1;exit;Save]" +end + +local function formspec2(code) + return "size[4.2,6]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "field[0.5,1;3.6,1;code;Enter access code;"..code.."]" .. + "button[0.4,2;1,1;b1;1]" .. + "button[1.6,2;1,1;b2;2]" .. + "button[2.8,2;1,1;b3;3]" .. + "button[0.4,3;1,1;b4;4]" .. + "button[1.6,3;1,1;b5;5]" .. + "button[2.8,3;1,1;b6;6]" .. + "button[0.4,4;1,1;b7;7]" .. + "button[1.6,4;1,1;b8;8]" .. + "button[2.8,4;1,1;b9;9]" .. + "button_exit[1.6,5;1,1;ok;OK]" +end + +minetest.register_node("tubelib_addons2:accesscontrol", { + description = "Tubelib Access Lock", + tiles = { + -- up, down, right, left, back, front + 'default_steel_block.png', + 'default_steel_block.png', + 'default_steel_block.png', + 'default_steel_block.png', + 'default_steel_block.png^tubelib_addon2_access_control.png', + "default_steel_block.png^tubelib_addon2_access_control.png", + }, + + after_place_node = function(pos, placer) + local number = tubelib.add_node(pos, "tubelib_addons2:accesscontrol") + local meta = minetest.get_meta(pos) + meta:set_string("number", number) + local numbers = meta:get_string("numbers") or "" + meta:set_string("formspec", formspec1(numbers)) + meta:set_string("placer_name", placer:get_player_name()) + end, + + on_receive_fields = function(pos, formname, fields, player) + local meta = minetest.get_meta(pos) + if meta:get_string("code") == "" then + if fields.numbers ~= "" and fields.code ~= "" then + if tubelib.check_numbers(fields.numbers) then + meta:set_string("numbers", fields.numbers) + meta:set_string("code", fields.code) + meta:set_string("infotext", "Tubelib Access Lock, Enter access code") + meta:set_string("formspec", formspec2("")) + end + end + else + local code = meta:get_string("input") or "" + if fields.code == nil then + fields.code = "" + end + for num = 1,9 do + if fields["b"..num] then + code = code..tostring(num) + fields.code = fields.code .. "*" + end + end + meta:set_string("input", code) + if fields.quit == "true" then + meta:set_string("input", "") + if code == meta:get_string("code") then + switch_on(pos, meta) + end + meta:set_string("formspec", formspec2("")) + else + meta:set_string("formspec", formspec2(fields.code)) + end + end + end, + + after_dig_node = function(pos) + tubelib.remove_node(pos) + end, + + on_timer = switch_off, + + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + groups = {choppy=2, cracky=2, crumbly=2}, + is_ground_content = false, + sounds = default.node_sound_metal_defaults(), +}) + + +minetest.register_craft({ + output = "tubelib_addons2:accesscontrol", + recipe = { + {"default:steelblock", "tubelib:wlanchip"}, + }, +}) + +tubelib.register_node("tubelib_addons2:accesscontrol", {}, { + on_recv_message = function(pos, topic, payload) + if topic == "set_numbers" then + local meta = minetest.get_meta(pos) + meta:set_string("numbers", payload) + meta:set_string("formspec", formspec1(payload)) + return true + end + end, +}) diff --git a/tubelib_addons2/colorlamp.lua b/tubelib_addons2/colorlamp.lua new file mode 100644 index 0000000..d62b6f2 --- /dev/null +++ b/tubelib_addons2/colorlamp.lua @@ -0,0 +1,125 @@ +--[[ + + Tubelib Addons 2 + ================ + + Copyright (C) 2017 Joachim Stolberg + + LGPLv2.1+ + See LICENSE.txt for more information + + colorlamp.lua: + +]]-- + +local tColors = {"#0000FF", "#00FFFF", "#00FF00", "#FFFF00", "#FF0000", "#FF00FF", + "#FFFFFF", "#000000", "#3BC23B", "#CA3131", "#FFA500", "#FFC0CB"} +local sColor = "1,2,3,4,5,6,7,8,9,10,11,12" + +local function switch_node(pos, num, player) + if player == nil or not minetest.is_protected(pos, player:get_player_name()) then + local meta = minetest.get_meta(pos) + local node = minetest.get_node(pos) + node.name = "tubelib_addons2:lamp"..num + minetest.swap_node(pos, node) + local number = meta:get_int("number") + meta:set_string("infotext", "Tubelib Color Lamp "..number) + if num ~= "" then + meta:set_int("color", num) + end + end +end + +minetest.register_node("tubelib_addons2:lamp", { + description = "Tubelib Color Lamp", + tiles = { + "tubelib_addons2_lamp.png^[colorize:#FFFFFF:120", + }, + + after_place_node = function(pos, placer) + local number = tubelib.add_node(pos, "tubelib_addons2:lamp") + local meta = minetest.get_meta(pos) + meta:set_int("number", number) + switch_node(pos, "", placer) + meta:set_string("formspec", "size[3,2]".. + "label[0,0;Select color]".. + "dropdown[0,0.5;3;type;"..sColor..";1]".. + "button_exit[0.5,1.5;2,1;exit;Save]") + meta:set_int("color", 1) + end, + + on_receive_fields = function(pos, formname, fields, player) + local meta = minetest.get_meta(pos) + if fields.type then + switch_node(pos, fields.type, player) + end + if fields.exit then + meta:set_string("formspec", nil, player) + end + end, + + on_rightclick = function(pos, node, clicker) + local meta = minetest.get_meta(pos) + switch_node(pos, meta:get_int("color"), clicker) + end, + + after_dig_node = function(pos) + tubelib.remove_node(pos) + end, + + paramtype = 'light', + sunlight_propagates = true, + sounds = default.node_sound_stone_defaults(), + groups = {choppy=2, cracky=1}, + is_ground_content = false, +}) + +tubelib.register_node("tubelib_addons2:lamp", {}, { + on_recv_message = function(pos, topic, payload) + if topic == "on" then + local meta = minetest.get_meta(pos) + switch_node(pos, meta:get_int("color") or "", nil) + elseif topic == "off" then + switch_node(pos, "", nil) + end + end, +}) + + +minetest.register_craft({ + output = "tubelib_addons2:lamp 2", + recipe = { + {"wool:green", "wool:red", "wool:blue"}, + {"tubelib:wlanchip", "default:coal_lump", "tubelib:wlanchip"}, + {"group:wood", "", "group:wood"}, + }, +}) + +for idx,color in ipairs(tColors) do + minetest.register_node("tubelib_addons2:lamp"..idx, { + description = "Tubelib Color Lamp", + tiles = { + "tubelib_addons2_lamp.png^[colorize:"..color..":120", + --"tubelib_lamp.png^[colorize:"..color, + }, + + on_receive_fields = function(pos, formname, fields, player) + local meta = minetest.get_meta(pos) + if fields.type then + switch_node(pos, fields.type, player) + end + if fields.exit then + meta:set_string("formspec", nil) + end + end, + + on_rightclick = function(pos, node, clicker) + switch_node(pos, "", clicker) + end, + + paramtype = 'light', + light_source = LIGHT_MAX, + groups = {crumbly=0, not_in_creative_inventory=1}, + is_ground_content = false, + }) +end diff --git a/tubelib_addons2/depends.txt b/tubelib_addons2/depends.txt new file mode 100644 index 0000000..bacb32b --- /dev/null +++ b/tubelib_addons2/depends.txt @@ -0,0 +1,3 @@ +default +tubelib +mesecons? \ No newline at end of file diff --git a/tubelib_addons2/description.txt b/tubelib_addons2/description.txt new file mode 100644 index 0000000..bc6f9e1 --- /dev/null +++ b/tubelib_addons2/description.txt @@ -0,0 +1,2 @@ +Tubelib Extension for switching/controlling tasks + diff --git a/tubelib_addons2/doorblock.lua b/tubelib_addons2/doorblock.lua new file mode 100644 index 0000000..801d13b --- /dev/null +++ b/tubelib_addons2/doorblock.lua @@ -0,0 +1,120 @@ +--[[ + + Tubelib Addons 2 + ================ + + Copyright (C) 2017 Joachim Stolberg + + LGPLv2.1+ + See LICENSE.txt for more information + + doorblock.lua: + +]]-- + +local sTextures = "Gate Wood,Aspen Wood,Jungle Wood,Pine Wood,".. + "Cobblestone,Sandstone,Stone,Desert Sandstone,".. + "Copper,Steel,Tin,Coral,".. + "Glas,Obsidian Glas" + +local tTextures = { + ["Gate Wood"]=1, ["Aspen Wood"]=2, ["Jungle Wood"]=3, ["Pine Wood"]=4, + ["Cobblestone"]=5, ["Sandstone"]=6, ["Stone"]=7, ["Desert Sandstone"]=8, + ["Copper"]=9, ["Steel"]=10, ["Tin"]=11, ["Coral"]=12, + ["Glas"]=13, ["Obsidian Glas"]=14, +} + +local tPgns = {"tubelib_addon2_door.png", "default_aspen_wood.png", "default_junglewood.png", "default_pine_wood.png", + "default_cobble.png", "default_sandstone.png", "default_stone.png", "default_desert_sandstone.png", + "default_copper_block.png", "default_steel_block.png", "default_tin_block.png", "default_coral_skeleton.png", + "default_glass.png", "default_obsidian_glass.png"} + +local not_in_inventory=nil +for idx,pgn in ipairs(tPgns) do + minetest.register_node("tubelib_addons2:doorblock"..idx, { + description = "Tubelib Door Block", + tiles = { + pgn.."^[transformR90", + pgn, + pgn.."^[transformR90", + pgn.."^[transformR90", + pgn, + pgn.."^[transformFX", + }, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + { -8/16, -8/16, -2/16, 8/16, 8/16, 2/16}, + }, + }, + + after_place_node = function(pos, placer) + local meta = minetest.get_meta(pos) + local node = minetest.get_node(pos) + local number = tubelib.add_node(pos, node.name) + tubelib.set_data(number, "facedir", node.param2) + meta:set_string("number", number) + meta:set_string("infotext", "Tubelib Door Block "..number) + meta:set_string("formspec", "size[3,2]".. + "label[0,0;Select texture]".. + "dropdown[0,0.5;3;type;"..sTextures..";1]".. + "button_exit[0.5,1.5;2,1;exit;Save]") + end, + + on_receive_fields = function(pos, formname, fields, player) + local meta = minetest.get_meta(pos) + local node = minetest.get_node(pos) + local number = meta:get_string("number") + if fields.type then + node.name = "tubelib_addons2:doorblock"..tTextures[fields.type] + minetest.swap_node(pos, node) + tubelib.set_data(number, "texture", node.name) + end + if fields.exit then + meta:set_string("formspec", nil) + end + end, + + after_dig_node = function(pos, oldnode, oldmetadata) + tubelib.remove_node(pos) + end, + + --drawtype = "glasslike", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + sounds = default.node_sound_stone_defaults(), + groups = {cracky=2, choppy=2, crumbly=2, not_in_creative_inventory=not_in_inventory}, + is_ground_content = false, + drop = "tubelib_addons2:doorblock1", + }) + + not_in_inventory = 1 + + tubelib.register_node("tubelib_addons2:doorblock"..idx, {}, { + on_recv_message = function(pos, topic, payload) + local node = minetest.get_node(pos) + if topic == "on" then + minetest.remove_node(pos) + elseif topic == "off" then + local num = tubelib.get_node_number(pos) + local name = tubelib.get_data(num, "texture") or "tubelib_addons2:doorblock1" + if name then + minetest.add_node(pos, {name=name, + paramtype2="facedir", + param2=tubelib.get_data(num, "facedir")}) + end + end + end, + }) +end + +minetest.register_craft({ + output = "tubelib_addons2:doorblock1", + recipe = { + {"tubelib:wlanchip", "", ""}, + {"group:wood", "", ""}, + {"", "",""}, + }, +}) diff --git a/tubelib_addons2/gateblock.lua b/tubelib_addons2/gateblock.lua new file mode 100644 index 0000000..bd169c4 --- /dev/null +++ b/tubelib_addons2/gateblock.lua @@ -0,0 +1,99 @@ +--[[ + + Tubelib Addons 2 + ================ + + Copyright (C) 2017 Joachim Stolberg + + LGPLv2.1+ + See LICENSE.txt for more information + + gateblock.lua: + +]]-- + +local sTextures = "Wood,Aspen Wood,Jungle Wood,Pine Wood,".. + "Cobblestone,Sandstone,Stone,Desert Sandstone,".. + "Copper,Steel,Tin,Coral,".. + "Glas,Obsidian Glas,Gate Wood" + +local tTextures = { + ["Wood"]=1, ["Aspen Wood"]=2, ["Jungle Wood"]=3, ["Pine Wood"]=4, + ["Cobblestone"]=5, ["Sandstone"]=6, ["Stone"]=7, ["Desert Sandstone"]=8, + ["Copper"]=9, ["Steel"]=10, ["Tin"]=11, ["Coral"]=12, + ["Glas"]=13, ["Obsidian Glas"]=14, ["Gate Wood"]=15, +} + +local tPgns = {"default_wood.png", "default_aspen_wood.png", "default_junglewood.png", "default_pine_wood.png", + "default_cobble.png", "default_sandstone.png", "default_stone.png", "default_desert_sandstone.png", + "default_copper_block.png", "default_steel_block.png", "default_tin_block.png", "default_coral_skeleton.png", + "default_glass.png", "default_obsidian_glass.png", "tubelib_addon2_gate.png"} + +for idx,pgn in ipairs(tPgns) do + minetest.register_node("tubelib_addons2:gateblock"..idx, { + description = "Tubelib Gate Block", + tiles = {pgn}, + after_place_node = function(pos, placer) + local meta = minetest.get_meta(pos) + local node = minetest.get_node(pos) + local number = tubelib.add_node(pos, node.name) + meta:set_string("infotext", "Tubelib Gate Block "..number) + meta:set_string("formspec", "size[3,2]".. + "label[0,0;Select texture]".. + "dropdown[0,0.5;3;type;"..sTextures..";15]".. + "button_exit[0.5,1.5;2,1;exit;Save]") + end, + + on_receive_fields = function(pos, formname, fields, player) + local meta = minetest.get_meta(pos) + local node = minetest.get_node(pos) + if fields.type then + node.name = "tubelib_addons2:gateblock"..tTextures[fields.type] + minetest.swap_node(pos, node) + tubelib.add_node(pos, node.name) + end + if fields.exit then + meta:set_string("formspec", nil) + end + end, + + after_dig_node = function(pos) + tubelib.remove_node(pos) + end, + + drawtype = "glasslike", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + sounds = default.node_sound_stone_defaults(), + groups = {cracky=2, choppy=2, crumbly=2, not_in_creative_inventory = idx==15 and 0 or 1}, + is_ground_content = false, + drop = "tubelib_addons2:gateblock15", + }) + + not_in_inventory = 1 + + tubelib.register_node("tubelib_addons2:gateblock"..idx, {}, { + on_recv_message = function(pos, topic, payload) + local node = minetest.get_node(pos) + if topic == "on" then + minetest.remove_node(pos) + elseif topic == "off" then + local num = tubelib.get_node_number(pos) + local info = tubelib.get_node_info(num) + if info then + minetest.add_node(pos, {name=info.name}) + end + end + end, + }) +end + +minetest.register_craft({ + output = "tubelib_addons2:gateblock15", + recipe = { + {"group:wood", "", ""}, + {"tubelib:wlanchip", "", ""}, + {"", "",""}, + }, +}) diff --git a/tubelib_addons2/init.lua b/tubelib_addons2/init.lua new file mode 100644 index 0000000..9055eb9 --- /dev/null +++ b/tubelib_addons2/init.lua @@ -0,0 +1,38 @@ +--[[ + + Tubelib Addons 2 + ================ + + Copyright (C) 2017 Joachim Stolberg + + LGPLv2.1+ + See LICENSE.txt for more information + + History: + 2017-10-05 v0.01 first version + 2017-10-06 v0.02 Timer added + 2017-10-08 v0.03 Repeater added + 2017-10-08 v0.04 Mesecons Converter and Programmer Tool added + 2017-10-16 v0.05 Color Lamp added + 2017-10-29 v0.06 WLAN Chip + Access Lock added, recipes changed + 2017-10-29 v0.07 WLAN Chip removed, recipes changed + +]]-- + + + +if tubelib.version >= 0.10 then + dofile(minetest.get_modpath("tubelib_addons2") .. "/timer.lua") + dofile(minetest.get_modpath("tubelib_addons2") .. "/sequencer.lua") + dofile(minetest.get_modpath("tubelib_addons2") .. "/gateblock.lua") + dofile(minetest.get_modpath("tubelib_addons2") .. "/doorblock.lua") + dofile(minetest.get_modpath("tubelib_addons2") .. "/colorlamp.lua") + dofile(minetest.get_modpath("tubelib_addons2") .. "/repeater.lua") + dofile(minetest.get_modpath("tubelib_addons2") .. "/programmer.lua") + dofile(minetest.get_modpath("tubelib_addons2") .. "/accesscontrol.lua") + if mesecon then + dofile(minetest.get_modpath("tubelib_addons2") .. "/mesecons_converter.lua") + end +else + print("[Tubelib] Version 0.10+ of Tubelib Mod is required!") +end \ No newline at end of file diff --git a/tubelib_addons2/mesecons_converter.lua b/tubelib_addons2/mesecons_converter.lua new file mode 100644 index 0000000..55fe883 --- /dev/null +++ b/tubelib_addons2/mesecons_converter.lua @@ -0,0 +1,145 @@ +--[[ + + Tubelib Addons 2 + ================ + + Copyright (C) 2017 Joachim Stolberg + + LGPLv2.1+ + See LICENSE.txt for more information + + mesecons_converter.lua: + +]]-- + +local OVER_LOAD_MAX = 5 + +local function formspec(meta) + local numbers = meta:get_string("numbers") + return "size[7,5]".. + "field[0.5,2;6,1;number;Destination node numbers;"..numbers.."]" .. + "button_exit[1,3;2,1;exit;Save]" +end + +local function send_message(pos, topic, payload) + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + local numbers = meta:get_string("numbers") + local overload_cnt = meta:get_int("overload_cnt") + 1 + meta:set_int("overload_cnt", overload_cnt) + if overload_cnt > OVER_LOAD_MAX then + local own_number = meta:get_string("own_number") + meta:set_string("infotext", "Tubelib Mesecons Converter "..own_number..": fault (overloaded)") + minetest.get_node_timer(pos):stop() + return + else + if topic == "change" then + topic = meta:get_string("state") == "on" and "off" or "on" + end + tubelib.send_message(numbers, owner, nil, topic, payload) + end + meta:set_string("state", topic) +end + +minetest.register_node("tubelib_addons2:mesecons_converter", { + description = "Tubelib Mesecons Converter", + tiles = { + -- up, down, right, left, back, front + 'tubelib_front.png', + 'tubelib_front.png', + 'tubelib_front.png^tubelib_addon2_mesecons_converter.png', + }, + + after_place_node = function(pos, placer) + local meta = minetest.get_meta(pos) + local own_number = tubelib.add_node(pos, "tubelib_addons2:mesecons_converter") + meta:set_string("own_number", own_number) + meta:set_string("formspec", formspec(meta)) + meta:set_string("infotext", "Tubelib Mesecons Converter "..own_number..": not connected") + meta:set_string("owner", placer:get_player_name()) + -- send_message is called 24 times after the node is placed + meta:set_int("overload_cnt", -24) + minetest.get_node_timer(pos):start(1) + end, + + on_receive_fields = function(pos, formname, fields, player) + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + if owner ~= player:get_player_name() then + return + end + + if tubelib.check_numbers(fields.number) then + meta:set_string("numbers", fields.number) + local own_number = meta:get_string("own_number") + meta:set_string("infotext", "Tubelib Mesecons Converter "..own_number..": connected with "..fields.number) + meta:set_string("formspec", formspec(meta)) + end + + local timer = minetest.get_node_timer(pos) + if not timer:is_started() then + timer:start(1) + end + end, + + mesecons = { + receptor = { + state = mesecon.state.off, + rules = mesecon.rules.default, + }, + effector = { + rules = mesecon.rules.default, + action_on = function (pos, node) + send_message(pos, "on", nil) + end, + action_off = function (pos, node) + send_message(pos, "off", nil) + end, + action_change = function (pos, node) + send_message(pos, "change", nil) + end, + } + }, + + on_timer = function(pos,elapsed) + local meta = minetest.get_meta(pos) + meta:set_int("overload_cnt", 0) + return true + end, + + after_dig_node = function(pos) + tubelib.remove_node(pos) + end, + + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + groups = {choppy=2, cracky=2, crumbly=2}, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), +}) + + +minetest.register_craft({ + output = "tubelib_addons2:mesecons_converter", + recipe = { + {"tubelib:button", "mesecons:wire_00000000_off"}, + }, +}) + +tubelib.register_node("tubelib_addons2:mesecons_converter", {}, { + on_recv_message = function(pos, topic, payload) + if topic == "on" then + mesecon.receptor_on(pos, mesecon.rules.default) + elseif topic == "off" then + mesecon.receptor_off(pos, mesecon.rules.default) + elseif topic == "set_numbers" then + local meta = minetest.get_meta(pos) + local own_number = meta:get_string("own_number") + meta:set_string("infotext", "Tubelib Mesecons Converter "..own_number..": connected with "..payload) + meta:set_string("numbers", payload) + meta:set_string("formspec", formspec(meta)) + end + return true + end, +}) diff --git a/tubelib_addons2/mod.conf b/tubelib_addons2/mod.conf new file mode 100644 index 0000000..c4fb3c7 --- /dev/null +++ b/tubelib_addons2/mod.conf @@ -0,0 +1 @@ +name=tubelib_addons2 diff --git a/tubelib_addons2/programmer.lua b/tubelib_addons2/programmer.lua new file mode 100644 index 0000000..a237db0 --- /dev/null +++ b/tubelib_addons2/programmer.lua @@ -0,0 +1,91 @@ +--[[ + + Tubelib Addons 2 + ================ + + Copyright (C) 2017 Joachim Stolberg + + LGPLv2.1+ + See LICENSE.txt for more information + + programmer.lua: + +]]-- + +local function join_to_string(tbl) + t = {} + for key,_ in pairs(tbl) do + t[#t + 1] = key .. " " + end + -- remove the last blank + return string.sub(table.concat(t), 1, -2) +end + +local function reset_programmer(itemstack, user, pointed_thing) + user:set_attribute("tubelib_prog_numbers", nil) + minetest.chat_send_player(user:get_player_name(), "[Tubelib Programmer] programmer reset") + return itemstack +end + +local function read_number(itemstack, user, pointed_thing) + local pos = pointed_thing.under + if pos then + local number = tubelib.get_node_number(pos) + if number then + local numbers = minetest.deserialize(user:get_attribute("tubelib_prog_numbers")) or {} + numbers[number] = true + user:set_attribute("tubelib_prog_numbers", minetest.serialize(numbers)) + minetest.chat_send_player(user:get_player_name(), "[Tubelib Programmer] number "..number.." read") + end + else + return reset_programmer(itemstack, user, pointed_thing) + end + return itemstack +end + +local function program_numbers(itemstack, placer, pointed_thing) + local pos = pointed_thing.under + if pos then + local meta = minetest.get_meta(pos) + local node_number = tubelib.get_node_number(pos) + local numbers = minetest.deserialize(placer:get_attribute("tubelib_prog_numbers")) or {} + placer:set_attribute("tubelib_prog_numbers", nil) + local text = join_to_string(numbers) + local player_name = placer:get_player_name() + if meta and meta:get_string("owner") ~= player_name then + minetest.chat_send_player(player_name, "[Tubelib Programmer] foreign or unknown node!") + return itemstack + end + local res = tubelib.send_request(node_number, "set_numbers", text) + if res == true then + minetest.chat_send_player(player_name, "[Tubelib Programmer] node programmed!") + else + minetest.chat_send_player(player_name, "[Tubelib Programmer] Error: programmer not supported!") + end + return itemstack + else + return reset_programmer(itemstack, placer, pointed_thing) + end +end + +minetest.register_craftitem("tubelib_addons2:programmer", { + description = "Tubelib Programmer", + inventory_image = "tubelib_addons2_programmer.png", + stack_max = 1, + wield_image = "tubelib_addons2_programmer_wield.png", + groups = {cracky=1, book=1}, + -- left mouse button = program + on_use = program_numbers, + on_secondary_use = reset_programmer, + -- right mouse button = read + on_place = read_number, +}) + +minetest.register_craft({ + output = "tubelib_addons2:programmer", + recipe = { + {"", "default:steel_ingot", ""}, + {"", "tubelib:wlanchip", ""}, + {"", "dye:red", ""}, + }, +}) diff --git a/tubelib_addons2/repeater.lua b/tubelib_addons2/repeater.lua new file mode 100644 index 0000000..07d5873 --- /dev/null +++ b/tubelib_addons2/repeater.lua @@ -0,0 +1,114 @@ +--[[ + + Tubelib Addons 2 + ================ + + Copyright (C) 2017 Joachim Stolberg + + LGPLv2.1+ + See LICENSE.txt for more information + + repeater.lua: + +]]-- + +local OVER_LOAD_MAX = 5 + +local function formspec(meta) + local numbers = meta:get_string("numbers") + return "size[7,5]".. + "field[0.5,2;6,1;number;Destination node numbers;"..numbers.."]" .. + "button_exit[1,3;2,1;exit;Save]" +end + +minetest.register_node("tubelib_addons2:repeater", { + description = "Tubelib Repeater", + tiles = { + -- up, down, right, left, back, front + 'tubelib_front.png', + 'tubelib_front.png', + 'tubelib_front.png^tubelib_addon2_repeater.png', + }, + + after_place_node = function(pos, placer) + local meta = minetest.get_meta(pos) + local own_number = tubelib.add_node(pos, "tubelib_addons2:repeater") + meta:set_string("own_number", own_number) + meta:set_string("formspec", formspec(meta)) + meta:set_string("infotext", "Tubelib Repeater "..own_number..": not connected") + meta:set_string("owner", placer:get_player_name()) + meta:set_int("overload_cnt", 0) + minetest.get_node_timer(pos):start(1) + end, + + on_receive_fields = function(pos, formname, fields, player) + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + if owner ~= player:get_player_name() then + return + end + + if tubelib.check_numbers(fields.number) then + meta:set_string("numbers", fields.number) + local own_number = meta:get_string("own_number") + meta:set_string("infotext", "Tubelib Repeater "..own_number..": connected with "..fields.number) + meta:set_string("formspec", formspec(meta)) + end + + local timer = minetest.get_node_timer(pos) + if not timer:is_started() then + timer:start(1) + end + end, + + on_timer = function(pos,elapsed) + local meta = minetest.get_meta(pos) + meta:set_int("overload_cnt", 0) + return true + end, + + after_dig_node = function(pos) + tubelib.remove_node(pos) + end, + + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + groups = {choppy=2, cracky=2, crumbly=2}, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), +}) + + +minetest.register_craft({ + output = "tubelib_addons2:repeater", + recipe = { + {"", "group:wood", ""}, + {"tubelib:wlanchip", "", "tubelib:wlanchip"}, + {"", "group:wood", ""}, + }, +}) + +tubelib.register_node("tubelib_addons2:repeater", {}, { + on_recv_message = function(pos, topic, payload) + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + local numbers = meta:get_string("numbers") + local overload_cnt = meta:get_int("overload_cnt") + 1 + meta:set_int("overload_cnt", overload_cnt) + if overload_cnt > OVER_LOAD_MAX then + local own_number = meta:get_string("own_number") + meta:set_string("infotext", "Tubelib Repeater "..own_number..": fault (overloaded)") + minetest.get_node_timer(pos):stop() + return false + elseif topic == "set_numbers" then + local own_number = meta:get_string("own_number") + meta:set_string("infotext", "Tubelib Repeater "..own_number..": connected with "..payload) + meta:set_string("numbers", payload) + meta:set_string("formspec", formspec(meta)) + return true + else + return tubelib.send_message(numbers, owner, nil, topic, payload) + end + end, +}) diff --git a/tubelib_addons2/sequencer.lua b/tubelib_addons2/sequencer.lua new file mode 100644 index 0000000..b01ffb8 --- /dev/null +++ b/tubelib_addons2/sequencer.lua @@ -0,0 +1,260 @@ +--[[ + + Tubelib Addons 2 + ================ + + Copyright (C) 2017 Joachim Stolberg + + LGPLv2.1+ + See LICENSE.txt for more information + + sequencer.lua: + +]]-- + +local RUNNING_STATE = 1 +local STOP_STATE = 0 +local NUM_SLOTS = 8 + +local sAction = ",on,off" +local kvAction = {[""]=1, ["on"]=2, ["off"]=3} +local tAction = {nil, "on", "off"} + +local function formspec(state, rules, endless) + endless = endless == 1 and "true" or "false" + local tbl = {"size[8,9.2]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "label[0,0;Number(s)]label[2.1,0;Command]label[6.4,0;Offset/s]"} + + for idx, rule in ipairs(rules) do + tbl[#tbl+1] = "field[0.2,"..(-0.2+idx)..";2,1;num"..idx..";;"..(rule.num or "").."]" + tbl[#tbl+1] = "dropdown[2,"..(-0.4+idx)..";3.9,1;act"..idx..";"..sAction..";"..(rule.act or "").."]" + tbl[#tbl+1] = "field[6.2,"..(-0.2+idx)..";2,1;offs"..idx..";;"..(rule.offs or "").."]" + end + tbl[#tbl+1] = "checkbox[0,8.5;endless;Run endless;"..endless.."]" + tbl[#tbl+1] = "image_button[5,8.5;1,1;".. tubelib.state_button(state) ..";button;]" + tbl[#tbl+1] = "button[7,8.5;1.5,1;help;help]" + + return table.concat(tbl) +end + +local function formspec_help() + return "size[8,9.2]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "label[2,0;Sequencer Help]".. + "label[0,1;Define a sequence of commands\nto control other machines.]".. + "label[0,2.2;Numbers(s) are the node numbers,\nthe command shall sent to.]".. + "label[0,3.4;The commands 'on'/'off' are used\n for machines and other nodes.]".. + "label[0,4.6;Offset is the time to the\nnext line in seconds (0..999).]".. + "label[0,5.8;If endless is set, the Sequencer\nrestarts again and again.]".. + "label[0,7;The command ' ' does nothing,\nonly consuming the offset time.]".. + "button[3,8;2,1;exit;close]" +end + +local function stop_the_sequencer(pos) + local node = minetest.get_node(pos) + local meta = minetest.get_meta(pos) + local number = meta:get_string("number") + meta:set_int("running", STOP_STATE) + meta:set_string("infotext", "Tubelib Sequencer "..number..": stopped") + local rules = minetest.deserialize(meta:get_string("rules")) + local endless = meta:get_int("endless") or 0 + meta:set_string("formspec", formspec(tubelib.STOPPED, rules, endless)) + minetest.get_node_timer(pos):stop() + return false +end + +local function get_next_slot(idx, rules, endless) + idx = idx + 1 + if idx <= #rules and rules[idx].offs ~= "" and rules[idx].num ~= "" then + return idx + elseif endless == 1 then + return 1 + end + return nil +end + +local function restart_timer(pos, time) + local timer = minetest.get_node_timer(pos) + if timer:is_started() then + timer:stop() + end + if type(time) == "number" then + timer:start(time) + end +end + +local function check_rules(pos, elapsed) + local meta = minetest.get_meta(pos) + local rules = minetest.deserialize(meta:get_string("rules")) + if rules then + local running = meta:get_int("running") + local index = meta:get_int("index") or 1 + local number = meta:get_string("number") + local endless = meta:get_int("endless") or 0 + local placer_name = meta:get_string("placer_name") + while true do -- process all rules as long as offs == 0 + local rule = rules[index] + local offs = rules[index].offs + tubelib.send_message(rule.num, placer_name, nil, tAction[rule.act], number) + index = get_next_slot(index, rules, endless) + if index ~= nil and offs ~= nil and running == 1 then + -- after the last rule a pause with 2 or more sec is required + if index == 1 and offs < 2 then + offs = 2 + end + meta:set_string("infotext", "Tubelib Sequencer "..number..": running ("..index.."/"..NUM_SLOTS..")") + meta:set_int("index", index) + if offs > 0 then + minetest.after(0, restart_timer, pos, offs) + return false + end + else + return stop_the_sequencer(pos) + end + end + end + return false +end + +local function start_the_sequencer(pos) + local node = minetest.get_node(pos) + local meta = minetest.get_meta(pos) + local number = meta:get_string("number") + meta:set_int("running", 1) + meta:set_int("index", 1) + meta:set_string("infotext", "Tubelib Sequencer "..number..": running (1/"..NUM_SLOTS..")") + local rules = minetest.deserialize(meta:get_string("rules")) + local endless = meta:get_int("endless") or 0 + meta:set_string("formspec", formspec(tubelib.RUNNING, rules, endless)) + minetest.get_node_timer(pos):start(0.1) + return false +end + +local function on_receive_fields(pos, formname, fields, player) + local meta = minetest.get_meta(pos) + local running = meta:get_int("running") + if minetest.is_protected(pos, player:get_player_name()) then + return + end + + if fields.help ~= nil then + meta:set_string("formspec", formspec_help()) + return + end + + local endless = meta:get_int("endless") or 0 + if fields.endless ~= nil then + endless = fields.endless == "true" and 1 or 0 + meta:set_int("index", 1) + end + meta:set_int("endless", endless) + + local rules = minetest.deserialize(meta:get_string("rules")) + if fields.exit ~= nil then + meta:set_string("formspec", formspec(tubelib.state(running), rules, endless)) + return + end + + for idx = 1,NUM_SLOTS do + if fields["offs"..idx] ~= nil then + rules[idx].offs = tonumber(fields["offs"..idx]) or "" + end + if fields["num"..idx] ~= nil and tubelib.check_numbers(fields["num"..idx]) then + rules[idx].num = fields["num"..idx] + end + if fields["act"..idx] ~= nil then + rules[idx].act = kvAction[fields["act"..idx]] + end + end + meta:set_string("rules", minetest.serialize(rules)) + + if fields.button ~= nil then + if running > STOP_STATE then + stop_the_sequencer(pos) + else + start_the_sequencer(pos) + end + elseif fields.num1 ~= nil then -- any other change? + stop_the_sequencer(pos) + else + local endless = meta:get_int("endless") or 0 + meta:set_string("formspec", formspec(tubelib.state(running), rules, endless)) + end +end + +minetest.register_node("tubelib_addons2:sequencer", { + description = "Tubelib Sequencer", + tiles = { + -- up, down, right, left, back, front + 'tubelib_front.png', + 'tubelib_front.png', + 'tubelib_front.png^tubelib_addons2_sequencer.png', + }, + + after_place_node = function(pos, placer) + local meta = minetest.get_meta(pos) + local number = tubelib.add_node(pos, "tubelib_addons2:sequencer") + local rules = {} + for idx = 1,NUM_SLOTS do + rules[idx] = {offs = "", num = "", act = 1} + end + meta:set_string("placer_name", placer:get_player_name()) + meta:set_string("rules", minetest.serialize(rules)) + meta:set_string("number", number) + meta:set_int("index", 1) + meta:set_int("endless", 0) + meta:get_int("running", STOP_STATE) + meta:set_string("formspec", formspec(tubelib.STOPPED, rules, 0)) + end, + + on_receive_fields = on_receive_fields, + + on_dig = function(pos, node, puncher, pointed_thing) + if minetest.is_protected(pos, puncher:get_player_name()) then + return + end + local meta = minetest.get_meta(pos) + local running = meta:get_int("running") + if running ~= 1 then + minetest.node_dig(pos, node, puncher, pointed_thing) + tubelib.remove_node(pos) + end + end, + + on_timer = check_rules, + + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + groups = {choppy=2, cracky=2, crumbly=2}, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), +}) + + +minetest.register_craft({ + output = "tubelib_addons2:sequencer", + recipe = { + {"group:wood", "group:wood", ""}, + {"default:mese_crystal", "tubelib:wlanchip", ""}, + {"group:wood", "group:wood", ""}, + }, +}) + +tubelib.register_node("tubelib_addons2:sequencer", {}, { + on_recv_message = function(pos, topic, payload) + local node = minetest.get_node(pos) + if topic == "on" then + start_the_sequencer(pos) + elseif topic == "off" then + -- do not stop immediately + local meta = minetest.get_meta(pos) + meta:set_int("endless", 0) + end + end, +}) \ No newline at end of file diff --git a/tubelib_addons2/sounds/tubelib_addons2_door.ogg b/tubelib_addons2/sounds/tubelib_addons2_door.ogg new file mode 100644 index 0000000000000000000000000000000000000000..976cc3886b98f118d525c8110b85823d5503fa17 GIT binary patch literal 8380 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 SUR_z3aizJpdhezA;C}&ZOX*Yq literal 0 HcmV?d00001 diff --git a/tubelib_addons2/textures/tubelib_addon2.png b/tubelib_addons2/textures/tubelib_addon2.png new file mode 100644 index 0000000000000000000000000000000000000000..2b6cd42a14a9d71cde73b401a7e6d1b02b43bffb GIT binary patch literal 483929 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�(W315 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 z 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