From 682174684e1a73bc194e9002b62229986a1f3e01 Mon Sep 17 00:00:00 2001 From: brownson Date: Sun, 1 Apr 2012 21:21:34 +0200 Subject: [PATCH 01/77] Entertainment - Corrected Bug in Demo Configuration, adapted Errorhandling --- .../Default/Entertainment_Configuration.inc.php | 4 ++-- .../Examples/Entertainment_AudioMaxConfiguration.inc.php | 9 ++++----- .../Examples/Entertainment_DemoConfiguration.inc.php | 7 ------- .../Entertainment_Installation.ips.php | 6 ++++++ 4 files changed, 12 insertions(+), 14 deletions(-) diff --git a/IPSLibrary/config/modules/Entertainment/Default/Entertainment_Configuration.inc.php b/IPSLibrary/config/modules/Entertainment/Default/Entertainment_Configuration.inc.php index 09a3cf0..682a7f7 100644 --- a/IPSLibrary/config/modules/Entertainment/Default/Entertainment_Configuration.inc.php +++ b/IPSLibrary/config/modules/Entertainment/Default/Entertainment_Configuration.inc.php @@ -65,7 +65,7 @@ function get_CommunicationConfiguration () { // Defintion of Room Configuration // ======================================================================================================================== function get_RoomConfiguration () { - return array ( + return array ( ); } @@ -81,7 +81,7 @@ function get_DeviceConfiguration () { // Defintion of Source Configuration // ======================================================================================================================== function get_SourceConfiguration() { - return array ( + return array ( ); } diff --git a/IPSLibrary/config/modules/Entertainment/Examples/Entertainment_AudioMaxConfiguration.inc.php b/IPSLibrary/config/modules/Entertainment/Examples/Entertainment_AudioMaxConfiguration.inc.php index df0bc72..96e06e1 100644 --- a/IPSLibrary/config/modules/Entertainment/Examples/Entertainment_AudioMaxConfiguration.inc.php +++ b/IPSLibrary/config/modules/Entertainment/Examples/Entertainment_AudioMaxConfiguration.inc.php @@ -14,9 +14,9 @@ * @file Entertainment_AudioMaxConfiguration.inc.php * @author Andreas Brauneis * @version - * Version 2.50.1, 31.01.2012
+ * Version 2.50.1, 31.01.2012
* - */ + */ IPSUtils_Include ("AudioMax.inc.php", "IPSLibrary::app::hardware::AudioMax"); IPSUtils_Include ("Entertainment_Constants.inc.php", "IPSLibrary::app::modules::Entertainment"); @@ -25,7 +25,7 @@ define ("c_Comm_WinLIRC", "WinLIRC"); define ("c_Comm_Onkyo", "Onkyo"); - define ("c_Comm_NetPlayer", "NetPlayer"); + define ("c_Comm_NetPlayer", "NetPlayer"); define ("c_Comm_AudioMax", "AudioMax"); define ("c_Room_1", "Raum 1"); @@ -71,9 +71,8 @@ function get_CommunicationConfiguration () { ), c_Comm_AudioMax => array ( c_Property_ScriptSnd => 'Entertainment_InterfaceIPSComponentAVControl.inc.php', - //c_Property_ScriptRcv => 'Entertainment_InterfaceIPSComponentAVControl.inc.php', c_Property_FunctionSnd => 'Entertainment_IPSComponent_SendData', - c_Property_ComponentParams => '', + c_Property_ComponentParams => 'IPSComponentAVControl_AudioMax,null', ), ); } diff --git a/IPSLibrary/config/modules/Entertainment/Examples/Entertainment_DemoConfiguration.inc.php b/IPSLibrary/config/modules/Entertainment/Examples/Entertainment_DemoConfiguration.inc.php index e6429cb..eb8bf39 100644 --- a/IPSLibrary/config/modules/Entertainment/Examples/Entertainment_DemoConfiguration.inc.php +++ b/IPSLibrary/config/modules/Entertainment/Examples/Entertainment_DemoConfiguration.inc.php @@ -73,13 +73,6 @@ function get_CommunicationConfiguration () { c_Property_Instance => 'Program.IPSLibrary.data.modules.NetPlayer', c_Property_Variables => 'MobileControl,RemoteControl,ControlType,Power', ), - c_Comm_AudioMax => array ( - c_Property_ScriptSnd => 'Entertainment_InterfaceAudioMaxSnd.inc.php', - c_Property_ScriptRcv => 'Entertainment_InterfaceAudioMaxRcv.ips.php', - c_Property_FunctionSnd => 'Entertainment_AudioMax_SendData', - //c_Property_Instance => 'Program.AudioMax.AudioMax_Server', - //c_Property_Variables => 'LAST_COMMAND', - ), ); } diff --git a/IPSLibrary/install/InstallationScripts/Entertainment_Installation.ips.php b/IPSLibrary/install/InstallationScripts/Entertainment_Installation.ips.php index 24d5e93..be673e3 100644 --- a/IPSLibrary/install/InstallationScripts/Entertainment_Installation.ips.php +++ b/IPSLibrary/install/InstallationScripts/Entertainment_Installation.ips.php @@ -128,6 +128,9 @@ // Generate Roomes and Controls echo "--- Create Roomes and Controls ---------------------------------------------------------\n"; $RoomData = get_RoomConfiguration(); + if (count($RoomData)==0) { + throw new Exception('No Roomes defined, see Demo Configuration File for an Example!!!'); + } $RoomOrder = 100; foreach($RoomData as $RoomName => $RoomProperties) { $RoomId = CreateCategory($RoomName, $CategoryIdRoomes, $RoomOrder); @@ -143,6 +146,9 @@ // Generate Devices and Controls echo "--- Create Devices and Controls --------------------------------------------------------\n"; $DeviceData = get_DeviceConfiguration(); + if (count($DeviceData)==0) { + throw new Exception('No Devices defined, see Demo Configuration File for an Example!!!'); + } $DeviceOrder = 100; foreach($DeviceData as $DeviceName => $DeviceProperties) { $DeviceId = CreateCategory($DeviceName, $CategoryIdDevices, $DeviceOrder); From 9bf6164b25b372d1a6b86bcb0b4734ec125c8dc2 Mon Sep 17 00:00:00 2001 From: brownson Date: Sat, 7 Apr 2012 22:27:34 +0200 Subject: [PATCH 02/77] IPSComponent - Fixed Event Handling for AudioMax --- .../IPSComponentAVControl_AudioMax.class.php | 32 +++++++++++-------- ...IPSModuleAVControl_Entertainment.class.php | 18 +++++------ 2 files changed, 28 insertions(+), 22 deletions(-) diff --git a/IPSLibrary/app/core/IPSComponent/IPSComponentAVControl/IPSComponentAVControl_AudioMax.class.php b/IPSLibrary/app/core/IPSComponent/IPSComponentAVControl/IPSComponentAVControl_AudioMax.class.php index e60d2dc..b5fb417 100644 --- a/IPSLibrary/app/core/IPSComponent/IPSComponentAVControl/IPSComponentAVControl_AudioMax.class.php +++ b/IPSLibrary/app/core/IPSComponent/IPSComponentAVControl/IPSComponentAVControl_AudioMax.class.php @@ -34,8 +34,8 @@ class IPSComponentAVControl_AudioMax extends IPSComponentAVControl{ */ public function __construct($instanceId) { $this->instanceId = (int)$instanceId; - if ($this->instanceId==null) { - $this->instanceId = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.hardware.AudioMax.AudioMax_Server'); + if ($this->instanceId==null) { + $this->instanceId = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.hardware.AudioMax.AudioMax_Server'); } } @@ -49,7 +49,7 @@ public function __construct($instanceId) { * @return string Parameter String des IPSComponent Object */ public function GetComponentParams() { - return get_class(this).','.$this->instanceId; + return get_class($this).','.$this->instanceId; } @@ -76,7 +76,10 @@ public function HandleEvent($variable, $value, IPSModuleAVControl $module) { case AM_CMD_POWER: case AM_CMD_ROOM: for ($roomId=0;$roomIdinstanceId) and AudioMax_GetRoomPower($this->instanceId, $roomId); + $status = '0'; + if (AudioMax_GetMainPower($this->instanceId) and AudioMax_GetRoomPower($this->instanceId, $roomId)) { + $status='1'; + } $module->SyncPower($status, $roomId, $this); } break; @@ -87,19 +90,22 @@ public function HandleEvent($variable, $value, IPSModuleAVControl $module) { $value = $parameters[5]; switch($function) { case AM_FNC_BALANCE: - $module->SyncBalance($value, $roomId, $this); + $module->SyncBalance($value * 100 / AM_VAL_BALANCE_MAX, $roomId, $this); break; case AM_FNC_VOLUME: - $module->SyncVolume($value, $roomId, $this); + $module->SyncVolume($value * 100 / AM_VAL_VOLUME_MAX, $roomId, $this); + break; + case AM_FNC_MUTE: + $module->SyncMute($value, $roomId, $this); break; case AM_FNC_TREBLE: - $module->SyncTreble($value, $roomId, $this); + $module->SyncTreble($value * 100 / AM_VAL_TREBLE_MAX, $roomId, $this); break; case AM_FNC_MIDDLE: - $module->SyncMiddle($value, $roomId, $this); + $module->SyncMiddle($value * 100 / AM_VAL_MIDDLE_MAX, $roomId, $this); break; case AM_FNC_BASS: - $module->SyncBass($value, $roomId, $this); + $module->SyncBass($value * 100 / AM_VAL_BASS_MAX, $roomId, $this); break; case AM_FNC_INPUTSELECT: $module->SyncSource($value, $roomId, $this); @@ -124,16 +130,16 @@ public function HandleEvent($variable, $value, IPSModuleAVControl $module) { * @param boolean $value Wert für Power (Wertebereich false=Off, true=On) */ public function SetPower($outputId, $value) { - AudioMax_SetRoomPower($this->instanceId, $outputId, $value); + AudioMax_SetRoomPower($this->instanceId, $outputId, $value); if ($value) { - AudioMax_SetMainPower($this->instanceId, $value); + AudioMax_SetMainPower($this->instanceId, $value); } else { - $allRoomesOff = true; + $allRoomesOff = true; for ($roomId=0;$roomIdinstanceId, $roomId); } if ($allRoomesOff) { - AudioMax_SetMainPower($this->instanceId, $value); + AudioMax_SetMainPower($this->instanceId, $value); } } } diff --git a/IPSLibrary/app/core/IPSComponent/IPSComponentAVControl/IPSModuleAVControl_Entertainment.class.php b/IPSLibrary/app/core/IPSComponent/IPSComponentAVControl/IPSModuleAVControl_Entertainment.class.php index dc19275..1cc91f4 100644 --- a/IPSLibrary/app/core/IPSComponent/IPSComponentAVControl/IPSModuleAVControl_Entertainment.class.php +++ b/IPSLibrary/app/core/IPSComponent/IPSComponentAVControl/IPSModuleAVControl_Entertainment.class.php @@ -7,7 +7,7 @@ * */ - IPSUtils_Include ("Entertainment_InterfaceIPSComponent.inc.php", "IPSLibrary::app::modules::Entertainment"); + IPSUtils_Include ("Entertainment_InterfaceIPSComponentAVControl.inc.php", "IPSLibrary::app::modules::Entertainment"); IPSUtils_Include ('IPSModuleAVControl.class.php', 'IPSLibrary::app::core::IPSComponent::IPSComponentAVControl'); /** @@ -41,7 +41,7 @@ public function __construct() { * @param IPSComponentAVControl $component Component Object das einen Werte synchronisieren will */ public function SyncPower($value, $outputId, IPSComponentAVControl $component) { - Entertainment_IPSComponent_ReceiveData($component->GetComponentParams(), 'SetPower', $output, $value); + Entertainment_IPSComponent_ReceiveData($component->GetComponentParams(), 'SetPower', $outputId, $value); } /** @@ -54,7 +54,7 @@ public function SyncPower($value, $outputId, IPSComponentAVControl $component) { * @param IPSComponentAVControl $component Component Object das einen Werte synchronisieren will */ public function SyncVolume($value, $outputId, IPSComponentAVControl $component) { - Entertainment_IPSComponent_ReceiveData($component->GetComponentParams(), 'SetVolume', $output, $value); + Entertainment_IPSComponent_ReceiveData($component->GetComponentParams(), 'SetVolume', $outputId, $value); } /** @@ -67,7 +67,7 @@ public function SyncVolume($value, $outputId, IPSComponentAVControl $component) * @param IPSComponentAVControl $component Component Object das einen Werte synchronisieren will */ public function SyncMute($value, $outputId, IPSComponentAVControl $component) { - Entertainment_IPSComponent_ReceiveData($component->GetComponentParams(), 'SetMute', $output, $value); + Entertainment_IPSComponent_ReceiveData($component->GetComponentParams(), 'SetMute', $outputId, $value); } /** @@ -80,7 +80,7 @@ public function SyncMute($value, $outputId, IPSComponentAVControl $component) { * @param IPSComponentAVControl $component Component Object das einen Werte synchronisieren will */ public function SyncBalance($value, $outputId, IPSComponentAVControl $component) { - Entertainment_IPSComponent_ReceiveData($component->GetComponentParams(), 'SetBalance', $output, $value); + Entertainment_IPSComponent_ReceiveData($component->GetComponentParams(), 'SetBalance', $outputId, $value); } /** @@ -93,7 +93,7 @@ public function SyncBalance($value, $outputId, IPSComponentAVControl $component) * @param IPSComponentAVControl $component Component Object das einen Werte synchronisieren will */ public function SyncSource($value, $outputId, IPSComponentAVControl $component) { - Entertainment_IPSComponent_ReceiveData($component->GetComponentParams(), 'SetSource', $output, $value); + Entertainment_IPSComponent_ReceiveData($component->GetComponentParams(), 'SetSource', $outputId, $value); } /** @@ -106,7 +106,7 @@ public function SyncSource($value, $outputId, IPSComponentAVControl $component) * @param IPSComponentAVControl $component Component Object das einen Werte synchronisieren will */ public function SyncTreble($value, $outputId, IPSComponentAVControl $component) { - Entertainment_IPSComponent_ReceiveData($component->GetComponentParams(), 'SetTreble', $output, $value); + Entertainment_IPSComponent_ReceiveData($component->GetComponentParams(), 'SetTreble', $outputId, $value); } /** @@ -119,7 +119,7 @@ public function SyncTreble($value, $outputId, IPSComponentAVControl $component) * @param IPSComponentAVControl $component Component Object das einen Werte synchronisieren will */ public function SyncMiddle($value, $outputId, IPSComponentAVControl $component) { - Entertainment_IPSComponent_ReceiveData($component->GetComponentParams(), 'SetMiddle', $output, $value); + Entertainment_IPSComponent_ReceiveData($component->GetComponentParams(), 'SetMiddle', $outputId, $value); } /** @@ -132,7 +132,7 @@ public function SyncMiddle($value, $outputId, IPSComponentAVControl $component) * @param IPSComponentAVControl $component Component Object das einen Werte synchronisieren will */ public function SyncBass($value, $outputId, IPSComponentAVControl $component) { - Entertainment_IPSComponent_ReceiveData($component->GetComponentParams(), 'SetBass', $output, $value); + Entertainment_IPSComponent_ReceiveData($component->GetComponentParams(), 'SetBass', $outputId, $value); } From a39e1dd4a4ae2211cdfe9fa945a7139516865d9a Mon Sep 17 00:00:00 2001 From: brownson Date: Sat, 7 Apr 2012 22:28:17 +0200 Subject: [PATCH 03/77] Entertainment - Adapted AudioMax Settings --- ...ent_InterfaceIPSComponentAVControl.inc.php | 11 +++---- ...ntertainment_AudioMaxConfiguration.inc.php | 32 +++++++++---------- .../Entertainment_Installation.ips.php | 9 ++++++ 3 files changed, 30 insertions(+), 22 deletions(-) diff --git a/IPSLibrary/app/modules/Entertainment/Entertainment_InterfaceIPSComponentAVControl.inc.php b/IPSLibrary/app/modules/Entertainment/Entertainment_InterfaceIPSComponentAVControl.inc.php index b9413cf..94933d9 100644 --- a/IPSLibrary/app/modules/Entertainment/Entertainment_InterfaceIPSComponentAVControl.inc.php +++ b/IPSLibrary/app/modules/Entertainment/Entertainment_InterfaceIPSComponentAVControl.inc.php @@ -16,18 +16,17 @@ IPSUtils_Include ('IPSComponent.class.php', 'IPSLibrary::app::core::IPSComponent'); - // --------------------------------------------------------------------------------------------------------------------------- - function Entertainment_AutoConfigureMessageHandler() { - } - // --------------------------------------------------------------------------------------------------------------------------- function Entertainment_IPSComponent_ReceiveData($componentParams, $function, $output, $value) { $interfaceList = get_CommunicationConfiguration(); $interface = ''; foreach ($interfaceList as $interfaceName=>$interfaceData) { - if ($interfaceData[c_Property_ComponentParams]==$componentParams) { - $interface = $interfaceName; + if (array_key_exists(c_Property_ComponentParams, $interfaceData)) { + if ($interfaceData[c_Property_ComponentParams]==$componentParams or + $interfaceData[c_Property_ComponentParams]=='IPSComponentAVControl_AudioMax,null') { + $interface = $interfaceName; + } } } Entertainment_ReceiveData(array($interface, $function, $output, $value), c_MessageType_Info); diff --git a/IPSLibrary/config/modules/Entertainment/Examples/Entertainment_AudioMaxConfiguration.inc.php b/IPSLibrary/config/modules/Entertainment/Examples/Entertainment_AudioMaxConfiguration.inc.php index 96e06e1..15045dd 100644 --- a/IPSLibrary/config/modules/Entertainment/Examples/Entertainment_AudioMaxConfiguration.inc.php +++ b/IPSLibrary/config/modules/Entertainment/Examples/Entertainment_AudioMaxConfiguration.inc.php @@ -156,13 +156,13 @@ function get_DeviceConfiguration () { c_Property_Name => 'AudioMax 1', c_Control_DevicePower => array( c_Property_Name => 'Power', - c_Property_CommPowerOn => array(c_Comm_AudioMax, 'SetPower', '0', true), - c_Property_CommPowerOff => array(c_Comm_AudioMax, 'SetPower', '0', false), + c_Property_CommPowerOn => array(c_Comm_AudioMax, 'SetPower', '0', '1'), + c_Property_CommPowerOff => array(c_Comm_AudioMax, 'SetPower', '0', '0'), ), c_Control_Muting => array( c_Property_Name => 'Mute', - c_Property_CommMuteOn => array(c_Comm_AudioMax, 'SetMute', '0', true), - c_Property_CommMuteOff => array(c_Comm_AudioMax, 'SetMute', '0', false), + c_Property_CommMuteOn => array(c_Comm_AudioMax, 'SetMute', '0', '1'), + c_Property_CommMuteOff => array(c_Comm_AudioMax, 'SetMute', '0', '0'), ), c_Control_Volume => array( c_Property_Name => 'Volume', c_Property_MinValue => 0, c_Property_MaxValue => 100, c_Property_Limit => 80, @@ -190,13 +190,13 @@ function get_DeviceConfiguration () { c_Property_Name => 'AudioMax 2', c_Control_DevicePower => array( c_Property_Name => 'Power', - c_Property_CommPowerOn => array(c_Comm_AudioMax, 'SetPower', '1', true), - c_Property_CommPowerOff => array(c_Comm_AudioMax, 'SetPower', '1', false), + c_Property_CommPowerOn => array(c_Comm_AudioMax, 'SetPower', '1', '1'), + c_Property_CommPowerOff => array(c_Comm_AudioMax, 'SetPower', '1', '0'), ), c_Control_Muting => array( c_Property_Name => 'Mute', - c_Property_CommMuteOn => array(c_Comm_AudioMax, 'SetMute', '1', true), - c_Property_CommMuteOff => array(c_Comm_AudioMax, 'SetMute', '1', false), + c_Property_CommMuteOn => array(c_Comm_AudioMax, 'SetMute', '1', '1'), + c_Property_CommMuteOff => array(c_Comm_AudioMax, 'SetMute', '1', '0'), ), c_Control_Volume => array( c_Property_Name => 'Volume', c_Property_MinValue => 0, c_Property_MaxValue => 100, c_Property_Limit => 80, @@ -224,13 +224,13 @@ function get_DeviceConfiguration () { c_Property_Name => 'AudioMax 3', c_Control_DevicePower => array( c_Property_Name => 'Power', - c_Property_CommPowerOn => array(c_Comm_AudioMax, 'SetPower', '2', true), - c_Property_CommPowerOff => array(c_Comm_AudioMax, 'SetPower', '2', false), + c_Property_CommPowerOn => array(c_Comm_AudioMax, 'SetPower', '2', '1'), + c_Property_CommPowerOff => array(c_Comm_AudioMax, 'SetPower', '2', '0'), ), c_Control_Muting => array( c_Property_Name => 'Mute', - c_Property_CommMuteOn => array(c_Comm_AudioMax, 'SetMute', '2', true), - c_Property_CommMuteOff => array(c_Comm_AudioMax, 'SetMute', '2', false), + c_Property_CommMuteOn => array(c_Comm_AudioMax, 'SetMute', '2', '1'), + c_Property_CommMuteOff => array(c_Comm_AudioMax, 'SetMute', '2', '0'), ), c_Control_Volume => array( c_Property_Name => 'Volume', c_Property_MinValue => 0, c_Property_MaxValue => 100, c_Property_Limit => 80, @@ -258,13 +258,13 @@ function get_DeviceConfiguration () { c_Property_Name => 'AudioMax 4', c_Control_DevicePower => array( c_Property_Name => 'Power', - c_Property_CommPowerOn => array(c_Comm_AudioMax, 'SetPower', '3', true), - c_Property_CommPowerOff => array(c_Comm_AudioMax, 'SetPower', '3', false), + c_Property_CommPowerOn => array(c_Comm_AudioMax, 'SetPower', '3', '1'), + c_Property_CommPowerOff => array(c_Comm_AudioMax, 'SetPower', '3', '0'), ), c_Control_Muting => array( c_Property_Name => 'Mute', - c_Property_CommMuteOn => array(c_Comm_AudioMax, 'SetMute', '3', true), - c_Property_CommMuteOff => array(c_Comm_AudioMax, 'SetMute', '3', false), + c_Property_CommMuteOn => array(c_Comm_AudioMax, 'SetMute', '3', '1'), + c_Property_CommMuteOff => array(c_Comm_AudioMax, 'SetMute', '3', '0'), ), c_Control_Volume => array( c_Property_Name => 'Volume', c_Property_MinValue => 0, c_Property_MaxValue => 100, c_Property_Limit => 80, diff --git a/IPSLibrary/install/InstallationScripts/Entertainment_Installation.ips.php b/IPSLibrary/install/InstallationScripts/Entertainment_Installation.ips.php index be673e3..62edcec 100644 --- a/IPSLibrary/install/InstallationScripts/Entertainment_Installation.ips.php +++ b/IPSLibrary/install/InstallationScripts/Entertainment_Installation.ips.php @@ -39,6 +39,7 @@ $moduleManager->VersionHandler()->CheckModuleVersion('IPSLogger','2.50.1'); IPSUtils_Include ("IPSInstaller.inc.php", "IPSLibrary::install::IPSInstaller"); + IPSUtils_Include ("IPSMessageHandler.class.php", "IPSLibrary::app::core::IPSMessageHandler"); IPSUtils_Include ("Entertainment_Configuration.inc.php", "IPSLibrary::config::modules::Entertainment"); $WFC10_Enabled = $moduleManager->GetConfigValue('Enabled', 'WFC10'); @@ -174,6 +175,14 @@ } } + if (class_exists('AudioMax_Server')) { + echo 'Register AudioMax for MessageHandler'; + $instanceIdAudioMax = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.hardware.AudioMax.AudioMax_Server'); + $instanceIdVariable = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.hardware.AudioMax.AudioMax_Server.LAST_COMMAND'); + IPSMessageHandler::RegisterOnChangeEvent($instanceIdVariable/*Var*/, 'IPSComponentAVControl_AudioMax,'.$instanceIdAudioMax, 'IPSModuleAVControl_Entertainment'); + } + + // ---------------------------------------------------------------------------------------------------------------------------- // Webfront Definition // ---------------------------------------------------------------------------------------------------------------------------- From 9d5f3afea40bca24a0697e6b7b3fa2ece10582d2 Mon Sep 17 00:00:00 2001 From: brownson Date: Sat, 7 Apr 2012 22:28:52 +0200 Subject: [PATCH 04/77] AudioMax - Initial Commit to IPSLibrary --- .../app/hardware/AudioMax/AudioMax.inc.php | 340 ++++++++++++++++++ .../AudioMax/AudioMax_ChangeSettings.ips.php | 100 ++++++ .../AudioMax/AudioMax_Constants.inc.php | 156 ++++++++ .../AudioMax/AudioMax_KeepAlive.ips.php | 67 ++++ .../AudioMax/AudioMax_Receive.ips.php | 41 +++ .../Default/AudioMax_Configuration.inc.php | 73 ++++ .../DownloadListFiles/AudioMax_FileList.ini | 25 ++ .../InitializationFiles/Default/AudioMax.ini | 5 + .../AudioMax_Installation.ips.php | 216 +++++++++++ 9 files changed, 1023 insertions(+) create mode 100644 IPSLibrary/app/hardware/AudioMax/AudioMax.inc.php create mode 100644 IPSLibrary/app/hardware/AudioMax/AudioMax_ChangeSettings.ips.php create mode 100644 IPSLibrary/app/hardware/AudioMax/AudioMax_Constants.inc.php create mode 100644 IPSLibrary/app/hardware/AudioMax/AudioMax_KeepAlive.ips.php create mode 100644 IPSLibrary/app/hardware/AudioMax/AudioMax_Receive.ips.php create mode 100644 IPSLibrary/config/hardware/AudioMax/Default/AudioMax_Configuration.inc.php create mode 100644 IPSLibrary/install/DownloadListFiles/AudioMax_FileList.ini create mode 100644 IPSLibrary/install/InitializationFiles/Default/AudioMax.ini create mode 100644 IPSLibrary/install/InstallationScripts/AudioMax_Installation.ips.php diff --git a/IPSLibrary/app/hardware/AudioMax/AudioMax.inc.php b/IPSLibrary/app/hardware/AudioMax/AudioMax.inc.php new file mode 100644 index 0000000..588a6ef --- /dev/null +++ b/IPSLibrary/app/hardware/AudioMax/AudioMax.inc.php @@ -0,0 +1,340 @@ + + * + * Dieses File kann von anderen Scripts per INCLUDE eingebunden werden und enthält Funktionen + * um alle AudioMax Funktionen bequem per Funktionsaufruf steueren zu können. + * + */ + + include_once 'AudioMax_Server.class.php'; + + /** + * Server Ein- und Ausschalten + * + * @param int $instanceId ID des AudioMax Servers + * @param string $value TRUE oder '1' für An, FALSE oder '0' für Aus + * @return boolean Funktions Ergebnis, TRUE für OK, FALSE für Fehler + */ + function AudioMax_SetMainPower($instanceId, $value) { + $server = AudioMax_GetServer($instanceId); + return $server->SendData(AM_TYP_SET, AM_CMD_POWER, null, null, $value); + } + + /** + * Status ServerPower lesen + * + * @param int $instanceId ID des AudioMax Servers + * @return boolean Power Status + */ + function AudioMax_GetMainPower($instanceId) { + $server = AudioMax_GetServer($instanceId); + return $server->SendData(AM_TYP_GET, AM_CMD_POWER, null, null, null); + } + + /** + * Ein- und Ausschalten eines einzelnen Raumes + * + * @param int $instanceId ID des AudioMax Servers + * @param int $roomId Raum der geändert werden soll (0-15) + * @param string $value TRUE oder '1' für An, FALSE oder '0' für Aus + * @return boolean Funktions Ergebnis, TRUE für OK, FALSE für Fehler + */ + function AudioMax_SetRoomPower($instanceId, $roomId, $value) { + $server = AudioMax_GetServer($instanceId); + return $server->SendData(AM_TYP_SET, AM_CMD_ROOM, $roomId, null, $value); + } + + /** + * Status Raumverstärker lesen + * + * @param int $instanceId ID des AudioMax Servers + * @param int $roomId Raum der geändert werden soll (0-15) + * @return boolean Status Raumverstärker + */ + function AudioMax_GetRoomPower($instanceId, $roomId) { + $server = AudioMax_GetServer($instanceId); + return $server->SendData(AM_TYP_GET, AM_CMD_ROOM, $roomId, null, null); + } + + /** + * Auswahl des Eingangs, der für einen bestimmten Raum verwendet werden soll + * + * @param int $instanceId ID des AudioMax Servers + * @param int $roomId Raum der geändert werden soll (0-15) + * @param int $value Eingang (1-4) + * @return boolean Funktions Ergebnis, TRUE für OK, FALSE für Fehler + */ + function AudioMax_SetInputSelect($instanceId, $roomId, $value) { + $server = AudioMax_GetServer($instanceId); + return $server->SendData(AM_TYP_SET, AM_CMD_AUDIO, $roomId, AM_FNC_INPUTSELECT, $value); + } + + /** + * Eingangswahlschalter lesen + * + * @param int $instanceId ID des AudioMax Servers + * @param int $roomId Raum der geändert werden soll (0-15) + * @return int Eingangswahl (1-4) + */ + function AudioMax_GetInputSelect($instanceId, $roomId) { + $server = AudioMax_GetServer($instanceId); + return $server->SendData(AM_TYP_GET, AM_CMD_AUDIO, $roomId, AM_FNC_INPUTSELECT, null)+1; + } + + /** + * Eingangsverstärkung setzen + * + * @param int $instanceId ID des AudioMax Servers + * @param int $roomId Raum der geändert werden soll (1-4) + * @param int $value Verstärkung (0-15) + * @return boolean Funktions Ergebnis, TRUE für OK, FALSE für Fehler + */ + function AudioMax_SetInputGain($instanceId, $roomId, $value) { + $server = AudioMax_GetServer($instanceId); + return $server->SendData(AM_TYP_SET, AM_CMD_AUDIO, $roomId, AM_FNC_INPUTGAIN, $value); + } + + /** + * Eingangsverstärkung lesen + * + * @param int $instanceId ID des AudioMax Servers + * @param int $roomId Raum der geändert werden soll (1-4) + * @return int Verstärkung (0-15) + */ + function AudioMax_GetInputGain($instanceId, $roomId) { + $server = AudioMax_GetServer($instanceId); + return $server->SendData(AM_TYP_GET, AM_CMD_AUDIO, $roomId, AM_FNC_INPUTGAIN, null); + } + + /** + * Laustärke setzen + * + * @param int $instanceId ID des AudioMax Servers + * @param int $roomId Raum der geändert werden soll (1-4) + * @param int $value Lautstärke (0-40) + * @return boolean Funktions Ergebnis, TRUE für OK, FALSE für Fehler + */ + function AudioMax_SetVolume($instanceId, $roomId, $value) { + $server = AudioMax_GetServer($instanceId); + return $server->SendData(AM_TYP_SET, AM_CMD_AUDIO, $roomId, AM_FNC_VOLUME, AM_VAL_VOLUME_MAX-$value); + } + + /** + * Laustärke lesen + * + * @param int $instanceId ID des AudioMax Servers + * @param int $roomId Raum der geändert werden soll (1-4) + * @return int Lautstärke (0-40) + */ + function AudioMax_GetVolume($instanceId, $roomId) { + $server = AudioMax_GetServer($instanceId); + return $server->SendData(AM_TYP_GET, AM_CMD_AUDIO, $roomId, AM_FNC_VOLUME, null); + } + + /** + * Muting setzen + * + * @param int $instanceId ID des AudioMax Servers + * @param int $roomId Raum der geändert werden soll (0-15) + * @param string $value TRUE oder '1' für An, FALSE oder '0' für Aus + * @return boolean Funktions Ergebnis, TRUE für OK, FALSE für Fehler + */ + function AudioMax_SetMute($instanceId, $roomId, $value) { + $server = AudioMax_GetServer($instanceId); + return $server->SendData(AM_TYP_SET, AM_CMD_AUDIO, $roomId, AM_FNC_MUTE, $value); + } + + /** + * Status Muting lesen + * + * @param int $instanceId ID des AudioMax Servers + * @param int $roomId Raum der geändert werden soll (0-15) + * @return boolean Status Muting + */ + function AudioMax_GetMute($instanceId, $roomId) { + $server = AudioMax_GetServer($instanceId); + return $server->SendData(AM_TYP_GET, AM_CMD_AUDIO, $roomId, AM_FNC_MUTE, null); + } + + /** + * Balance setzen + * + * @param int $instanceId ID des AudioMax Servers + * @param int $roomId Raum der geändert werden soll (0-15) + * @param int $value Wert Balance (0-15) + * @return boolean Funktions Ergebnis, TRUE für OK, FALSE für Fehler + */ + function AudioMax_SetBalance($instanceId, $roomId, $value) { + $server = AudioMax_GetServer($instanceId); + return $server->SendData(AM_TYP_SET, AM_CMD_AUDIO, $roomId, AM_FNC_BALANCE, $value); + } + + /** + * Balance lesen + * + * @param int $instanceId ID des AudioMax Servers + * @param int $roomId Raum der geändert werden soll (0-15) + * @return int Wert Balance (0-15) + */ + function AudioMax_GetBalance($instanceId, $roomId) { + $server = AudioMax_GetServer($instanceId); + return $server->SendData(AM_TYP_GET, AM_CMD_AUDIO, $roomId, AM_FNC_BALANCE, null); + } + + /** + * Einstellung Höhen + * + * @param int $instanceId ID des AudioMax Servers + * @param int $roomId Raum der geändert werden soll (0-15) + * @param int $value Wert Höhen (0-15) + * @return boolean Funktions Ergebnis, TRUE für OK, FALSE für Fehler + */ + function AudioMax_SetTreble($instanceId, $roomId, $value) { + $server = AudioMax_GetServer($instanceId); + return $server->SendData(AM_TYP_SET, AM_CMD_AUDIO, $roomId, AM_FNC_TREBLE, $value); + } + + /** + * Einstellung Höhen lesen + * + * @param int $instanceId ID des AudioMax Servers + * @param int $roomId Raum der geändert werden soll (0-15) + * @return int Wert Höhen (0-15) + */ + function AudioMax_GetTreble($instanceId, $roomId) { + $server = AudioMax_GetServer($instanceId); + return $server->SendData(AM_TYP_GET, AM_CMD_AUDIO, $roomId, AM_FNC_TREBLE, null); + } + + /** + * Einstellung Mitten + * + * @param int $instanceId ID des AudioMax Servers + * @param int $roomId Raum der geändert werden soll (0-15) + * @param int $value Wert Mitten (0-15) + * @return boolean Funktions Ergebnis, TRUE für OK, FALSE für Fehler + */ + function AudioMax_SetMiddle($instanceId, $roomId, $value) { + $server = AudioMax_GetServer($instanceId); + return $server->SendData(AM_TYP_SET, AM_CMD_AUDIO, $roomId, AM_FNC_MIDDLE, $value); + } + + /** + * Einstellung Mitten lesen + * + * @param int $instanceId ID des AudioMax Servers + * @param int $roomId Raum der geändert werden soll (0-15) + * @return int Wert Mitten (0-15) + */ + function AudioMax_GetMiddle($instanceId, $roomId) { + $server = AudioMax_GetServer($instanceId); + return $server->SendData(AM_TYP_GET, AM_CMD_AUDIO, $roomId, AM_FNC_MIDDLE, null); + } + + /** + * Einstellung Bass setzen + * + * @param int $instanceId ID des AudioMax Servers + * @param int $roomId Raum der geändert werden soll (0-15) + * @param int $value Wert Bass (0-15) + * @return boolean Funktions Ergebnis, TRUE für OK, FALSE für Fehler + */ + function AudioMax_SetBass($instanceId, $roomId, $value) { + $server = AudioMax_GetServer($instanceId); + return $server->SendData(AM_TYP_SET, AM_CMD_AUDIO, $roomId, AM_FNC_BASS, $value); + } + + /** + * Einstellung Bass lesen + * + * @param int $instanceId ID des AudioMax Servers + * @param int $roomId Raum der geändert werden soll (0-15) + * @return int Wert Bass (0-15) + */ + function AudioMax_GetBass($instanceId, $roomId) { + $server = AudioMax_GetServer($instanceId); + return $server->SendData(AM_TYP_GET, AM_CMD_AUDIO, $roomId, AM_FNC_BASS, null); + } + + /** + * Set Mode + * + * @param int $instanceId ID des AudioMax Servers + * @param int $mode Mode (0-4) + * @param int $value Wert (0 oder 1) + * @return boolean Funktions Ergebnis, TRUE für OK, FALSE für Fehler + */ + function AudioMax_SetMode($instanceId, $mode, $value) { + $server = AudioMax_GetServer($instanceId); + return $server->SendData(AM_TYP_SET, AM_CMD_MODE, null, $mode, $value); + } + + /** + * Get Mode + * + * @param int $instanceId ID des AudioMax Servers + * @param int $mode Mode (0-4) + * @return integer Mode Value (0 oder 1) + */ + function AudioMax_GetMode($instanceId, $mode) { + $server = AudioMax_GetServer($instanceId); + return $server->SendData(AM_TYP_SET, AM_CMD_MODE, null, $mode, null); + } + + /** + * Set Text + * + * @param int $instanceId ID des AudioMax Servers + * @param int $mode Mode (0-4) + * @param string $value Array mit Texten + * @return boolean Funktions Ergebnis, TRUE für OK, FALSE für Fehler + */ + function AudioMax_SetText($instanceId, $text1, $text2=null, $text3=null) { + $server = AudioMax_GetServer($instanceId); + return $server->SendData(AM_TYP_SET, AM_CMD_TEXT, null, null, $text1.AM_COM_SEPARATOR.$text2.AM_COM_SEPARATOR.$text3); + } + + /** + * Get Server + * + * @param int $instanceId ID des AudioMax Servers + * @return AudioMax AudioMax Server Object + */ + function AudioMax_GetServer($instanceId) { + if ($instanceId==null) { + $instanceId = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.hardware.AudioMax.AudioMax_Server'); + } + return new AudioMax_Server($instanceId); + } + + + /** @}*/ + + +?> \ No newline at end of file diff --git a/IPSLibrary/app/hardware/AudioMax/AudioMax_ChangeSettings.ips.php b/IPSLibrary/app/hardware/AudioMax/AudioMax_ChangeSettings.ips.php new file mode 100644 index 0000000..427971a --- /dev/null +++ b/IPSLibrary/app/hardware/AudioMax/AudioMax_ChangeSettings.ips.php @@ -0,0 +1,100 @@ + + * AudioMax Action Script + * + * Dieses Script ist als Action Script für diverse AudioMax Variablen hinterlegt, um + * eine Änderung über das WebFront zu ermöglichen. + * + */ + + include_once 'AudioMax.inc.php'; + + $variableId = $IPS_VARIABLE; + $variableValue = $IPS_VALUE; + $variableIdent = IPS_GetIdent($variableId); + + $serverId = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.hardware.AudioMax.AudioMax_Server'); + $instanceId = IPS_GetParent($variableId); + if ($serverId<>$instanceId) { + $roomIds = GetValue(IPS_GetObjectIDByIdent(AM_VAR_ROOMIDS, $serverId)); + $roomList = array_flip(explode(',',$roomIds)); + $roomId = $roomList[$instanceId]; + } + + switch($variableIdent) { + case AM_VAR_CONNECTION: + $server = new AudioMax_Server($serverId); + $server->SetConnection($variableValue); + break; + + case AM_VAR_MODESERVERDEBUG: + AudioMax_SetMode($serverId, AM_MOD_SERVERDEBUG, $variableValue); + break; + case AM_VAR_MODEPOWERREQUEST: + AudioMax_SetMode($serverId, AM_MOD_POWERREQUEST, $variableValue); + break; + case AM_VAR_MODEEMULATESTATE: + SetValue(IPS_GetObjectIDByIdent(AM_VAR_MODEEMULATESTATE, $instanceId), $variableValue); + break; + + case AM_VAR_MAINPOWER: + AudioMax_SetMainPower($serverId, $variableValue); + break; + + case AM_VAR_ROOMPOWER: + AudioMax_SetRoomPower($serverId , $roomId, $variableValue); + break; + case AM_VAR_BALANCE: + AudioMax_SetBalance($serverId , $roomId, $variableValue); + break; + case AM_VAR_VOLUME: + AudioMax_SetVolume($serverId , $roomId, $variableValue); + break; + case AM_VAR_MUTE: + AudioMax_SetMute($serverId , $roomId, $variableValue); + break; + case AM_VAR_TREBLE: + AudioMax_SetTreble($serverId , $roomId, $variableValue); + break; + case AM_VAR_MIDDLE: + AudioMax_SetMiddle($serverId , $roomId, $variableValue); + break; + case AM_VAR_BASS: + AudioMax_SetBass($serverId , $roomId, $variableValue); + break; + case AM_VAR_INPUTSELECT: + AudioMax_SetInputSelect($serverId , $roomId, $variableValue); + break; + case AM_VAR_INPUTGAIN: + AudioMax_SetInputGain($serverId , $roomId, $variableValue); + break; + default: + break; + } + ; + /** @}*/ +?> \ No newline at end of file diff --git a/IPSLibrary/app/hardware/AudioMax/AudioMax_Constants.inc.php b/IPSLibrary/app/hardware/AudioMax/AudioMax_Constants.inc.php new file mode 100644 index 0000000..5bc5ba8 --- /dev/null +++ b/IPSLibrary/app/hardware/AudioMax/AudioMax_Constants.inc.php @@ -0,0 +1,156 @@ + + * + * Prinzipieller Aufbau der Kommunikation: + * CommandType Command Room Function Value + * + * Jeder Kommando Teil wird durch einen Separator voneinander getrennt (BLANK). Terminiert + * wird jedes Kommando von einem CR. + * + * Examples: + * set svr pwr 1\ AudioMax Server Ein + * evt svr kal 0\ Keep alive Message von Server + * set svr roo 00 1\ Raumverstärker einschalten + * set svr aud 00 inp 1\ Eingang 2 in Raum 1 + * set svr aud 02 vol 08\ Volume Raum 2 auf 08 + * set svr aud 04 bas 14\ Bass Raum 4 auf 14 + * + * + */ + define ('AM_COM_SEPARATOR', ';'); + define ('AM_COM_TERMINATOR', chr(13)); + define ('AM_COM_KEEPALIVE', 60); + define ('AM_COM_MAXRETRIES', 3); + define ('AM_COM_WAIT', 50); + define ('AM_COM_MAXWAIT', 500); + + // Kommunikations Kommando Typen + define ('AM_TYP_SET', 'SET'); + define ('AM_TYP_GET', 'GET'); + define ('AM_TYP_EVT', 'EVT'); + + // Kommunikations Device Type + define ('AM_DEV_SERVER', 'SVR'); + + + // Kommunikations Kommandos + define ('AM_CMD_POWER', 'PWR'); + define ('AM_CMD_KEEPALIVE', 'KAL'); + define ('AM_CMD_AUDIO', 'AUD'); + define ('AM_CMD_ROOM', 'ROO'); + define ('AM_CMD_TEXT', 'TEX'); + define ('AM_CMD_MODE', 'MOD'); + + // Kommunikations Actions + define ('AM_FNC_POWERREQUEST', 'PUS'); + define ('AM_FNC_BALANCE', 'BAL'); + define ('AM_FNC_VOLUME', 'VOL'); + define ('AM_FNC_MUTE', 'MUT'); + define ('AM_FNC_TREBLE', 'TRE'); + define ('AM_FNC_MIDDLE', 'MID'); + define ('AM_FNC_BASS', 'BAS'); + define ('AM_FNC_INPUTSELECT', 'INP'); + define ('AM_FNC_INPUTGAIN', 'GAI'); + + // Modes + define ('AM_MOD_ACKNOWLEDGE', 0); + define ('AM_MOD_SERVERDEBUG', 1); + define ('AM_MOD_POWERREQUEST', 2); + define ('AM_MOD_KEEPALIVE', 3); + + // Max, Min und Default Werte + define ('AM_VAL_ROOM_MIN', 0); + define ('AM_VAL_ROOM_MAX', 15); + + define ('AM_VAL_BOOLEAN_FALSE', 0); + define ('AM_VAL_BOOLEAN_TRUE', 1); + + define ('AM_VAL_VOLUME_MIN', 0); + define ('AM_VAL_VOLUME_MAX', 40); + define ('AM_VAL_VOLUME_DEFAULT', 20); + + define ('AM_VAL_MUTE_OFF', AM_VAL_BOOLEAN_FALSE); + define ('AM_VAL_MUTE_ON', AM_VAL_BOOLEAN_TRUE); + define ('AM_VAL_MUTE_DEFAULT', AM_VAL_BOOLEAN_FALSE); + + define ('AM_VAL_TREBLE_MIN', 0); + define ('AM_VAL_TREBLE_MAX', 15); + define ('AM_VAL_TREBLE_DEFAULT', 7); + + define ('AM_VAL_BALANCE_MIN', 0); + define ('AM_VAL_BALANCE_MAX', 15); + define ('AM_VAL_BALANCE_DEFAULT', 0); + + define ('AM_VAL_MIDDLE_MIN', 0); + define ('AM_VAL_MIDDLE_MAX', 15); + define ('AM_VAL_MIDDLE_DEFAULT', 7); + + define ('AM_VAL_BASS_MIN', 0); + define ('AM_VAL_BASS_MAX', 15); + define ('AM_VAL_BASS_DEFAULT', 7); + + define ('AM_VAL_INPUTSELECT_MIN', 0); + define ('AM_VAL_INPUTSELECT_MAX', 3); + define ('AM_VAL_INPUTSELECT_DEFAULT', 0); + + define ('AM_VAL_INPUTGAIN_MIN', 0); + define ('AM_VAL_INPUTGAIN_MAX', 15); + define ('AM_VAL_INPUTGAIN_DEFAULT', 7); + + define ('AM_VAL_POWER_OFF', AM_VAL_BOOLEAN_FALSE); + define ('AM_VAL_POWER_ON', AM_VAL_BOOLEAN_TRUE); + define ('AM_VAL_POWER_DEFAULT', AM_VAL_BOOLEAN_FALSE); + + + // Variablen Definitionen + define ('AM_VAR_MAINPOWER', 'MAINPOWER'); + define ('AM_VAR_BUSY', 'BUSY'); + define ('AM_VAR_CONNECTION', 'CONNECTION'); + define ('AM_VAR_ROOMCOUNT', 'ROOM_COUNT'); + define ('AM_VAR_ROOMIDS', 'ROOM_IDS'); + define ('AM_VAR_PORTID', 'PORT_ID'); + define ('AM_VAR_KEEPALIVEFLAG', 'KEEP_ALIVE_FLAG'); + define ('AM_VAR_KEEPALIVESTATUS', 'KEEP_ALIVE_STATUS'); + define ('AM_VAR_LASTERROR', 'LAST_ERROR'); + define ('AM_VAR_LASTCOMMAND', 'LAST_COMMAND'); + define ('AM_VAR_INPUTBUFFER', 'INPUT_BUFFER'); + define ('AM_VAR_MODESERVERDEBUG', 'MODE_SERVERDEBUG'); + define ('AM_VAR_MODEPOWERREQUEST', 'MODE_POWERREQUEST'); + define ('AM_VAR_MODEEMULATESTATE', 'MODE_EMULATESTATE'); + + define ('AM_VAR_ROOMPOWER', 'ROOMPOWER'); + define ('AM_VAR_BALANCE', 'BALANCE'); + define ('AM_VAR_MUTE', 'MUTE'); + define ('AM_VAR_VOLUME', 'VOLUME'); + define ('AM_VAR_TREBLE', 'TREBLE'); + define ('AM_VAR_MIDDLE', 'MIDDLE'); + define ('AM_VAR_BASS', 'BASS'); + define ('AM_VAR_INPUTSELECT', 'INPUTSELECT'); + define ('AM_VAR_INPUTGAIN', 'INPUTGAIN'); + /** @}*/ +?> \ No newline at end of file diff --git a/IPSLibrary/app/hardware/AudioMax/AudioMax_KeepAlive.ips.php b/IPSLibrary/app/hardware/AudioMax/AudioMax_KeepAlive.ips.php new file mode 100644 index 0000000..5eb94d1 --- /dev/null +++ b/IPSLibrary/app/hardware/AudioMax/AudioMax_KeepAlive.ips.php @@ -0,0 +1,67 @@ + + * + * Dieses Script wird von Timer aufgerufen, um die "Keep Alive" Message zu senden bzw. + * das Signal vom Server zu überprüfen. + * + */ + + include_once 'AudioMax.inc.php'; + + $serverId = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.hardware.AudioMax.AudioMax_Server'); + $eventName = IPS_GetName($_IPS['EVENT']); + + if ($eventName == 'SendAlive') { + $server = new AudioMax_Server($serverId); + $server->SendData(AM_TYP_SET, AM_CMD_KEEPALIVE, null, null, '0'); + } + + if ($eventName == 'CheckAlive') { + // Read KeepAliveStatus: false=Error, true=OK + $id_Status = IPS_GetVariableIDByName(AM_VAR_KEEPALIVESTATUS, $serverId); + + // Read KeepAliveFlag: false=Waiting, true=OK + $id_Flag = IPS_GetVariableIDByName(AM_VAR_KEEPALIVEFLAG, $serverId); + + // Flag still Not assigned and Status=OK -> Status=Error + if (!GetValue($id_Flag) and GetValue($id_Status)) { + SetValue($id_Status, false); + IPSLogger_Wrn(__file__, 'AudioMax KeepAlive Message Stream is broken'); + + // Flag OK and Status Error -> Status=OK + } else if (GetValue($id_Flag) and !GetValue($id_Status)) { + SetValue($id_Status, true); + IPSLogger_Inf(__file__, 'AudioMax KeepAlive Message Stream is online again'); + + } else { + } + + // KeepAliveFlag=Waiting + SetValue($id_Flag, false); + } + + /** @}*/ +?> \ No newline at end of file diff --git a/IPSLibrary/app/hardware/AudioMax/AudioMax_Receive.ips.php b/IPSLibrary/app/hardware/AudioMax/AudioMax_Receive.ips.php new file mode 100644 index 0000000..58138a7 --- /dev/null +++ b/IPSLibrary/app/hardware/AudioMax/AudioMax_Receive.ips.php @@ -0,0 +1,41 @@ + + * + */ + + include_once 'AudioMax.inc.php'; + + $msg = $_IPS['VALUE']; + + $serverId = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.hardware.AudioMax.AudioMax_Server'); + + $server = new AudioMax_Server($serverId); + $server->ReceiveData($msg); + + /** @}*/ + +?> \ No newline at end of file diff --git a/IPSLibrary/config/hardware/AudioMax/Default/AudioMax_Configuration.inc.php b/IPSLibrary/config/hardware/AudioMax/Default/AudioMax_Configuration.inc.php new file mode 100644 index 0000000..7cfd42a --- /dev/null +++ b/IPSLibrary/config/hardware/AudioMax/Default/AudioMax_Configuration.inc.php @@ -0,0 +1,73 @@ + + * + * Änderung an den Parametern erfordert ein erneutes Ausführen des Installations Scripts. + * + */ + + /** + * Definition des COM Ports, der für den AudioMax Server verwendet wird. Ist der Port gesetzt, + * wird die Register Variable, die Splitter Instanz und die IO Instanz automatisch angelegt. + * + * Alternativ kann die zu verwendende Register Variable auch nachträglich in der erzeugten + * AudioMax Instanz gesetzt werden. + * + */ + define ('AM_CONFIG_COM_PORT', 'COM15'); + + /** + * Definition der Anzahl der Räume + */ + define ('AM_CONFIG_ROOM_COUNT', 4); + + /** + * Definition des Namens für den Eingang 1 des AudioMax Servers + */ + define ('AM_CONFIG_INPUTNAME1', 'NetPlayer'); + + /** + * Definition des Namens für den Eingang 2 des AudioMax Servers + */ + define ('AM_CONFIG_INPUTNAME2', 'Tuner'); + + /** + * Definition des Namens für den Eingang 3 des AudioMax Servers + */ + define ('AM_CONFIG_INPUTNAME3', 'CD Player'); + + /** + * Definition des Namens für den Eingang 4 des AudioMax Servers + */ + define ('AM_CONFIG_INPUTNAME4', ''); + + /** + * Definition des Namens für den Raum 1 des AudioMax Servers + */ + define ('AM_CONFIG_ROOMNAME1', 'Wohnzimmer'); + + /** + * Definition des Namens für den Raum 2 des AudioMax Servers + */ + define ('AM_CONFIG_ROOMNAME2', 'Zimmer2'); + + /** + * Definition des Namens für den Raum 3 des AudioMax Servers + */ + define ('AM_CONFIG_ROOMNAME3', 'Zimmer3'); + + /** + * Definition des Namens für den Raum 4 des AudioMax Servers + */ + define ('AM_CONFIG_ROOMNAME4', 'Zimmer4'); + + /** @}*/ +?> \ No newline at end of file diff --git a/IPSLibrary/install/DownloadListFiles/AudioMax_FileList.ini b/IPSLibrary/install/DownloadListFiles/AudioMax_FileList.ini new file mode 100644 index 0000000..daf9bb1 --- /dev/null +++ b/IPSLibrary/install/DownloadListFiles/AudioMax_FileList.ini @@ -0,0 +1,25 @@ +Version=2.50.1 +ModuleNamespace=IPSLibrary::app::hardware::AudioMax + +[App] +DefaultFiles[]= +ScriptFiles[]=AudioMax.inc.php +ScriptFiles[]=AudioMax_Server.class.php +ScriptFiles[]=AudioMax_Room.class.php +ScriptFiles[]=AudioMax_Constants.inc.php +ScriptFiles[]=AudioMax_ChangeSettings.ips.php +ScriptFiles[]=AudioMax_Receive.ips.php +ScriptFiles[]=AudioMax_KeepAlive.ips.php + +[Config] +DefaultFiles[]=AudioMax_Configuration.inc.php +ExampleFiles[]= + +[Install] +InstallFiles[]=AudioMax_Installation.ips.php +DownloadFiles[]=AudioMax_FileList.ini +DefaultFiles[]=AudioMax.ini +ExampleFiles[]= + +[WebFront] +ScriptFiles[]= diff --git a/IPSLibrary/install/InitializationFiles/Default/AudioMax.ini b/IPSLibrary/install/InitializationFiles/Default/AudioMax.ini new file mode 100644 index 0000000..965ee34 --- /dev/null +++ b/IPSLibrary/install/InitializationFiles/Default/AudioMax.ini @@ -0,0 +1,5 @@ +// Mit diesem Switch ist es möglich Fehler bei der Gererierung der ComPort Instanz zu ignorieren +IgnoreIOPortInstanceError=true + +//Installation Switch für die Installation der AudioMax Räume. Die Installation der Räume ist nicht +AudioMaxRoomInstallation=true diff --git a/IPSLibrary/install/InstallationScripts/AudioMax_Installation.ips.php b/IPSLibrary/install/InstallationScripts/AudioMax_Installation.ips.php new file mode 100644 index 0000000..5f94f38 --- /dev/null +++ b/IPSLibrary/install/InstallationScripts/AudioMax_Installation.ips.php @@ -0,0 +1,216 @@ + Alle Befehle + * + * @page audiomax_protocol_evt EVT Kommando + * AudioMax Server sendet selbständig Statusmeldungen + * - EVT SRV PWR [STATUS] Statusmeldung nach Power On + * - EVT SVR KAL [STATUS] „Keep Alive“ Meldung an PC, 0=Standby, 1=Server On + * - EVT SVR ROO [NUMMER] 1 Taste des Raumverstärkers [NUMMER] betätigt (1 = betätigt) + * + * @page audiomax_protocol_mod MOD Kommando + * Mit diesen Befehlen können verschiedene Betriebsarten für den AudioServer gesetzt werden + * EVT SRV MOD [MODE] [STATUS] + * - MODE 0 Acknowledge (Default = 0, 0= Acknowledge 0 bis 5, 1 = Echo des Befehls) + * - MODE 1 Debug Ausgaben (Default = 0, 0 = keine Debug Ausgaben, 1 = Debug Ausgaben) + * - MODE 2 Tasterfunktion Raumverstärker (Default = 0, 0 = nur Meldung an PC, 1 = Der Raumverstärker wird direkt geschalten + Meldung an PC) + * - MODE 3 KAL von PC aktiviert/deaktiviert (Default = 0, 0 = KAL von PC erwartet, 1 = keine KAL Meldung von PC erwartet) + * + * @page audiomax_protocol_error Acknowledge und Error Code + * Acknowledge: + * MODE0 = 0 + * “0“ => Befehl erkannt + * + * MODE0 = 1 Bei erkanntem Befehl wird der gesendete Befehl als Echo ausgegeben. Fehler werden wie nachfolgend ausgegeben + * Error Code: + * “1” => Error 1, Command Array 1, Unknown Command => Fehler im 1. Befehlsteil + * “2” => Error 2, Command Array 2, Unknown Command => Fehler im 2. Befehlsteil + * “3” => Error 3, Command Array 3, Unknown Command => Fehler im 3. Befehlsteil + * “4” => Error 4, Command Array 4, Out Of Range => Fehler im 4. Befehlsteil + * “5” => Error 5, Command Array 5, Out Of Range => Fehler im 5. Befehlsteil + * + */ + + /**@defgroup audiomax_install AudioMax Installation + * @ingroup audiomax + * @{ + * + * AudioMax Installations File + * + * @file AudioMax_Installation.ips.php + * @author Andreas Brauneis + * @version + * Version 2.50.1, 18.02.2012
+ * + * Script zur kompletten Installation der AudioMax Entertainment Steuerung. + * + * Vor der Installation sollte noch das File AudioMax_Configuration.inc.php an die persönlichen + * Bedürfnisse angepasst werden. + * + * @page rquirements_audiomax Installations Voraussetzungen + * - IPS Kernel >= 2.50 + * - IPSModuleManager >= 2.50.1 + * - IPSLogger >= 2.50.1 + * + * @page install_audiomax Installations Schritte + * Folgende Schritte sind zur Installation der AudioMax Ansteuerung nötig: + * - Laden des Modules (siehe IPSModuleManager) + * - Konfiguration (Details siehe Konfiguration) + * - Installation (siehe IPSModuleManager) + * + */ + + if (!isset($moduleManager)) { + IPSUtils_Include ('IPSModuleManager.class.php', 'IPSLibrary::install::IPSModuleManager'); + + echo 'ModuleManager Variable not set --> Create "default" ModuleManager'."\n"; + $moduleManager = new IPSModuleManager('AudioMax'); + } + + $moduleManager->VersionHandler()->CheckModuleVersion('IPS','2.50'); + $moduleManager->VersionHandler()->CheckModuleVersion('IPSLogger','2.50.1'); + $moduleManager->VersionHandler()->CheckModuleVersion('IPSModuleManager','2.50.1'); + + IPSUtils_Include ("IPSInstaller.inc.php", "IPSLibrary::install::IPSInstaller"); + IPSUtils_Include ("AudioMax_Constants.inc.php", "IPSLibrary::app::hardware::AudioMax"); + IPSUtils_Include ("AudioMax_Configuration.inc.php", "IPSLibrary::config::hardware::AudioMax"); + + $IgnoreIOPortInstanceError = $moduleManager->GetConfigValueBool('IgnoreIOPortInstanceError'); + $AudioMaxRoomInstallation = $moduleManager->GetConfigValueBool('AudioMaxRoomInstallation'); + + /* ---------------------------------------------------------------------- */ + /* AudioMax Installation */ + /* ---------------------------------------------------------------------- */ + + $CategoryIdData = $moduleManager->GetModuleCategoryID('data'); + $CategoryIdApp = $moduleManager->GetModuleCategoryID('app'); + $CategoryIdHardware = CreateCategoryPath('Hardware.AudioMax'); + + $id_ScriptReceive = IPS_GetScriptIDByName('AudioMax_Receive', $CategoryIdApp); + $id_ScriptSettings = IPS_GetScriptIDByName('AudioMax_ChangeSettings', $CategoryIdApp); + $id_ScriptKeepAlive = IPS_GetScriptIDByName('AudioMax_KeepAlive', $CategoryIdApp); + + if (AM_CONFIG_COM_PORT) { + $id_IOComPort = CreateSerialPort('AudioMax_ComPort', AM_CONFIG_COM_PORT, 19200, 1, 8, 'None',0,$IgnoreIOPortInstanceError); + $id_Cutter = CreateVariableCutter('AudioMax_Cutter', $id_IOComPort, '', chr(13)); + $id_Register = CreateRegisterVariable('AudioMax_Register', $CategoryIdHardware, $id_ScriptReceive, $id_Cutter); + } + CreateTimer_CyclicBySeconds ('SendAlive', $id_ScriptKeepAlive, AM_COM_KEEPALIVE, true); + CreateTimer_CyclicBySeconds ('CheckAlive', $id_ScriptKeepAlive, AM_COM_KEEPALIVE+5, true); + + CreateProfile_Count ('AudioMax_Volume', AM_VAL_VOLUME_MIN, 1, AM_VAL_VOLUME_MAX, "", "%"); + CreateProfile_Count ('AudioMax_Treble', AM_VAL_TREBLE_MIN, 1, AM_VAL_TREBLE_MAX, "", "%"); + CreateProfile_Count ('AudioMax_Middle', AM_VAL_MIDDLE_MIN, 1, AM_VAL_MIDDLE_MAX, "", "%"); + CreateProfile_Count ('AudioMax_Bass', AM_VAL_BASS_MIN, 1, AM_VAL_BASS_MAX, "", "%"); + CreateProfile_Count ('AudioMax_Balance', AM_VAL_BALANCE_MIN, 1, AM_VAL_BALANCE_MAX, "", "%"); + CreateProfile_Count ('AudioMax_InputGain', AM_VAL_INPUTGAIN_MIN, 1, AM_VAL_INPUTGAIN_MAX, "", "%"); + CreateProfile_Associations ('AudioMax_InputSelect', array(AM_CONFIG_INPUTNAME1, AM_CONFIG_INPUTNAME2, AM_CONFIG_INPUTNAME3, AM_CONFIG_INPUTNAME4)); + CreateProfile_Switch ('AudioMax_Mute', 'Aus', 'An', "", -1, 0x00ff00); + CreateProfile_Switch ('AudioMax_KeepAliveFlag', 'Waiting', 'OK', "", -1, 0x00ff00); + CreateProfile_Switch ('AudioMax_KeepAliveStatus', 'KeepAlive Error', 'KeepAlive OK', "", 0xaa0000, 0x00ff00); + CreateProfile_Switch ('AudioMax_Busy', 'Bereit', 'Aktiv', "", -1, 0x0000ff); + CreateProfile_Switch ('AudioMax_Connection', 'Verbindung Deaktiviert', 'Verbindung Aktiv', "", 0xaa0000, 0x0000ff, 'LockOpen', 'LockClosed'); + + $id_AudioMaxServerId = CreateDummyInstance("AudioMax_Server", $CategoryIdData, 10); + $id_Power = CreateVariable(AM_VAR_MAINPOWER, 0 /*Boolean*/, $id_AudioMaxServerId, 10, '~Switch', $id_ScriptSettings, false, 'Power'); + $id_Busy = CreateVariable(AM_VAR_BUSY, 0 /*Boolean*/, $id_AudioMaxServerId, 20, 'AudioMax_Busy', null, false, 'Distance'); + $id_Connection = CreateVariable(AM_VAR_CONNECTION, 0 /*Boolean*/, $id_AudioMaxServerId, 30, 'AudioMax_Connection', $id_ScriptSettings, true, ''); + $id_LastError = CreateVariable(AM_VAR_LASTERROR, 3 /*String*/, $id_AudioMaxServerId, 40, '~String', null, '', 'Warning'); + $id_LastCommand = CreateVariable(AM_VAR_LASTCOMMAND, 3 /*String*/, $id_AudioMaxServerId, 50, '~String', null, '', 'Information'); + $id_InputBuffer = CreateVariable(AM_VAR_INPUTBUFFER, 3 /*String*/, $id_AudioMaxServerId, 60, '~String', null, '', 'Information'); + $id_KeepAliveFlag = CreateVariable(AM_VAR_KEEPALIVEFLAG, 0 /*Boolean*/, $id_AudioMaxServerId, 70, 'AudioMax_KeepAliveFlag', null, false, 'Lightning'); + $id_KeepAliveStatus = CreateVariable(AM_VAR_KEEPALIVESTATUS, 0 /*Boolean*/, $id_AudioMaxServerId, 80, 'AudioMax_KeepAliveStatus', null, true, 'Repeat'); + $id_ModePowerRequest = CreateVariable(AM_VAR_MODEPOWERREQUEST,0 /*Boolean*/, $id_AudioMaxServerId, 90, '~Switch', $id_ScriptSettings,true, 'Gear'); + $id_ModeServerDebug = CreateVariable(AM_VAR_MODESERVERDEBUG, 0 /*Boolean*/, $id_AudioMaxServerId, 100, '~Switch', $id_ScriptSettings,true, 'Gear'); + $id_ModeEmulateState = CreateVariable(AM_VAR_MODEEMULATESTATE,0 /*Boolean*/, $id_AudioMaxServerId, 100, '~Switch', $id_ScriptSettings,true, 'Gear'); + $id_Port = CreateVariable(AM_VAR_PORTID, 1 /*Integer*/, $id_AudioMaxServerId, 300, '', null, 0, ''); + $id_RoomIds = CreateVariable(AM_VAR_ROOMIDS, 3 /*String*/, $id_AudioMaxServerId, 310, '', null, '', ''); + $id_RoomCount = CreateVariable(AM_VAR_ROOMCOUNT, 1 /*Integer*/, $id_AudioMaxServerId, 320, '', null, 0, ''); + + if ($AudioMaxRoomInstallation) { + $RoomIds = array(); + for ($RoomId=1;$RoomId<=AM_CONFIG_ROOM_COUNT;$RoomId++) { + $RoomInstanceId = CreateDummyInstance("AudioMax_Room".$RoomId, $CategoryIdData, 100+$RoomId); + $RoomIds[] = $RoomInstanceId; + + $PowerId = CreateVariable(AM_VAR_ROOMPOWER, 0 /*Boolean*/, $RoomInstanceId, 10, '~Switch', $id_ScriptSettings, AM_VAL_POWER_DEFAULT, 'Power'); + $SelectId = CreateVariable(AM_VAR_INPUTSELECT, 1 /*Integer*/, $RoomInstanceId, 20, 'AudioMax_InputSelect', $id_ScriptSettings, AM_VAL_INPUTSELECT_DEFAULT, 'Gear'); + $GainId = CreateVariable(AM_VAR_INPUTGAIN, 1 /*Integer*/, $RoomInstanceId, 30, 'AudioMax_InputGain', $id_ScriptSettings, AM_VAL_INPUTGAIN_DEFAULT, 'Lightning'); + $VolumeId = CreateVariable(AM_VAR_VOLUME, 1 /*Integer*/, $RoomInstanceId, 40, 'AudioMax_Volume', $id_ScriptSettings, AM_VAL_VOLUME_DEFAULT, 'Intensity'); + $MutingId = CreateVariable(AM_VAR_MUTE, 0 /*Boolean*/, $RoomInstanceId, 50, 'AudioMax_Mute', $id_ScriptSettings, AM_VAL_MUTE_DEFAULT, 'Speaker'); + $BalanceId = CreateVariable(AM_VAR_BALANCE, 1 /*Integer*/, $RoomInstanceId, 60, 'AudioMax_Balance', $id_ScriptSettings, AM_VAL_BALANCE_DEFAULT, 'Speaker'); + $TrebleId = CreateVariable(AM_VAR_TREBLE, 1 /*Integer*/, $RoomInstanceId, 70, 'AudioMax_Treble', $id_ScriptSettings, AM_VAL_TREBLE_DEFAULT, 'Speaker'); + $MiddleId = CreateVariable(AM_VAR_MIDDLE, 1 /*Integer*/, $RoomInstanceId, 80, 'AudioMax_Middle', $id_ScriptSettings, AM_VAL_MIDDLE_DEFAULT, 'Speaker'); + $BassId = CreateVariable(AM_VAR_BASS, 1 /*Integer*/, $RoomInstanceId, 90, 'AudioMax_Bass', $id_ScriptSettings, AM_VAL_BASS_DEFAULT, 'Speaker'); + } + + SetValue($id_RoomIds, implode(',',$RoomIds)); + SetValue($id_Port, $id_IOComPort); + SetValue($id_RoomCount, AM_CONFIG_ROOM_COUNT); + } + + + /** @}*/ +?> \ No newline at end of file From c25aee62a53ced6f2d9701dad6bba8fb399e229e Mon Sep 17 00:00:00 2001 From: brownson Date: Sat, 7 Apr 2012 22:29:43 +0200 Subject: [PATCH 05/77] AudioMax - Initial Commit to IPSLibrary --- .../hardware/AudioMax/AudioMax_Room.class.php | 126 ++++ .../AudioMax/AudioMax_Server.class.php | 675 ++++++++++++++++++ 2 files changed, 801 insertions(+) create mode 100644 IPSLibrary/app/hardware/AudioMax/AudioMax_Room.class.php create mode 100644 IPSLibrary/app/hardware/AudioMax/AudioMax_Server.class.php diff --git a/IPSLibrary/app/hardware/AudioMax/AudioMax_Room.class.php b/IPSLibrary/app/hardware/AudioMax/AudioMax_Room.class.php new file mode 100644 index 0000000..a0d8ae4 --- /dev/null +++ b/IPSLibrary/app/hardware/AudioMax/AudioMax_Room.class.php @@ -0,0 +1,126 @@ + + */ + class AudioMax_Room { + + /** + * @private + * ID des AudioMax Server + */ + private $instanceId; + + /** + * @private + * Variablen Mapping der Befehle + */ + private $functionMapping; + + /** + * @public + * + * Initialisiert einen AudioMax Raum + * + * @param $instanceId - ID des AudioMax Server. + */ + public function __construct($instanceId) { + $this->instanceId = $instanceId; + $this->functionMapping = array( + AM_FNC_VOLUME => AM_VAR_VOLUME, + AM_FNC_MUTE => AM_VAR_MUTE, + AM_FNC_BALANCE => AM_VAR_BALANCE, + AM_FNC_INPUTSELECT => AM_VAR_INPUTSELECT, + AM_FNC_INPUTGAIN => AM_VAR_INPUTGAIN, + AM_FNC_TREBLE => AM_VAR_TREBLE, + AM_FNC_MIDDLE => AM_VAR_MIDDLE, + AM_FNC_BASS => AM_VAR_BASS, + ); + } + + /** + * @public + * + * Liefert den zugehörigen Variablen Namen für eine Message + * + * @param string $command Kommando + * @param string $function Funktion + */ + private function GetVariableName($command, $function) { + switch($command) { + case AM_CMD_ROOM: + $variableName = AM_VAR_ROOMPOWER; + break; + case AM_CMD_AUDIO: + $variableName = $this->functionMapping[$function]; + break; + default: + throw new Exception('Unknown Command "'.$command.'", VariableName could NOT be found !!!'); + } + return $variableName; + } + + /** + * @public + * + * Liefert den aktuellen Wert für eine Message + * + * @param string $command Kommando + * @param string $function Funktion + * @return string Wert + */ + public function GetValue ($command, $function) { + $name = $this->GetVariableName($command, $function); + return GetValue(IPS_GetObjectIDByIdent($name, $this->instanceId)); + } + + /** + * @public + * + * Setzt den Wert einer Variable auf den Wert einer Message + * + * @param string $command Kommando + * @param string $function Funktion + * @param string $value Wert + */ + public function SetValue ($command, $function, $value) { + $name = $this->GetVariableName($command, $function); + $variableId = IPS_GetObjectIDByIdent($name, $this->instanceId); + if (GetValue($variableId)<>$value) { + SetValue($variableId, $value); + } + } + } + + /** @}*/ +?> \ No newline at end of file diff --git a/IPSLibrary/app/hardware/AudioMax/AudioMax_Server.class.php b/IPSLibrary/app/hardware/AudioMax/AudioMax_Server.class.php new file mode 100644 index 0000000..b8f6873 --- /dev/null +++ b/IPSLibrary/app/hardware/AudioMax/AudioMax_Server.class.php @@ -0,0 +1,675 @@ + + */ + class AudioMax_Server { + + /** + * @private + * ID des AudioMax Server + */ + private $instanceId; + + /** + * @public + * + * Initializes the AudioMax Server + * + * @param integer $instanceId - ID des AudioMax Server. + */ + public function __construct($instanceId) { + $this->instanceId = $instanceId; + } + + /** + * @private + * + * Protokollierung eines Fehlers + * + * @param string $errorText Fehlermeldung + */ + private function SetErrorText($errorText) { + $variableId = IPS_GetObjectIDByIdent(AM_VAR_LASTERROR, $this->instanceId); + SetValue($variableId, $errorText); + + IPSLogger_Err(__file__, $errorText); + } + + /** + * @public + * + * Setz den Status der Verbindung auf Active oder Inactiv. + * Im inaktiven Zustand wird der IO Port deaktiviert und alle ausgehenden Meldungen ignoriert. + * + * @param boolean $value Status der Verbindung. + */ + public function SetConnection($value) { + $variableId = IPS_GetObjectIDByIdent(AM_VAR_CONNECTION, $this->instanceId); + SetValue($variableId, $value); + + IPSLogger_Inf(__file__, 'Set AudioMax Connection Status to '.($value ? 'Connection Active' : 'Connection Inactiv')); + + $comPortId = GetValue(IPS_GetObjectIDByIdent('PORT_ID', $this->instanceId)); + COMPort_SetOpen($comPortId, $value); + IPS_ApplyChanges($comPortId); + if ($value) { + $this->SendData(AM_TYP_SET, AM_CMD_KEEPALIVE, null, null, '0'); + } + } + + /** + * @private + * + * Ermittelt ob die Instanzen der Räume installiert sind + * + * @return boolean Räume installiert + */ + private function GetAudioMaxRoomVariablesEnabled() { + $roomIds = GetValue(IPS_GetObjectIDByIdent(AM_VAR_ROOMIDS, $this->instanceId)); + return ($roomIds <> ''); + } + + /** + * @private + * + * Liefert ein AudioMaxRoom Objekt für eine Raum Nummer, sind keine Räume vorhanden + * liefert die Funktion false. + * + * @param integer $roomId Nummer des Raumes (1-4). + * @return AudioMax_Room AudioMax Room Object + */ + private function GetAudioMaxRoom($roomId) { + $roomIds = GetValue(IPS_GetObjectIDByIdent(AM_VAR_ROOMIDS, $this->instanceId)); + if ($roomIds=="") { + return false; + } + $roomIds = explode(',', $roomIds); + $roomInstanceId = false; + $audioMaxRoom = false; + if (array_key_exists($roomId, $roomIds)) { + $roomInstanceId = (int)$roomIds[$roomId]; + $audioMaxRoom = new AudioMax_Room($roomInstanceId); + } + + return $audioMaxRoom; + } + + + /** + * @private + * + * Validieren der Daten und Variablen setzen + * + * @param string $type Kommando Type + * @param string $command Kommando + * @param integer $roomId Nummer des Raumes + * @param string $function Funktion + * @param string $value Wert + */ + private function ValidateAndSetValue ($type, $command, $roomId, $function, $value) { + if ($this->ValidateData($type, $command, $roomId, $function, $value)) { + $this->SetValue($type, $command, $roomId, $function, $value); + } + } + + /** + * @private + * + * Setzt den ensprechenden Wert einer Variable auf den Wert der Message + * + * @param string $type Kommando Type + * @param string $command Kommando + * @param integer $roomId Nummer des Raumes + * @param string $function Funktion + * @param string $value Wert + */ + private function SetValue ($type, $command, $roomId, $function, $value) { + if ($type==AM_TYP_GET) { + return; + } + if ($command==AM_CMD_POWER or $command==AM_CMD_ROOM) { + if ($value===AM_VAL_BOOLEAN_TRUE) $value=true; + if ($value===AM_VAL_BOOLEAN_FALSE) $value=false; + } + $modification = false; + switch ($command) { + case AM_CMD_POWER: + $variableId = IPS_GetObjectIDByIdent(AM_VAR_MAINPOWER, $this->instanceId); + if (GetValue($variableId)<>$value) { + SetValue($variableId, $value); + $modification = true; + } + break; + case AM_CMD_TEXT: + break; + case AM_CMD_MODE: + if ($function==AM_MOD_SERVERDEBUG) { + $variableId = IPS_GetObjectIDByIdent(AM_VAR_MODESERVERDEBUG, $this->instanceId); + if (GetValue($variableId)<>$value) { + SetValue($variableId, $value); + $modification = true; + } + } + if ($function==AM_MOD_POWERREQUEST) { + $variableId = IPS_GetObjectIDByIdent(AM_VAR_MODEPOWERREQUEST, $this->instanceId); + if (GetValue($variableId)<>$value) { + SetValue($variableId, $value); + $modification = true; + } + } + break; + case AM_CMD_ROOM: + $room = $this->GetAudioMaxRoom($roomId); + if ($room===false) { + $modification = true; + break; + } + if ($room->GetValue($command, '')<>$value) { + $room->SetValue($command, '', $value); + $modification = true; + } + break; + case AM_CMD_AUDIO: + if ($function==AM_FNC_VOLUME) $value=AM_VAL_VOLUME_MAX-$value; + $room = $this->GetAudioMaxRoom($roomId); + if ($room===false) { + $modification = true; + break; + } + if ($room->GetValue($command, $function)<>$value) { + $room->SetValue($command, $function, $value); + $modification = true; + } + break; + case AM_CMD_KEEPALIVE: + $modification = true; + break; + default: + IPSLogger_Err(__file__, 'Unknown Command '.$command); + } + if ($modification) { + SetValue(IPS_GetObjectIDByIdent(AM_VAR_LASTCOMMAND, $this->instanceId), $this->BuildMsg($type, $command, $roomId, $function, $value, false)); + SetValue(IPS_GetObjectIDByIdent(AM_VAR_LASTERROR, $this->instanceId), ""); + } + } + + /** + * @private + * + * Lesen der AudioMax Werte aus den Instanz Variablen + * + * @param string $type Kommando Type + * @param string $command Kommando + * @param integer $roomId Nummer des Raumes + * @param string $function Funktion + * @return string Wert + */ + private function GetValue ($type, $command, $roomId, $function) { + $result = ''; + if ($type==AM_TYP_GET) { + switch ($command) { + case AM_CMD_POWER: + $result = GetValue(IPS_GetObjectIDByIdent(AM_VAR_MAINPOWER, $this->instanceId)); + break; + case AM_CMD_TEXT: + case AM_CMD_MODE: + case AM_CMD_KEEPALIVE: + break; + case AM_CMD_ROOM: + $room = $this->GetAudioMaxRoom($roomId); + if ($room!==false) { + $result = $room->GetValue($command, ''); + } + break; + case AM_CMD_AUDIO: + $room = $this->GetAudioMaxRoom($roomId); + if ($room!==false) { + $result = $room->GetValue($command, $function); + } + break; + default: + IPSLogger_Err(__file__, 'Unknown Command '.$command); + } + } + return $result; + } + + /** + * @public + * + * Setzt die AudioMax Variablen Werte auf den DEFAULT Wert zurück. + */ + public function Reset () { + IPSLogger_Dbg(__file__, "Execute AudioMax Reset ..."); + $this->SetValue(AM_TYP_SET, AM_CMD_POWER, null, null, AM_VAL_POWER_DEFAULT); + + $roomCount = GetValue(IPS_GetObjectIDByIdent(AM_VAR_ROOMCOUNT, $this->instanceId)); + for ($roomId=0;$roomId<$roomCount;$roomId++) { + $this->SetValue(AM_TYP_SET, AM_CMD_ROOM, $roomId, null, AM_VAL_POWER_DEFAULT); + $this->SetValue(AM_TYP_SET, AM_CMD_AUDIO, $roomId, AM_FNC_TREBLE, AM_VAL_TREBLE_DEFAULT); + $this->SetValue(AM_TYP_SET, AM_CMD_AUDIO, $roomId, AM_FNC_MIDDLE, AM_VAL_MIDDLE_DEFAULT); + $this->SetValue(AM_TYP_SET, AM_CMD_AUDIO, $roomId, AM_FNC_BASS, AM_VAL_BASS_DEFAULT); + $this->SetValue(AM_TYP_SET, AM_CMD_AUDIO, $roomId, AM_FNC_VOLUME, AM_VAL_VOLUME_DEFAULT); + $this->SetValue(AM_TYP_SET, AM_CMD_AUDIO, $roomId, AM_FNC_MUTE, AM_VAL_MUTE_DEFAULT); + $this->SetValue(AM_TYP_SET, AM_CMD_AUDIO, $roomId, AM_FNC_BALANCE, AM_VAL_BALANCE_DEFAULT); + $this->SetValue(AM_TYP_SET, AM_CMD_AUDIO, $roomId, AM_FNC_INPUTSELECT, AM_VAL_INPUTSELECT_DEFAULT); + $this->SetValue(AM_TYP_SET, AM_CMD_AUDIO, $roomId, AM_FNC_INPUTGAIN, AM_VAL_INPUTGAIN_DEFAULT); + } + } + + /** + * @public + * + * Initialisiert den AudioMax Server und setzt alle Einstellungen auf den aktuellen Wert von IPS zurück. + */ + public function Initialize () { + IPSLogger_Dbg(__file__, "Execute AudioMax Initialization ..."); + + $this->SendData(AM_TYP_SET, AM_CMD_POWER, null, null, GetValue(IPS_GetObjectIDByIdent(AM_VAR_MAINPOWER, $this->instanceId))); + + $roomCount = GetValue(IPS_GetObjectIDByIdent(AM_VAR_ROOMCOUNT, $this->instanceId)); + for ($roomId=0;$roomId<$roomCount;$roomId++) { + $room=$this->GetAudioMaxRoom($roomId); + $this->SendData(AM_TYP_SET, AM_CMD_ROOM, $roomId, null, $room->GetValue(AM_CMD_ROOM, '')); + $this->SendData(AM_TYP_SET, AM_CMD_AUDIO, $roomId, AM_FNC_TREBLE, $room->GetValue(AM_CMD_AUDIO, AM_FNC_TREBLE)); + $this->SendData(AM_TYP_SET, AM_CMD_AUDIO, $roomId, AM_FNC_MIDDLE, $room->GetValue(AM_CMD_AUDIO, AM_FNC_MIDDLE)); + $this->SendData(AM_TYP_SET, AM_CMD_AUDIO, $roomId, AM_FNC_BASS, $room->GetValue(AM_CMD_AUDIO, AM_FNC_BASS)); + $this->SendData(AM_TYP_SET, AM_CMD_AUDIO, $roomId, AM_FNC_VOLUME, $room->GetValue(AM_CMD_AUDIO, AM_FNC_VOLUME)); + $this->SendData(AM_TYP_SET, AM_CMD_AUDIO, $roomId, AM_FNC_MUTE, $room->GetValue(AM_CMD_AUDIO, AM_FNC_MUTE)); + $this->SendData(AM_TYP_SET, AM_CMD_AUDIO, $roomId, AM_FNC_BALANCE, $room->GetValue(AM_CMD_AUDIO, AM_FNC_BALANCE)); + $this->SendData(AM_TYP_SET, AM_CMD_AUDIO, $roomId, AM_FNC_INPUTSELECT, $room->GetValue(AM_CMD_AUDIO, AM_FNC_INPUTSELECT)); + $this->SendData(AM_TYP_SET, AM_CMD_AUDIO, $roomId, AM_FNC_INPUTGAIN, $room->GetValue(AM_CMD_AUDIO, AM_FNC_INPUTGAIN)); + } + } + + /** + * @private + * + * Setzt das BUSY Flag des AudioMax Server + */ + private function SetBusy() { + $result = IPS_SemaphoreEnter('AudioMax', 1000); + $VariableId = IPS_GetObjectIDByIdent(AM_VAR_BUSY, $this->instanceId); + SetValue($VariableId, true); + return $result; + } + + /** + * @private + * + * Zurücksetzen des BUSY Flags des AudioMax Servers. + */ + private function ResetBusy() { + $VariableId = IPS_GetObjectIDByIdent(AM_VAR_BUSY, $this->instanceId); + SetValue($VariableId, false); + IPS_SemaphoreLeave('AudioMax'); + } + + + + /** + * @private + * + * Initializes the AudioMax Server Object + * + * @param string $type Kommando Type + * @param string $command Kommando + * @param integer $roomId Raum (1-4) + * @param string $function Funktion + * @param string $value Wert + * @return boolean TRUE für OK, FALSE bei Fehler + */ + private function BuildMsg($type, $command, $roomId, $function, $value, $addTerminator=true) { + if ($value===true) $value=AM_VAL_BOOLEAN_TRUE; + if ($value===false) $value=AM_VAL_BOOLEAN_FALSE; + + if ($type==AM_TYP_GET) { + $msg = $type.AM_COM_SEPARATOR.AM_DEV_SERVER.AM_COM_SEPARATOR.$command; + switch ($command) { + case AM_CMD_POWER: + case AM_CMD_KEEPALIVE: + case AM_CMD_TEXT: + case AM_CMD_MODE: + break; + case AM_CMD_ROOM: + $msg .= AM_COM_SEPARATOR.$roomId; + break; + case AM_CMD_AUDIO: + $msg .= AM_COM_SEPARATOR.$roomId.AM_COM_SEPARATOR.$function; + break; + default: + $this->SetErrorText("Unable to build Message - unknown Command '.$command'"); + exit; + } + } else { + $msg = $type.AM_COM_SEPARATOR.AM_DEV_SERVER.AM_COM_SEPARATOR.$command.AM_COM_SEPARATOR; + switch ($command) { + case AM_CMD_POWER: + case AM_CMD_KEEPALIVE: + case AM_CMD_TEXT: + $msg .= $value; + break; + case AM_CMD_MODE: + $msg .= $function.AM_COM_SEPARATOR.$value; + break; + case AM_CMD_ROOM: + $msg .= $roomId.AM_COM_SEPARATOR.$value; + break; + case AM_CMD_AUDIO: + $msg .= $roomId.AM_COM_SEPARATOR.$function.AM_COM_SEPARATOR; + //$msg .= str_pad($value, 2, '0', STR_PAD_LEFT);//$value; + $msg .= $value; + break; + default: + $this->SetErrorText("Unable to build Message - unknown Command '.$command'"); + exit; + } + } + if ($addTerminator) { + $msg .= AM_COM_TERMINATOR; + } + return $msg; + } + + /** + * @private + * + * Validierung der Daten + * + * @param string $type Kommando Type + * @param string $command Kommando + * @param integer $roomId Raum (1-4) + * @param string $function Funktion + * @param string $value Wert + * @return boolean TRUE für OK, FALSE bei Fehler + */ + private function ValidateData($type, $command, $roomId, $function, $value) { + $errorMsg = ''; + $result = false; + switch($command) { + case AM_CMD_POWER: + $result = ($value==true or $value==AM_VAL_BOOLEAN_TRUE or $value==false or $value==AM_VAL_BOOLEAN_FALSE); + $errorMsg = "Value '$value' for MainPower NOT in Range (use 0,1 or boolean)"; + break; + case AM_CMD_KEEPALIVE: /*0..1*/ + $result = ($value=='0'); + $errorMsg = "Value '$value' for KeepAlive NOT in Range (use '0')"; + break; + case AM_CMD_TEXT: + $result = true; + break; + case AM_CMD_MODE: /*0..1*/ + $result = ($value=='0' or $value=='1'); + $errorMsg = "Value '$value' for Mode NOT in Range (use '0')"; + break; + case AM_CMD_ROOM: + $roomOk = $roomId>=0 and $roomIdinstanceId)); + $result = $roomOk and ($value==true or $value==AM_VAL_BOOLEAN_TRUE or $value==false or $value==AM_VAL_BOOLEAN_FALSE); + $errorMsg = "Value '$value' for RoomPower NOT in Range (use 0,1 or boolean)"; + break; + case AM_CMD_AUDIO: + $roomOk = $roomId>=0 and $roomIdinstanceId)); + switch($function) { + case AM_FNC_VOLUME: /*0..78*/ + $result = $roomOk and ($value>=AM_VAL_VOLUME_MIN and $value<=AM_VAL_VOLUME_MAX); + $errorMsg = "Value '$value' for Volume NOT in Range (use ".AM_VAL_VOLUME_MIN." <= value <=".AM_VAL_VOLUME_MAX.")"; + break; + case AM_FNC_MUTE: /*0..78*/ + $result = $roomOk and ($value==true or $value==AM_VAL_BOOLEAN_TRUE or $value==false or $value==AM_VAL_BOOLEAN_FALSE); + $errorMsg = "Value '$value' for Mute NOT in Range (use 0,1 or boolean)"; + break; + case AM_FNC_BALANCE: /*0..78*/ + $result = $roomOk and ($value>=AM_VAL_BALANCE_MIN and $value<=AM_VAL_BALANCE_MAX); + $errorMsg = "Value '$value' for Balance NOT in Range (use ".AM_VAL_BALANCE_MIN." <= value <=".AM_VAL_BALANCE_MAX.")"; + break; + case AM_FNC_INPUTGAIN: /*1..15*/ + $result = $roomOk and ($value>=AM_VAL_INPUTGAIN_MIN and $value<=AM_VAL_INPUTGAIN_MAX); + $errorMsg = "Value '$value' for InputGain NOT in Range (use ".AM_VAL_INPUTGAIN_MIN." <= value <=".AM_VAL_INPUTGAIN_MAX.")"; + break; + case AM_FNC_INPUTSELECT: /*0..3*/ + $result = $roomOk and ($value>=AM_VAL_INPUTSELECT_MIN and $value<=AM_VAL_INPUTSELECT_MAX); + $errorMsg = "Value '$value' for InputSelect NOT in Range (use ".AM_VAL_INPUTSELECT_MIN." <= value <=".AM_VAL_INPUTSELECT_MAX.")"; + break; + case AM_FNC_TREBLE: /*0..14*/ + $result = $roomOk and ($value>=AM_VAL_TREBLE_MIN and $value<=AM_VAL_TREBLE_MAX); + $errorMsg = "Value '$value' for Treble NOT in Range (use ".AM_VAL_TREBLE_MIN." <= value <=".AM_VAL_TREBLE_MAX.")"; + break; + case AM_FNC_MIDDLE: /*0..14*/ + $result = $roomOk and ($value>=AM_VAL_MIDDLE_MIN and $value<=AM_VAL_MIDDLE_MAX); + $errorMsg = "Value '$value' for Middle NOT in Range (use ".AM_VAL_MIDDLE_MIN." <= value <=".AM_VAL_MIDDLE_MAX.")"; + break; + case AM_FNC_BASS: /*0..14*/ + $result = $roomOk and ($value>=AM_VAL_BASS_MIN and $value<=AM_VAL_BASS_MAX); + $errorMsg = "Value '$value' for Bass NOT in Range (use ".AM_VAL_BASS_MIN." <= value <=".AM_VAL_BASS_MAX.")"; + break; + default: + $errorMsg = "Unknonw function '$function' for Command '$command'"; + } + break; + default: + $errorMsg = "Unknonw Command '$command'"; + } + if (!$result) { + $this->SetErrorText($errorMsg); + } + return $result; + } + + + /** + * @private + * + * Senden von Befehlen zum AudioMax Server per COM Port + * + * @param string $type Kommando Type + * @param string $command Kommando + * @param integer $roomId Raum (0-15) + * @param string $function Funktion + * @param string $value Wert + * @return boolean TRUE für OK, FALSE bei Fehler + */ + private function SendDataComPort($type, $command, $roomId, $function, $value) { + $result = false; + + if (GetValue(IPS_GetObjectIDByIdent(AM_VAR_CONNECTION, $this->instanceId))) { + IPSLogger_Com(__file__, 'Snd Message: '.$this->BuildMsg($type, $command, $roomId, $function, $value, false)); + $comPortId = GetValue(IPS_GetObjectIDByIdent('PORT_ID', $this->instanceId)); + $msg = $this->BuildMsg($type, $command, $roomId, $function, $value); + $result = @COMPort_SendText($comPortId, $msg); + if ($result===false) { + IPSLogger_Dbg(__file__, 'Write to ComPort failed --> Try Reconnect'); + COMPort_SetOpen($comPortId,false); + COMPort_SetOpen($comPortId,true); + IPS_ApplyChanges($comPortId); + $result = COMPort_SendText($comPortId, $msg); + } + } else { + IPSLogger_Com(__file__, 'Snd Message: '.$this->BuildMsg($type, $command, $roomId, $function, $value, false).' (Connection Inactive - Msg will be ignored)!'); + $result = true; + } + + return $result; + } + + /** + * @private + * + * Warten auf die Anwort vom Server + * + * @param string $type Kommando Type + * @param string $command Kommando + * @param integer $roomId Raum (0-15) + * @param string $function Funktion + * @param string $value Wert + * @return boolean TRUE für OK, FALSE bei Fehler + */ + private function WaitForServerResponse($type, $command, $roomId, $function, $value) { + $result = false; + + $inputBufferId = IPS_GetObjectIDByIdent(AM_VAR_INPUTBUFFER, $this->instanceId); + $waited = 0; + while ($waited < AM_COM_MAXWAIT) { + IPS_Sleep(AM_COM_WAIT); + $waited = $waited + AM_COM_WAIT; + $message = GetValue($inputBufferId); + if ($message<>'') { + $waited = AM_COM_MAXWAIT; + $params = explode(AM_COM_SEPARATOR, $message); + if ($params[2] == AM_CMD_POWER) { + $result = $value==$params[3]; + } elseif ($params[2] == AM_CMD_KEEPALIVE) { + $result = $value==$params[3]; + } elseif ($params[2] == AM_CMD_ROOM) { + $result = $roomId==$params[3] and $value==$params[4]; + } elseif ($params[2] == AM_CMD_AUDIO) { + $result = $roomId==$params[3] and $function==$params[4] and $value==$params[5]; + } elseif ($params[2] == AM_CMD_MODE) { + $result = $function==$params[3] and $value==$params[4]; + } else { + $this->SetErrorText('Received invalid Acknowledge from Server: '.$message); + $result = false; + } + } + } + + return $result; + } + + /** + * @public + * + * Senden von Befehlen zum AudioMax Server + * + * @param string $type Kommando Type + * @param string $command Kommando + * @param integer $roomId Raum (0-15) + * @param string $function Funktion + * @param string $value Wert + * @return boolean TRUE für OK, FALSE bei Fehler + */ + public function SendData($type, $command, $roomId, $function, $value) { + $result = false; + + if ($type==AM_TYP_GET and $this->GetAudioMaxRoomVariablesEnabled()) { + if ($this->ValidateData($type, $command, $roomId, $function, $value)) { + $result = $this->GetValue($type, $command, $roomId, $function); + } + return $result; + } + + if ($this->SetBusy()) { + IPSLogger_Dbg(__file__, "Process Type='$type', Command='$command', Function='$function' and Value='$value' for Room $roomId"); + if ($this->ValidateData($type, $command, $roomId, $function, $value)) { + SetValue(IPS_GetObjectIDByIdent(AM_VAR_INPUTBUFFER, $this->instanceId), ''); + + $result = $this->SendDataComPort($type, $command, $roomId, $function, $value); + if ($result) { + if (GetValue(IPS_GetObjectIDByIdent(AM_VAR_MODEEMULATESTATE, $this->instanceId))) { + $this->SetValue($type, $command, $roomId, $function, $value); + } elseif (!GetValue(IPS_GetObjectIDByIdent(AM_VAR_CONNECTION, $this->instanceId))) { + $this->SetValue($type, $command, $roomId, $function, $value); + } else { + $retryCount = 1; + while ($retryCount<=AM_COM_MAXRETRIES) { + if ($this->WaitForServerResponse($type, $command, $roomId, $function, $value)) { + $this->SetValue($type, $command, $roomId, $function, $value); + $retryCount = AM_COM_MAXRETRIES; + } else { + IPSLogger_Dbg(__file__, 'Timeout or invalid Response while waiting for Server Response --> Resend Message (Retry='.$retryCount.')'); + SetValue(IPS_GetObjectIDByIdent(AM_VAR_INPUTBUFFER, $this->instanceId), ''); + $result = $this->SendDataComPort($type, $command, $roomId, $function, $value); + } + $retryCount = $retryCount + 1; + } + } + } + } + $this->ResetBusy(); + } else { + $this->SetErrorText("AudioMax is already BUSY, ignore Message".$this->BuildMsg($type, $command, $roomId, $function, $value, false)); + } + return $result; + } + + /** + * @public + * + * Empfangen von Befehlen vom AudioMax Server + * + * @param string $message Message vom AudioMax Server + */ + public function ReceiveData($message) { + $message = str_replace(chr(13), '', $message); + $message = str_replace(chr(10), '', $message); + $params = explode(AM_COM_SEPARATOR, $message); + + if ($message=='') return; + + IPSLogger_Com(__file__, 'Rcv Message: '.$message); + switch ($params[0]) { + case AM_TYP_EVT: + if ($params[2] == AM_CMD_POWER) { + + } elseif ($params[2] == AM_CMD_KEEPALIVE) { + SetValue(IPS_GetObjectIDByIdent(AM_VAR_KEEPALIVEFLAG, $this->instanceId), true); + $this->ValidateAndSetValue(AM_TYP_SET, AM_CMD_POWER, null, null, $params[3]); + } elseif ($params[2] == AM_CMD_ROOM) { + $this->ValidateAndSetValue(AM_TYP_SET, AM_CMD_ROOM, $params[3], null, $params[4]); + } elseif ($params[2] == AM_CMD_AUDIO) { + $this->ValidateAndSetValue(AM_TYP_SET, AM_CMD_AUDIO, $params[3], $params[4], $params[5]); + } else { + //IPSLogger_Err(__file__, "Received invalid Message".$message); + } + break; + case AM_TYP_GET: + case AM_TYP_SET: + SetValue(IPS_GetObjectIDByIdent(AM_VAR_INPUTBUFFER, $this->instanceId), $message); + break; + default: + //$this->SetErrorText("Received invalid Message=".$message.', Type='.$params[0]); + break; + } + } + } + + /** @}*/ +?> \ No newline at end of file From 5018e8754c163bfaf29991fc77b1ec4f9198617c Mon Sep 17 00:00:00 2001 From: brownson Date: Sun, 15 Apr 2012 09:07:37 +0200 Subject: [PATCH 06/77] IPSComponent - Adapted 1WireD2408 Switch --- .../IPSComponentSwitch/IPSComponentSwitch_1WireD2408.class.php | 2 +- IPSLibrary/install/DownloadListFiles/IPSComponent_FileList.ini | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/IPSLibrary/app/core/IPSComponent/IPSComponentSwitch/IPSComponentSwitch_1WireD2408.class.php b/IPSLibrary/app/core/IPSComponent/IPSComponentSwitch/IPSComponentSwitch_1WireD2408.class.php index abddba5..65c6bbf 100644 --- a/IPSLibrary/app/core/IPSComponent/IPSComponentSwitch/IPSComponentSwitch_1WireD2408.class.php +++ b/IPSLibrary/app/core/IPSComponent/IPSComponentSwitch/IPSComponentSwitch_1WireD2408.class.php @@ -35,7 +35,7 @@ class IPSComponentSwitch_1WireD2408 extends IPSComponentSwitch { */ public function __construct($instanceId, $channelId) { $this->instanceId = IPSUtil_ObjectIDByPath($instanceId); - $this->channelId = $channelId; + $this->channelId = (int)$channelId; } /** diff --git a/IPSLibrary/install/DownloadListFiles/IPSComponent_FileList.ini b/IPSLibrary/install/DownloadListFiles/IPSComponent_FileList.ini index aa00b60..db63da3 100644 --- a/IPSLibrary/install/DownloadListFiles/IPSComponent_FileList.ini +++ b/IPSLibrary/install/DownloadListFiles/IPSComponent_FileList.ini @@ -25,6 +25,8 @@ ScriptFiles[]=IPSComponentShutter\IPSModuleShutter.class.php ScriptFiles[]=IPSComponentSwitch\IPSComponentSwitch.class.php ScriptFiles[]=IPSComponentSwitch\IPSComponentSwitch_Homematic.class.php +ScriptFiles[]=IPSComponentSwitch\IPSComponentSwitch_1WireD2408.class.php +ScriptFiles[]=IPSComponentSwitch\IPSComponentSwitch_Dummy.class.php ScriptFiles[]=IPSComponentSwitch\IPSModuleSwitch.class.php ScriptFiles[]=IPSComponentDimmer\IPSComponentDimmer.class.php From 262d6c49285f4e4abc68a276e5f101194f96eecd Mon Sep 17 00:00:00 2001 From: brownson Date: Wed, 18 Apr 2012 19:30:52 +0200 Subject: [PATCH 07/77] IPSComponent - Added IPSComponentSwitch_LCN --- .../IPSComponentSwitch_LCN.class.php | 77 +++++++++++++++++++ .../IPSComponent_FileList.ini | 2 + 2 files changed, 79 insertions(+) create mode 100644 IPSLibrary/app/core/IPSComponent/IPSComponentSwitch/IPSComponentSwitch_LCN.class.php diff --git a/IPSLibrary/app/core/IPSComponent/IPSComponentSwitch/IPSComponentSwitch_LCN.class.php b/IPSLibrary/app/core/IPSComponent/IPSComponentSwitch/IPSComponentSwitch_LCN.class.php new file mode 100644 index 0000000..da800a2 --- /dev/null +++ b/IPSLibrary/app/core/IPSComponent/IPSComponentSwitch/IPSComponentSwitch_LCN.class.php @@ -0,0 +1,77 @@ + + */ + + IPSUtils_Include ('IPSComponentSwitch.class.php', 'IPSLibrary::app::core::IPSComponent::IPSComponentSwitch'); + + class IPSComponentSwitch_LCN extends IPSComponentSwitch { + + private $instanceId; + + /** + * @public + * + * Initialisierung eines IPSComponentSwitch_LCN Objektes + * + * @param integer $instanceId InstanceId des LCN Devices + */ + public function __construct($instanceId) { + $this->instanceId = IPSUtil_ObjectIDByPath($instanceId); + } + + /** + * @public + * + * Function um Events zu behandeln, diese Funktion wird vom IPSMessageHandler aufgerufen, um ein aufgetretenes Event + * an das entsprechende Module zu leiten. + * + * @param integer $variable ID der auslösenden Variable + * @param string $value Wert der Variable + * @param IPSModuleSwitch $module Module Object an das das aufgetretene Event weitergeleitet werden soll + */ + public function HandleEvent($variable, $value, IPSModuleSwitch $module){ + } + + /** + * @public + * + * Zustand Setzen + * + * @param boolean $value Wert für Schalter + */ + public function SetState($value) { + LCN_SwitchRelay($this->instanceId, true); + } + + /** + * @public + * + * Liefert aktuellen Zustand + * + * @return boolean aktueller Schaltzustand + */ + public function GetState() { + GetValue(IPS_GetVariableIDByName('Status', $this->instanceId)); + } + + } + + /** @}*/ +?> \ No newline at end of file diff --git a/IPSLibrary/install/DownloadListFiles/IPSComponent_FileList.ini b/IPSLibrary/install/DownloadListFiles/IPSComponent_FileList.ini index db63da3..2d718ae 100644 --- a/IPSLibrary/install/DownloadListFiles/IPSComponent_FileList.ini +++ b/IPSLibrary/install/DownloadListFiles/IPSComponent_FileList.ini @@ -26,6 +26,8 @@ ScriptFiles[]=IPSComponentShutter\IPSModuleShutter.class.php ScriptFiles[]=IPSComponentSwitch\IPSComponentSwitch.class.php ScriptFiles[]=IPSComponentSwitch\IPSComponentSwitch_Homematic.class.php ScriptFiles[]=IPSComponentSwitch\IPSComponentSwitch_1WireD2408.class.php +ScriptFiles[]=IPSComponentSwitch\IPSComponentSwitch_LCN.class.php +ScriptFiles[]=IPSComponentSwitch\IPSComponentSwitch_FS20.class.php ScriptFiles[]=IPSComponentSwitch\IPSComponentSwitch_Dummy.class.php ScriptFiles[]=IPSComponentSwitch\IPSModuleSwitch.class.php From 724264b9f774e7399e477b7d4f59e9d7439211ce Mon Sep 17 00:00:00 2001 From: brownson Date: Thu, 19 Apr 2012 20:21:50 +0200 Subject: [PATCH 08/77] IPSComponent - Added IPSComponentSwitch_LCN --- .../IPSComponentSwitch/IPSComponentSwitch_LCN.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IPSLibrary/app/core/IPSComponent/IPSComponentSwitch/IPSComponentSwitch_LCN.class.php b/IPSLibrary/app/core/IPSComponent/IPSComponentSwitch/IPSComponentSwitch_LCN.class.php index da800a2..f313d62 100644 --- a/IPSLibrary/app/core/IPSComponent/IPSComponentSwitch/IPSComponentSwitch_LCN.class.php +++ b/IPSLibrary/app/core/IPSComponent/IPSComponentSwitch/IPSComponentSwitch_LCN.class.php @@ -57,7 +57,7 @@ public function HandleEvent($variable, $value, IPSModuleSwitch $module){ * @param boolean $value Wert für Schalter */ public function SetState($value) { - LCN_SwitchRelay($this->instanceId, true); + LCN_SwitchRelay($this->instanceId, $value); } /** From 1ab1e42af09064769477baf597a9ea6c0a4b9ec5 Mon Sep 17 00:00:00 2001 From: brownson Date: Fri, 27 Apr 2012 21:17:46 +0200 Subject: [PATCH 09/77] IPSWatering - Add additional Programs --- .../modules/IPSWatering/IPSWatering_Constants.inc.php | 10 +++++----- .../IPSWatering_Installation.ips.php | 9 ++++++++- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/IPSLibrary/app/modules/IPSWatering/IPSWatering_Constants.inc.php b/IPSLibrary/app/modules/IPSWatering/IPSWatering_Constants.inc.php index 106049f..311ecbd 100644 --- a/IPSLibrary/app/modules/IPSWatering/IPSWatering_Constants.inc.php +++ b/IPSLibrary/app/modules/IPSWatering/IPSWatering_Constants.inc.php @@ -52,7 +52,7 @@ define ("c_Control_ToBeDone", "ToBeDone"); define ("c_Program_Manual", "Manuell"); - define ("c_Program_EveryDay", "Jeden Tag"); + define ("c_Program_EveryDay", "Jeden Tag"); define ("c_Program_Every2Day", "Jeden 2. Tag"); define ("c_Program_Every3Day", "Jeden 3. Tag"); define ("c_Program_Every4Day", "Jeden 4. Tag"); @@ -60,11 +60,11 @@ define ("c_Program_MonTur", "Mon und Don"); define ("c_Program_Sunday", "Sonntags"); define ("c_Program_Monday", "Montags"); - define ("c_Program_Tuesday", "Dienstags"); - define ("c_Program_Wednesday", "Mitwochs"); - define ("c_Program_Thursday", "Donnerstags"); + define ("c_Program_Tuesday", "Dienstags"); + define ("c_Program_Wednesday", "Mittwochs"); + define ("c_Program_Thursday", "Donnerstags"); define ("c_Program_Friday", "Freitags"); - define ("c_Program_Saturday", "Samstags"); + define ("c_Program_Saturday", "Samstags"); define ("c_ProgramId_Manual", 0); define ("c_ProgramId_EveryDay", 1); diff --git a/IPSLibrary/install/InstallationScripts/IPSWatering_Installation.ips.php b/IPSLibrary/install/InstallationScripts/IPSWatering_Installation.ips.php index f833974..980c53f 100644 --- a/IPSLibrary/install/InstallationScripts/IPSWatering_Installation.ips.php +++ b/IPSLibrary/install/InstallationScripts/IPSWatering_Installation.ips.php @@ -124,7 +124,14 @@ c_ProgramId_Every3Day => c_Program_Every3Day, c_ProgramId_MonWedFri => c_Program_MonWedFri, c_ProgramId_MonTur => c_Program_MonTur, - c_ProgramId_Sunday => c_Program_Sunday)); + c_ProgramId_Sunday => c_Program_Sunday, + c_ProgramId_Monday => c_Program_Monday, + c_ProgramId_Tuesday => c_Program_Tuesday, + c_ProgramId_Wednesday => c_Program_Wednesday, + c_ProgramId_Thursday => c_Program_Thursday, + c_ProgramId_Friday => c_Program_Friday, + c_ProgramId_Saturday => c_Program_Saturday + )); CreateProfile_Associations ('IPSWatering_Sensor', array( 0 => 'Aus', 1 => '1 mm', From c4c363d2dc6c2e075f420338013943ed20eaae86 Mon Sep 17 00:00:00 2001 From: brownson Date: Wed, 2 May 2012 20:48:20 +0200 Subject: [PATCH 10/77] =?UTF-8?q?IPSModuleManager=20-=20Handled=20"=C3=9F"?= =?UTF-8?q?=20in=20Identifiers?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IPSLibrary/install/IPSInstaller/IPSInstaller.inc.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/IPSLibrary/install/IPSInstaller/IPSInstaller.inc.php b/IPSLibrary/install/IPSInstaller/IPSInstaller.inc.php index 0af154c..4cdeeac 100644 --- a/IPSLibrary/install/IPSInstaller/IPSInstaller.inc.php +++ b/IPSLibrary/install/IPSInstaller/IPSInstaller.inc.php @@ -18,7 +18,6 @@ * */ - /** Anlegen einer Kategorie. * * Die Funktion legt eine Kategory, als übergeordnete ID dient dabei $ParentId. Sollte @@ -180,6 +179,7 @@ function Get_IdentByName($name) { $ident = str_replace(array('"','\'','%','&','(',')','=','#','<','>','|','\\'), '', $ident); $ident = str_replace(array(',','.',':',';','!','?'), '', $ident); $ident = str_replace(array('+','-','/','*'), '', $ident); + $ident = str_replace(array('ß'), 'ss', $ident); return $ident; } @@ -1052,6 +1052,7 @@ function Debug($msg) { if (isset($_IPS['MODULEMANAGER'])) { $moduleManager = $_IPS['MODULEMANAGER']; $moduleManager->LogHandler()->Debug($msg); + } elseif (isset($_IPS['SENDER']) and $_IPS['SENDER']=='WebFront') { } else { echo $msg.PHP_EOL; } From 25466b16d9751a9399b133b9bc2c550c02e7b7fb Mon Sep 17 00:00:00 2001 From: brownson Date: Wed, 2 May 2012 21:24:40 +0200 Subject: [PATCH 11/77] IPSWatering - Fixed "Blanks" before PHP Tags in Configuration Files --- IPSLibrary/app/core/IPSUtils/IPSUtils.inc.php | 2 +- .../IPSWatering_FileList.ini | 2 +- .../IPSWatering_Installation.ips.php | 29 +++++++++++++++++-- 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/IPSLibrary/app/core/IPSUtils/IPSUtils.inc.php b/IPSLibrary/app/core/IPSUtils/IPSUtils.inc.php index 29cac86..980b8d7 100644 --- a/IPSLibrary/app/core/IPSUtils/IPSUtils.inc.php +++ b/IPSLibrary/app/core/IPSUtils/IPSUtils.inc.php @@ -93,4 +93,4 @@ function IPS_GetIdent($objId) { /** @}*/ -?> +?> \ No newline at end of file diff --git a/IPSLibrary/install/DownloadListFiles/IPSWatering_FileList.ini b/IPSLibrary/install/DownloadListFiles/IPSWatering_FileList.ini index 3605aec..640b86b 100644 --- a/IPSLibrary/install/DownloadListFiles/IPSWatering_FileList.ini +++ b/IPSLibrary/install/DownloadListFiles/IPSWatering_FileList.ini @@ -1,4 +1,4 @@ -Version=2.50.1 +Version=2.50.2 ModuleNamespace=IPSLibrary::app::modules::IPSWatering [App] diff --git a/IPSLibrary/install/InstallationScripts/IPSWatering_Installation.ips.php b/IPSLibrary/install/InstallationScripts/IPSWatering_Installation.ips.php index 980c53f..e70d3e5 100644 --- a/IPSLibrary/install/InstallationScripts/IPSWatering_Installation.ips.php +++ b/IPSLibrary/install/InstallationScripts/IPSWatering_Installation.ips.php @@ -198,7 +198,7 @@ CreateLinkByDestination ('Status', get_WateringControlId(c_Control_ToBeDone, $CirclyId), $WebFrontOverviewTop2, $Idx); // Detailed CirclyData - $WebFrontDetailId = CreateCategory($CircleName, $WebFrontId, 100+$Idx); + $WebFrontDetailId = CreateCategory($CircleId, $WebFrontId, 100+$Idx); CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem.'_'.$Idx,$WFC10_TabPaneItem.'', 100+$Idx, $CircleName, '', $WebFrontDetailId /*BaseId*/, 'false' /*BarBottomVisible*/); CreateLink('Status', get_WateringControlId(c_Control_Active, $CirclyId), $WebFrontDetailId, 10); CreateLink('Automatik', get_WateringControlId(c_Control_Automatic, $CirclyId), $WebFrontDetailId, 20); @@ -255,8 +255,33 @@ } } + RemoveBlanksBeforePHPTags('IPSWatering_Configuration.inc.php', 'IPSLibrary::config::modules::IPSWatering::Default'); + RemoveBlanksBeforePHPTags('IPSWatering_Configuration.inc.php', 'IPSLibrary::config::modules::IPSWatering'); + RemoveBlanksBeforePHPTags('IPSUtils.inc.php', 'IPSLibrary::app::core::IPSUtils'); - // ------------------------------------------------------------------------------------------------ + // ------------------------------------------------------------------------------------------------ + function RemoveBlanksBeforePHPTags ($file, $namespace) { + if ($namespace<>'') { + $namespace = str_replace('::','\\',$namespace).'\\'; + } + $fileNameFull = IPS_GetKernelDir().'scripts\\'.$namespace.$file; + if (!file_exists($fileNameFull)) { + echo 'File '.$file.' not exists (Namespace='.$namespace.')'.PHP_EOL; + return; + } + + $fileContent = file_get_contents($fileNameFull, true); + + $pos = strpos($fileContent, ' '); + if ($pos === false or $pos > 0) { + return; + } + $fileContentNew = substr($fileContent, 1); + echo 'Remove Blanks before PHP Tag from File '.$file.'(Namespace='.$namespace.')'.PHP_EOL; + file_put_contents($fileNameFull, $fileContentNew); + } + + // ------------------------------------------------------------------------------------------------ function get_WateringCirclyId($DeviceName, $ParentId) { $CategoryId = IPS_GetObjectIDByIdent($DeviceName, $ParentId); return $CategoryId; From cdd2273df46f09fb21bd075659ebd7d105840f8a Mon Sep 17 00:00:00 2001 From: brownson Date: Thu, 3 May 2012 20:27:53 +0200 Subject: [PATCH 12/77] IPSWatering - Fixed "Blanks" before PHP Tags in Configuration Files --- .../Default/IPSLogger_Configuration.inc.php | 2 +- .../IPSMessageHandler_Configuration.inc.php | 2 +- .../IPSModuleManager_FileList.ini | 2 +- .../IPSModuleManager_Installation.ips.php | 33 +++++++++++++++++-- 4 files changed, 34 insertions(+), 5 deletions(-) diff --git a/IPSLibrary/config/core/IPSLogger/Default/IPSLogger_Configuration.inc.php b/IPSLibrary/config/core/IPSLogger/Default/IPSLogger_Configuration.inc.php index 5833ed9..05019dd 100644 --- a/IPSLibrary/config/core/IPSLogger/Default/IPSLogger_Configuration.inc.php +++ b/IPSLibrary/config/core/IPSLogger/Default/IPSLogger_Configuration.inc.php @@ -1,4 +1,4 @@ - VersionHandler()->CheckModuleVersion('IPS','2.50'); + RemoveBlanksBeforePHPTags('IPSWatering_Configuration.inc.php', 'IPSLibrary::config::modules::IPSWatering::Default'); + RemoveBlanksBeforePHPTags('IPSWatering_Configuration.inc.php', 'IPSLibrary::config::modules::IPSWatering'); + RemoveBlanksBeforePHPTags('IPSLogger_Configuration.inc.php', 'IPSLibrary::config::core::IPSLogger::Default'); + RemoveBlanksBeforePHPTags('IPSLogger_Configuration.inc.php', 'IPSLibrary::config::core::IPSLogger'); + RemoveBlanksBeforePHPTags('IPSMessageHandler_Configuration.inc.php', 'IPSLibrary::config::core::IPSMessageHandler::Default'); + RemoveBlanksBeforePHPTags('IPSMessageHandler_Configuration.inc.php', 'IPSLibrary::config::core::IPSMessageHandler'); + + // ------------------------------------------------------------------------------------------------ + function RemoveBlanksBeforePHPTags ($file, $namespace) { + if ($namespace<>'') { + $namespace = str_replace('::','\\',$namespace).'\\'; + } + $fileNameFull = IPS_GetKernelDir().'scripts\\'.$namespace.$file; + if (!file_exists($fileNameFull)) { + echo 'File '.$file.' not exists (Namespace='.$namespace.')'.PHP_EOL; + return; + } + + $fileContent = file_get_contents($fileNameFull, true); + + $pos = strpos($fileContent, ' '); + if ($pos === false or $pos > 0) { + return; + } + $fileContentNew = substr($fileContent, 1); + echo 'Remove Blanks before PHP Tag from File '.$file.'(Namespace='.$namespace.')'.PHP_EOL; + file_put_contents($fileNameFull, $fileContentNew); + } + + + /** @}*/ ?> \ No newline at end of file From 2d63ac524691988cdcc3c29acf35108493bf7808 Mon Sep 17 00:00:00 2001 From: brownson Date: Sat, 5 May 2012 20:08:51 +0200 Subject: [PATCH 13/77] IPSWeatherForcastAT - Corrected Mobile Interface --- .../IPSWeatherForcastAT_Installation.ips.php | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/IPSLibrary/install/InstallationScripts/IPSWeatherForcastAT_Installation.ips.php b/IPSLibrary/install/InstallationScripts/IPSWeatherForcastAT_Installation.ips.php index 7d96c3f..0583d39 100644 --- a/IPSLibrary/install/InstallationScripts/IPSWeatherForcastAT_Installation.ips.php +++ b/IPSLibrary/install/InstallationScripts/IPSWeatherForcastAT_Installation.ips.php @@ -140,7 +140,8 @@ $Forecast3TextLong = CreateVariable("Tomorrow2ForecastShort",3 /*String*/, $categoryId_Data, 440, '~String', null, ''); $Forecast3Icon = CreateVariable("Tomorrow2Icon", 3 /*String*/, $categoryId_Data, 450, '~String', null, ''); - $iForecast = CreateVariable("iForecast", 3 /*String*/, $categoryId_Data, 1000, '~HTMLBox', null, ''); // Webfront Installation if ($WFC10_Enabled) { @@ -152,10 +153,12 @@ // iPhone Installation if ($Mobile_Enabled) { - $mobileId = CreateCategoryPath($Mobile_Path, $Mobile_PathOrder, $Mobile_PathIcon); - $mobileId = CreateCategoryPath($Mobile_Path.'.'.$Mobile_Name, $Mobile_Order, $Mobile_Icon); - - CreateLink('Vorhersage', $iForecast, $mobileId, 10); + $mobileId = CreateCategoryPath($Mobile_Path, $Mobile_PathOrder, $Mobile_PathIcon); + $categoryId = @IPS_GetObjectIDByIdent($Mobile_Name, $mobileId); + if ($categoryId!==false) { + DeleteCategory($categoryId); + } + CreateLink($Mobile_Name, $iForecast, $mobileId, $Mobile_Order); } // Execute Data Refresh From e6a0e782d8fd18284c087fa32bd2de989ec2891c Mon Sep 17 00:00:00 2001 From: brownson Date: Mon, 7 May 2012 20:46:33 +0200 Subject: [PATCH 14/77] IPSWatering - Fixed Logging Message --- .../IPSWatering_ActivationTimer.ips.php | 2 +- .../IPSWatering_Installation.ips.php | 26 ------------------- 2 files changed, 1 insertion(+), 27 deletions(-) diff --git a/IPSLibrary/app/modules/IPSWatering/IPSWatering_ActivationTimer.ips.php b/IPSLibrary/app/modules/IPSWatering/IPSWatering_ActivationTimer.ips.php index e22f56e..9fac2bb 100644 --- a/IPSLibrary/app/modules/IPSWatering/IPSWatering_ActivationTimer.ips.php +++ b/IPSLibrary/app/modules/IPSWatering/IPSWatering_ActivationTimer.ips.php @@ -61,7 +61,7 @@ // Bewässerung Starten if ($SensorLimit > 0 and $SensorValue!==false and $SensorLimit<=$SensorValue) { - IPSWatering_LogNoActivationByRainfall($CircleId, $SensorLimit, $Rainfall); + IPSWatering_LogNoActivationByRainfall($CircleId, $SensorLimit, $SensorValue.' mm'); IPSWatering_CalcNextScheduleDateTime($CircleId); } else { IPSWatering_SetActive($ControlId, true, c_Mode_StartAutomatic); diff --git a/IPSLibrary/install/InstallationScripts/IPSWatering_Installation.ips.php b/IPSLibrary/install/InstallationScripts/IPSWatering_Installation.ips.php index e70d3e5..ae94455 100644 --- a/IPSLibrary/install/InstallationScripts/IPSWatering_Installation.ips.php +++ b/IPSLibrary/install/InstallationScripts/IPSWatering_Installation.ips.php @@ -255,32 +255,6 @@ } } - RemoveBlanksBeforePHPTags('IPSWatering_Configuration.inc.php', 'IPSLibrary::config::modules::IPSWatering::Default'); - RemoveBlanksBeforePHPTags('IPSWatering_Configuration.inc.php', 'IPSLibrary::config::modules::IPSWatering'); - RemoveBlanksBeforePHPTags('IPSUtils.inc.php', 'IPSLibrary::app::core::IPSUtils'); - - // ------------------------------------------------------------------------------------------------ - function RemoveBlanksBeforePHPTags ($file, $namespace) { - if ($namespace<>'') { - $namespace = str_replace('::','\\',$namespace).'\\'; - } - $fileNameFull = IPS_GetKernelDir().'scripts\\'.$namespace.$file; - if (!file_exists($fileNameFull)) { - echo 'File '.$file.' not exists (Namespace='.$namespace.')'.PHP_EOL; - return; - } - - $fileContent = file_get_contents($fileNameFull, true); - - $pos = strpos($fileContent, ' '); - if ($pos === false or $pos > 0) { - return; - } - $fileContentNew = substr($fileContent, 1); - echo 'Remove Blanks before PHP Tag from File '.$file.'(Namespace='.$namespace.')'.PHP_EOL; - file_put_contents($fileNameFull, $fileContentNew); - } - // ------------------------------------------------------------------------------------------------ function get_WateringCirclyId($DeviceName, $ParentId) { $CategoryId = IPS_GetObjectIDByIdent($DeviceName, $ParentId); From 28c075b984858006dcccd2eaa29e2cfe3127ec7c Mon Sep 17 00:00:00 2001 From: brownson Date: Sun, 13 May 2012 21:07:39 +0200 Subject: [PATCH 15/77] IPSLogger - Fixed Applicationlogging --- IPSLibrary/app/core/IPSLogger/IPSLogger_Output.inc.php | 6 +++--- IPSLibrary/install/DownloadListFiles/IPSLogger_FileList.ini | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/IPSLibrary/app/core/IPSLogger/IPSLogger_Output.inc.php b/IPSLibrary/app/core/IPSLogger/IPSLogger_Output.inc.php index 432774f..10d00ad 100644 --- a/IPSLibrary/app/core/IPSLogger/IPSLogger_Output.inc.php +++ b/IPSLibrary/app/core/IPSLogger/IPSLogger_Output.inc.php @@ -270,11 +270,11 @@ function IPSLogger_SendProwlMessage($Event, $Description, $Priority) { } // ---------------------------------------------------------------------------------------------------------------------------- - function IPSLogger_OutProgram($Msg, $HtmlId, $LogId, $MsgCount) { + function IPSLogger_OutProgram($Msg, $HtmlId, $LogId, $MsgCount, $FontSize=10) { $Msg = htmlentities($Msg, ENT_COMPAT, 'ISO-8859-1'); $Msg = str_replace("\n", "
", $Msg); $MsgList = GetValue($HtmlId); - $TablePrefix = ''; + $TablePrefix = '
'; $CurrentMsgId = GetValue($LogId)+1; SetValue($LogId, $CurrentMsgId); @@ -288,7 +288,7 @@ function IPSLogger_OutProgram($Msg, $HtmlId, $LogId, $MsgCount) { if (strpos($MsgList, '
') === false) { $MsgList = ""; } else { - $StrTmp = ' Date: Sun, 13 May 2012 21:08:44 +0200 Subject: [PATCH 16/77] Adapted Documentation --- .../IPSComponentShutter_Homematic.class.php | 4 +++- .../IPSComponentSwitch_1WireD2408.class.php | 1 + IPSLibrary/app/hardware/AudioMax/AudioMax.inc.php | 5 +++-- .../Entertainment_InterfaceIPSComponentAVControl.inc.php | 2 +- .../IPSWeatherForcastAT/IPSWeatherForcastAT_Utils.inc.php | 2 +- .../InstallationScripts/AudioMax_Installation.ips.php | 1 + 6 files changed, 10 insertions(+), 5 deletions(-) diff --git a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_Homematic.class.php b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_Homematic.class.php index dda998d..4a6f3f6 100644 --- a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_Homematic.class.php +++ b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_Homematic.class.php @@ -19,7 +19,9 @@ * Version 2.50.1, 31.01.2012
*/ - abstract class IPSComponentShutter_Homematic extends IPSComponentShutter { + IPSUtils_Include ('IPSComponentShutter.class.php', 'IPSLibrary::app::core::IPSComponent::IPSComponentShutter'); + + class IPSComponentShutter_Homematic extends IPSComponentShutter { private $instanceId; diff --git a/IPSLibrary/app/core/IPSComponent/IPSComponentSwitch/IPSComponentSwitch_1WireD2408.class.php b/IPSLibrary/app/core/IPSComponent/IPSComponentSwitch/IPSComponentSwitch_1WireD2408.class.php index 65c6bbf..9cdc967 100644 --- a/IPSLibrary/app/core/IPSComponent/IPSComponentSwitch/IPSComponentSwitch_1WireD2408.class.php +++ b/IPSLibrary/app/core/IPSComponent/IPSComponentSwitch/IPSComponentSwitch_1WireD2408.class.php @@ -32,6 +32,7 @@ class IPSComponentSwitch_1WireD2408 extends IPSComponentSwitch { * Initialisierung eines IPSComponentSwitch_1WireD2408 Objektes * * @param integer $instanceId InstanceId des 1WireD2408 Devices + * @param integer $channelId Kanal des 1WireD2408 Devices */ public function __construct($instanceId, $channelId) { $this->instanceId = IPSUtil_ObjectIDByPath($instanceId); diff --git a/IPSLibrary/app/hardware/AudioMax/AudioMax.inc.php b/IPSLibrary/app/hardware/AudioMax/AudioMax.inc.php index 588a6ef..b443f49 100644 --- a/IPSLibrary/app/hardware/AudioMax/AudioMax.inc.php +++ b/IPSLibrary/app/hardware/AudioMax/AudioMax.inc.php @@ -311,8 +311,9 @@ function AudioMax_GetMode($instanceId, $mode) { * Set Text * * @param int $instanceId ID des AudioMax Servers - * @param int $mode Mode (0-4) - * @param string $value Array mit Texten + * @param string $text1 Text Zeile 1 + * @param string $text2 Text Zeile 2 + * @param string $text3 Text Zeile 3 * @return boolean Funktions Ergebnis, TRUE für OK, FALSE für Fehler */ function AudioMax_SetText($instanceId, $text1, $text2=null, $text3=null) { diff --git a/IPSLibrary/app/modules/Entertainment/Entertainment_InterfaceIPSComponentAVControl.inc.php b/IPSLibrary/app/modules/Entertainment/Entertainment_InterfaceIPSComponentAVControl.inc.php index 94933d9..3059baa 100644 --- a/IPSLibrary/app/modules/Entertainment/Entertainment_InterfaceIPSComponentAVControl.inc.php +++ b/IPSLibrary/app/modules/Entertainment/Entertainment_InterfaceIPSComponentAVControl.inc.php @@ -3,7 +3,7 @@ * @ingroup entertainment * @{ * - * @file Entertainment_InterfaceIPSComponent.inc.php + * @file Entertainment_InterfaceIPSComponentAVControl.inc.php * @author Andreas Brauneis * @version * Version 2.50.1, 31.01.2012
diff --git a/IPSLibrary/app/modules/Weather/IPSWeatherForcastAT/IPSWeatherForcastAT_Utils.inc.php b/IPSLibrary/app/modules/Weather/IPSWeatherForcastAT/IPSWeatherForcastAT_Utils.inc.php index 452b436..76ec347 100644 --- a/IPSLibrary/app/modules/Weather/IPSWeatherForcastAT/IPSWeatherForcastAT_Utils.inc.php +++ b/IPSLibrary/app/modules/Weather/IPSWeatherForcastAT/IPSWeatherForcastAT_Utils.inc.php @@ -22,7 +22,7 @@ * * Diverse Helper Functions für IPSWeatherForcastAT * - * @file IPSWeatherForcastAT_Utils.ips.php + * @file IPSWeatherForcastAT_Utils.inc.php * @author Andreas Brauneis * @version * Version 2.50.1, 15.02.2012
diff --git a/IPSLibrary/install/InstallationScripts/AudioMax_Installation.ips.php b/IPSLibrary/install/InstallationScripts/AudioMax_Installation.ips.php index 5f94f38..96f26ce 100644 --- a/IPSLibrary/install/InstallationScripts/AudioMax_Installation.ips.php +++ b/IPSLibrary/install/InstallationScripts/AudioMax_Installation.ips.php @@ -92,6 +92,7 @@ * “5” => Error 5, Command Array 5, Out Of Range => Fehler im 5. Befehlsteil * */ + /** @}*/ /**@defgroup audiomax_install AudioMax Installation * @ingroup audiomax From 1747f8672dca7c976ef3f9ee84442a6e56359eae Mon Sep 17 00:00:00 2001 From: brownson Date: Tue, 15 May 2012 20:47:10 +0200 Subject: [PATCH 17/77] IPSShadowing - Initial Commit --- .../modules/IPSShadowing/IPSShadowing.inc.php | 64 ++ .../IPSShadowing_AutomaticOff.ips.php | 40 + .../IPSShadowing_AutomaticOn.ips.php | 40 + .../IPSShadowing_AutomaticReset.ips.php | 39 + .../IPSShadowing/IPSShadowing_Azimuth.inc.php | 422 ++++++++++ .../IPSShadowing_ChangeSettings.ips.php | 147 ++++ .../IPSShadowing_Constants.inc.php | 218 ++++++ .../IPSShadowing_Device.class.php | 572 ++++++++++++++ .../IPSShadowing/IPSShadowing_Logging.inc.php | 194 +++++ ...IPSShadowing_ProfileBgnOfDayCreate.ips.php | 36 + ...IPSShadowing_ProfileBgnOfDayDelete.ips.php | 37 + ...IPSShadowing_ProfileEndOfDayCreate.ips.php | 37 + ...IPSShadowing_ProfileEndOfDayDelete.ips.php | 37 + .../IPSShadowing_ProfileManager.class.php | 392 ++++++++++ .../IPSShadowing_ProfileSun.class.php | 250 ++++++ .../IPSShadowing_ProfileSunCreate.ips.php | 36 + .../IPSShadowing_ProfileSunDelete.ips.php | 37 + .../IPSShadowing_ProfileTemp.class.php | 263 +++++++ .../IPSShadowing_ProfileTempCreate.ips.php | 36 + .../IPSShadowing_ProfileTempDelete.ips.php | 37 + .../IPSShadowing_ProfileTime.class.php | 278 +++++++ .../IPSShadowing_ProfileWeather.class.php | 218 ++++++ .../IPSShadowing_ProfileWeatherCreate.ips.php | 36 + .../IPSShadowing_ProfileWeatherDelete.ips.php | 37 + .../IPSShadowing_ProgramTimer.ips.php | 47 ++ .../IPSShadowing_RefreshTimer.ips.php | 48 ++ .../IPSShadowing_ResetTimer.ips.php | 45 ++ .../IPSShadowing_Scenario.class.php | 236 ++++++ .../IPSShadowing_ScenarioCreate.ips.php | 36 + .../IPSShadowing_ScenarioDelete.ips.php | 36 + .../IPSShadowing_ScenarioManager.class.php | 187 +++++ .../IPSShadowing_Configuration.inc.php | 266 +++++++ .../Default/IPSShadowing_Custom.inc.php | 106 +++ .../IPSShadowing_DemoConfiguration.inc.php | 229 ++++++ .../Examples/IPSShadowing_DemoCustom.inc.php | 104 +++ .../Screenshots/IPSShadowing_MobileDevice.PNG | Bin 0 -> 245656 bytes .../IPSShadowing_MobileOverview.PNG | Bin 0 -> 250129 bytes .../Screenshots/IPSShadowing_WFDevice.png | Bin 0 -> 87831 bytes .../Screenshots/IPSShadowing_WFMessages.png | Bin 0 -> 48138 bytes .../Screenshots/IPSShadowing_WFOverview.png | Bin 0 -> 90428 bytes .../IPSShadowing_WFProfileBgnOfDay.png | Bin 0 -> 75595 bytes .../IPSShadowing_WFProfileEndOfDay.png | Bin 0 -> 73533 bytes .../Screenshots/IPSShadowing_WFProfileSun.png | Bin 0 -> 120107 bytes .../IPSShadowing_WFProfileTemp.png | Bin 0 -> 70662 bytes .../IPSShadowing_WFProfileWeather.png | Bin 0 -> 59506 bytes .../Screenshots/IPSShadowing_WFScenario.png | Bin 0 -> 57401 bytes .../IPSShadowing_WFScenarioEdit.png | Bin 0 -> 79477 bytes .../Screenshots/IPSShadowing_WFSettings.png | Bin 0 -> 29050 bytes .../IPSShadowing_FileList.ini | 51 ++ .../Default/IPSShadowing.ini | 19 + .../IPSShadowing_Installation.ips.php | 723 ++++++++++++++++++ 51 files changed, 5636 insertions(+) create mode 100644 IPSLibrary/app/modules/IPSShadowing/IPSShadowing.inc.php create mode 100644 IPSLibrary/app/modules/IPSShadowing/IPSShadowing_AutomaticOff.ips.php create mode 100644 IPSLibrary/app/modules/IPSShadowing/IPSShadowing_AutomaticOn.ips.php create mode 100644 IPSLibrary/app/modules/IPSShadowing/IPSShadowing_AutomaticReset.ips.php create mode 100644 IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Azimuth.inc.php create mode 100644 IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ChangeSettings.ips.php create mode 100644 IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Constants.inc.php create mode 100644 IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php create mode 100644 IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Logging.inc.php create mode 100644 IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileBgnOfDayCreate.ips.php create mode 100644 IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileBgnOfDayDelete.ips.php create mode 100644 IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileEndOfDayCreate.ips.php create mode 100644 IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileEndOfDayDelete.ips.php create mode 100644 IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileManager.class.php create mode 100644 IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileSun.class.php create mode 100644 IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileSunCreate.ips.php create mode 100644 IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileSunDelete.ips.php create mode 100644 IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTemp.class.php create mode 100644 IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTempCreate.ips.php create mode 100644 IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTempDelete.ips.php create mode 100644 IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTime.class.php create mode 100644 IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileWeather.class.php create mode 100644 IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileWeatherCreate.ips.php create mode 100644 IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileWeatherDelete.ips.php create mode 100644 IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProgramTimer.ips.php create mode 100644 IPSLibrary/app/modules/IPSShadowing/IPSShadowing_RefreshTimer.ips.php create mode 100644 IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ResetTimer.ips.php create mode 100644 IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Scenario.class.php create mode 100644 IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ScenarioCreate.ips.php create mode 100644 IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ScenarioDelete.ips.php create mode 100644 IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ScenarioManager.class.php create mode 100644 IPSLibrary/config/modules/IPSShadowing/Default/IPSShadowing_Configuration.inc.php create mode 100644 IPSLibrary/config/modules/IPSShadowing/Default/IPSShadowing_Custom.inc.php create mode 100644 IPSLibrary/config/modules/IPSShadowing/Examples/IPSShadowing_DemoConfiguration.inc.php create mode 100644 IPSLibrary/config/modules/IPSShadowing/Examples/IPSShadowing_DemoCustom.inc.php create mode 100644 IPSLibrary/docu/Screenshots/IPSShadowing_MobileDevice.PNG create mode 100644 IPSLibrary/docu/Screenshots/IPSShadowing_MobileOverview.PNG create mode 100644 IPSLibrary/docu/Screenshots/IPSShadowing_WFDevice.png create mode 100644 IPSLibrary/docu/Screenshots/IPSShadowing_WFMessages.png create mode 100644 IPSLibrary/docu/Screenshots/IPSShadowing_WFOverview.png create mode 100644 IPSLibrary/docu/Screenshots/IPSShadowing_WFProfileBgnOfDay.png create mode 100644 IPSLibrary/docu/Screenshots/IPSShadowing_WFProfileEndOfDay.png create mode 100644 IPSLibrary/docu/Screenshots/IPSShadowing_WFProfileSun.png create mode 100644 IPSLibrary/docu/Screenshots/IPSShadowing_WFProfileTemp.png create mode 100644 IPSLibrary/docu/Screenshots/IPSShadowing_WFProfileWeather.png create mode 100644 IPSLibrary/docu/Screenshots/IPSShadowing_WFScenario.png create mode 100644 IPSLibrary/docu/Screenshots/IPSShadowing_WFScenarioEdit.png create mode 100644 IPSLibrary/docu/Screenshots/IPSShadowing_WFSettings.png create mode 100644 IPSLibrary/install/DownloadListFiles/IPSShadowing_FileList.ini create mode 100644 IPSLibrary/install/InitializationFiles/Default/IPSShadowing.ini create mode 100644 IPSLibrary/install/InstallationScripts/IPSShadowing_Installation.ips.php diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing.inc.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing.inc.php new file mode 100644 index 0000000..6f1359b --- /dev/null +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing.inc.php @@ -0,0 +1,64 @@ + + * + */ + + IPSUtils_Include ("IPSLogger.inc.php", "IPSLibrary::app::core::IPSLogger"); + IPSUtils_Include ("IPSComponent.class.php", "IPSLibrary::app::core::IPSComponent"); + IPSUtils_Include ("IPSShadowing_Constants.inc.php", "IPSLibrary::app::modules::IPSShadowing"); + IPSUtils_Include ("IPSShadowing_Configuration.inc.php", "IPSLibrary::config::modules::IPSShadowing"); + IPSUtils_Include ("IPSShadowing_Custom.inc.php", "IPSLibrary::config::modules::IPSShadowing"); + IPSUtils_Include ("IPSShadowing_Logging.inc.php", "IPSLibrary::app::modules::IPSShadowing"); + IPSUtils_Include ("IPSShadowing_Azimuth.inc.php", "IPSLibrary::app::modules::IPSShadowing"); + IPSUtils_Include ("IPSShadowing_Device.class.php", "IPSLibrary::app::modules::IPSShadowing"); + IPSUtils_Include ("IPSShadowing_ProfileTemp.class.php", "IPSLibrary::app::modules::IPSShadowing"); + IPSUtils_Include ("IPSShadowing_ProfileSun.class.php", "IPSLibrary::app::modules::IPSShadowing"); + IPSUtils_Include ("IPSShadowing_ProfileWeather.class.php", "IPSLibrary::app::modules::IPSShadowing"); + IPSUtils_Include ("IPSShadowing_ProfileTime.class.php", "IPSLibrary::app::modules::IPSShadowing"); + IPSUtils_Include ("IPSShadowing_ProfileManager.class.php", "IPSLibrary::app::modules::IPSShadowing"); + IPSUtils_Include ("IPSShadowing_Scenario.class.php", "IPSLibrary::app::modules::IPSShadowing"); + IPSUtils_Include ("IPSShadowing_ScenarioManager.class.php", "IPSLibrary::app::modules::IPSShadowing"); + + + /** @}*/ +?> \ No newline at end of file diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_AutomaticOff.ips.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_AutomaticOff.ips.php new file mode 100644 index 0000000..de434d4 --- /dev/null +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_AutomaticOff.ips.php @@ -0,0 +1,40 @@ + + * + * Deaktivieren des Automatic Modus für alle Beschattungs Elemente + */ + + include_once "IPSShadowing.inc.php"; + + $categoryIdDevices = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.modules.IPSShadowing.Devices'); + $deviceIds = IPS_GetChildrenIds($categoryIdDevices); + foreach($deviceIds as $deviceId) { + $device = new IPSShadowing_Device($deviceId); + $device->ChangeSetting(IPS_GetObjectIDByIdent(c_Control_Automatic, $deviceId), false); + } + + /** @}*/ +?> \ No newline at end of file diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_AutomaticOn.ips.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_AutomaticOn.ips.php new file mode 100644 index 0000000..8143166 --- /dev/null +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_AutomaticOn.ips.php @@ -0,0 +1,40 @@ + + * + * Aktivieren des Automatic Modus für alle Beschattungs Elemente + */ + + include_once "IPSShadowing.inc.php"; + + $categoryIdDevices = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.modules.IPSShadowing.Devices'); + $deviceIds = IPS_GetChildrenIds($categoryIdDevices); + foreach($deviceIds as $deviceId) { + $device = new IPSShadowing_Device($deviceId); + $device->ChangeSetting(IPS_GetObjectIDByIdent(c_Control_Automatic, $deviceId), true); + } + + /** @}*/ +?> \ No newline at end of file diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_AutomaticReset.ips.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_AutomaticReset.ips.php new file mode 100644 index 0000000..e6c158c --- /dev/null +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_AutomaticReset.ips.php @@ -0,0 +1,39 @@ + + * + * Reset aller "ManualChange" Flags + */ + + include_once "IPSShadowing.inc.php"; + + $categoryIdDevices = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.modules.IPSShadowing.Devices'); + $deviceIds = IPS_GetChildrenIds($categoryIdDevices); + foreach($deviceIds as $deviceId) { + $device = new IPSShadowing_Device($deviceId); + $device->ChangeSetting(IPS_GetObjectIDByIdent(c_Control_ManualChange, $deviceId), false); + } + /** @}*/ +?> \ No newline at end of file diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Azimuth.inc.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Azimuth.inc.php new file mode 100644 index 0000000..4f8f1ce --- /dev/null +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Azimuth.inc.php @@ -0,0 +1,422 @@ + + * + * Berechnung/Grafik von Azimuth und Elevation + * + */ + + IPSUtils_Include ("IPSLogger.inc.php", "IPSLibrary::app::core::IPSLogger"); + IPSUtils_Include ("IPSComponent.class.php", "IPSLibrary::app::core::IPSComponent"); + IPSUtils_Include ("IPSShadowing_Constants.inc.php", "IPSLibrary::app::modules::IPSShadowing"); + IPSUtils_Include ("IPSShadowing_Configuration.inc.php", "IPSLibrary::config::modules::IPSShadowing"); + IPSUtils_Include ("IPSShadowing_Custom.inc.php", "IPSLibrary::config::modules::IPSShadowing"); + IPSUtils_Include ("IPSShadowing_Logging.inc.php", "IPSLibrary::app::modules::IPSShadowing"); + IPSUtils_Include ("IPSShadowing_Device.class.php", "IPSLibrary::app::modules::IPSShadowing"); + IPSUtils_Include ("IPSShadowing_ProfileTemp.class.php", "IPSLibrary::app::modules::IPSShadowing"); + IPSUtils_Include ("IPSShadowing_ProfileTime.class.php", "IPSLibrary::app::modules::IPSShadowing"); + IPSUtils_Include ("IPSShadowing_ProfileManager.class.php", "IPSLibrary::app::modules::IPSShadowing"); + IPSUtils_Include ("IPSShadowing_Scenario.class.php", "IPSLibrary::app::modules::IPSShadowing"); + IPSUtils_Include ("IPSShadowing_ScenarioManager.class.php", "IPSLibrary::app::modules::IPSShadowing"); + + //IPSShadowing_GenerateSunGraphic(time(), 150, 190,30); + + function IPSShadowing_GenerateSunGraphic($graphDate, $azimuthBgn=110, $azimuthEnd=220, $elevationLvl=20, $orientationSouth=false) { + $longitude = IPSSHADOWING_LONGITUDE; + $latitude = IPSSHADOWING_LATITUDE; + $orientationDeg = IPSSHADOWING_BUILDINGORIENTATION; + $relationDeg = IPSSHADOWING_BUILDINGRELATION; + + $imageWidth = 400; + $imageHeight = 450; + + $image = imagecreate($imageWidth,$imageHeight); + $white = imagecolorallocate($image,255,255,255); + $textColor = imagecolorallocate($image,250,250,250); + $transparent = imagecolortransparent($image,$white); + + $elevationVOffset = 110; + $elevationSunRadio = 10; + $elevationFactor = 1.5; + $elevationColorAct = imagecolorallocate($image, 255, 255, 0); // Yellow + $elevationColorNor = imagecolorallocate($image, 55, 55, 0); + $elevationColorLine = imagecolorallocate($image, 100, 100, 100); + $elevationColorText = imagecolorallocate($image, 200, 200, 200); + + $sunDegree = $orientationSouth ? 0 : $orientationDeg; + $sunOffsetH = $imageWidth/2; + $sunOffsetV = $imageHeight/2+100; + $sunRadius1 = $imageWidth/2-70; + $sunRadius2 = $imageWidth/5; + $sunColorAct = imagecolorallocate($image, 255, 255, 0); // Yellow + $sunColorEle = imagecolorallocate($image, 200, 200, 200); + $sunColorNor = imagecolorallocate($image, 55, 55, 0); + + $buildingDeg1 = $orientationSouth ? 45 - $orientationDeg : 45; + $buildingDeg2 = $relationDeg; + $buildingVOffset= $sunOffsetV; + $buildingHOffset= $imageWidth/2; + $buildingRadius = $imageWidth/7; + $buildingColor = imagecolorallocate($image, 100, 100, 100); // Grey + + // Prepare Elevation Display + for ($idx=0;$idx<=60;$idx=$idx+10) { + imageline($image, 20, $elevationVOffset-$idx*$elevationFactor, $imageWidth-10, $elevationVOffset-$idx*$elevationFactor, $elevationColorLine); + imagestring($image,2,0,$elevationVOffset-$idx*$elevationFactor-7,$idx."°",$elevationColorText); + } + for ($hour=2;$hour<=22;$hour=$hour+2) { + imageline($image, $imageWidth/24*$hour, $elevationVOffset+5, $imageWidth/24*$hour, $elevationVOffset-60*$elevationFactor-7, $elevationColorLine); + imagestring($image,2,$imageWidth/24*$hour-5,$elevationVOffset+10,str_pad($hour, 2, "0", STR_PAD_LEFT),$elevationColorText); + } + + for ($hour=0; $hour<24; $hour++) { + $data = Get_AnzimuatAndElevation(mktime($hour, 0, 0, date('n',$graphDate), date('d', $graphDate), date("Y",$graphDate)), $longitude, $latitude); + $azimuth = round($data['Azimuth']); + $elevation = round($data['Elevation']); + + // Elevation + // -------------------------------------------------------------------------------------------------------------------------- + if ($elevation >= -5) { + $elevationColor = $elevationColorNor; + if ($elevation>=$elevationLvl) {$elevationColor = $elevationColorAct;} + imagefilledarc($image, $imageWidth/24*$hour, $elevationVOffset-$elevation*$elevationFactor, $elevationSunRadio, $elevationSunRadio, 0, 360, $elevationColor, IMG_ARC_PIE); + } + + // Print Sun + $sunColor = $sunColorNor; + if ($azimuth>=$azimuthBgn and $azimuth<=$azimuthEnd) { + $sunColor = $sunColorAct; + if ($elevation < $elevationLvl) $sunColor = $sunColorEle; + } + + // Azimut + // -------------------------------------------------------------------------------------------------------------------------- + if ($elevation >=0) { + $deg = 270-$azimuth-$sunDegree; + $x1 = round(cos(($deg) * M_PI / 180) * $sunRadius1)+$sunOffsetH; + $y1 = round(sin(($deg) * M_PI / 180) * $sunRadius1); + $x2 = round(cos(($deg+1) * M_PI / 180) * $sunRadius1)+$sunOffsetH; + $y2 = round(sin(($deg+1) * M_PI / 180) * $sunRadius1); + $x3 = round(cos(($deg+1) * M_PI / 180) * $sunRadius2)+$sunOffsetH; + $y3 = round(sin(($deg+1) * M_PI / 180) * $sunRadius2); + $x4 = round(cos(($deg) * M_PI / 180) * $sunRadius2)+$sunOffsetH; + $y4 = round(sin(($deg) * M_PI / 180) * $sunRadius2); + $x5 = round(cos(($deg-1.5) * M_PI / 180) * ($sunRadius2+10))+$sunOffsetH; + $y5 = round(sin(($deg-1.5) * M_PI / 180) * ($sunRadius2+10)); + $x6 = round(cos(($deg+2.5) * M_PI / 180) * ($sunRadius2+10))+$sunOffsetH; + $y6 = round(sin(($deg+2.5) * M_PI / 180) * ($sunRadius2+10)); + + imagefilledpolygon ($image ,array($x1,$sunOffsetV-$y1,$x2,$sunOffsetV-$y2,$x3,$sunOffsetV-$y3,$x4,$sunOffsetV-$y4), 4, $sunColor); + imagefilledpolygon ($image ,array($x3,$sunOffsetV-$y3,$x4,$sunOffsetV-$y4,$x5,$sunOffsetV-$y5,$x6,$sunOffsetV-$y6), 4, $sunColor); + + $x3 = round(cos($deg * M_PI / 180) * $sunRadius1+9)+$sunOffsetH; + $y3 = round(sin($deg * M_PI / 180) * $sunRadius1+9); + if ($x3<=$imageWidth/2) {$x3=$x3-25;} + imagestring($image,2,$x3,$sunOffsetV-$y3,str_pad($hour, 2, "0", STR_PAD_LEFT),$elevationColorText); + } + } + + for ($hour=9; $hour<17; $hour++) { + $data = Get_AnzimuatAndElevation(mktime($hour, 30, 0, date('n',$graphDate), date('d', $graphDate), date("Y",$graphDate)), $longitude, $latitude); + $azimuth = round($data['Azimuth']); + $elevation = round($data['Elevation']); + + $sunColor = $sunColorNor; + if ($azimuth>=$azimuthBgn and $azimuth<=$azimuthEnd) { + $sunColor = $sunColorAct; + if ($elevation < $elevationLvl) $sunColor = $sunColorEle; + } + if ($elevation >=10) { + $deg = 270-$azimuth-$sunDegree; + $x1 = round(cos(($deg) * M_PI / 180) * ($sunRadius1-10))+$sunOffsetH; + $y1 = round(sin(($deg) * M_PI / 180) * ($sunRadius1-10)); + $x2 = round(cos(($deg) * M_PI / 180) * ($sunRadius1-10))+$sunOffsetH; + $y2 = round(sin(($deg) * M_PI / 180) * ($sunRadius1-10)); + $x3 = round(cos(($deg) * M_PI / 180) * ($sunRadius2+10))+$sunOffsetH; + $y3 = round(sin(($deg) * M_PI / 180) * ($sunRadius2+10)); + $x4 = round(cos(($deg) * M_PI / 180) * ($sunRadius2+10))+$sunOffsetH; + $y4 = round(sin(($deg) * M_PI / 180) * ($sunRadius2+10)); + + imageline($image, $x1,$sunOffsetV-$y1, $x3,$sunOffsetV-$y3, $sunColor); + } + } + + $x3 = round(cos((270-90-$sunDegree) * M_PI / 180) * ($sunRadius1+50))+$sunOffsetH; + $y3 = round(sin((270-90-$sunDegree) * M_PI / 180) * ($sunRadius1+50)); + imagestring($image,4,$x3,$sunOffsetV-$y3,'Ost',$elevationColorText); + + $x3 = round(cos((270-180-$sunDegree) * M_PI / 180) * ($sunRadius1+25))+$sunOffsetH-15; + $y3 = round(sin((270-180-$sunDegree) * M_PI / 180) * ($sunRadius1+25)); + imagestring($image,4,$x3,$sunOffsetV-$y3,'Süd',$elevationColorText); + + $x3 = round(cos((270-270-$sunDegree) * M_PI / 180) * ($sunRadius1+25))+$sunOffsetH; + $y3 = round(sin((270-270-$sunDegree) * M_PI / 180) * ($sunRadius1+25)); + imagestring($image,4,$x3,$sunOffsetV-$y3,'West',$elevationColorText); + + + // Print Building + // -------------------------------------------------------------------------------------------------------------------------- + $points = array( + round(cos(($buildingDeg1-$buildingDeg2) * M_PI / 180) * $buildingRadius)+$buildingHOffset, + round(sin(($buildingDeg1-$buildingDeg2) * M_PI / 180) * $buildingRadius)+$buildingVOffset, + round(cos(($buildingDeg1+90+$buildingDeg2) * M_PI / 180) * $buildingRadius)+$buildingHOffset, + round(sin(($buildingDeg1+90+$buildingDeg2) * M_PI / 180) * $buildingRadius)+$buildingVOffset, + round(cos(($buildingDeg1+180-$buildingDeg2) * M_PI / 180) * $buildingRadius)+$buildingHOffset, + round(sin(($buildingDeg1+180-$buildingDeg2) * M_PI / 180) * $buildingRadius)+$buildingVOffset, + round(cos(($buildingDeg1+270+$buildingDeg2) * M_PI / 180) * $buildingRadius)+$buildingHOffset, + round(sin(($buildingDeg1+270+$buildingDeg2) * M_PI / 180) * $buildingRadius)+$buildingVOffset , + ); + imagefilledpolygon ($image ,$points, 4, $buildingColor); + + imagestring($image,4,5,$elevationVOffset+35, 'Datum: '.date('Y-m-d',$graphDate),$buildingColor); + + imagestring($image,2,5,$imageHeight-15, 'Latitude: '.round($latitude,2),$buildingColor); + imagestring($image,2,5,$imageHeight-30, 'Longitude: '.round($longitude,2),$buildingColor); + imagestring($image,2,$imageWidth/2+10,$imageHeight-15, 'Elevation aktuell: '.$elevation,$buildingColor); + imagestring($image,2,$imageWidth/2+10,$imageHeight-30, 'Azimuth aktuell: '.$azimuth,$buildingColor); + + // Write File + imagegif ($image, IPS_GetKernelDir().'media\\IPSShadowing_Azimuth.gif', 90); + imagedestroy($image); + } + + function IPSShadowing_GenerateSunGraphicOld($graphDate, $azimuthBgn=110, $azimuthEnd=220, $elevationLvl=20) { + $longitude = IPSSHADOWING_LONGITUDE; + $latitude = IPSSHADOWING_LATITUDE; + + $imageWidth = 300; + $imageHeight = 400; + + $image = imagecreate($imageWidth,$imageHeight); + $white = imagecolorallocate($image,255,255,255); + $textColor = imagecolorallocate($image,250,250,250); + $transparent = imagecolortransparent($image,$white); + + $elevationVOffset = 110; + $elevationSunRadio = 10; + $elevationFactor = 1.5; + $elevationColorAct = imagecolorallocate($image, 255, 255, 0); // Yellow + $elevationColorNor = imagecolorallocate($image, 55, 55, 0); + $elevationColorLine = imagecolorallocate($image, 100, 100, 100); + $elevationColorText = imagecolorallocate($image, 200, 200, 200); + + $sunOffsetH = $imageWidth/2; + $sunOffsetV = $imageHeight/2+80; + $sunRadius1 = $imageWidth/2-20; + $sunRadius2 = $imageWidth/4; + $sunColorAct = imagecolorallocate($image, 255, 255, 0); // Yellow + $sunColorEle = imagecolorallocate($image, 200, 200, 200); + $sunColorNor = imagecolorallocate($image, 55, 55, 0); + + $buildingDeg1=15; + $buildingDeg2=20; + $buildingVOffset=$sunOffsetV; + $buildingHOffset=$imageWidth/2; + $buildingRadius=$imageWidth/5; + $buildingColor = imagecolorallocate($image, 100, 100, 100); // Grey + + // Prepare Elevation Display + for ($idx=0;$idx<=60;$idx=$idx+10) { + imageline($image, 20, $elevationVOffset-$idx*$elevationFactor, $imageWidth-10, $elevationVOffset-$idx*$elevationFactor, $elevationColorLine); + imagestring($image,2,0,$elevationVOffset-$idx*$elevationFactor-7,$idx."°",$elevationColorText); + } + for ($hour=2;$hour<=22;$hour=$hour+2) { + imageline($image, $imageWidth/24*$hour, $elevationVOffset+5, $imageWidth/24*$hour, $elevationVOffset-60*$elevationFactor-7, $elevationColorLine); + imagestring($image,2,$imageWidth/24*$hour-5,$elevationVOffset+10,str_pad($hour, 2, "0", STR_PAD_LEFT),$elevationColorText); + } + + for ($hour=0; $hour<24; $hour++) { + $data = Get_AnzimuatAndElevation(mktime($hour, 0, 0, date('n',$graphDate), date('d', $graphDate), date("Y",$graphDate)), $longitude, $latitude); + $azimuth = round($data['Azimuth']); + $elevation = round($data['Elevation']); + + // Elevation + // -------------------------------------------------------------------------------------------------------------------------- + if ($elevation >= -5) { + $elevationColor = $elevationColorNor; + if ($elevation>=$elevationLvl) {$elevationColor = $elevationColorAct;} + imagefilledarc($image, $imageWidth/24*$hour, $elevationVOffset-$elevation*$elevationFactor, $elevationSunRadio, $elevationSunRadio, 0, 360, $elevationColor, IMG_ARC_PIE); + } + + // Print Sun + $sunColor = $sunColorNor; + if ($azimuth>=$azimuthBgn and $azimuth<=$azimuthEnd) { + $sunColor = $sunColorAct; + if ($elevation < $elevationLvl) $sunColor = $sunColorEle; + } + + // Azimut + // -------------------------------------------------------------------------------------------------------------------------- + if ($elevation >=0) { + $deg = 270-$azimuth; + $x1 = round(cos(($deg) * M_PI / 180) * $sunRadius1)+$sunOffsetH; + $y1 = round(sin(($deg) * M_PI / 180) * $sunRadius1); + $x2 = round(cos(($deg+1) * M_PI / 180) * $sunRadius1)+$sunOffsetH; + $y2 = round(sin(($deg+1) * M_PI / 180) * $sunRadius1); + $x3 = round(cos(($deg+1) * M_PI / 180) * $sunRadius2)+$sunOffsetH; + $y3 = round(sin(($deg+1) * M_PI / 180) * $sunRadius2); + $x4 = round(cos(($deg) * M_PI / 180) * $sunRadius2)+$sunOffsetH; + $y4 = round(sin(($deg) * M_PI / 180) * $sunRadius2); + $x5 = round(cos(($deg-1.5) * M_PI / 180) * ($sunRadius2+10))+$sunOffsetH; + $y5 = round(sin(($deg-1.5) * M_PI / 180) * ($sunRadius2+10)); + $x6 = round(cos(($deg+2.5) * M_PI / 180) * ($sunRadius2+10))+$sunOffsetH; + $y6 = round(sin(($deg+2.5) * M_PI / 180) * ($sunRadius2+10)); + + imagefilledpolygon ($image ,array($x1,$sunOffsetV-$y1,$x2,$sunOffsetV-$y2,$x3,$sunOffsetV-$y3,$x4,$sunOffsetV-$y4), 4, $sunColor); + imagefilledpolygon ($image ,array($x3,$sunOffsetV-$y3,$x4,$sunOffsetV-$y4,$x5,$sunOffsetV-$y5,$x6,$sunOffsetV-$y6), 4, $sunColor); + + $x3 = round(cos($deg * M_PI / 180) * $sunRadius1+9)+$sunOffsetH; + $y3 = round(sin($deg * M_PI / 180) * $sunRadius1+9); + if ($x3<=$imageWidth/2) {$x3=$x3-25;} + imagestring($image,2,$x3,$sunOffsetV-$y3,str_pad($hour, 2, "0", STR_PAD_LEFT),$elevationColorText); + } + } + + for ($hour=9; $hour<17; $hour++) { + $data = Get_AnzimuatAndElevation(mktime($hour, 30, 0, date('n',$graphDate), date('d', $graphDate), date("Y",$graphDate)), $longitude, $latitude); + $azimuth = round($data['Azimuth']); + $elevation = round($data['Elevation']); + + $sunColor = $sunColorNor; + if ($azimuth>=$azimuthBgn and $azimuth<=$azimuthEnd) { + $sunColor = $sunColorAct; + if ($elevation < $elevationLvl) $sunColor = $sunColorEle; + } + if ($elevation >=10) { + $deg = 270-$azimuth; + $x1 = round(cos(($deg) * M_PI / 180) * ($sunRadius1-10))+$sunOffsetH; + $y1 = round(sin(($deg) * M_PI / 180) * ($sunRadius1-10)); + $x2 = round(cos(($deg) * M_PI / 180) * ($sunRadius1-10))+$sunOffsetH; + $y2 = round(sin(($deg) * M_PI / 180) * ($sunRadius1-10)); + $x3 = round(cos(($deg) * M_PI / 180) * ($sunRadius2+10))+$sunOffsetH; + $y3 = round(sin(($deg) * M_PI / 180) * ($sunRadius2+10)); + $x4 = round(cos(($deg) * M_PI / 180) * ($sunRadius2+10))+$sunOffsetH; + $y4 = round(sin(($deg) * M_PI / 180) * ($sunRadius2+10)); + + imageline($image, $x1,$sunOffsetV-$y1, $x3,$sunOffsetV-$y3, $sunColor); + } + } + + + // Print Building + // -------------------------------------------------------------------------------------------------------------------------- + $points = array( + round(cos($buildingDeg1 * M_PI / 180) * $buildingRadius)+$buildingHOffset, + round(sin($buildingDeg1 * M_PI / 180) * $buildingRadius)+$buildingVOffset, + round(cos(($buildingDeg1+90+$buildingDeg2) * M_PI / 180) * $buildingRadius)+$buildingHOffset, + round(sin(($buildingDeg1+90+$buildingDeg2) * M_PI / 180) * $buildingRadius)+$buildingVOffset, + round(cos(($buildingDeg1+180) * M_PI / 180) * $buildingRadius)+$buildingHOffset, + round(sin(($buildingDeg1+180) * M_PI / 180) * $buildingRadius)+$buildingVOffset, + round(cos(($buildingDeg1+270+$buildingDeg2) * M_PI / 180) * $buildingRadius)+$buildingHOffset, + round(sin(($buildingDeg1+270+$buildingDeg2) * M_PI / 180) * $buildingRadius)+$buildingVOffset , + ); + imagefilledpolygon ($image ,$points, 4, $buildingColor); + + imagestring($image,2,5,$imageHeight-15, 'Latitude: '.round($latitude,2),$buildingColor); + imagestring($image,2,5,$imageHeight-30, 'Longitude: '.round($longitude,2),$buildingColor); + imagestring($image,2,5,$elevationVOffset+20, 'Datum: '.date('Y-m-d',$graphDate),$buildingColor); + + imagestring($image,2,$imageWidth/2+10,$imageHeight-15, 'Elevation aktuell: '.$elevation,$buildingColor); + imagestring($image,2,$imageWidth/2+10,$imageHeight-30, 'Azimuth aktuell: '.$azimuth,$buildingColor); + + // Write File + imagegif ($image, IPS_GetKernelDir().'media\\IPSShadowing_Azimuth.gif', 90); + imagedestroy($image); + } + + function Get_AnzimuatAndElevation($time, $dLongitude, $dLatitude) { + $dHours = gmdate('H', $time); + $dMinutes = gmdate('i', $time); + $dSeconds = gmdate('s', $time); + $iYear = gmdate('Y', $time); + $iMonth = gmdate('m', $time); + $iDay = gmdate('d', $time); + + $pi = 3.14159265358979323846; + $twopi = (2*$pi); + $rad = ($pi/180); + $dEarthMeanRadius = 6371.01; // In km + $dAstronomicalUnit = 149597890; // In km + + // Calculate difference in days between the current Julian Day + // and JD 2451545.0, which is noon 1 January 2000 Universal Time + // Calculate time of the day in UT decimal hours + $dDecimalHours = floatval($dHours) + (floatval($dMinutes) + floatval($dSeconds) / 60.0 ) / 60.0; + // Calculate current Julian Day + $iYfrom2000 = $iYear;//expects now as YY ; + $iA= (14 - ($iMonth)) / 12; + $iM= ($iMonth) + 12 * $iA -3; + $liAux3=(153 * $iM + 2)/5; + $liAux4= 365 * ($iYfrom2000 - $iA); + $liAux5= ( $iYfrom2000 - $iA)/4; + $dElapsedJulianDays= floatval(($iDay + $liAux3 + $liAux4 + $liAux5 + 59)+ -0.5 + $dDecimalHours/24.0); + + // Calculate ecliptic coordinates (ecliptic longitude and obliquity of the + // ecliptic in radians but without limiting the angle to be less than 2*Pi + // (i.e., the result may be greater than 2*Pi) + $dOmega= 2.1429 - 0.0010394594 * $dElapsedJulianDays; + $dMeanLongitude = 4.8950630 + 0.017202791698 * $dElapsedJulianDays; // Radians + $dMeanAnomaly = 6.2400600 + 0.0172019699 * $dElapsedJulianDays; + $dEclipticLongitude = $dMeanLongitude + 0.03341607 * sin( $dMeanAnomaly ) + 0.00034894 * sin( 2 * $dMeanAnomaly ) -0.0001134 -0.0000203 * sin($dOmega); + $dEclipticObliquity = 0.4090928 - 6.2140e-9 * $dElapsedJulianDays +0.0000396 * cos($dOmega); + + // Calculate celestial coordinates ( right ascension and declination ) in radians + // but without limiting the angle to be less than 2*Pi (i.e., the result may be + // greater than 2*Pi) + $dSin_EclipticLongitude = sin( $dEclipticLongitude ); + $dY1 = cos( $dEclipticObliquity ) * $dSin_EclipticLongitude; + $dX1 = cos( $dEclipticLongitude ); + $dRightAscension = atan2( $dY1,$dX1 ); + if( $dRightAscension < 0.0 ) $dRightAscension = $dRightAscension + $twopi; + $dDeclination = asin( sin( $dEclipticObliquity )* $dSin_EclipticLongitude ); + + // Calculate local coordinates ( azimuth and zenith angle ) in degrees + $dGreenwichMeanSiderealTime = 6.6974243242 + 0.0657098283 * $dElapsedJulianDays + $dDecimalHours; + $dLocalMeanSiderealTime = ($dGreenwichMeanSiderealTime*15 + $dLongitude)* $rad; + $dHourAngle = $dLocalMeanSiderealTime - $dRightAscension; + $dLatitudeInRadians = $dLatitude * $rad; + $dCos_Latitude = cos( $dLatitudeInRadians ); + $dSin_Latitude = sin( $dLatitudeInRadians ); + $dCos_HourAngle= cos( $dHourAngle ); + $dZenithAngle = (acos( $dCos_Latitude * $dCos_HourAngle * cos($dDeclination) + sin( $dDeclination )* $dSin_Latitude)); + $dY = -sin( $dHourAngle ); + $dX = tan( $dDeclination )* $dCos_Latitude - $dSin_Latitude * $dCos_HourAngle; + $dAzimuth = atan2( $dY, $dX ); + if ( $dAzimuth < 0.0 ) + $dAzimuth = $dAzimuth + $twopi; + $dAzimuth = $dAzimuth / $rad; + // Parallax Correction + $dParallax = ($dEarthMeanRadius / $dAstronomicalUnit) * sin( $dZenithAngle); + $dZenithAngle = ($dZenithAngle + $dParallax) / $rad; + $dElevation = 90 - $dZenithAngle; + + $data=array(); + $data['Azimuth'] = $dAzimuth; + $data['Elevation'] = $dElevation; + return $data; + } + + /** @}*/ +?> \ No newline at end of file diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ChangeSettings.ips.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ChangeSettings.ips.php new file mode 100644 index 0000000..f928b0c --- /dev/null +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ChangeSettings.ips.php @@ -0,0 +1,147 @@ + + * + * Action Script von IPSShadowing um Änderungen aus dem WebFront bzw. der Mobile GUI zu ermöglichen + */ + + include_once "IPSShadowing.inc.php"; + + // ---------------------------------------------------------------------------------------------------------------------------- + if ($_IPS['SENDER']=='WebFront') { + $controlId = $_IPS['VARIABLE']; + $value = $_IPS['VALUE']; + $controlType = IPS_GetIdent($controlId); + + $scenarioManager = new IPSShadowing_ScenarioManager(); + $profileManager = new IPSShadowing_ProfileManager(); + + switch($controlType) { + // Devices + // ----------------------------------------------------------------------------------------------------- + case c_Control_Movement: + $deviceId = IPS_GetParent($controlId); + $device = new IPSShadowing_Device($deviceId); + $device->MoveByControl($value); + break; + + case c_Control_ProgramNight: + case c_Control_ProgramDay: + case c_Control_ProgramTemp: + case c_Control_ProgramPresent: + case c_Control_ProgramWeather: + case c_Control_ProfileTemp: + case c_Control_ProfileSun: + case c_Control_ProfileWeather: + case c_Control_ProfileBgnOfDay: + case c_Control_ProfileEndOfDay: + case c_Control_ManualChange: + case c_Control_TempChange: + case c_Control_Automatic: + $deviceId = IPS_GetParent($controlId); + $device = new IPSShadowing_Device($deviceId); + $device->ChangeSetting($controlId, $value); + break; + + // Common Settings + // ----------------------------------------------------------------------------------------------------- + case c_Control_MsgPrioTemp: + case c_Control_MsgPrioProg: + SetValue($controlId, $value); + break; + + // Scenario Settings + // ----------------------------------------------------------------------------------------------------- + case c_Control_ScenarioEdit: + $scenarioManager->SetEditMode(IPS_GetParent($controlId), $value); + break; + case c_Control_ScenarioActivate: + $scenarioManager->Activate($value); + break; + case c_Control_ScenarioSelect: + $scenarioManager->Select($value); + break; + case c_Control_ScenarioName: + $scenarioManager->Rename(IPS_GetParent($controlId), $value); + break; + + // Profile Settings + // ----------------------------------------------------------------------------------------------------- + case c_Control_ProfileTempSelect: + $profileManager->SelectTemp($value); + break; + case c_Control_ProfileSunSelect: + $profileManager->SelectSun($value); + break; + case c_Control_ProfileWeatherSelect: + $profileManager->SelectWeather($value); + break; + case c_Control_ProfileBgnOfDaySelect: + $profileManager->SelectBgnOfDay($value); + break; + case c_Control_ProfileEndOfDaySelect: + $profileManager->SelectEndOfDay($value); + break; + + case c_Control_ProfileName: + $profileManager->Rename($controlId, $value); + break; + + case c_Control_TempDiffShadowing: + case c_Control_TempDiffClosing: + case c_Control_TempDiffOpening: + case c_Control_Brightness: + case c_Control_AzimuthBgn: + case c_Control_AzimuthEnd: + case c_Control_Elevation: + case c_Control_Date: + case c_Control_Simulation: + case c_Control_Orientation: + case c_Control_WorkdayMode: + case c_Control_WorkdayTime: + case c_Control_WorkdayOffset: + case c_Control_WeekendMode: + case c_Control_WeekendTime: + case c_Control_WeekendOffset: + case c_Control_RainCheck: + case c_Control_WindLevel: + $profileManager->SetValue($controlId, $value); + break; + + + // Scenario Settings + // ----------------------------------------------------------------------------------------------------- + default: + $categoryIdent = IPS_GetIdent(IPS_GetParent(IPS_GetParent($controlId))); + if ($categoryIdent=='Scenarios') { + $scenarioManager->SetValue($controlId, $value); + } else { + throw new Exception ("Error Unknown ControlType $controlType"); + } + } + } + + /** @}*/ +?> \ No newline at end of file diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Constants.inc.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Constants.inc.php new file mode 100644 index 0000000..2c9c58c --- /dev/null +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Constants.inc.php @@ -0,0 +1,218 @@ + + * + * Definition der Konstanten für IPSShadowing + * + */ + + // Shadowing Controls + // -------------------------------------------------------------------------- + define ("c_Control_Movement", "Movement"); + define ("c_Movement_Stop", "Stop"); + define ("c_Movement_Down", "Runter"); + define ("c_Movement_Up", "Hoch"); + define ("c_Movement_MovingIn", "Ein"); + define ("c_Movement_MovingOut", "Aus"); + define ("c_Movement_Space", " "); + define ("c_Movement_Opened", "Offen"); + define ("c_Movement_MovedIn", "Eingefahren"); + define ("c_Movement_25", "25%"); + define ("c_Movement_50", "50%"); + define ("c_Movement_75", "75%"); + define ("c_Movement_90", "90%"); + define ("c_Movement_Shadowing", "Beschattung"); + define ("c_Movement_Dimout", "Abdunkelung"); + define ("c_Movement_Closed", "Geschlossen"); + define ("c_Movement_MovedOut", "Ausgefahren"); + define ("c_Movement_NoAction", "Keine Aktion"); + + define ("c_MovementId_Closed", 0); + define ("c_MovementId_Dimout", 1); + define ("c_MovementId_Shadowing", 2); + define ("c_MovementId_MovedOut", 3); + define ("c_MovementId_90", 4); + define ("c_MovementId_75", 5); + define ("c_MovementId_50", 6); + define ("c_MovementId_25", 7); + define ("c_MovementId_Opened", 8); + define ("c_MovementId_MovedIn", 9); + define ("c_MovementId_Space", 10); + define ("c_MovementId_Down", 11); + define ("c_MovementId_MovingOut", 12); + define ("c_MovementId_Stop", 13); + define ("c_MovementId_Up", 14); + define ("c_MovementId_MovingIn", 15); + define ("c_MovementId_NoAction", 16); + + define ("c_Control_ProgramNight", "ProgramNight"); + define ("c_Control_ProgramDay", "ProgramDay"); + define ("c_Control_ProgramTemp", "ProgramTemp"); + define ("c_Control_ProgramPresent", "ProgramPresent"); + define ("c_Control_ProgramWeather", "ProgramWeather"); + define ("c_Control_Position", "Position"); + define ("c_Control_Display", "Display"); + define ("c_Control_StepsToDo", "StepsToDo"); + define ("c_Control_Step", "Step"); + define ("c_Control_StartTime", "StartTime"); + define ("c_Control_Automatic", "Automatic"); + define ("c_Control_ManualChange", "ManualChange"); + define ("c_Control_TempChange", "TemperatureChange"); + define ("c_Control_ProfileTemp", "ProfileTemp"); + define ("c_Control_ProfileSun", "ProfileSun"); + define ("c_Control_ProfileWeather", "ProfileWeather"); + define ("c_Control_ProfileBgnOfDay", "ProfileBgnOfDay"); + define ("c_Control_ProfileEndOfDay", "ProfileEndOfDay"); + define ("c_Control_ProfileInfo", "ProfileInfo"); + + define ("c_Control_ProfileName", "ProfileName"); + define ("c_Control_TempDiffShadowing", "TempDiffShadowing"); + define ("c_Control_TempDiffClosing", "TempDiffClosing"); + define ("c_Control_TempDiffOpening", "TempDiffOpening"); + define ("c_Control_Brightness", "Brightness"); + define ("c_Control_AzimuthBgn", "AzimuthBgn"); + define ("c_Control_AzimuthEnd", "AzimuthEnd"); + define ("c_Control_Elevation", "Elevation"); + define ("c_Control_Date", "Date"); + define ("c_Control_Simulation", "Simulation"); + define ("c_Control_Orientation", "Orientation"); + define ("c_Control_WindLevel", "WindLevel"); + define ("c_Control_RainCheck", "RainCheck"); + + define ("c_Control_WorkdayMode", "WorkdayMode"); + define ("c_Control_WorkdayTime", "WorkdayTime"); + define ("c_Control_WorkdayOffset", "WorkdayOffset"); + define ("c_Control_WeekendMode", "WeekendMode"); + define ("c_Control_WeekendTime", "WeekendTime"); + define ("c_Control_WeekendOffset", "WeekendOffset"); + + define ("c_Control_ScenarioName", "ScenarioName"); + define ("c_Control_ScenarioEdit", "ScenarioEdit"); + define ("c_Control_ScenarioSelect", "ScenarioSelect"); + define ("c_Control_ScenarioActivate", "ScenarioActivate"); + + define ("c_Control_ProfileTempSelect", "ProfileTempSelect"); + define ("c_Control_ProfileSunSelect", "ProfileSunSelect"); + define ("c_Control_ProfileWeatherSelect", "ProfileWeatherSelect"); + define ("c_Control_ProfileBgnOfDaySelect", "ProfileBgnOfDaySelect"); + define ("c_Control_ProfileEndOfDaySelect", "ProfileEndOfDaySelect"); + + define ("c_ModeId_Individual", 0); + define ("c_ModeId_Twillight", 1); + define ("c_ModeId_LimitedTwillight", 2); + + // Common Settings Controls + define ("c_Control_MsgPrioTemp", "MsgPrioTemp"); + define ("c_Control_MsgPrioProg", "MsgPrioProg"); + + define ("c_TempDiff_NoAction", 4); + + define ("c_Color_ProfileActive", 0x880000); + + // Programm Difinition + // -------------------------------------------------------------------------- + define ("c_Program_Manual", "Manuell"); + define ("c_Program_Opened", "Offen"); + define ("c_Program_MovedIn", "Eingefahren"); + define ("c_Program_OpenedOrShadowing", "Offen oder Beschattung"); + define ("c_Program_OpenedAndShadowing", "Offen und Beschattung"); + define ("c_Program_OpenedDay", "Geöffnet Tag"); + define ("c_Program_OpenedNight", "Geöffnet Nacht"); + define ("c_Program_Closed", "Geschlossen"); + define ("c_Program_75", "75"); + define ("c_Program_90", "90"); + define ("c_Program_Dimout", "Geschlossen"); + define ("c_Program_MovedOut", "Ausgefahren"); + define ("c_Program_MovedOutTemp", "Ausgefahren Temperatur"); + define ("c_Program_DimoutOrShadowing", "Schatten oder Geschl"); + define ("c_Program_DimoutAndShadowing", "Schatten und Geschl."); + + define ("c_ProgramId_Opened", 1); + define ("c_ProgramId_MovedIn", 2); + define ("c_ProgramId_OpenedOrShadowing", 3); + define ("c_ProgramId_OpenedAndShadowing", 4); + define ("c_ProgramId_OpenedDay", 5); + define ("c_ProgramId_OpenedNight", 6); + define ("c_ProgramId_75", 7); + define ("c_ProgramId_90", 8); + define ("c_ProgramId_Closed", 9); + define ("c_ProgramId_Dimout", 10); + define ("c_ProgramId_DimoutOrShadowing", 11); + define ("c_ProgramId_DimoutAndShadowing", 12); + define ("c_ProgramId_MovedOut", 13); + define ("c_ProgramId_MovedOutTemp", 14); + define ("c_ProgramId_Manual", 15); + + define ("c_ShadowingType_Shutter", "Shutter"); + define ("c_ShadowingType_Jalousie", "Jolousie"); + define ("c_ShadowingType_Marquees", "Marquees"); + + define ("c_Format_DateTime", 'Y.m.d H:i:s'); + + // Device Configuration Properties + // -------------------------------------------------------------------------- + define ("c_Property_Name", "Name"); + define ("c_Property_ShadowingType", "ShadowingType"); + define ("c_Property_TimeOpening", "TimeOpening"); + define ("c_Property_TimeClosing", "TimeClosing"); + define ("c_Property_TimeDimoutUp", "TimeDimoutUp"); + define ("c_Property_TimeDimoutDown", "TimeDimoutDown"); + define ("c_Property_TimePause", "TimePauseBreak"); + define ("c_Property_Component", "Component"); + define ("c_Property_TempSensorIndoor", "TempSensorIndoor"); + + define ("c_ShadowingDevice_1", "Device1"); + define ("c_ShadowingDevice_2", "Device2"); + define ("c_ShadowingDevice_3", "Device3"); + define ("c_ShadowingDevice_4", "Device4"); + define ("c_ShadowingDevice_5", "Device5"); + define ("c_ShadowingDevice_6", "Device6"); + define ("c_ShadowingDevice_7", "Device7"); + define ("c_ShadowingDevice_8", "Device8"); + define ("c_ShadowingDevice_9", "Device9"); + define ("c_ShadowingDevice_10", "Device10"); + define ("c_ShadowingDevice_11", "Device11"); + define ("c_ShadowingDevice_12", "Device12"); + define ("c_ShadowingDevice_13", "Device13"); + define ("c_ShadowingDevice_14", "Device14"); + define ("c_ShadowingDevice_15", "Device15"); + define ("c_ShadowingDevice_16", "Device16"); + define ("c_ShadowingDevice_17", "Device17"); + define ("c_ShadowingDevice_18", "Device18"); + define ("c_ShadowingDevice_19", "Device19"); + define ("c_ShadowingDevice_20", "Device20"); + define ("c_ShadowingDevice_21", "Device21"); + define ("c_ShadowingDevice_22", "Device22"); + define ("c_ShadowingDevice_23", "Device23"); + define ("c_ShadowingDevice_24", "Device24"); + define ("c_ShadowingDevice_25", "Device25"); + define ("c_ShadowingDevice_26", "Device26"); + define ("c_ShadowingDevice_27", "Device27"); + define ("c_ShadowingDevice_28", "Device28"); + define ("c_ShadowingDevice_29", "Device29"); + define ("c_ShadowingDevice_30", "Device30"); + + /** @}*/ +?> \ No newline at end of file diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php new file mode 100644 index 0000000..33d709c --- /dev/null +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php @@ -0,0 +1,572 @@ + + * + * Funktionen zum Bewegen der Beschattung + */ + + IPSUtils_Include ("IPSLogger.inc.php", "IPSLibrary::app::core::IPSLogger"); + IPSUtils_Include ("IPSInstaller.inc.php", "IPSLibrary::install::IPSInstaller"); + IPSUtils_Include ("IPSComponent.class.php", "IPSLibrary::app::core::IPSComponent"); + IPSUtils_Include ("IPSShadowing_Constants.inc.php", "IPSLibrary::app::modules::IPSShadowing"); + IPSUtils_Include ("IPSShadowing_Configuration.inc.php", "IPSLibrary::config::modules::IPSShadowing"); + IPSUtils_Include ("IPSShadowing_Custom.inc.php", "IPSLibrary::config::modules::IPSShadowing"); + IPSUtils_Include ("IPSShadowing_Logging.inc.php", "IPSLibrary::app::modules::IPSShadowing"); + + /** + * @class IPSShadowing_Device + * + * Definiert ein IPSShadowing_Device Objekt + * + * @author Andreas Brauneis + * @version + * Version 2.50.1, 01.04.2012
+ */ + class IPSShadowing_Device { + + /** + * @private + * ID des Shadowing Device + */ + private $deviceId; + + /** + * @public + * + * Initialisierung des IPSShadowing_Device Objektes + * + * @param integer $deviceId Instance ID + */ + public function __construct($deviceId) { + $this->deviceId = IPSUtil_ObjectIDByPath($deviceId); + } + + // ---------------------------------------------------------------------------------------------------------------------------- + private function GetPropertyValue($propertyName) { + $deviceConfig = get_ShadowingConfiguration(); + $deviceName = IPS_GetName($this->deviceId); + + $propertyValue = $deviceConfig[$deviceName][$propertyName]; + return $propertyValue; + } + + // ---------------------------------------------------------------------------------------------------------------------------- + private function GetVariableValue($variableIdent) { + $variableId = IPS_GetObjectIDByIdent($variableIdent, $this->deviceId); + if ($variableId === false) { + throw new Exception('Variable '.$variableIdent.' could NOT be found for DeviceId='.$this->deviceId); + } + return GetValue($variableId); + } + + // ---------------------------------------------------------------------------------------------------------------------------- + private function SetVariableValue($variableIdent, $value) { + $variableId = IPS_GetObjectIDByIdent($variableIdent, $this->deviceId); + if ($variableId === false) { + throw new Exception('Variable '.$variableIdent.' could NOT be found for DeviceId='.$this->deviceId); + } + SetValue($variableId, $value); + } + + // ---------------------------------------------------------------------------------------------------------------------------- + private function SetStatus() { + if ($this->GetVariableValue(c_Control_StepsToDo)<>"") { + return; + } + + $Position = $this->GetVariableValue(c_Control_Position); + $MovementId = $this->GetVariableValue(c_Control_Movement); + if (!$this->GetVariableValue(c_Control_Automatic)) { + if ($MovementId<=c_MovementId_Space and $MovementId>=c_MovementId_Closed) { + $Status = 'Manuell'; + } elseif ($Position<=10) { + $Status = 'Manuell'; + } else { + $Status = "Manuell / $Position%"; + } + } elseif ($this->GetVariableValue(c_Control_ManualChange)) { + if ($MovementId<=c_MovementId_Space and $MovementId>=c_MovementId_Closed) { + $Status = 'Autom./Manuell'; + } elseif ($Position<=10) { + $Status = 'Autom./Manuell'; + } else { + $Status = "Autom./Manuell $Position%"; + } + } else { + $Status = 'Automatik'; + } + $this->SetVariableValue(c_Control_Display, $Status); + } + + // ---------------------------------------------------------------------------------------------------------------------------- + public function MoveByCommand($command) { + $componentParams = $this->GetPropertyValue(c_Property_Component); + + if (IPSShadowing_BeforeActivateShutter($this->deviceId, $command)) { + $component = IPSComponent::CreateObjectByParams($componentParams); + switch ($command) { + case c_MovementId_Up: + case c_MovementId_MovingIn: + $component->MoveUp(); + break; + case c_MovementId_Down: + case c_MovementId_MovingOut: + $component->MoveDown(); + break; + case c_MovementId_Stop: + $component->Stop(); + break; + default: + } + IPSShadowing_AfterActivateShutter($this->deviceId, $command); + } + + if ($this->GetVariableValue(c_Control_Movement) <> $command) { + $this->SetVariableValue(c_Control_Movement, $command); + } + } + + // ---------------------------------------------------------------------------------------------------------------------------- + private function MoveByStatus() { + $this->CalcNextSteps(); + $this->SetVariableValue(c_Control_Movement, -1); + $this->ExecuteNextStep(); + $this->StartRefreshTimer(true); + } + + // ---------------------------------------------------------------------------------------------------------------------------- + public function MoveByEvent($Level) { + IPSLogger_Dbg(__file__, "Received StateChange from Shutter '".IPS_GetName($DeviceId)."', NewLevel=".round($Level).", CurrentLevel=".$this->GetVariableValue(c_Control_Position)); + if ($this->GetVariableValue(c_Control_Position) <> $Level and + $this->GetVariableValue(c_Control_StepsToDo)=="") { + IPSLogger_Inf(__file__, "Apply StateChange from Shutter '".IPS_GetName($DeviceId)."', Level=".round($Level)); + $this->SetVariableValue(c_Control_Movement, c_MovementId_Stop); + $this->SetVariableValue(c_Control_Position, $Level); + if (!$this->GetVariableValue(c_Control_ManualChange) and + $this->GetVariableValue(c_Control_Automatic)) { + $this->SetVariableValue(c_Control_ManualChange, true); + } + $this->SetStatus(); + } + } + + // ---------------------------------------------------------------------------------------------------------------------------- + public function MoveByProgram($ProgramId, $logMessage, $DimoutOption=null, $TriggeredByTemp=false) { + $MovementStatus = $this->GetVariableValue(c_Control_Movement); + + $DoBeMoved = $MovementStatus; + switch ($ProgramId) { + case c_ProgramId_Manual: + break; + case c_ProgramId_Opened: + case c_ProgramId_OpenedDay: + case c_ProgramId_OpenedNight: + $DoBeMoved = c_MovementId_Opened; + break; + case c_ProgramId_MovedIn: + $DoBeMoved = c_MovementId_MovedIn; + break; + case c_ProgramId_OpenedOrShadowing: + if ($MovementStatus<>c_MovementId_Opened and $MovementStatus<>c_MovementId_Shadowing) {$DoBeMoved = c_MovementId_Shadowing;} + break; + case c_ProgramId_MovedOut: + case c_ProgramId_MovedOutTemp: + $DoBeMoved = c_MovementId_MovedOut; + break; + case c_ProgramId_Closed: + $DoBeMoved = c_MovementId_Closed; + break; + case c_ProgramId_90: + $DoBeMoved = c_MovementId_90; + break; + case c_ProgramId_75: + $DoBeMoved = c_MovementId_75; + break; + case c_ProgramId_Dimout: + $DoBeMoved = c_MovementId_Dimout; + break; + case c_ProgramId_DimoutOrShadowing: + if ($MovementStatus<>c_MovementId_Dimout and $MovementStatus<>c_MovementId_Shadowing) {$DoBeMoved = c_MovementId_Shadowing;} + break; + case c_ProgramId_DimoutAndShadowing: + if ($DimoutOption) { + $DoBeMoved = c_MovementId_Dimout; + } else { + $DoBeMoved = c_MovementId_Shadowing; + } + break; + default: + IPSLogger_Err(__file__, "Unknown Program $Program, DeviceId=".$this->DeviceId); + exit; + } + if ($DoBeMoved<>$MovementStatus) { + if ($TriggeredByTemp and !$this->GetVariableValue(c_Control_TempChange)) { + $this->SetVariableValue(c_Control_TempChange, true); + } + $this->SetVariableValue(c_Control_Movement, $DoBeMoved); + $this->MoveByStatus(); + IPSShadowing_LogMoveByProgram($this->deviceId, $ProgramId, $logMessage, $TriggeredByTemp); + } + } + + // ---------------------------------------------------------------------------------------------------------------------------- + public function MoveByControl($Value) { + if ($Value==c_MovementId_Space) { + return; + } elseif ($this->GetVariableValue(c_Control_Movement)==$Value) { + return; + } else { + if (!$this->GetVariableValue(c_Control_ManualChange)) { + $this->SetVariableValue(c_Control_ManualChange, true); + } + $this->SetVariableValue(c_Control_Movement, $Value); + $this->MoveByStatus(); + IPSShadowing_LogMoveByControl($this->deviceId); + } + } + + + // ---------------------------------------------------------------------------------------------------------------------------- + private function AddNextStep(&$StepsToDo, $Command, $SecondsToDo, $Display, $SecondsTotal, $PercentagePosition) { + $Step = count($StepsToDo); + $StepsToDo[$Step] = $Command; + $StepsToDo[$Step+1] = $SecondsToDo; + $StepsToDo[$Step+2] = $Display; + $StepsToDo[$Step+3] = $SecondsTotal; + $StepsToDo[$Step+4] = $PercentagePosition; + } + + // ---------------------------------------------------------------------------------------------------------------------------- + private function CalcNextSteps() { + $DeviceName = IPS_GetIdent($this->deviceId); + $DeviceConfig = get_ShadowingConfiguration(); + + $Position = $this->GetVariableValue(c_Control_Position); + $ToBeMoved = $this->GetVariableValue(c_Control_Movement); + $StepsToDo = array(); + + if ($ToBeMoved==c_MovementId_Opened or $ToBeMoved==c_MovementId_Up) { + $SecTotal = $DeviceConfig[$DeviceName][c_Property_TimeOpening]; + $SecNullToPos = $SecTotal*$Position/100; + $SecPosTo100 = $SecTotal-$SecNullToPos; + $this->AddNextStep($StepsToDo, c_MovementId_Up, $SecTotal-$SecPosTo100, null, $SecTotal, $SecPosTo100); + $this->AddNextStep($StepsToDo, c_MovementId_Stop, $DeviceConfig[$DeviceName][c_Property_TimePause], 'Offen (Stop)', null, null); + $this->AddNextStep($StepsToDo, c_MovementId_Opened, 1, null, null , null); + + } elseif ($ToBeMoved==c_MovementId_MovedIn or $ToBeMoved==c_MovementId_MovingIn) { + $SecTotal = $DeviceConfig[$DeviceName][c_Property_TimeOpening]; + $SecNullToPos = $SecTotal*$Position/100; + $SecPosTo100 = $SecTotal-$SecNullToPos; + $this->AddNextStep($StepsToDo, c_MovementId_MovingIn, $SecTotal-$SecPosTo100, null, $SecTotal, $SecPosTo100); + $this->AddNextStep($StepsToDo, c_MovementId_Stop, $DeviceConfig[$DeviceName][c_Property_TimePause], 'Offen (Stop)', null, null); + $this->AddNextStep($StepsToDo, c_MovementId_MovedIn, 1, null, null , null); + + } elseif ($ToBeMoved==c_MovementId_Shadowing or $ToBeMoved==c_MovementId_Down or $ToBeMoved==c_MovementId_Dimout or $ToBeMoved==c_MovementId_Closed or $ToBeMoved==c_MovementId_MovingOut or $ToBeMoved==c_MovementId_MovedOut) { + $SecTotal = $DeviceConfig[$DeviceName][c_Property_TimeClosing]; + $SecNullToPos = $SecTotal*$Position/100; + if ($ToBeMoved==c_MovementId_Dimout) { + $this->AddNextStep($StepsToDo, c_MovementId_Down, $SecTotal-$SecNullToPos, null, $SecTotal, $SecNullToPos); + $this->AddNextStep($StepsToDo, c_MovementId_Stop, $DeviceConfig[$DeviceName][c_Property_TimePause], 'Abdunkelung (Pause)', null, null); + $this->AddNextStep($StepsToDo, c_MovementId_Up, $DeviceConfig[$DeviceName][c_Property_TimeDimoutUp], 'Abdunkelung (Hoch)', null, null); + $this->AddNextStep($StepsToDo, c_MovementId_Stop, $DeviceConfig[$DeviceName][c_Property_TimePause], 'Abdunkelung (Pause)', null, null); + $this->AddNextStep($StepsToDo, c_MovementId_Down, $DeviceConfig[$DeviceName][c_Property_TimeDimoutDown], 'Abdunkelung (Runter)', null, null); + $this->AddNextStep($StepsToDo, c_MovementId_Stop, $DeviceConfig[$DeviceName][c_Property_TimePause], 'Abdunkelung (Stop)', null, null); + $this->AddNextStep($StepsToDo, c_MovementId_Dimout, 1, null, null, null); + } elseif ($ToBeMoved==c_MovementId_Down) { + $this->AddNextStep($StepsToDo, c_MovementId_Down, $SecTotal-$SecNullToPos, null, $SecTotal, $SecNullToPos); + $this->AddNextStep($StepsToDo, c_MovementId_Stop, 1, null, null, null); + } elseif ($ToBeMoved==c_MovementId_MovedOut or $ToBeMoved==c_MovementId_MovingOut) { + $this->AddNextStep($StepsToDo, c_MovementId_MovingOut, $SecTotal-$SecNullToPos, null, $SecTotal, $SecNullToPos); + $this->AddNextStep($StepsToDo, c_MovementId_Stop, 1, null, null, null); + $this->AddNextStep($StepsToDo, c_MovementId_MovedOut, 1, null, null, null); + } elseif ($ToBeMoved==c_MovementId_Shadowing) { + $this->AddNextStep($StepsToDo, c_MovementId_Down, $SecTotal-$SecNullToPos, null, $SecTotal, $SecNullToPos); + $this->AddNextStep($StepsToDo, c_MovementId_Stop, 1, "$Position%", null, null); + $this->AddNextStep($StepsToDo, c_MovementId_Up, $DeviceConfig[$DeviceName][c_Property_TimeDimoutUp], 'Beschattung (Hoch)', null, null); + $this->AddNextStep($StepsToDo, c_MovementId_Stop, $DeviceConfig[$DeviceName][c_Property_TimePause], 'Beschattung (Stop)', null, null); + $this->AddNextStep($StepsToDo, c_MovementId_Shadowing, 1, null, null, null); + } else { + $this->AddNextStep($StepsToDo, c_MovementId_Down, $SecTotal-$SecNullToPos, null, $SecTotal, $SecNullToPos); + $this->AddNextStep($StepsToDo, c_MovementId_Stop, 1, "$Position%", null, null); + $this->AddNextStep($StepsToDo, c_MovementId_Closed, 1, null, null, null); + } + + } elseif ($ToBeMoved==c_MovementId_90 or$ToBeMoved==c_MovementId_75 or $ToBeMoved==c_MovementId_50 or $ToBeMoved==c_MovementId_25) { + $SecTotal = $DeviceConfig[$DeviceName][c_Property_TimeClosing]; + $ShadowingType = $DeviceConfig[$DeviceName][c_Property_ShadowingType]; + $SecNullToPos = $SecTotal*$Position/100; + $SecPosTo100 = $SecTotal-$SecNullToPos; + if ($ToBeMoved==c_MovementId_90) { + $SecNullToNew = $SecTotal*75/100; + $Position = 75; + } elseif ($ToBeMoved==c_MovementId_75) { + $SecNullToNew = $SecTotal*75/100; + $Position = 75; + } elseif ($ToBeMoved==c_MovementId_50) { + $SecNullToNew = $SecTotal*50/100; + $Position = 50; + } else { + $SecNullToNew = $SecTotal*25/100; + $Position = 25; + } + if ($SecNullToNew > $SecNullToPos) { + if ($ShadowingType==c_ShadowingType_Marquees) { + $this->AddNextStep($StepsToDo, c_MovementId_MovingOut, $SecNullToNew-$SecNullToPos, null, $SecTotal, $SecNullToPos); + } else { + $this->AddNextStep($StepsToDo, c_MovementId_Down, $SecNullToNew-$SecNullToPos, null, $SecTotal, $SecNullToPos); + } + } elseif ($SecNullToNew < $SecNullToPos) { + if ($ShadowingType==c_ShadowingType_Marquees) { + $this->AddNextStep($StepsToDo, c_MovementId_MovingIn, $SecNullToPos-$SecNullToNew, null, $SecTotal, $SecPosTo100); + } else { + $this->AddNextStep($StepsToDo, c_MovementId_Up, $SecNullToPos-$SecNullToNew, null, $SecTotal, $SecPosTo100); + } + } else { + } + $this->AddNextStep($StepsToDo, c_MovementId_Stop, 1, "$Position%", null, null); + $this->AddNextStep($StepsToDo, $ToBeMoved, 1, null, null, null); + + } elseif ($ToBeMoved==c_MovementId_Stop) { + $this->AddNextStep($StepsToDo, c_MovementId_Stop, 1, null, null, null); + + } else { + throw new Exception ("Unknown MovementId $ToBeMoved, DeviceId=".$this->deviceId); + exit; + } + + $this->SetVariableValue(c_Control_StepsToDo, implode('|', $StepsToDo)); + $this->SetVariableValue(c_Control_Step, -5); + } + + // ---------------------------------------------------------------------------------------------------------------------------- + private function ExecuteNextStep() { + $DeviceName = IPS_GetIdent($this->deviceId); + $Step = $this->GetVariableValue(c_Control_Step)+5; + $NextStepsToDo = $this->GetVariableValue(c_Control_StepsToDo); + $NextStepsToDo = Explode('|', $NextStepsToDo); + + if ($Step < count($NextStepsToDo)) { + $Command = $NextStepsToDo[$Step]; + $Time = $NextStepsToDo[$Step+1]; + IPSLogger_Trc(__file__, "Shadowing for Device '$DeviceName', Step $Step, Command=$Command, Time=$Time"); + $this->MoveByCommand($Command); + + $this->SetVariableValue(c_Control_Step, $Step); + $this->SetVariableValue(c_Control_StartTime, time()); + } else { + IPSLogger_Dbg(__file__, "Finished all Steps for Device '$DeviceName'"); + $this->SetVariableValue(c_Control_StepsToDo, ""); + $this->SetVariableValue(c_Control_Step, -1); + $this->SetVariableValue(c_Control_StartTime, -1); + $this->StartRefreshTimer(false); + $this->SetStatus(); + } + } + + // ---------------------------------------------------------------------------------------------------------------------------- + public function Refresh() { + if ($this->GetVariableValue(c_Control_Step) >= 0) { + $NextStepsToDo = Explode('|', $this->GetVariableValue(c_Control_StepsToDo)); + $StepCount = count($NextStepsToDo); + $Step = $this->GetVariableValue(c_Control_Step); + $StartTime = $this->GetVariableValue(c_Control_StartTime); + $SecsDone = time()-$StartTime; + $SecsToDo = $NextStepsToDo[$Step+1]; + $Display = $NextStepsToDo[$Step+2]; + $SecsTotal = $NextStepsToDo[$Step+3]; + $SecStepBegin = $NextStepsToDo[$Step+4]; + $Command = $NextStepsToDo[$Step]; + + if ($SecsTotal <> null) { + // SecTotal ... 100% + // Begin+Done ... x% + $Position = round(($SecStepBegin+$SecsDone)*100/$SecsTotal); + if ($Command==c_MovementId_Up or $Command==c_MovementId_MovingIn) { + $Position = 100-$Position; + } + if ($Position>100) {$Position=100;} + if ($Position<0) {$Position=0;} + $this->SetVariableValue(c_Control_Position, $Position); + $SecsOpen = $SecsToDo-$SecsDone; + if ($SecsOpen < 0) {$SecsOpen=0;} + $Display = "$Position% ($SecsOpen Sek)"; + } + + if ($Display!=null) { + $this->SetVariableValue(c_Control_Display, $Display); + } + + if ($SecsDone >= $SecsToDo) { + $this->ExecuteNextStep(); + } + return true; + } else { + return false; + } + } + + // ---------------------------------------------------------------------------------------------------------------------------- + private function StartRefreshTimer($Value) { + if ($Value) { + $Name = 'Refresh'; + $refreshTimerScriptId = IPSUtil_ObjectIDByPath('Program.IPSLibrary.app.modules.IPSShadowing.IPSShadowing_RefreshTimer'); + + $TimerId = @IPS_GetEventIDByName($Name, $refreshTimerScriptId); + if ($TimerId === false) { + $TimerId = IPS_CreateEvent(1 /*Cyclic Event*/); + IPS_SetName($TimerId, $Name); + IPS_SetParent($TimerId, $refreshTimerScriptId); + if (!IPS_SetEventCyclic($TimerId, 2 /*Daily*/, 1 /*Int*/,0 /*Days*/,0 /*DayInt*/,1 /*TimeType Sec*/,1 /*Sec*/)) { + throw new Exception ("IPS_SetEventCyclic failed for Refresh Timer!!!"); + } + } + IPS_SetEventActive($TimerId, true); + } + } + + // ---------------------------------------------------------------------------------------------------------------------------- + public function ChangeSetting($controlId, $value) { + if (GetValue($controlId)<>$value) { + if (IPS_GetIdent($controlId)==c_Control_Automatic) { + if (GetValue(IPS_GetObjectIDByIdent(c_Control_TempChange, $this->deviceId))) { + SetValue(IPS_GetObjectIDByIdent(c_Control_TempChange, $this->deviceId), false); + } + } else { + } + if (GetValue(IPS_GetObjectIDByIdent(c_Control_ManualChange, $this->deviceId))) { + SetValue(IPS_GetObjectIDByIdent(c_Control_ManualChange, $this->deviceId), false); + } + SetValue($controlId, $value); + IPSShadowing_LogChange($this->deviceId, $value, $controlId); + $this->SetStatus(); + } + } + + // ---------------------------------------------------------------------------------------------------------------------------- + public function CheckPrograms($profileManager) { + $profileIdTemp = GetValue(IPS_GetObjectIDByIdent(c_Control_ProfileTemp, $this->deviceId)); + $profileIdSun = GetValue(IPS_GetObjectIDByIdent(c_Control_ProfileSun, $this->deviceId)); + $profileIdBgnOfDay = GetValue(IPS_GetObjectIDByIdent(c_Control_ProfileBgnOfDay, $this->deviceId)); + $profileIdEndOfDay = GetValue(IPS_GetObjectIDByIdent(c_Control_ProfileEndOfDay, $this->deviceId)); + $profileIdWeather = null; + $programPresent = GetValue(IPS_GetObjectIDByIdent(c_Control_ProgramPresent, $this->deviceId)); + $programTemp = GetValue(IPS_GetObjectIDByIdent(c_Control_ProgramTemp, $this->deviceId)); + $programDay = GetValue(IPS_GetObjectIDByIdent(c_Control_ProgramDay, $this->deviceId)); + $programNight = GetValue(IPS_GetObjectIDByIdent(c_Control_ProgramNight, $this->deviceId)); + $programWeather = null; + $changeByTemp = GetValue(IPS_GetObjectIDByIdent(c_Control_TempChange, $this->deviceId)); + $changeByUser = GetValue(IPS_GetObjectIDByIdent(c_Control_ManualChange, $this->deviceId)); + $automaticActive = GetValue(IPS_GetObjectIDByIdent(c_Control_Automatic, $this->deviceId)); + + $tempIndoorPath = $this->GetPropertyValue(c_Property_TempSensorIndoor); + + $controlId = @IPS_GetObjectIDByIdent(c_Control_ProfileWeather, $this->deviceId); + if ($controlId!==false) { + $profileIdWeather = GetValue($controlId); + $programWeather = GetValue(IPS_GetObjectIDByIdent(c_Control_ProgramWeather, $this->deviceId)); + } + + $isDay = $profileManager->IsDay($profileIdBgnOfDay, $profileIdEndOfDay); + $closeByTemp = $profileManager->CloseByTemp($profileIdSun, $profileIdTemp, $tempIndoorPath); + $shadowingByTemp = $profileManager->ShadowingByTemp($profileIdSun, $profileIdTemp, $tempIndoorPath); + $openByTemp = $profileManager->OpenByTemp($profileIdSun, $profileIdTemp, $tempIndoorPath); + $activationByWeather = $profileManager->ActivationByWeather($profileIdWeather); + + $profileInfo = $profileManager->GetProfileInfo($profileIdBgnOfDay, $profileIdEndOfDay, $profileIdTemp, $tempIndoorPath); + SetValue(IPS_GetObjectIDByIdent(c_Control_ProfileInfo, $this->deviceId), (string)$profileInfo); + + $deviceName = IPSShadowing_GetDeviceName($this->deviceId); + + // Automatic Off ... + if (!$automaticActive) { + echo "$deviceName -> Automatic Off ... \n"; + + // Activation by Wind/Rain + } elseif ($activationByWeather and $programWeather<>c_ProgramId_Manual) { + echo "$deviceName -> ActivationByWeather ... \n"; + $this->MoveByProgram($programWeather, 'Wetterprogramm'); + + // Manual Change ... + } elseif ($changeByUser) { + echo "$deviceName -> ManualChange ... \n"; + + // Custom + } elseif (IPSShadowing_ProgramCustom($this->deviceId, $isDay)) { + echo "$deviceName -> ProgramCustom \n"; + // Action done in Custom Procedure + + // Present ... + } elseif ($profileManager->GetPresent() and $programPresent==c_ProgramId_OpenedDay and $isDay) { + echo "$deviceName -> ProgramByPresent=OpenedDay \n"; + $this->MoveByProgram($programPresent, 'Anwesenheitsprogramm'); + } elseif ($profileManager->GetPresent() and $programPresent==c_ProgramId_OpenedNight and !$isDay) { + echo "$deviceName -> ProgramByPresent=OpenedNight \n"; + $this->MoveByProgram($programPresent, 'Anwesenheitsprogramm'); + } elseif ($profileManager->GetPresent() and $programPresent==c_ProgramId_Opened) { + echo "$deviceName -> ProgramByPresent=Opened \n"; + $this->MoveByProgram($programPresent, 'Anwesenheitsprogramm'); + } elseif ($profileManager->GetPresent() and $programPresent==c_ProgramId_MovedOutTemp and $isDay and $closeByTemp) { + echo "$deviceName -> ProgramByPresent=MovedOutTemp \n"; + $this->MoveByProgram($programPresent, 'Anwesenheitsprogramm (Beschattung bei Temp und Anwesenheit)'); + + // Temperature + } elseif ($isDay and ($closeByTemp or $shadowingByTemp) and $programTemp<>c_ProgramId_Manual) { + if ($closeByTemp and ($programTemp==c_ProgramId_Closed or $programTemp==c_ProgramId_Dimout or + $programTemp==c_ProgramId_MovedOut or $programTemp==c_ProgramId_90 or $programTemp==c_ProgramId_75)) { + echo "$deviceName -> ProgramByTemperature (Close/Dimout/Moveout) \n"; + $this->MoveByProgram($programTemp, 'Temperaturprogramm', true/*DimoutOption*/, true/*TriggeredByTemp*/); + } elseif ($changeByTemp) { + echo "$deviceName -> ProgramByTemperature (ShadowingDoNothing) \n"; + } elseif ($shadowingByTemp) { + echo "$deviceName -> ProgramByTemperature (Shadowing) \n"; + $this->MoveByProgram($programTemp, 'Temperaturprogramm (Beschattung)', false/*DimoutOption*/, true/*TriggeredByTemp*/); + } else { + echo "$deviceName -> ProgramByTemperature (Else) \n"; + } + + // Day + } elseif ($isDay) { + if (!$openByTemp and $changeByTemp) { + echo "$deviceName -> ProgramByDay (TemperaturDoNothing) \n"; + } elseif ($openByTemp and $changeByTemp) { + echo "$deviceName -> ProgramByDay (TemperaturReset) \n"; + SetValue(IPS_GetObjectIDByIdent(c_Control_TempChange, $this->deviceId), false); + $this->MoveByProgram($programDay, 'Tagesprogramm (Temperatur Reset)'); + } else { + echo "$deviceName -> ProgramByDay \n"; + $this->MoveByProgram($programDay, 'Tagesprogramm'); + } + + // Night + } else { + echo "$deviceName -> ProgramByNight \n"; + $this->MoveByProgram($programNight, '"Nachtprogramm"'); + } + } + } + + + /** @}*/ +?> \ No newline at end of file diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Logging.inc.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Logging.inc.php new file mode 100644 index 0000000..b47cbb0 --- /dev/null +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Logging.inc.php @@ -0,0 +1,194 @@ + + * + * Application Logging von IPSShadowing + */ + + // ---------------------------------------------------------------------------------------------------------------------------- + function IPSShadowing_GetMessageByMovement($deviceId) { + $ToBeMoved = GetValue(IPS_GetObjectIDByIdent(c_Control_Movement, $deviceId)); + + if ($ToBeMoved==c_MovementId_Opened) { + $Message = "Öffnen"; + } elseif ($ToBeMoved==c_MovementId_Dimout) { + $Message = "Abdunkelung"; + } elseif ($ToBeMoved==c_MovementId_Closed) { + $Message = "Geschlossen"; + } elseif ($ToBeMoved==c_MovementId_75) { + $Message = "75%"; + } elseif ($ToBeMoved==c_MovementId_90) { + $Message = "90%"; + } elseif ($ToBeMoved==c_MovementId_Shadowing) { + $Message = "Beschattung"; + } elseif ($ToBeMoved==c_MovementId_Up) { + $Message = "Öffnen"; + } elseif ($ToBeMoved==c_MovementId_Down) { + $Message = "Schliessen"; + } elseif ($ToBeMoved==c_MovementId_MovingOut) { + $Message = "Ausfahren"; + } elseif ($ToBeMoved==c_MovementId_MovingIn) { + $Message = "Einfahren"; + } elseif ($ToBeMoved==c_MovementId_MovedOut) { + $Message = "Ausfahrt"; + } elseif ($ToBeMoved==c_MovementId_MovedIn) { + $Message = "Einfahrt"; + } else { + $Message = "Stop"; + } + return $Message; + } + + // ---------------------------------------------------------------------------------------------------------------------------- + function IPSShadowing_GetProgramName($ProgramId) { + $ProgramList = array( + c_ProgramId_Manual => c_Program_Manual, + c_ProgramId_Opened => c_Program_Opened, + c_ProgramId_MovedIn => c_Program_MovedIn, + c_ProgramId_OpenedOrShadowing => c_Program_OpenedOrShadowing, + c_ProgramId_OpenedAndShadowing => c_Program_OpenedAndShadowing, + c_ProgramId_OpenedDay => c_Program_OpenedDay, + c_ProgramId_OpenedNight => c_Program_OpenedNight, + c_ProgramId_Closed => c_Program_Closed, + c_ProgramId_90 => c_Program_90, + c_ProgramId_75 => c_Program_75, + c_ProgramId_MovedOut => c_Program_MovedOut, + c_ProgramId_MovedOutTemp => c_Program_MovedOutTemp, + c_ProgramId_Dimout => c_Program_Dimout, + c_ProgramId_DimoutOrShadowing => c_Program_DimoutOrShadowing, + c_ProgramId_DimoutAndShadowing => c_Program_DimoutAndShadowing + ); + + return $ProgramList[$ProgramId]; + } + + // ---------------------------------------------------------------------------------------------------------------------------- + function IPSShadowing_GetDeviceName($deviceId) { + $deviceConfig = get_ShadowingConfiguration(); + $deviceIdent = IPS_GetIdent($deviceId); + $deviceName = $deviceConfig[$deviceIdent]['Name']; + return $deviceName; + } + + // ---------------------------------------------------------------------------------------------------------------------------- + function IPSShadowing_LogMoveByControl($DeviceId) { + $DeviceName = IPSShadowing_GetDeviceName($DeviceId); + $Message = IPSShadowing_GetMessageByMovement($DeviceId)." von '$DeviceName' (Manuelle Steuerung)"; + IPSLogger_Inf(__file__, $Message); + IPSShadowing_Log($Message); + } + + // ---------------------------------------------------------------------------------------------------------------------------- + function IPSShadowing_LogMoveByProgram($DeviceId, $ProgramId, $LogMessage, $TriggeredByTemp) { + $Message = IPSShadowing_GetMessageByMovement($DeviceId); + $DeviceName = IPSShadowing_GetDeviceName($DeviceId); + $ProgramName = IPSShadowing_GetProgramName($ProgramId); + + $Message .= " von '$DeviceName' durch $LogMessage, Programm='$ProgramName'"; + if ($TriggeredByTemp) { + $Priority = GetValue(IPSShadowing_GetSettingControlId(c_Control_MsgPrioTemp, $DeviceId)); + } else { + $Priority = GetValue(IPSShadowing_GetSettingControlId(c_Control_MsgPrioProg, $DeviceId)); + } + + IPSShadowing_Log($Message); + IPSLogger_Not(__file__, $Message, $Priority); + } + + function IPSShadowing_LogActivateScenario($scenarioId) { + $scenarioName = IPS_GetName($scenarioId); + IPSLogger_Inf(__file__,'Activation of Scenario "'.$scenarioName.'"'); + IPSShadowing_Log('Aktivierung von Szenario "'.$scenarioName.'"'); + } + + + // ---------------------------------------------------------------------------------------------------------------------------- + function IPSShadowing_LogChange($DeviceId, $Value, $ControlId) { + $ObjectType = IPS_GetName(IPS_GetParent($DeviceId)); + $ObjectName = IPS_GetName($DeviceId); + $ControlType = IPS_GetIdent($ControlId); + if ($Value===true) { + $Value = 'Ein'; + } elseif ($Value===false) { + $Value = 'Aus'; + } else { + } + switch($ObjectType) { + case 'Temp': + IPSLogger_Inf(__file__,"Configuration Change for $ObjectType=$ObjectName: $ControlType=$Value"); + IPSShadowing_Log("Änderung von Temperatur Profil '$ObjectName', '$ControlType'=$Value"); + break; + case 'Sun': + IPSLogger_Inf(__file__,"Configuration Change for $ObjectType=$ObjectName: $ControlType=$Value"); + IPSShadowing_Log("Änderung von Sonnenstand Profil '$ObjectName', '$ControlType'=$Value"); + break; + case 'Weather': + IPSLogger_Inf(__file__,"Configuration Change for $ObjectType=$ObjectName: $ControlType=$Value"); + IPSShadowing_Log("Änderung von Wetter Profil '$ObjectName', '$ControlType'=$Value"); + break; + case 'BgnOfDay': + IPSLogger_Inf(__file__,"Configuration Change for $ObjectType=$ObjectName: $ControlType=$Value"); + IPSShadowing_Log("Änderung von Tagesbeginn Profil '$ObjectName', '$ControlType'=$Value"); + break; + case 'EndOfDay': + IPSLogger_Inf(__file__,"Configuration Change for $ObjectType=$ObjectName: $ControlType=$Value"); + IPSShadowing_Log("Änderung von Tagesende Profil '$ObjectName', '$ControlType'=$Value"); + break; + case 'Scenarios': + IPSLogger_Inf(__file__,"Configuration Change for $ObjectType=$ObjectName: $ControlType=$Value"); + IPSShadowing_Log("Änderung von Szenario '$ObjectName', '$ControlType'=$Value"); + break; + case 'Devices': + $deviceName = IPSShadowing_GetDeviceName($DeviceId); + IPSLogger_Inf(__file__,"Configuration Change for $ObjectType=$ObjectName: $ControlType=$Value"); + IPSShadowing_Log("Änderung von Beschattungs Element '$deviceName', '$ControlType'=$Value"); + break; + default: + IPSLogger_Inf(__file__,"Configuration Change for '$ObjectName': $ControlType=$Value"); + IPSShadowing_Log("Änderung von '$ControlType' auf $Value von '$ObjectName'"); + } + } + + // ---------------------------------------------------------------------------------------------------------------------------- + function IPSShadowing_Log($Msg) { + $logMessages = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.modules.IPSShadowing.Log.LogMessages'); + $logId = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.modules.IPSShadowing.Log.LogId'); + + IPSLogger_OutProgram($Msg, $logMessages, $logId, IPSSHADOWING_LOGMESSAGECOUNT, 12); + } + + // ---------------------------------------------------------------------------------------------------------------------------- + function IPSShadowing_GetSettingControlId($ControlName) { + $categoryIdSettings = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.modules.IPSShadowing.Settings'); + $VariableId = IPS_GetVariableIDByName($ControlName, $categoryIdSettings); + if ($VariableId === false) { + throw new Exception ("Control '$ControlName' could NOT be found in Settings"); + } + + return $VariableId; + } + + /** @}*/ +?> \ No newline at end of file diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileBgnOfDayCreate.ips.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileBgnOfDayCreate.ips.php new file mode 100644 index 0000000..8352568 --- /dev/null +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileBgnOfDayCreate.ips.php @@ -0,0 +1,36 @@ + + * + * Erzeugen eines "BgnOfDay" Profiles + */ + + include_once "IPSShadowing.inc.php"; + + $profileManager = new IPSShadowing_ProfileManager(); + $profileManager->CreateBgnOfDay('Neues Profil'); + + /** @}*/ +?> \ No newline at end of file diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileBgnOfDayDelete.ips.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileBgnOfDayDelete.ips.php new file mode 100644 index 0000000..2e8c352 --- /dev/null +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileBgnOfDayDelete.ips.php @@ -0,0 +1,37 @@ + + * + * Löschen eines "BgnOfDay" Profiles + */ + + include_once "IPSShadowing.inc.php"; + + $profileManager = new IPSShadowing_ProfileManager(); + $profileManager->DeleteBgnOfDay(); + + + /** @}*/ +?> \ No newline at end of file diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileEndOfDayCreate.ips.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileEndOfDayCreate.ips.php new file mode 100644 index 0000000..d61d0ec --- /dev/null +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileEndOfDayCreate.ips.php @@ -0,0 +1,37 @@ + + * + * Erzeugen eines "EndOfDay" Profiles + */ + + include_once "IPSShadowing.inc.php"; + + $profileManager = new IPSShadowing_ProfileManager(); + $profileManager->CreateEndOfDay('Neues Profil'); + + + /** @}*/ +?> \ No newline at end of file diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileEndOfDayDelete.ips.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileEndOfDayDelete.ips.php new file mode 100644 index 0000000..f56289c --- /dev/null +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileEndOfDayDelete.ips.php @@ -0,0 +1,37 @@ + + * + * Löschen eines "EndOfDay" Profiles + */ + + include_once "IPSShadowing.inc.php"; + + $profileManager = new IPSShadowing_ProfileManager(); + $profileManager->DeleteEndOfDay(); + + + /** @}*/ +?> \ No newline at end of file diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileManager.class.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileManager.class.php new file mode 100644 index 0000000..a98ca89 --- /dev/null +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileManager.class.php @@ -0,0 +1,392 @@ + + */ + class IPSShadowing_ProfileManager { + + private $instanceId; + private $profilesTemp; + private $profilesSun; + private $profilesWeather; + private $profilesBgnOfDay; + private $profilesEndOfDay; + private $profileIDsTemp; + private $profileIDsSun; + private $profileIDsWeather; + private $profileIDsBgnOfDay; + private $profileIDsEndOfDay; + private $present; + + /** + * @public + * + * Initialisierung des IPSShadowing_ProfileManager Objektes + * + */ + public function __construct() { + $this->instanceId = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.modules.IPSShadowing.ProfileManager'); + $this->Init(); + $this->present = null; + if (IPSSHADOWING_PRESENT <> '') { + $this->present = GetValue(IPSUtil_ObjectIDByPath(IPSSHADOWING_PRESENT)); + } + if (IPSSHADOWING_ABSENCE <> '') { + $this->present = !GetValue(IPSUtil_ObjectIDByPath(IPSSHADOWING_ABSENCE)); + } + } + + public function UpdateProfileInfos() { + foreach ($this->profilesTemp as $profile) { + $profile->UpdateProfileInfo(); + } + foreach ($this->profilesSun as $profile) { + $profile->UpdateProfileInfo(); + } + foreach ($this->profilesWeather as $profile) { + $profile->UpdateProfileInfo(); + } + foreach ($this->profilesBgnOfDay as $profile) { + $profile->UpdateProfileInfo(); + } + foreach ($this->profilesEndOfDay as $profile) { + $profile->UpdateProfileInfo(); + } + } + + public function GetProfileInfo($profileIdBgnOfDay, $profileIdEndOfDay, $profileIdTemp, $tempIndoorPath='') { + $profileBgnOfDay = $this->GetProfileBgnOfDay($profileIdBgnOfDay); + $profileEndOfDay = $this->GetProfileEndOfDay($profileIdEndOfDay); + $profileBgnOfDayInfo = date('H:i', $profileBgnOfDay->GetTime()); + $profileEndOfDayInfo = date('H:i', $profileEndOfDay->GetTime()); + $profileTemp = $this->GetProfileTemp($profileIdTemp); + $profileTempInfo = $profileTemp->GetProfileInfo($tempIndoorPath=''); + + $info = 'Tag='.$profileBgnOfDayInfo.'-'.$profileEndOfDayInfo.', '.$profileTempInfo; + return $info; + } + + public function AssignAllProfileAssociations() { + foreach ($this->profileIDsTemp as $profileId) { + IPS_SetVariableProfileAssociation('IPSShadowing_ProfileTemp', $profileId, IPS_GetName($profileId), '', -1); + } + foreach ($this->profileIDsSun as $profileId) { + IPS_SetVariableProfileAssociation('IPSShadowing_ProfileSun', $profileId, IPS_GetName($profileId), '', -1); + } + foreach ($this->profileIDsWeather as $profileId) { + IPS_SetVariableProfileAssociation('IPSShadowing_ProfileWeather', $profileId, IPS_GetName($profileId), '', -1); + } + foreach ($this->profileIDsBgnOfDay as $profileId) { + IPS_SetVariableProfileAssociation('IPSShadowing_ProfileBgnOfDay', $profileId, IPS_GetName($profileId), '', -1); + } + foreach ($this->profileIDsEndOfDay as $profileId) { + IPS_SetVariableProfileAssociation('IPSShadowing_ProfileEndOfDay', $profileId, IPS_GetName($profileId), '', -1); + } + } + + public function CorrectDeletedDeviceProfile($controlName, $idList, $profileList) { + $categoryIdDevices = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.modules.IPSShadowing.Devices'); + $deviceIds = IPS_GetChildrenIDs($categoryIdDevices); + foreach ($deviceIds as $deviceIdx=>$deviceId) { + $controlId = @IPS_GetObjectIDByIdent($controlName, $deviceId); + if ($controlId!==false) { + $profileId = GetValue($controlId); + if (!array_key_exists($profileId, $profileList)) { + SetValue($controlId, $idList[0]); + IPSShadowing_LogChange($deviceId, $idList[0], $controlId); + } + } + } + } + + public function CorrectDeletedDeviceProfiles() { + $this->CorrectDeletedDeviceProfile(c_Control_ProfileBgnOfDay, $this->profileIDsBgnOfDay, $this->profilesBgnOfDay); + $this->CorrectDeletedDeviceProfile(c_Control_ProfileEndOfDay, $this->profileIDsEndOfDay, $this->profilesEndOfDay); + $this->CorrectDeletedDeviceProfile(c_Control_ProfileTemp, $this->profileIDsTemp, $this->profilesTemp); + $this->CorrectDeletedDeviceProfile(c_Control_ProfileSun, $this->profileIDsSun, $this->profilesSun); + $this->CorrectDeletedDeviceProfile(c_Control_ProfileWeather, $this->profileIDsWeather, $this->profilesWeather); + } + + private function Init() { + $categoryId = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.modules.IPSShadowing.Profiles.Temp'); + $this->profileIDsTemp = IPS_GetChildrenIds($categoryId); + foreach ($this->profileIDsTemp as $profileId) { + $this->profilesTemp[$profileId] = new IPSShadowing_ProfileTemp($profileId); + } + + $categoryId = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.modules.IPSShadowing.Profiles.Sun'); + $this->profileIDsSun = IPS_GetChildrenIds($categoryId); + foreach ($this->profileIDsSun as $profileId) { + $this->profilesSun[$profileId] = new IPSShadowing_ProfileSun($profileId); + } + + $categoryId = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.modules.IPSShadowing.Profiles.Weather'); + $this->profileIDsWeather = IPS_GetChildrenIds($categoryId); + foreach ($this->profileIDsWeather as $profileId) { + $this->profilesWeather[$profileId] = new IPSShadowing_ProfileWeather($profileId); + } + + $categoryId = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.modules.IPSShadowing.Profiles.BgnOfDay'); + $this->profileIDsBgnOfDay = IPS_GetChildrenIds($categoryId); + foreach ($this->profileIDsBgnOfDay as $profileId) { + $this->profilesBgnOfDay[$profileId] = new IPSShadowing_ProfileTime($profileId); + } + + $categoryId = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.modules.IPSShadowing.Profiles.EndOfDay'); + $this->profileIDsEndOfDay = IPS_GetChildrenIds($categoryId); + foreach ($this->profileIDsEndOfDay as $profileId) { + $this->profilesEndOfDay[$profileId] = new IPSShadowing_ProfileTime($profileId); + } + } + + public function GetProfileTemp($profileId) { + return $this->profilesTemp[$profileId]; + } + + public function GetProfileSun($profileId) { + return $this->profilesSun[$profileId]; + } + + public function GetProfileWeather($profileId) { + return $this->profilesWeather[$profileId]; + } + + public function GetProfileBgnOfDay($profileId) { + return $this->profilesBgnOfDay[$profileId]; + } + + public function GetProfileEndOfDay($profileId) { + return $this->profilesEndOfDay[$profileId]; + } + + public function ShadowingByTemp($profileIdSun, $profileIdTemp, $tempIndoorPath='') { + $profileTemp = $this->profilesTemp[$profileIdTemp]; + $profileSun = $this->profilesSun[$profileIdSun]; + return ($profileTemp->ShadowingByTemp($tempIndoorPath) and $profileSun->ActivationBySun()); + } + + public function CloseByTemp($profileIdSun, $profileIdTemp, $tempIndoorPath='') { + $profileTemp = $this->profilesTemp[$profileIdTemp]; + $profileSun = $this->profilesSun[$profileIdSun]; + return ($profileTemp->CloseByTemp($tempIndoorPath) and $profileSun->ActivationBySun()); + } + + public function OpenByTemp($profileIdSun, $profileIdTemp, $tempIndoorPath='') { + $profileTemp = $this->profilesTemp[$profileIdTemp]; + $profileSun = $this->profilesSun[$profileIdSun]; + return ($profileTemp->OpenByTemp($tempIndoorPath) and $profileSun->ActivationBySun()); + } + + public function ActivationByWeather($profileIdWeather) { + if ($profileIdWeather==null) { + return; + } + $profileWeather = $this->profilesWeather[$profileIdWeather]; + return $profileWeather->ActivationByWeather(); + } + + public function IsDay($profileIdBgnOfDay, $profileIdEndOfDay) { + $profileBgnOfDay = $this->profilesBgnOfDay[$profileIdBgnOfDay]; + $profileEndOfDay = $this->profilesEndOfDay[$profileIdEndOfDay]; + return (time() > $profileBgnOfDay->GetTime() and time() < $profileEndOfDay->GetTime()); + } + + public function IsNight($profileIdBgnOfDay, $profileIdEndOfDay) { + return !$this->IsDay($profileIdBgnOfDay, $profileIdEndOfDay); + } + + public function GetPresent() { + return $this->present; + } + + public function SelectTemp($profileId) { + $displayId = IPS_GetObjectIDByIdent('DisplayTemp', $this->instanceId); + $profile = new IPSShadowing_ProfileTemp($profileId); + $profile->Display($displayId); + SetValue(IPS_GetObjectIDByIdent(c_Control_ProfileTempSelect, $this->instanceId), $profileId); + } + + public function SelectSun($profileId) { + $displayId = IPS_GetObjectIDByIdent('DisplaySun', $this->instanceId); + $profile = new IPSShadowing_ProfileSun($profileId); + $profile->Display($displayId); + SetValue(IPS_GetObjectIDByIdent(c_Control_ProfileSunSelect, $this->instanceId), $profileId); + } + + public function SelectWeather($profileId) { + $displayId = IPS_GetObjectIDByIdent('DisplayWeather', $this->instanceId); + $profile = new IPSShadowing_ProfileWeather($profileId); + $profile->Display($displayId); + SetValue(IPS_GetObjectIDByIdent(c_Control_ProfileWeatherSelect, $this->instanceId), $profileId); + } + + public function SelectBgnOfDay($profileId) { + $displayId = IPS_GetObjectIDByIdent('DisplayBgnOfDay', $this->instanceId); + $profile = new IPSShadowing_ProfileTime($profileId); + $profile->Display($displayId); + SetValue(IPS_GetObjectIDByIdent(c_Control_ProfileBgnOfDaySelect, $this->instanceId), $profileId); + } + + public function SelectEndOfDay($profileId) { + $displayId = IPS_GetObjectIDByIdent('DisplayEndOfDay', $this->instanceId); + $profile = new IPSShadowing_ProfileTime($profileId); + $profile->Display($displayId); + SetValue(IPS_GetObjectIDByIdent(c_Control_ProfileEndOfDaySelect, $this->instanceId), $profileId); + } + + public function CreateTemp($profileName='Neues Profile', $tempDiffShadowing=0, $tempDiffClose=1, $tempDiffOpening=1, $brightness=6000) { + $profileId = IPSShadowing_ProfileTemp::Create($profileName, $tempDiffShadowing, $tempDiffClose, $tempDiffOpening, $brightness); + $this->SelectTemp($profileId); + } + public function CreateSun($profileName='Neues Profile', $anzimutBgn=120, $anzimutEnd=240, $elevation=25) { + $profileId = IPSShadowing_ProfileSun::Create($profileName, $anzimutBgn, $anzimutEnd, $elevation); + $this->SelectSun($profileId); + } + public function CreateWeather($profileName='Neues Profile', $rainCheck=true, $windLevel=40) { + $profileId = IPSShadowing_ProfileWeather::Create($profileName, $rainCheck, $windLevel); + $this->SelectWeather($profileId); + } + public function CreateBgnOfDay($name='Neues Profil', $workdayMode=c_ModeId_Individual, $workdayTime='07:00', $workdayOffset=0, $weekendMode=c_ModeId_Individual, $weekendTime='08:00', $weekendOffset=0) { + $profileId = IPSShadowing_ProfileTime::Create($name, 'BgnOfDay', $workdayMode, $workdayTime, $workdayOffset, $weekendMode, $weekendTime, $weekendOffset); + $this->SelectBgnOfDay($profileId); + } + public function CreateEndOfDay($name='Neues Profil', $workdayMode=c_ModeId_Individual, $workdayTime='20:00', $workdayOffset=0, $weekendMode=c_ModeId_Individual, $weekendTime='21:00', $weekendOffset=0) { + $profileId = IPSShadowing_ProfileTime::Create($name, 'EndOfDay', $workdayMode, $workdayTime, $workdayOffset, $weekendMode, $weekendTime, $weekendOffset); + $this->SelectEndOfDay($profileId); + } + + public function DeleteTemp() { + if (count($this->profilesTemp)==1) { + return; + } + $controlId = IPS_GetObjectIDByIdent(c_Control_ProfileTempSelect, $this->instanceId); + $profileId = GetValue($controlId); + $profile = new IPSShadowing_ProfileTemp($profileId); + $profile->Delete(); + $this->Init(); + $this->CorrectDeletedDeviceProfiles(); + $this->SelectTemp($this->profileIDsTemp[0]); + } + + public function DeleteSun() { + if (count($this->profilesSun)==1) { + return; + } + $controlId = IPS_GetObjectIDByIdent(c_Control_ProfileSunSelect, $this->instanceId); + $profileId = GetValue($controlId); + $profile = new IPSShadowing_ProfileSun($profileId); + $profile->Delete(); + $this->Init(); + $this->CorrectDeletedDeviceProfiles(); + $this->SelectSun($this->profileIDsSun[0]); + } + + public function DeleteWeather() { + if (count($this->profilesWeather)==1) { + return; + } + $controlId = IPS_GetObjectIDByIdent(c_Control_ProfileWeatherSelect, $this->instanceId); + $profileId = GetValue($controlId); + $profile = new IPSShadowing_ProfileWeather($profileId); + $profile->Delete(); + $this->Init(); + $this->CorrectDeletedDeviceProfiles(); + $this->SelectWeather($this->profileIDsWeather[0]); + } + + public function DeleteBgnOfDay() { + if (count( $this->profilesBgnOfDay)==1) { + return; + } + $controlId = IPS_GetObjectIDByIdent(c_Control_ProfileBgnOfDaySelect, $this->instanceId); + $profileId = GetValue($controlId); + $profile = new IPSShadowing_ProfileTime($profileId); + $profile->Delete(); + $this->Init(); + $this->CorrectDeletedDeviceProfiles(); + $this->SelectBgnOfDay($this->profileIDsBgnOfDay[0]); + } + + public function DeleteEndOfDay() { + if (count($this->profilesEndOfDay)==1) { + return; + } + $controlId = IPS_GetObjectIDByIdent(c_Control_ProfileEndOfDaySelect, $this->instanceId); + $profileId = GetValue($controlId); + $profile = new IPSShadowing_ProfileTime($profileId); + $profile->Delete(); + $this->Init(); + $this->CorrectDeletedDeviceProfiles(); + $this->SelectEndOfDay($this->profileIDsEndOfDay[0]); + } + + private function GetProfileByControlId($controlId) { + $profileId = IPS_GetParent($controlId); + $profileType = IPS_GetIdent(IPS_GetParent($profileId)); + switch ($profileType) { + case 'Temp'; + $profile = $this->GetProfileTemp($profileId); + break; + case 'Sun'; + $profile = $this->GetProfileSun($profileId); + break; + case 'Weather'; + $profile = $this->GetProfileWeather($profileId); + break; + case 'BgnOfDay'; + $profile = $this->GetProfileBgnOfDay($profileId); + break; + case 'EndOfDay'; + $profile = $this->GetProfileEndOfDay($profileId); + break; + default: + throw new Exception('Unknown Profile Type '.$profileType); + } + return $profile; + } + + public function Rename($controlId, $newName) { + $profile = $this->GetProfileByControlId($controlId); + $profile->Rename($newName); + } + + public function SetValue($controlId, $value) { + $profile = $this->GetProfileByControlId($controlId); + $profile->SetValue($controlId, $value); + } + + } + + /** @}*/ + +?> \ No newline at end of file diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileSun.class.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileSun.class.php new file mode 100644 index 0000000..f39634f --- /dev/null +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileSun.class.php @@ -0,0 +1,250 @@ + + */ + class IPSShadowing_ProfileSun { + + /** + * @private + * ID des Sonnenstand Profiles + */ + private $instanceId; + + /** + * @private + */ + private $azimuth; + + /** + * @private + */ + private $activationBySun; + + /** + * @private + */ + private $elevation; + + /** + * @public + * + * Initialisierung des IPSShadowing_ProfileSun Objektes + * + * @param integer $instanceId InstanceId Profiles + */ + public function __construct($instanceId) { + $this->instanceId = IPSUtil_ObjectIDByPath($instanceId); + $this->Init(); + } + + /** + * @private + * + * Initialisierung der internen Variablen + * + */ + private function Init() { + $data = Get_AnzimuatAndElevation(time(), IPSSHADOWING_LONGITUDE, IPSSHADOWING_LATITUDE); + $this->azimuth = $data['Azimuth']; + $this->elevation = $data['Elevation']; + + $azimuthBgn = GetValue(IPS_GetObjectIDByIdent(c_Control_AzimuthBgn, $this->instanceId)); + $azimuthEnd = GetValue(IPS_GetObjectIDByIdent(c_Control_AzimuthEnd, $this->instanceId)); + $elevationLevel = GetValue(IPS_GetObjectIDByIdent(c_Control_Elevation, $this->instanceId)); + + $activationBySun = true; + $activationBySun = ($activationBySun and $this->elevation>=$elevationLevel); + $activationBySun = ($activationBySun and $this->azimuth>=$azimuthBgn); + $activationBySun = ($activationBySun and $this->azimuth<=$azimuthEnd); + + $this->activationBySun = $activationBySun; + } + + public function UpdateProfileInfo() { + $info=''.($this->activationBySun?'Profil aktiv':'Profil inaktiv').' (Azimuth='.round($this->azimuth).', Elevation='.round($this->elevation).')'; + if (GetValue(IPS_GetObjectIDByIdent(c_Control_ProfileInfo, $this->instanceId)) <> $info or true) { + SetValue(IPS_GetObjectIDByIdent(c_Control_ProfileInfo, $this->instanceId), $info); + IPS_SetVariableProfileAssociation('IPSShadowing_ProfileSun', + $this->instanceId, + GetValue(IPS_GetObjectIDByIdent(c_Control_ProfileName, $this->instanceId)), + '', + ($this->activationBySun?c_Color_ProfileActive:-1)); + } + } + + public function GetProfileInfo() { + $info = ''; + return $info; + } + + public function ActivationBySun() { + return $this->activationBySun; + } + + /** + * @public + * + * Neues Profile generieren + * + * @param string $profileName Name des Profiles + * @param integer $azimuthBgn Startwert Sonnenstand + * @param integer $azimuthEnd Endwert Sonnendstand + * @param integer $elevation Sonnenstand (Höhe) + */ + public static function Create($profileName, $azimuthBgn=0, $azimuthEnd=360, $elevation=30) { + IPSUtils_Include ('IPSInstaller.inc.php', 'IPSLibrary::install::IPSInstaller'); + + $ScriptIdChangeSettings = IPSUtil_ObjectIDByPath('Program.IPSLibrary.app.modules.IPSShadowing.IPSShadowing_ChangeSettings'); + $categoryIdprofiles = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.modules.IPSShadowing.Profiles.Sun'); + $profileIdx = count(IPS_GetChildrenIds($categoryIdprofiles)) + 10; + $profileId = CreateCategory ($profileName, $categoryIdprofiles, $profileIdx); + IPS_SetIdent($profileId, (string)$profileId); + CreateVariable(c_Control_ProfileName, 3 /*String*/, $profileId, 0, '~String', $ScriptIdChangeSettings, $profileName, 'Title'); + CreateVariable(c_Control_AzimuthBgn, 1 /*Integer*/, $profileId, 10, 'IPSShadowing_AzimuthBgn', $ScriptIdChangeSettings, $azimuthBgn, 'HollowLargeArrowLeft'); + CreateVariable(c_Control_AzimuthEnd, 1 /*Integer*/, $profileId, 20, 'IPSShadowing_AzimuthEnd', $ScriptIdChangeSettings, $azimuthEnd, 'HollowLargeArrowRight'); + CreateVariable(c_Control_Elevation, 1 /*Integer*/, $profileId, 30, 'IPSShadowing_Elevation', $ScriptIdChangeSettings, $elevation, 'HollowLargeArrowUp'); + CreateVariable(c_Control_Date, 1 /*Integer*/, $profileId, 40, 'IPSShadowing_Date', $ScriptIdChangeSettings, 1, 'Calendar'); + CreateVariable(c_Control_Simulation, 1 /*Integer*/, $profileId, 50, '~Switch', $ScriptIdChangeSettings, false, 'Repeat'); + CreateVariable(c_Control_Orientation, 0 /*Boolean*/, $profileId, 60, '~Switch', $ScriptIdChangeSettings, false, 'WindDirection'); + CreateVariable(c_Control_ProfileInfo, 3 /*String*/, $profileId, 70, '~String', null, '', 'Information'); + + IPS_SetVariableProfileAssociation('IPSShadowing_ProfileSun', $profileId, $profileName, "", -1); + + return $profileId; + } + + /** + * @public + * + * Visualisierung des Profiles in einer übergebenen Kategorie + * + * @param integer $categoryId ID der Kategory in der die Visualisierungs Links abgelegt werden sollen + */ + public function Display($categoryId) { + IPSUtils_Include ('IPSInstaller.inc.php', 'IPSLibrary::install::IPSInstaller'); + CreateLink('Profil Name', IPS_GetObjectIDByIdent(c_Control_ProfileName, $this->instanceId), $categoryId, 10); + $instanceId = CreateDummyInstance("Sonnenstand", $categoryId, 20); + CreateLink('Azimuth Start', IPS_GetObjectIDByIdent(c_Control_AzimuthBgn, $this->instanceId), $instanceId, 10); + CreateLink('Azimuth Ende', IPS_GetObjectIDByIdent(c_Control_AzimuthEnd, $this->instanceId), $instanceId, 20); + CreateLink('Elevation', IPS_GetObjectIDByIdent(c_Control_Elevation, $this->instanceId), $instanceId, 30); + $instanceId = CreateDummyInstance("Visualisierung", $categoryId, 30); + CreateLink('Monat', IPS_GetObjectIDByIdent(c_Control_Date, $this->instanceId), $instanceId, 10); + CreateLink('Simulation', IPS_GetObjectIDByIdent(c_Control_Simulation, $this->instanceId), $instanceId, 20); + CreateLink('Ausrichtung Süden', IPS_GetObjectIDByIdent(c_Control_Orientation, $this->instanceId), $instanceId, 30); + CreateLink('Profil Info', IPS_GetObjectIDByIdent(c_Control_ProfileInfo, $this->instanceId), $categoryId, 40); + + $this->GenerateGraphic(); + } + + /** + * @public + * + * Profile löschen + * + */ + public function Delete() { + IPSUtils_Include ('IPSInstaller.inc.php', 'IPSLibrary::install::IPSInstaller'); + IPS_SetVariableProfileAssociation('IPSShadowing_ProfileSun', $this->instanceId, '', '', -1); + DeleteCategory($this->instanceId); + } + + /** + * @public + * + * Profile umbenennen + * + * @param string $newName Neuer Name des Profiles + */ + public function Rename($newName) { + IPSUtils_Include ('IPSInstaller.inc.php', 'IPSLibrary::install::IPSInstaller'); + IPS_SetVariableProfileAssociation('IPSShadowing_ProfileSun', $this->instanceId, $newName, '', -1); + IPS_SetName($this->instanceId, $newName); + SetValue(IPS_GetObjectIDByIdent(c_Control_ProfileName, $this->instanceId), $newName); + } + + /** + * @public + * + * Profil verändern + * + * @param integer $controlId ID der Variable die verändert werden soll + * @param integer $value neuer Wert + */ + public function SetValue($controlId, $value) { + if (GetValue($controlId)<>$value) { + SetValue($controlId, $value); + IPSShadowing_LogChange($this->instanceId, $value, $controlId); + $controlIdent = IPS_GetIdent($controlId); + if ($controlIdent==c_Control_Date) { + $this->GenerateGraphic(mktime(12, 0, 0, $value, date('d'), date("Y"))); + } elseif ($controlIdent==c_Control_Orientation) { + $this->GenerateGraphic(mktime(12, 0, 0, GetValue(IPS_GetObjectIDByIdent(c_Control_Date, $this->instanceId)), date('d'), date("Y"))); + } elseif ($controlIdent==c_Control_Simulation) { + for ($month=1;$month<=12;$month++) { + $this->GenerateGraphic(mktime(12, 0, 0, $month, date('d'), date("Y"))); + SetValue(IPS_GetObjectIDByIdent(c_Control_Date, $this->instanceId), $month); + usleep(500000); + } + $this->GenerateGraphic(); + SetValue(IPS_GetObjectIDByIdent(c_Control_Date, $this->instanceId), date('n')); + SetValue($controlId, false); + } else { + SetValue(IPS_GetObjectIDByIdent(c_Control_Date, $this->instanceId), date('n')); + $this->GenerateGraphic(); + $this->Init(); + $this->UpdateProfileInfo(); + } + } + } + + /** + * @private + * + * Grafik generieren + */ + private function GenerateGraphic ($date=null) { + if ($date==null) { + $date = time(); + } + IPSShadowing_GenerateSunGraphic($date, + GetValue(IPS_GetObjectIDByIdent(c_Control_AzimuthBgn, $this->instanceId)), + GetValue(IPS_GetObjectIDByIdent(c_Control_AzimuthEnd, $this->instanceId)), + GetValue(IPS_GetObjectIDByIdent(c_Control_Elevation, $this->instanceId)), + GetValue(IPS_GetObjectIDByIdent(c_Control_Orientation,$this->instanceId))); + } + } + + /** @}*/ + +?> \ No newline at end of file diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileSunCreate.ips.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileSunCreate.ips.php new file mode 100644 index 0000000..ca96e6d --- /dev/null +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileSunCreate.ips.php @@ -0,0 +1,36 @@ + + * + * Erzeugen eines Temperatur Profiles + */ + + include_once "IPSShadowing.inc.php"; + + $profileManager = new IPSShadowing_ProfileManager(); + $profileManager->CreateSun('Neues Profil'); + + /** @}*/ +?> \ No newline at end of file diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileSunDelete.ips.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileSunDelete.ips.php new file mode 100644 index 0000000..6a3f5f0 --- /dev/null +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileSunDelete.ips.php @@ -0,0 +1,37 @@ + + * + * Löschen eines "Temperatur" Profiles + */ + + include_once "IPSShadowing.inc.php"; + + $profileManager = new IPSShadowing_ProfileManager(); + $profileManager->DeleteSun(); + + + /** @}*/ +?> \ No newline at end of file diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTemp.class.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTemp.class.php new file mode 100644 index 0000000..70345d8 --- /dev/null +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTemp.class.php @@ -0,0 +1,263 @@ + + */ + class IPSShadowing_ProfileTemp { + + /** + * @private + * ID des Zeit Profiles + */ + private $instanceId; + + /** + * @private + * Aktivierung bei Sonnenstand und Helligkeit + */ + private $activationByTemp; + + private $tempOutdoor; + private $tempIndoor; + private $tempDiffShadowing; + private $tempDiffClosing; + private $tempDiffOpening; + + /** + * @public + * + * Initialisierung des IPSShadowing_ProfileTime Objektes + * + * @param integer $instanceId InstanceId Profiles + */ + public function __construct($instanceId) { + $this->instanceId = IPSUtil_ObjectIDByPath($instanceId); + $this->Init(); + } + + /** + * @private + * + * Initialisierung der internen Variablen + * + */ + private function Init() { + $this->tempDiffShadowing = GetValue(IPS_GetObjectIDByIdent(c_Control_TempDiffShadowing, $this->instanceId)); + $this->tempDiffClosing = GetValue(IPS_GetObjectIDByIdent(c_Control_TempDiffClosing, $this->instanceId)); + $this->tempDiffOpening = GetValue(IPS_GetObjectIDByIdent(c_Control_TempDiffOpening, $this->instanceId)); + $this->tempIndoor=22; + if (IPSSHADOWING_TEMPSENSORINDOOR <> '') { + $this->tempIndoor = GetValue(IPSUtil_ObjectIDByPath(IPSSHADOWING_TEMPSENSORINDOOR)); + } + $this->tempOutdoor=25; + if (IPSSHADOWING_TEMPSENSOROUTDOOR <> '') { + $this->tempOutdoor = GetValue(IPSUtil_ObjectIDByPath(IPSSHADOWING_TEMPSENSOROUTDOOR)); + } + $brightnessLevel = GetValue(IPS_GetObjectIDByIdent(c_Control_Brightness, $this->instanceId)); + + $activationByTemp = true; + if (IPSSHADOWING_BRIGHTNESSSENSOR <> '') { + $activationByTemp = ($activationByTemp and GetValue(IPSUtil_ObjectIDByPath(IPSSHADOWING_BRIGHTNESSSENSOR))>=$brightnessLevel); + } + $this->activationByTemp = $activationByTemp; + } + + private function GetActivationByTemp($tempIndoorPath, $tempDiff) { + $activationByTemp = $this->activationByTemp; + $tempIndoor = $this->tempIndoor; + if ($tempIndoorPath <> '') { + $tempIndoor = IPSUtil_ObjectIDByPath($tempIndoorPath); + } + if (IPSSHADOWING_TEMPSENSORINDOOR <> '' and IPSSHADOWING_TEMPSENSOROUTDOOR <> '') { + $activationByTemp = ($activationByTemp and (($this->tempOutdoor-$tempIndoor) >= $tempDiff + or $this->tempDiffShadowing==c_TempDiff_NoAction)); + } + return $activationByTemp; + } + + public function UpdateProfileInfo() { + $info = ''; + $tempIndoor = (IPSSHADOWING_TEMPSENSORINDOOR<>'' ? GetValue(IPSUtil_ObjectIDByPath(IPSSHADOWING_TEMPSENSORINDOOR)).'°C' :'"nicht vorhanden"'); + $tempOutdoor = (IPSSHADOWING_TEMPSENSOROUTDOOR<>''? GetValue(IPSUtil_ObjectIDByPath(IPSSHADOWING_TEMPSENSOROUTDOOR)).'°C' :'"nicht vorhanden"'); + $brightness = (IPSSHADOWING_BRIGHTNESSSENSOR<>'' ? GetValue(IPSUtil_ObjectIDByPath(IPSSHADOWING_BRIGHTNESSSENSOR)).' Lux':'"nicht vorhanden"'); + $activationByTemp = $this->GetActivationByTemp('', $this->tempDiffShadowing); + $info = ''.($activationByTemp?'Profil aktiv':'Profil inaktiv').' (Innen='.$tempIndoor.', Aussen='.$tempOutdoor.', Helligkeit='.$brightness.')'; + if (GetValue(IPS_GetObjectIDByIdent(c_Control_ProfileInfo, $this->instanceId)) <> $info or true) { + SetValue(IPS_GetObjectIDByIdent(c_Control_ProfileInfo, $this->instanceId), $info); + IPS_SetVariableProfileAssociation('IPSShadowing_ProfileTemp', + $this->instanceId, + GetValue(IPS_GetObjectIDByIdent(c_Control_ProfileName, $this->instanceId)), + '', + ($activationByTemp?c_Color_ProfileActive:-1)); + } + } + + public function GetProfileInfo($tempIndoorPath) { + $info = ''; + if ($tempIndoorPath <> '') { + $info .= ' Innen='.IPSUtil_ObjectIDByPath($tempIndoorPath).'°'; + } elseif (IPSSHADOWING_TEMPSENSORINDOOR <> '') { + $info .= ' Innen='.GetValue(IPSUtil_ObjectIDByPath(IPSSHADOWING_TEMPSENSORINDOOR)).'°C'; + } + if (IPSSHADOWING_TEMPSENSOROUTDOOR <> '') { + if ($info<>'') { $info.=', ';} + $info .= ' Aussen='.GetValue(IPSUtil_ObjectIDByPath(IPSSHADOWING_TEMPSENSOROUTDOOR)).'°C'; + } + return $info; + } + + public function ShadowingByTemp($tempIndoorPath) { + return $this->GetActivationByTemp($tempIndoorPath, $this->tempDiffShadowing); + } + + public function CloseByTemp($tempIndoorPath) { + //Example: + // Aussen >= Innen+Diff + //Outdoor=16,Indoor=22, --> -6 >= 2 -> false + //Outdoor=20,Indoor=22, --> -2 >= 2 -> false + //Outdoor=26,Indoor=22, --> 4 >= 2 -> true + return $this->GetActivationByTemp($tempIndoorPath, $this->tempDiffClosing); + } + + public function OpenByTemp($tempIndoorPath) { + $tempIndoor = $this->tempIndoor; + if ($tempIndoorPath <> '') { + $tempIndoor = IPSUtil_ObjectIDByPath($tempIndoorPath); + } + if ($this->tempDiffOpening >= c_TempDiff_NoAction) { + return false; // No Action + } + //Example: + //Indoor-Outdoor >= Diff + //Outdoor=16,Indoor=22, --> 6 >= 0 -> true + //Outdoor=20,Indoor=22, --> 2 >= 2 -> true + //Outdoor=26,Indoor=22, --> -4 >= 2 -> false + return ($tempIndoor - $this->tempOutdoor) >= $this->tempDiffOpening; + } + + /** + * @public + * + * Neues Profile generieren + * + * @param string $profileName Name des Profiles + * @param integer $tempDiffShadowing Temperatur Differenz für Beschattung + * @param integer $tempDiffClose Temperatur Differenz für Abdunkelung + * @param integer $tempDiffOpening Temperatur Differenz für Öffnen + * @param integer $brightness Helligkeit + */ + public static function Create($profileName, $tempDiffShadowing=0, $tempDiffClose=1, $tempDiffOpening=1, $brightness=0) { + IPSUtils_Include ('IPSInstaller.inc.php', 'IPSLibrary::install::IPSInstaller'); + + $ScriptIdChangeSettings = IPSUtil_ObjectIDByPath('Program.IPSLibrary.app.modules.IPSShadowing.IPSShadowing_ChangeSettings'); + $categoryIdprofiles = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.modules.IPSShadowing.Profiles.Temp'); + $profileIdx = count(IPS_GetChildrenIds($categoryIdprofiles)) + 10; + $profileId = CreateCategory ($profileName, $categoryIdprofiles, $profileIdx); + IPS_SetIdent($profileId, (string)$profileId); + CreateVariable(c_Control_ProfileName, 3 /*String*/, $profileId, 0, '~String', $ScriptIdChangeSettings, $profileName, 'Title'); + CreateVariable(c_Control_TempDiffShadowing, 1 /*Integer*/, $profileId, 10, 'IPSShadowing_TempDiffShadowing', $ScriptIdChangeSettings, $tempDiffShadowing, 'Temperature'); + CreateVariable(c_Control_TempDiffClosing, 1 /*Integer*/, $profileId, 20, 'IPSShadowing_TempDiffClosing', $ScriptIdChangeSettings, $tempDiffClose, 'Temperature'); + CreateVariable(c_Control_TempDiffOpening, 1 /*Integer*/, $profileId, 20, 'IPSShadowing_TempDiffOpening', $ScriptIdChangeSettings, $tempDiffOpening, 'Temperature'); + CreateVariable(c_Control_Brightness, 1 /*Integer*/, $profileId, 30, 'IPSShadowing_Brightness', $ScriptIdChangeSettings, $brightness, 'Sun'); + CreateVariable(c_Control_ProfileInfo, 3 /*String*/, $profileId, 40, '~String', null, '', 'Information'); + + IPS_SetVariableProfileAssociation('IPSShadowing_ProfileTemp', $profileId, $profileName, "", -1); + + return $profileId; + } + + /** + * @public + * + * Visualisierung des Profiles in einer übergebenen Kategorie + * + * @param integer $categoryId ID der Kategory in der die Visualisierungs Links abgelegt werden sollen + */ + public function Display($categoryId) { + IPSUtils_Include ('IPSInstaller.inc.php', 'IPSLibrary::install::IPSInstaller'); + CreateLink('Profil Name', IPS_GetObjectIDByIdent(c_Control_ProfileName, $this->instanceId), $categoryId, 10); + $instanceId = CreateDummyInstance("Temperatur Grenzen", $categoryId, 20); + CreateLink('Differenz Beschattung', IPS_GetObjectIDByIdent(c_Control_TempDiffShadowing, $this->instanceId), $instanceId, 10); + CreateLink('Differenz Abdunkelung', IPS_GetObjectIDByIdent(c_Control_TempDiffClosing, $this->instanceId), $instanceId, 20); + CreateLink('Differenz Öffnen', IPS_GetObjectIDByIdent(c_Control_TempDiffOpening, $this->instanceId), $instanceId, 30); + $instanceId = CreateDummyInstance("Hellingkeits Grenze", $categoryId, 30); + CreateLink('Helligkeit', IPS_GetObjectIDByIdent(c_Control_Brightness, $this->instanceId), $instanceId, 10); + CreateLink('Profil Info', IPS_GetObjectIDByIdent(c_Control_ProfileInfo, $this->instanceId), $categoryId, 40); + } + + /** + * @public + * + * Profile löschen + * + */ + public function Delete() { + IPSUtils_Include ('IPSInstaller.inc.php', 'IPSLibrary::install::IPSInstaller'); + IPS_SetVariableProfileAssociation('IPSShadowing_ProfileTemp', $this->instanceId, '', '', -1); + DeleteCategory($this->instanceId); + } + + /** + * @public + * + * Profile umbenennen + * + * @param string $newName Neuer Name des Profiles + */ + public function Rename($newName) { + IPSUtils_Include ('IPSInstaller.inc.php', 'IPSLibrary::install::IPSInstaller'); + IPS_SetVariableProfileAssociation('IPSShadowing_ProfileTemp', $this->instanceId, $newName, '', -1); + IPS_SetName($this->instanceId, $newName); + SetValue(IPS_GetObjectIDByIdent(c_Control_ProfileName, $this->instanceId), $newName); + } + + /** + * @public + * + * Profil verändern + * + * @param integer $controlId ID der Variable die verändert werden soll + * @param integer $value neuer Wert + */ + public function SetValue($controlId, $value) { + SetValue($controlId, $value); + IPSShadowing_LogChange($this->instanceId, $value, $controlId); + $this->Init(); + $this->UpdateProfileInfo(); + } + + } + + /** @}*/ + +?> \ No newline at end of file diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTempCreate.ips.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTempCreate.ips.php new file mode 100644 index 0000000..ea00196 --- /dev/null +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTempCreate.ips.php @@ -0,0 +1,36 @@ + + * + * Erzeugen eines "Sonnenstand" Profiles + */ + + include_once "IPSShadowing.inc.php"; + + $profileManager = new IPSShadowing_ProfileManager(); + $profileManager->CreateSun('Neues Profil'); + + /** @}*/ +?> \ No newline at end of file diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTempDelete.ips.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTempDelete.ips.php new file mode 100644 index 0000000..3ba25a1 --- /dev/null +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTempDelete.ips.php @@ -0,0 +1,37 @@ + + * + * Löschen eines "Sonnenstand" Profiles + */ + + include_once "IPSShadowing.inc.php"; + + $profileManager = new IPSShadowing_ProfileManager(); + $profileManager->DeleteSun(); + + + /** @}*/ +?> \ No newline at end of file diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTime.class.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTime.class.php new file mode 100644 index 0000000..5324003 --- /dev/null +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTime.class.php @@ -0,0 +1,278 @@ + + */ + class IPSShadowing_ProfileTime { + + /** + * @private + * ID des Zeit Profiles + */ + private $instanceId; + + /** + * @private + * Type of Profile (BgnOfDay or EndOfDay) + */ + private $profileType; + + /** + * @private + * current Time of Profile + */ + private $time; + + /** + * @public + * + * Initialisierung des IPSShadowing_ProfileTime Objektes + * + * @param integer $instanceId InstanceId Profiles + */ + public function __construct($instanceId) { + $this->instanceId = IPSUtil_ObjectIDByPath($instanceId); + $this->profileType = IPS_GetName(IPS_GetParent($this->instanceId)); + $this->CalculateTime(); + } + + private function GetTimeByParams($mode, $time, $offset) { + switch ($mode) { + case c_ModeId_Individual: + break; + case c_ModeId_Twillight: + if ($this->profileType=='BgnOfDay') { + $time = GetValue(IPSUtil_ObjectIDByPath(IPSSHADOWING_TWILIGHTSUNRISE)); + } else { + $time = GetValue(IPSUtil_ObjectIDByPath(IPSSHADOWING_TWILIGHTSUNSET)); + } + break; + case c_ModeId_LimitedTwillight: + if ($this->profileType=='BgnOfDay') { + $time = GetValue(IPSUtil_ObjectIDByPath(IPSSHADOWING_TWILIGHTSUNRISELIMITED)); + } else { + $time = GetValue(IPSUtil_ObjectIDByPath(IPSSHADOWING_TWILIGHTSUNSETLIMITED)); + } + break; + default: + throw new Exception('Unknown Mode '.$mode.' for Profile '.$this->instanceId); + } + $time = mktime(substr($time,0,2), substr($time,3,2), 0); + $time = strtotime("$offset minutes", $time); + return $time; + } + + private function CalculateTime() { + $timeWorkday = $this->GetTimeByParams( + GetValue(IPS_GetObjectIDByIdent(c_Control_WorkdayMode, $this->instanceId)), + GetValue(IPS_GetObjectIDByIdent(c_Control_WorkdayTime, $this->instanceId)), + GetValue(IPS_GetObjectIDByIdent(c_Control_WorkdayOffset, $this->instanceId))); + $timeWeekend = $this->GetTimeByParams( + GetValue(IPS_GetObjectIDByIdent(c_Control_WeekendMode, $this->instanceId)), + GetValue(IPS_GetObjectIDByIdent(c_Control_WeekendTime, $this->instanceId)), + GetValue(IPS_GetObjectIDByIdent(c_Control_WeekendOffset, $this->instanceId))); + + $timeStringWorkday = date('H:i', $timeWorkday); + if ($timeStringWorkday<>GetValue(IPS_GetObjectIDByIdent(c_Control_WorkdayTime, $this->instanceId)) + and GetValue(IPS_GetObjectIDByIdent(c_Control_WorkdayMode, $this->instanceId))<>c_ModeId_Individual) { + SetValue(IPS_GetObjectIDByIdent(c_Control_WorkdayTime, $this->instanceId), $timeStringWorkday); + } + $timeStringWeekend = date('H:i', $timeWeekend); + if ($timeStringWeekend<>GetValue(IPS_GetObjectIDByIdent(c_Control_WeekendTime, $this->instanceId)) + and GetValue(IPS_GetObjectIDByIdent(c_Control_WeekendMode, $this->instanceId))<>c_ModeId_Individual) { + SetValue(IPS_GetObjectIDByIdent(c_Control_WeekendTime, $this->instanceId), $timeStringWeekend); + } + + + $isWorkingDay = IPSShadowing_IsWorkingDay(); + if ($isWorkingDay===null) { + $dayOfWeek = date("w"); + $isWorkingDay = ($dayOfWeek >= 1 and $dayOfWeek <= 5); + } + if ($isWorkingDay) { + $this->time = $timeWorkday; + } else { + $this->time = $timeWeekend; + } + } + + public function UpdateProfileInfo() { + $info = 'Zeit='.date('H:i', $this->time); + if (GetValue(IPS_GetObjectIDByIdent(c_Control_ProfileInfo, $this->instanceId)) <> $info) { + SetValue(IPS_GetObjectIDByIdent(c_Control_ProfileInfo, $this->instanceId), $info); + } + } + + + /** + * @public + * + * Liefert die aktuelle Zeit des Zeit Profiles + * + * @return float Zeitpunkt des eingestellten Profiles + */ + public function GetTime() { + return $this->time; + } + + /** + * @public + * + * Neues Profile generieren + * + * @param string $profileName Name des Profiles + * @param string $profileType Type des Profiles (BgnOfDay or EndOfDay) + * @param integer $workdayMode Zeitmodus für Werktage + * @param string $workdayTime Zeitpunkt für Werktage + * @param integer $workdayOffset Offset in Minuten für Werktage + * @param integer $weekendMode Zeitmodus für Wochenende + * @param string $weekendTime Zeitpunkt für Wochenende + * @param integer $weekendOffset Offset in Minuten für Wochenende + */ + public static function Create($profileName, $profileType='BgnOfDay', $workdayMode=c_ModeId_Individual, $workdayTime='07:00', $workdayOffset=0, $weekendMode=c_ModeId_Individual, $weekendTime='08:00', $weekendOffset=0) { + IPSUtils_Include ('IPSInstaller.inc.php', 'IPSLibrary::install::IPSInstaller'); + + $ScriptIdChangeSettings = IPSUtil_ObjectIDByPath('Program.IPSLibrary.app.modules.IPSShadowing.IPSShadowing_ChangeSettings'); + $categoryIdprofiles = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.modules.IPSShadowing.Profiles.'.$profileType); + $profileIdx = count(IPS_GetChildrenIds($categoryIdprofiles)) + 10; + + $profileId = CreateCategory ($profileName, $categoryIdprofiles, $profileIdx); + IPS_SetIdent($profileId, (string)$profileId); + + CreateVariable(c_Control_ProfileName, 3 /*String*/, $profileId, 0, '~String', $ScriptIdChangeSettings, $profileName, 'Title'); + CreateVariable(c_Control_WorkdayMode, 1 /*Integer*/, $profileId, 10, 'IPSShadowing_TimeMode', $ScriptIdChangeSettings, $workdayMode, 'Gear'); + CreateVariable(c_Control_WorkdayTime, 3 /*String*/, $profileId, 20, '~String', ($workdayMode==c_ModeId_Individual?$ScriptIdChangeSettings:null), $workdayTime, 'Clock'); + CreateVariable(c_Control_WorkdayOffset, 1 /*Integer*/, $profileId, 30, 'IPSShadowing_TimeOffset', ($workdayMode==c_ModeId_Individual?null:$ScriptIdChangeSettings), $workdayOffset, 'Distance'); + CreateVariable(c_Control_WeekendMode, 1 /*Integer*/, $profileId, 40, 'IPSShadowing_TimeMode', $ScriptIdChangeSettings, $weekendMode, 'Gear'); + CreateVariable(c_Control_WeekendTime, 3 /*String*/, $profileId, 50, '~String', ($weekendMode==c_ModeId_Individual?$ScriptIdChangeSettings:null), $weekendTime, 'Clock'); + CreateVariable(c_Control_WeekendOffset, 1 /*Integer*/, $profileId, 60, 'IPSShadowing_TimeOffset', ($weekendMode==c_ModeId_Individual?null:$ScriptIdChangeSettings), $weekendOffset, 'Distance'); + CreateVariable(c_Control_ProfileInfo, 3 /*String*/, $profileId, 70, '~String', null, '', 'Information'); + + IPS_SetVariableProfileAssociation('IPSShadowing_Profile'.$profileType, $profileId, $profileName, "", -1); + + return $profileId; + } + + /** + * @public + * + * Profile löschen + * + */ + public function Delete() { + IPSUtils_Include ('IPSInstaller.inc.php', 'IPSLibrary::install::IPSInstaller'); + IPS_SetVariableProfileAssociation('IPSShadowing_Profile'.$this->profileType, $this->instanceId, '', '', -1); + DeleteCategory($this->instanceId); + } + + /** + * @public + * + * Profile umbenennen + * + * @param string $newName Neuer Name des Profiles + */ + public function Rename($newName) { + IPSUtils_Include ('IPSInstaller.inc.php', 'IPSLibrary::install::IPSInstaller'); + IPS_SetVariableProfileAssociation('IPSShadowing_Profile'.$this->profileType, $this->instanceId, $newName, '', -1); + IPS_SetName($this->instanceId, $newName); + SetValue(IPS_GetObjectIDByIdent(c_Control_ProfileName, $this->instanceId), $newName); + } + + /** + * @public + * + * Profil verändern + * + * @param integer $controlId ID der Variable die verändert werden soll + * @param integer $value neuer Wert + */ + public function SetValue($controlId, $value) { + if (GetValue($controlId)<>$value) { + $controlIdent = IPS_GetIdent($controlId); + $scriptIdChangeSettings = IPSUtil_ObjectIDByPath('Program.IPSLibrary.app.modules.IPSShadowing.IPSShadowing_ChangeSettings'); + + if ($controlIdent==c_Control_WorkdayMode) { + if ($value==c_ModeId_Individual) { + IPS_SetVariableCustomAction(IPS_GetObjectIDByIdent(c_Control_WorkdayTime, $this->instanceId), $scriptIdChangeSettings); + SetValue(IPS_GetObjectIDByIdent(c_Control_WorkdayOffset, $this->instanceId), 0); + IPS_SetVariableCustomAction(IPS_GetObjectIDByIdent(c_Control_WorkdayOffset, $this->instanceId), null); + } else { + IPS_SetVariableCustomAction(IPS_GetObjectIDByIdent(c_Control_WorkdayTime, $this->instanceId), null); + IPS_SetVariableCustomAction(IPS_GetObjectIDByIdent(c_Control_WorkdayOffset, $this->instanceId), $scriptIdChangeSettings); + } + } + if ($controlIdent==c_Control_WeekendMode) { + if ($value==c_ModeId_Individual) { + IPS_SetVariableCustomAction(IPS_GetObjectIDByIdent(c_Control_WeekendTime, $this->instanceId), $scriptIdChangeSettings); + SetValue(IPS_GetObjectIDByIdent(c_Control_WeekendOffset, $this->instanceId), 0); + IPS_SetVariableCustomAction(IPS_GetObjectIDByIdent(c_Control_WeekendOffset, $this->instanceId), null); + } else { + IPS_SetVariableCustomAction(IPS_GetObjectIDByIdent(c_Control_WeekendTime, $this->instanceId), null); + IPS_SetVariableCustomAction(IPS_GetObjectIDByIdent(c_Control_WeekendOffset, $this->instanceId), $scriptIdChangeSettings); + } + } + SetValue($controlId, $value); + IPSShadowing_LogChange($this->instanceId, $value, $controlId); + $this->CalculateTime(); + } + } + + /** + * @public + * + * Visualisierung des Profiles in einer übergebenen Kategorie + * + * @param integer $categoryId ID der Kategory in der die Visualisierungs Links abgelegt werden sollen + */ + public function Display($categoryId) { + IPSUtils_Include ('IPSInstaller.inc.php', 'IPSLibrary::install::IPSInstaller'); + CreateLink('Profil Name', IPS_GetObjectIDByIdent(c_Control_ProfileName, $this->instanceId), $categoryId, 10); + $instanceId = CreateDummyInstance("Werktag", $categoryId, 20); + CreateLink('Modus', IPS_GetObjectIDByIdent(c_Control_WorkdayMode, $this->instanceId), $instanceId, 10); + CreateLink('Zeit', IPS_GetObjectIDByIdent(c_Control_WorkdayTime, $this->instanceId), $instanceId, 20); + CreateLink('Versatz', IPS_GetObjectIDByIdent(c_Control_WorkdayOffset, $this->instanceId), $instanceId, 30); + $instanceId = CreateDummyInstance("Wochenende", $categoryId, 30); + CreateLink('Modus', IPS_GetObjectIDByIdent(c_Control_WeekendMode, $this->instanceId), $instanceId, 10); + CreateLink('Zeit', IPS_GetObjectIDByIdent(c_Control_WeekendTime, $this->instanceId), $instanceId, 20); + CreateLink('Versatz', IPS_GetObjectIDByIdent(c_Control_WeekendOffset, $this->instanceId), $instanceId, 30); + CreateLink('Profil Info', IPS_GetObjectIDByIdent(c_Control_ProfileInfo, $this->instanceId), $categoryId, 40); + } + + + } + + + /** @}*/ + +?> \ No newline at end of file diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileWeather.class.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileWeather.class.php new file mode 100644 index 0000000..8823820 --- /dev/null +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileWeather.class.php @@ -0,0 +1,218 @@ + + */ + class IPSShadowing_ProfileWeather { + + /** + * @private + * ID des Wetter Profiles + */ + private $instanceId; + + /** + * @private + * Aktivierung bei Sonnenstand und Helligkeit + */ + private $activationByWeather; + + private $rainSensor; + private $windSensor; + private $rainCheck; + private $windLevel; + + /** + * @public + * + * Initialisierung des IPSShadowing_ProfileWeather Objektes + * + * @param integer $instanceId InstanceId Profile + */ + public function __construct($instanceId) { + $this->instanceId = IPSUtil_ObjectIDByPath($instanceId); + $this->Init(); + } + + /** + * @private + * + * Initialisierung der internen Variablen + * + */ + private function Init() { + $this->windLevel = GetValue(IPS_GetObjectIDByIdent(c_Control_WindLevel, $this->instanceId)); + $this->rainCheck = GetValue(IPS_GetObjectIDByIdent(c_Control_RainCheck, $this->instanceId)); + $this->windSensor = null; + $this->rainSensor = null; + + $activationByWeather = false; + if (IPSSHADOWING_WINDSENSOR <> '') { + $this->windSensor = GetValue(IPSUtil_ObjectIDByPath(IPSSHADOWING_WINDSENSOR)); + $activationByWeather = ($activationByWeather or ($this->windSensor >= $this->windLevel)); + } + + if (IPSSHADOWING_RAINSENSOR <> '') { + $this->rainSensor = GetValue(IPSUtil_ObjectIDByPath(IPSSHADOWING_RAINSENSOR)); + $activationByWeather = ($activationByWeather or ($this->rainSensor and $this->rainCheck)); + } + + $this->activationByWeather = $activationByWeather; + } + + public function UpdateProfileInfo() { + $info = ''.($this->activationByWeather?'Profil aktiv':'Profil inaktiv').' (WindSensor='.($this->windSensor==null?'"nicht vorhanden"':$this->windSensor.' kmh'); + if (IPSSHADOWING_RAINSENSOR <> '') { + $info .= ', RegenSensor='.($this->rainSensor?'Regen)':'kein Regen)'); + } else { + $info .= ', RegenSensor="nicht vorhanden")'; + } + if (GetValue(IPS_GetObjectIDByIdent(c_Control_ProfileInfo, $this->instanceId)) <> $info or true) { + SetValue(IPS_GetObjectIDByIdent(c_Control_ProfileInfo, $this->instanceId), $info); + IPS_SetVariableProfileAssociation('IPSShadowing_ProfileWeather', + $this->instanceId, + GetValue(IPS_GetObjectIDByIdent(c_Control_ProfileName, $this->instanceId)), + '', + ($this->activationByWeather?c_Color_ProfileActive:-1)); + } + } + + + public function GetProfileInfo() { + $info = ''; + if ($this->windSensor <> '') { + $activationByWeather = ($activationByWeather or ($this->windSensor >= $this->windLevel)); + $info .= 'Wind='.$this->windSensor.' kmh'; + } + if ($this->RainSensor <> '') { + if ($info<>'') { $info.=', ';} + ' Regen='.($this->RainSensor?'Ja':'Nein'); + } + return $info; + } + + public function ActivationByWeather() { + return $this->activationByWeather; + } + + /** + * @public + * + * Neues Profile generieren + * + * @param string $profileName Name des Profiles + * @param boolean $rainCheck Überprüfung Regensensor + * @param integer $windLevel Level für Wind Aktivierung + */ + public static function Create($profileName, $rainCheck=true, $windLevel=40) { + IPSUtils_Include ('IPSInstaller.inc.php', 'IPSLibrary::install::IPSInstaller'); + + $ScriptIdChangeSettings = IPSUtil_ObjectIDByPath('Program.IPSLibrary.app.modules.IPSShadowing.IPSShadowing_ChangeSettings'); + $categoryIdprofiles = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.modules.IPSShadowing.Profiles.Weather'); + $profileIdx = count(IPS_GetChildrenIds($categoryIdprofiles)) + 10; + $profileId = CreateCategory ($profileName, $categoryIdprofiles, $profileIdx); + IPS_SetIdent($profileId, (string)$profileId); + CreateVariable(c_Control_ProfileName, 3 /*String*/, $profileId, 0, '~String', $ScriptIdChangeSettings, $profileName, 'Title'); + CreateVariable(c_Control_RainCheck, 0 /*Boolean*/, $profileId, 10, '~Switch', $ScriptIdChangeSettings, $rainCheck, 'Drops'); + CreateVariable(c_Control_WindLevel, 1 /*Integer*/, $profileId, 20, 'IPSShadowing_Wind', $ScriptIdChangeSettings, $windLevel, 'WindSpeed'); + CreateVariable(c_Control_ProfileInfo, 3 /*String*/, $profileId, 30, '~String', null, '', 'Information'); + + IPS_SetVariableProfileAssociation('IPSShadowing_ProfileWeather', $profileId, $profileName, "", -1); + + return $profileId; + } + + /** + * @public + * + * Visualisierung des Profiles in einer übergebenen Kategorie + * + * @param integer $categoryId ID der Kategory in der die Visualisierungs Links abgelegt werden sollen + */ + public function Display($categoryId) { + IPSUtils_Include ('IPSInstaller.inc.php', 'IPSLibrary::install::IPSInstaller'); + CreateLink('Profil Name', IPS_GetObjectIDByIdent(c_Control_ProfileName, $this->instanceId), $categoryId, 10); + $instanceId = CreateDummyInstance("Regen", $categoryId, 20); + CreateLink('Aktivierung bei Regen', IPS_GetObjectIDByIdent(c_Control_RainCheck, $this->instanceId), $instanceId, 10); + $instanceId = CreateDummyInstance("Wind", $categoryId, 30); + CreateLink('Windgeschwindigkeits Grenze', IPS_GetObjectIDByIdent(c_Control_WindLevel, $this->instanceId), $instanceId, 10); + CreateLink('Profil Info', IPS_GetObjectIDByIdent(c_Control_ProfileInfo, $this->instanceId), $categoryId, 40); + + } + + /** + * @public + * + * Profile löschen + * + */ + public function Delete() { + IPSUtils_Include ('IPSInstaller.inc.php', 'IPSLibrary::install::IPSInstaller'); + IPS_SetVariableProfileAssociation('IPSShadowing_ProfileWeather', $this->instanceId, '', '', -1); + DeleteCategory($this->instanceId); + } + + /** + * @public + * + * Profile umbenennen + * + * @param string $newName Neuer Name des Profiles + */ + public function Rename($newName) { + IPSUtils_Include ('IPSInstaller.inc.php', 'IPSLibrary::install::IPSInstaller'); + IPS_SetVariableProfileAssociation('IPSShadowing_ProfileWeather', $this->instanceId, $newName, '', -1); + IPS_SetName($this->instanceId, $newName); + SetValue(IPS_GetObjectIDByIdent(c_Control_ProfileName, $this->instanceId), $newName); + } + + /** + * @public + * + * Profil verändern + * + * @param integer $controlId ID der Variable die verändert werden soll + * @param integer $value neuer Wert + */ + public function SetValue($controlId, $value) { + SetValue($controlId, $value); + IPSShadowing_LogChange($this->instanceId, $value, $controlId); + $this->Init(); + $this->UpdateProfileInfo(); + } + + } + + /** @}*/ + +?> \ No newline at end of file diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileWeatherCreate.ips.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileWeatherCreate.ips.php new file mode 100644 index 0000000..da9bbf9 --- /dev/null +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileWeatherCreate.ips.php @@ -0,0 +1,36 @@ + + * + * Erzeugen eines Wetter Profiles + */ + + include_once "IPSShadowing.inc.php"; + + $profileManager = new IPSShadowing_ProfileManager(); + $profileManager->CreateWeather('Neues Profil'); + + /** @}*/ +?> \ No newline at end of file diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileWeatherDelete.ips.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileWeatherDelete.ips.php new file mode 100644 index 0000000..ae68911 --- /dev/null +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileWeatherDelete.ips.php @@ -0,0 +1,37 @@ + + * + * Löschen eines "Wetter" Profiles + */ + + include_once "IPSShadowing.inc.php"; + + $profileManager = new IPSShadowing_ProfileManager(); + $profileManager->DeleteWeather(); + + + /** @}*/ +?> \ No newline at end of file diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProgramTimer.ips.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProgramTimer.ips.php new file mode 100644 index 0000000..b0a532e --- /dev/null +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProgramTimer.ips.php @@ -0,0 +1,47 @@ + + * + * Program Timer Script - Kontrolliert zyklisch, ob auf Grund der Programm Einstellung eine Änderung der + * Beschattung erforderlich ist + */ + + include_once "IPSShadowing.inc.php"; + + $_IPS['ABORT_ON_ERROR'] = true; + + $profileManager = new IPSShadowing_ProfileManager(); + $profileManager->UpdateProfileInfos(); + + $categoryIdDevices = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.modules.IPSShadowing.Devices'); + $deviceIds = IPS_GetChildrenIds($categoryIdDevices); + + foreach($deviceIds as $deviceId) { + $device = new IPSShadowing_Device($deviceId); + $device->CheckPrograms($profileManager); + } + + /** @}*/ +?> \ No newline at end of file diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_RefreshTimer.ips.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_RefreshTimer.ips.php new file mode 100644 index 0000000..ae3f487 --- /dev/null +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_RefreshTimer.ips.php @@ -0,0 +1,48 @@ + + * + * Refresh Timer Script - Update der ausstehenden Fahrzeiten + */ + + include_once "IPSShadowing.inc.php"; + + $categoryIdDevices = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.modules.IPSShadowing.Devices'); + $deviceIds = IPS_GetChildrenIds($categoryIdDevices); + $oneOrMoreDevicesActive = false; + + foreach($deviceIds as $deviceId) { + $device = new IPSShadowing_Device($deviceId); + $deviceActive = $device->Refresh(); + $oneOrMoreDevicesActive = ($oneOrMoreDevicesActive or $deviceActive); + } + + if (!$oneOrMoreDevicesActive) { + $refreshTimerId = IPSUtil_ObjectIDByPath('Program.IPSLibrary.app.modules.IPSShadowing.IPSShadowing_RefreshTimer.Refresh'); + IPS_SetEventActive($refreshTimerId, false); + } + + /** @}*/ +?> \ No newline at end of file diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ResetTimer.ips.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ResetTimer.ips.php new file mode 100644 index 0000000..7cc210f --- /dev/null +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ResetTimer.ips.php @@ -0,0 +1,45 @@ + + * + * Reset von "ManualChange" und "TempChange" Flag und Berechung der neuen Tages und End Zeiten + */ + + include_once "IPSShadowing.inc.php"; + + // Reset Manual Change Flags + $categoryIdDevices = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.modules.IPSShadowing.Devices'); + $DeviceIds = IPS_GetChildrenIds($categoryIdDevices); + foreach($DeviceIds as $DeviceId) { + if (GetValue(IPS_GetObjectIDByIdent(c_Control_ManualChange, $DeviceId))) { + SetValue(IPS_GetObjectIDByIdent(c_Control_ManualChange, $DeviceId), false); + } + if (GetValue(IPS_GetObjectIDByIdent(c_Control_TempChange, $DeviceId))) { + SetValue(IPS_GetObjectIDByIdent(c_Control_TempChange, $DeviceId), false); + } + } + + /** @}*/ +?> \ No newline at end of file diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Scenario.class.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Scenario.class.php new file mode 100644 index 0000000..f182018 --- /dev/null +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Scenario.class.php @@ -0,0 +1,236 @@ + + */ + class IPSShadowing_Scenario { + + /** + * @private + * ID des Zeit Profiles + */ + private $instanceId; + + /** + * @public + * + * Initialisierung des IPSShadowing_Scenario Objektes + * + * @param integer $instanceId InstanceId des Scenarios + */ + public function __construct($instanceId) { + $this->instanceId = $instanceId; + } + + /** + * @public + * + * Scenario aktivieren + * + */ + public function Activate() { + IPSShadowing_LogActivateScenario($this->instanceId); + $categoryIdDevices = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.modules.IPSShadowing.Devices'); + $devices = get_ShadowingConfiguration(); + foreach ($devices as $deviceIdent=>$device) { + $controlId = @IPS_GetObjectIDByIdent($deviceIdent, $this->instanceId); + if ($controlId!==false) { + $movementValue = GetValue($controlId); + if ($movementValue<>c_MovementId_NoAction) { + $deviceId = IPS_GetObjectIDByIdent($deviceIdent, $categoryIdDevices); + $device = new IPSShadowing_Device($deviceId); + $device->MoveByControl($movementValue); + } + } + } + } + + /** + * @public + * + * Umbenennen eines Scenarios + * + * @param string $newName Neuer Name des Scenarios + */ + public function Rename($newName) { + IPSUtils_Include ('IPSInstaller.inc.php', 'IPSLibrary::install::IPSInstaller'); + IPS_SetVariableProfileAssociation('IPSShadowing_ScenarioSelect', $this->instanceId, $newName, '', -1); + IPS_SetVariableProfileAssociation('IPSShadowing_ScenarioActivate', $this->instanceId, $newName, '', -1); + IPS_SetName($this->instanceId, $newName); + SetValue(IPS_GetObjectIDByIdent(c_Control_ScenarioName, $this->instanceId), $newName); + } + + /** + * @public + * + * Szenario verändern verändern + * + * @param integer $controlId ID der Variable die verändert werden soll + * @param integer $value neuer Wert + */ + public function SetValue($controlId, $value) { + if (GetValue($controlId)<>$value) { + SetValue($controlId, $value); + IPSShadowing_LogChange($this->instanceId, $value, $controlId); + } + } + + /** + * @public + * + * Scenario löschen + * + */ + public function Delete() { + IPSUtils_Include ('IPSInstaller.inc.php', 'IPSLibrary::install::IPSInstaller'); + IPS_SetVariableProfileAssociation('IPSShadowing_ScenarioSelect', $this->instanceId, '', '', -1); + IPS_SetVariableProfileAssociation('IPSShadowing_ScenarioActivate', $this->instanceId, '', '', -1); + DeleteCategory($this->instanceId); + } + + /** + * @public + * + * Scenario in den EDIT Mode setzen + * + * @param integer $defaultValue default Wert für alle Beschattungs Elemente + */ + public function SetEditMode($defaultValue=c_MovementId_NoAction) { + $ScriptIdChangeSettings = IPSUtil_ObjectIDByPath('Program.IPSLibrary.app.modules.IPSShadowing.IPSShadowing_ChangeSettings'); + IPS_SetVariableCustomAction(IPS_GetObjectIDByIdent(c_Control_ScenarioName, $this->instanceId), $ScriptIdChangeSettings); + //IPS_SetVariableCustomAction(IPS_GetObjectIDByIdent(c_Control_ScenarioEdit, $this->instanceId), $ScriptIdChangeSettings); + SetValue(IPS_GetObjectIDByIdent(c_Control_ScenarioEdit, $this->instanceId), true); + + $devices = get_ShadowingConfiguration(); + $position = 100; + foreach ($devices as $deviceIdent=>$device) { + $position = $position + 10; + $controlId = @IPS_GetObjectIDByIdent($deviceIdent, $this>instanceId); + if ($controlId===false) { + if ($device[c_Property_ShadowingType]==c_ShadowingType_Shutter) { + if ($defaultValue==c_MovementId_Closed) $defaultValue=c_MovementId_Dimout; + $controlId = CreateVariable ($deviceIdent, 1 /*Boolean*/, $this->instanceId, $position, 'IPSShadowing_ScenarioShutter', null, $defaultValue, 'Shutter'); + } elseif ($device[c_Property_ShadowingType]==c_ShadowingType_Jalousie) { + if ($defaultValue==c_MovementId_Dimout) $defaultValue=c_MovementId_Close; + $controlId = CreateVariable ($deviceIdent, 1 /*Boolean*/, $this->instanceId, $position, 'IPSShadowing_ScenarioJalousie', null, $defaultValue, 'Shutter'); + } elseif ($device[c_Property_ShadowingType]==c_ShadowingType_Marquees) { + $controlId = CreateVariable ($deviceIdent, 1 /*Boolean*/, $this->instanceId, $position, 'IPSShadowing_ScenarioMarquees', null, c_MovementId_NoAction, 'Shutter'); + } else { + throw new Exception ('Unknown ShadowingType='.$device[c_Property_ShadowingType]); + } + IPS_SetName($controlId, $device[c_Property_Name]); + } + IPS_SetVariableCustomAction($controlId, $ScriptIdChangeSettings); + } + + } + + /** + * @public + * + * Reset des EDIT Modes + * + */ + public function ReSetEditMode() { + IPS_SetVariableCustomAction(IPS_GetObjectIDByIdent(c_Control_ScenarioName, $this->instanceId), null); + SetValue(IPS_GetObjectIDByIdent(c_Control_ScenarioEdit, $this->instanceId), false); + + $devices = get_ShadowingConfiguration(); + foreach ($devices as $deviceIdent=>$device) { + $controlId = @IPS_GetObjectIDByIdent($deviceIdent, $this->instanceId); + if ($controlId===false) { + } elseif (GetValue($controlId)==c_MovementId_NoAction) { + IPS_DeleteVariable($controlId); + } else { + IPS_SetVariableCustomAction($controlId, null); + } + } + } + + /** + * @public + * + * Visualisierung des Szenarios in einer übergebenen Kategorie + * + * @param integer $categoryId ID der Kategory in der die Visualisierungs Links abgelegt werden sollen + */ + public function Display($categoryId) { + IPSUtils_Include ('IPSInstaller.inc.php', 'IPSLibrary::install::IPSInstaller'); + CreateLink('Szenario Name', IPS_GetObjectIDByIdent(c_Control_ScenarioName, $this->instanceId), $categoryId, 10); + CreateLink('Editier Modus', IPS_GetObjectIDByIdent(c_Control_ScenarioEdit, $this->instanceId), $categoryId, 20); + $instanceIdDevices = CreateDummyInstance("Beschattungs Elemente", $categoryId, 30); + + $devices = get_ShadowingConfiguration(); + $position = 100; + foreach ($devices as $deviceIdent=>$device) { + $position = $position+10; + $controlId = @IPS_GetObjectIDByIdent($deviceIdent, $this->instanceId); + if ($controlId!==false) { + CreateLink($device[c_Property_Name], $controlId, $instanceIdDevices, $position); + } else { + $linkId = @IPS_GetObjectIDByName($device[c_Property_Name], $instanceIdDevices); + if ($linkId!==false) { + IPS_DeleteLink($linkId); + } + } + } + } + + /** + * @public + * + * Neues Scenario erzeugen + * + * @param string $name Name des Scenarios + * @param integer $defaultValue default Wert für alle Beschattungs Elemente + * @return IPSShadowing_Scenario das erzeugte IPSShadowing_Scenario Object + */ + public static function Create($name='Neues Szenario', $defaultValue=c_MovementId_NoAction) { + IPSUtils_Include ('IPSInstaller.inc.php', 'IPSLibrary::install::IPSInstaller'); + $ScriptIdChangeSettings = IPSUtil_ObjectIDByPath('Program.IPSLibrary.app.modules.IPSShadowing.IPSShadowing_ChangeSettings'); + $instanceId = CreateCategoryPath('Program.IPSLibrary.data.modules.IPSShadowing.Scenarios.'.$name); + IPS_SetIdent($instanceId, $instanceId); + $controlId = CreateVariable (c_Control_ScenarioName, 3 /*String*/, $instanceId, 10, '~String', $ScriptIdChangeSettings, $name, 'Title'); + $controlId = CreateVariable (c_Control_ScenarioEdit, 0 /*Boolean*/, $instanceId, 20, '~Switch', $ScriptIdChangeSettings, false, 'Gear'); + $scenario = new IPSShadowing_Scenario($instanceId); + $scenario->SetEditMode($defaultValue); + IPS_SetVariableProfileAssociation('IPSShadowing_ScenarioSelect', $instanceId, $name, '', -1); + IPS_SetVariableProfileAssociation('IPSShadowing_ScenarioActivate', $instanceId, $name, '', -1); + return $instanceId; + } + + } + + /** @}*/ + +?> \ No newline at end of file diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ScenarioCreate.ips.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ScenarioCreate.ips.php new file mode 100644 index 0000000..bae55c4 --- /dev/null +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ScenarioCreate.ips.php @@ -0,0 +1,36 @@ + + * + * Erzeugen eines neues Szenarios + */ + + include_once "IPSShadowing.inc.php"; + + $scenarioManager = new IPSShadowing_ScenarioManager(); + $scenarioManager->Create(); + + /** @}*/ +?> \ No newline at end of file diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ScenarioDelete.ips.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ScenarioDelete.ips.php new file mode 100644 index 0000000..22afc2c --- /dev/null +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ScenarioDelete.ips.php @@ -0,0 +1,36 @@ + + * + * Löschen eines Szenario + */ + + include_once "IPSShadowing.inc.php"; + + $scenarioManager = new IPSShadowing_ScenarioManager(); + $scenarioManager->Delete(); + + /** @}*/ +?> \ No newline at end of file diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ScenarioManager.class.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ScenarioManager.class.php new file mode 100644 index 0000000..504629f --- /dev/null +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ScenarioManager.class.php @@ -0,0 +1,187 @@ + + */ + class IPSShadowing_ScenarioManager { + + /** + * @private + * ID des Scenarios + */ + private $instanceId; + + /** + * @private + * ID der Scenario Visualisierung + */ + private $displayId; + + /** + * @public + * + * Initialisierung des IPSShadowing_ScenarioManager Objektes + * + */ + public function __construct() { + $this->instanceId = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.modules.IPSShadowing.ScenarioManager'); + $this->displayId = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.modules.IPSShadowing.ScenarioManager.Display'); + } + + /** + * @public + * + * Initialisierung aller Assoziationen der Variablen Profile + * + */ + public function AssignAllScenarioAssociations() { + $categoryId = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.modules.IPSShadowing.Scenarios'); + $childIds = IPS_GetChildrenIDs($categoryId); + foreach ($childIds as $scenarioId) { + IPS_SetVariableProfileAssociation('IPSShadowing_ScenarioActivate', $scenarioId, IPS_GetName($scenarioId), '', -1); + IPS_SetVariableProfileAssociation('IPSShadowing_ScenarioSelect', $scenarioId, IPS_GetName($scenarioId), '', -1); + } + } + + /** + * @public + * + * Neues Scenario erzeugen + * + * @param string $name Name des Scenarios + * @return IPSShadowing_Scenario das erzeugte IPSShadowing_Scenario Object + */ + public function Create($name='Neues Szenario') { + $scenarioId = IPSShadowing_Scenario::Create($name); + $this->Select($scenarioId); + return $scenarioId; + } + + /** + * @public + * + * Umbenennen eines Scenarios + * + * @param integer $scenarioId InstanceId des Scenarios + * @param string $newName Neuer Name des Scenarios + */ + public function Rename($scenarioId, $newName) { + $scenario = new IPSShadowing_Scenario($scenarioId); + $scenario->Rename($newName); + } + + /** + * @public + * + * Scenario löschen + */ + public function Delete() { + $categoryId = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.modules.IPSShadowing.Scenarios'); + $childIds = IPS_GetChildrenIDs($categoryId); + if (count($childIds)==1) { + return; + } + $scenarioId = GetValue(IPS_GetObjectIDByIdent(c_Control_ScenarioSelect, $this->instanceId)); + $scenario = new IPSShadowing_Scenario($scenarioId); + $scenario->Delete(); + $childIds = IPS_GetChildrenIDs($categoryId); + $this->Select($childIds[0]); + + } + + /** + * @public + * + * Scenario in den EDIT Mode setzen + * + * @param integer $scenarioId InstanceId des Scenarios + * @param boolean $mode Set/Reset des Edit Modus + */ + public function SetEditMode($scenarioId, $mode) { + $scenario = new IPSShadowing_Scenario($scenarioId); + if ($mode) { + $scenario->SetEditMode(); + } else { + $scenario->ReSetEditMode(); + } + $scenario->Display($this->displayId); + } + + /** + * @public + * + * Scenario auswählen + * + * @param integer $scenarioId InstanceId des Scenarios + */ + public function Select($scenarioId) { + $dipslayId = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.modules.IPSShadowing.ScenarioManager.Display'); + SetValue(IPS_GetObjectIDByIdent(c_Control_ScenarioSelect, $this->instanceId), $scenarioId); + $scenario = new IPSShadowing_Scenario($scenarioId); + $scenario->Display($dipslayId); + } + + /** + * @public + * + * Scenario aktivieren + * + * @param integer $scenarioId InstanceId des Scenarios + */ + public function Activate($scenarioId) { + SetValue(IPS_GetObjectIDByIdent(c_Control_ScenarioActivate, $this->instanceId), $scenarioId); + $scenario = new IPSShadowing_Scenario($scenarioId); + $scenario->Activate(); + usleep(500000); + SetValue(IPS_GetObjectIDByIdent(c_Control_ScenarioActivate, $this->instanceId), 0); + } + + /** + * @public + * + * Scenario aktivieren + * + * @param integer $controlId ID der Variable die verändert werden soll + * @param string $value Wert der gesetzt werden soll + */ + public function SetValue($controlId, $value) { + $scenarioId = IPS_GetParent($controlId); + $scenario = new IPSShadowing_Scenario($scenarioId); + $scenario->SetValue($controlId, $value); + } + + } + + /** @}*/ + +?> \ No newline at end of file diff --git a/IPSLibrary/config/modules/IPSShadowing/Default/IPSShadowing_Configuration.inc.php b/IPSLibrary/config/modules/IPSShadowing/Default/IPSShadowing_Configuration.inc.php new file mode 100644 index 0000000..b72056e --- /dev/null +++ b/IPSLibrary/config/modules/IPSShadowing/Default/IPSShadowing_Configuration.inc.php @@ -0,0 +1,266 @@ + + * + * Konfigurations File für IPSShadowing + * + */ + + IPSUtils_Include ("IPSShadowing_Constants.inc.php", "IPSLibrary::app::modules::IPSShadowing"); + IPSUtils_Include ("IPSTwilight_Configuration.inc.php", "IPSLibrary::config::modules::Weather::IPSTwilight"); + + /** Temperatursensor Innen + * + * Definition des Innentemperatur Sensors, die Konstante muß auf eine Variable verweisen, die die aktuelle Innentemperatur + * als Float Value enthält. + * Die Verlinkung der Variable erfolgt entweder direkt durch Angabe der ID oder durch Angabe des Pfades. + * + * Dieser Parameter kann jederzeit geändert werden, keine Installation erforderlich. + */ + define ("IPSSHADOWING_TEMPSENSORINDOOR", ""); + + /** Temperatursensor Aussen + * + * Definition des Aussentemperatur Sensors, die Konstante muß auf eine Variable verweisen, die die aktuelle Aussentemperatur + * als Float Value enthält. + * Die Verlinkung der Variable erfolgt entweder direkt durch Angabe der ID oder durch Angabe des Pfades. + * + * Dieser Parameter kann jederzeit geändert werden, keine Installation erforderlich. + */ + define ("IPSSHADOWING_TEMPSENSOROUTDOOR", ""); + + /** Helligkeitssensor + * + * Definition des Helligkeits Sensors, die Konstante muß auf eine Variable verweisen, die die aktuelle Helligkeit + * als Integer oder Float Value enthält. + * Die Verlinkung der Variable erfolgt entweder direkt durch Angabe der ID oder durch Angabe des Pfades. + * + * Dieser Parameter kann jederzeit geändert werden, keine Installation erforderlich. + */ + define ("IPSSHADOWING_BRIGHTNESSSENSOR", ''); + + /** Regensensor + * + * Definition des Regen Sensors, die Konstante muß auf eine Variable verweisen, die den Wert des Sensors als + * boolschen Wert enthält. + * Die Verlinkung der Variable erfolgt entweder direkt durch Angabe der ID oder durch Angabe des Pfades. + * + * Dieser Parameter kann jederzeit geändert werden, keine Installation erforderlich. + */ + define ("IPSSHADOWING_RAINSENSOR", ""); + + /** Windsensor + * + * Definition des Wind Sensors, die Konstante muß auf eine Variable verweisen, die den Wert des Sensors als + * Float Wert mit Angabe in "kmh" enthält, + * Die Verlinkung der Variable erfolgt entweder direkt durch Angabe der ID oder durch Angabe des Pfades. + * + * Dieser Parameter kann jederzeit geändert werden, keine Installation erforderlich. + */ + define ("IPSSHADOWING_WINDSENSOR", ""); + + /** Anwesenheits Flag + * + * Definition des Anwesenheits Flags, die Konstante muß auf eine Variable verweisen, die den aktuellen Anwesenheits Status als + * boolean Wert enthält (true bedeutet Anwesend). + * Die Verlinkung der Variable erfolgt entweder direkt durch Angabe der ID oder durch Angabe des Pfades. + * + * Dieser Parameter kann jederzeit geändert werden, keine Installation erforderlich. + */ + define ("IPSSHADOWING_PRESENT", ''); + + /** Abwesenheits Flag + * + * Definition des Abwesenheits Flags, die Konstante muß auf eine Variable verweisen, die den aktuellen Abwesenheits Status als + * boolean Wert enthält (true bedeutet Abwesend). + * Diese Variable kann alternativ zu dem Anwesenheits Flag gesetzt werden. + * Die Verlinkung der Variable erfolgt entweder direkt durch Angabe der ID oder durch Angabe des Pfades. + * + * Dieser Parameter kann jederzeit geändert werden, keine Installation erforderlich. + */ + define ("IPSSHADOWING_ABSENCE", ""); + + /** Zeitpunkt Sonnenaufgang + * + * Definition des Tagesbeginn Zeitpunktes, die Konstante muß auf eine Variable verweisen, die die Zeit in der Form + * hh:mm enthält. + * Verlinkung erfolgt direkt durch Angabe der ID oder durch Angabe des Pfades. + * + * Dieser Parameter kann jederzeit geändert werden, keine Installation erforderlich. + */ + define ("IPSSHADOWING_TWILIGHTSUNRISE", "Program.IPSLibrary.data.modules.Weather.IPSTwilight.Values.SunriseBegin"); + + /** Zeitpunkt Sonnenuntergang + * + * Definition des Tagesend Zeitpunktes, die Konstante muß auf eine Variable verweisen, die die Zeit in der Form + * hh:mm enthält. + * Verlinkung erfolgt direkt durch Angabe der ID oder durch Angabe des Pfades. + * + * Dieser Parameter kann jederzeit geändert werden, keine Installation erforderlich. + */ + define ("IPSSHADOWING_TWILIGHTSUNSET", "Program.IPSLibrary.data.modules.Weather.IPSTwilight.Values.SunriseEnd"); + + /** Zeitpunkt limited Sonnenaufgang + * + * Definition des "limited" Tagesbeginn Zeitpunktes, die Konstante muß auf eine Variable verweisen, die die Zeit in der Form + * hh:mm enthält. Durch diese Variable ist es möglich, dass der Tagesbeginn in bestimmten Grenzen liegen muß. + * Verlinkung erfolgt direkt durch Angabe der ID oder durch Angabe des Pfades. + * + * Dieser Parameter kann jederzeit geändert werden, keine Installation erforderlich. + */ + define ("IPSSHADOWING_TWILIGHTSUNRISELIMITED", "Program.IPSLibrary.data.modules.Weather.IPSTwilight.Values.SunriseBeginLimited"); + + /** Zeitpunkt limited Sonnenuntergang + * + * Definition des "limited" Tagesend Zeitpunktes, die Konstante muß auf eine Variable verweisen, die die Zeit in der Form + * hh:mm enthält. Durch diese Variable ist es möglich, dass der Tagesbeginn in bestimmten Grenzen liegen muß. + * Verlinkung erfolgt direkt durch Angabe der ID oder durch Angabe des Pfades. + * + * Dieser Parameter kann jederzeit geändert werden, keine Installation erforderlich. + */ + define ("IPSSHADOWING_TWILIGHTSUNSETLIMITED", "Program.IPSLibrary.data.modules.Weather.IPSTwilight.Values.SunriseEndLimited"); + + /** + * Angabe des Breitengrades zur Berechnung des Sonnenstandes + * + * Dieser Parameter kann jederzeit geändert werden, keine Installation erforderlich. + */ + define ('IPSSHADOWING_LATITUDE', IPSTWILIGHT_LATITUDE); + + /** + * Angabe des Längengrades zur Berechnung des Sonnenstandes + * + * Dieser Parameter kann jederzeit geändert werden, keine Installation erforderlich. + */ + define ('IPSSHADOWING_LONGITUDE', IPSTWILIGHT_LONGITUDE); + + /** + * Ausrichtung des Gebäudes + * + * Dieser Wert spezifiziert die Abweichung von der Ausrichtung des Gebäudes Richtung Süden in Grad. + * + * Dieser Parameter kann jederzeit geändert werden, keine Installation erforderlich. + */ + define ('IPSSHADOWING_BUILDINGORIENTATION', -15); + + /** + * Verhältnis der Gebäudewände + * + * Mit diesem Parameter kann das Verhältnis der Länge der Gebäudewände in der Grafik verändert werden. + * + * 0 bedeutet dass alle Gebäudewände gleich lang sind, bei positiven Werten wird die südliche Seite des Gebäudes + * breiter und umgekehrt. + * + * Dieser Parameter kann jederzeit geändert werden, keine Installation erforderlich. + */ + define ('IPSSHADOWING_BUILDINGRELATION', 10); + + + /** + * Definiert die Anzahl der Meldungen, die im Applikation Logging Window angezeigt werden. + * + * Dieser Parameter kann jederzeit geändert werden, keine Installation erforderlich. + */ + define ("IPSSHADOWING_LOGMESSAGECOUNT", 30); + + /** + * + * Definition der Beschattungs Elemente + * Die Konfiguration erfolgt in Form eines Arrays, für jedes Beschattungs Device wird ein Eintrag im Array erzeugt. + * + * Die Eigenschaft c_Property_ShadowingType spezifiziert den Type der Beschattung, folgende Typen stehen zur Auswahl: + * - c_ShadowingType_Jalousie, Ansteuerung einer Jalousie, es werden noch zusätzliche Properties ausgewertet, um die Lamellen in eine bestimmte Position zu bringen + * - c_ShadowingType_Shutter, Ansteuerung eines normalen Rollos + * - c_ShadowingType_Marquees, Ansteuerung einer Markise + * + * Der Eintrag "c_Property_Name" spezifiziert den Namen des Beschattungs Elements, der im WebFront und in den Log's angezeigt + * wird. + * + * Der Eintrag "c_Property_Component" spezifiziert die Hardware, es kann jeder "Shutter" Component String Konstruktor + * angegeben werden. Detailiertere Informationen kann man auch im core Modul IPSComponent finden. + * + * Mit den Properties c_Property_TimeOpening, c_Property_TimeClosing, c_Property_TimeDimoutUp, c_Property_TimeDimoutDown, c_Property_TimePause + * werden die Fahrzeiten spezifiziert. c_Property_TimeDimoutUp und c_Property_TimeDimoutDown werden nur bei Jalousien ausgewertet, um die Lamellen + * in die Verdunkelungs- bzw. Beschatttungsposition zu bringen. + * + * Mit c_Property_TempSensorIndoor ist die Einbindung eines Innentemperatursensors für das Beschattungselement möglich. Verlinkung erfolgt durch + * Angabe des Pfades oder direkt durch die ID der Temperatur Variable. + * + * Beispiel: + * @code + function get_ShadowingConfiguration() { + return array( + c_ShadowingDevice_1 => array( + c_Property_ShadowingType => c_ShadowingType_Jalousie, + c_Property_Name => 'Küche', + c_Property_Component => 'IPSComponentShutter_Dummy,12345', + c_Property_TimeOpening => 35, + c_Property_TimeClosing => 35, + c_Property_TimeDimoutUp => 2, + c_Property_TimeDimoutDown => 3, + c_Property_TimePause => 1, + c_Property_TempSensorIndoor => '', + )); + } + * @endcocde + * + * @return string Liefert Array mit Beschattungs Elementen + */ + function get_ShadowingConfiguration() { + return array( + c_ShadowingDevice_1 => array( + c_Property_ShadowingType => c_ShadowingType_Jalousie, + c_Property_Name => 'Zimmer 1', + c_Property_Component => 'IPSComponentShutter_Dummy,12345', + c_Property_TimeOpening => 35, + c_Property_TimeClosing => 35, + c_Property_TimeDimoutUp => 2, + c_Property_TimeDimoutDown => 3, + c_Property_TimePause => 1, + c_Property_TempSensorIndoor => '', + ), + c_ShadowingDevice_2 => array( + c_Property_ShadowingType => c_ShadowingType_Shutter, + c_Property_Name => 'Zimmer 2', + c_Property_Component => 'IPSComponentShutter_Dummy,12345', + c_Property_TimeOpening => 60, + c_Property_TimeClosing => 60, + c_Property_TimePause => 1, + c_Property_TempSensorIndoor => '', + ), + c_ShadowingDevice_3 => array( + c_Property_ShadowingType => c_ShadowingType_Marquees, + c_Property_Name => 'Markise', + c_Property_Component => 'IPSComponentShutter_Dummy,12345', + c_Property_TimeOpening => 70, + c_Property_TimeClosing => 70, + c_Property_TimePause => 1, + c_Property_TempSensorIndoor => '', + ), + ); + } + /** @}*/ +?> \ No newline at end of file diff --git a/IPSLibrary/config/modules/IPSShadowing/Default/IPSShadowing_Custom.inc.php b/IPSLibrary/config/modules/IPSShadowing/Default/IPSShadowing_Custom.inc.php new file mode 100644 index 0000000..fe372b7 --- /dev/null +++ b/IPSLibrary/config/modules/IPSShadowing/Default/IPSShadowing_Custom.inc.php @@ -0,0 +1,106 @@ + + * + * Callback Methoden für IPSShadowing + * + */ + + /** + * Diese Funktion wird von der Beschattungs Steuerung aufgerufen um zu ermitteln ob der aktuelle Tag ein Werktag ist + * + * @return boolean TRUE für Werktag, FALSE für Wochenende oder Feiertag. Bei NULL erfolgt die Ermittlung durch die Steuerung (Feiertage werden dabei NICHT berücksichtigt) + * + */ + function IPSShadowing_IsWorkingDay() { + return null; + } + + /** + * Diese Funktion wird vor dem aktivieren eines Beschattungs Devices ausgeführt. + * + * Parameters: + * @param integer $deviceId ID of current Shadowing Device (means Program.IPSLibrary.data.modules.IPSShadowing.Devices.MyCurrentDevice) + * @param boolean $command Beschattungs Befehl, der gerade ausgeführt wird (mögliche Werte: define ("c_Movement_Down","c_Movement_Stop" und "c_Movement_Up") + * @result boolean TRUE für OK, bei FALSE wurde die Ansteuerung der Beschattung bereits in der Callback Funktion erledigt + * + */ + + function IPSShadowing_BeforeActivateShutter($deviceId, $command) { + + return true; + } + + + /** + * Diese Funktion wird nach dem aktivieren eines Beschattungs Devices ausgeführt. + * + * Parameters: + * @param integer $deviceId ID of current Shadowing Device (means Program.IPSLibrary.data.modules.IPSShadowing.Devices.MyCurrentDevice) + * @param boolean $command Beschattungs Befehl, der gerade ausgeführt wird (mögliche Werte: define ("c_Movement_Down","c_Movement_Stop" und "c_Movement_Up") + * + */ + + function IPSShadowing_AfterActivateShutter($deviceId, $command) { + + } + + /** + * + * Function will be called by the Program Timer when no manual Invervention has occured, present + * is not activated and Automatic is enabled. + * Shadowing can be activated as described below, to prevent other Programs from being executed, + * the function has to return true; + * + * Executing a Program: + * $device = new IPSShadowing_Device($DeviceId); + * $device->MoveByProgram(c_ProgramId_Opened); // Open + * $device->MoveByProgram(c_ProgramId_Closed); // Close a Shutter + * $device->MoveByProgram(c_ProgramId_Dimout); // Close a Jalousie + * $device->MoveByProgram(c_ProgramId_Shadowing); // Shadowing a Jalousie + * + * Parameters: + * @param integer $DeviceId ID of current Shadowing Device (means Program.IPSLibrary.data.modules.IPSShadowing.Devices.MyCurrentDevice) + * @param boolean $isDay Value, indicating Day or Night + * + */ + + function IPSShadowing_ProgramCustom($DeviceId, $isDay) { + + return false; + } + + /** @}*/ + +?> \ No newline at end of file diff --git a/IPSLibrary/config/modules/IPSShadowing/Examples/IPSShadowing_DemoConfiguration.inc.php b/IPSLibrary/config/modules/IPSShadowing/Examples/IPSShadowing_DemoConfiguration.inc.php new file mode 100644 index 0000000..6572395 --- /dev/null +++ b/IPSLibrary/config/modules/IPSShadowing/Examples/IPSShadowing_DemoConfiguration.inc.php @@ -0,0 +1,229 @@ + + * + * Konfigurations File für IPSShadowing + * + */ + + IPSUtils_Include ("IPSShadowing_Constants.inc.php", "IPSLibrary::app::modules::IPSShadowing"); + IPSUtils_Include ("IPSTwilight_Configuration.inc.php", "IPSLibrary::config::modules::Weather::IPSTwilight"); + + /** + * Definition des Innenemperatur Sensors, die Konstante muß auf eine Variable verweisen, die die aktuelle Innentemperatur + * als Float Value enthält. + * Die Verlinkung der Variable erfolgt entweder direkt durch Angabe der ID oder durch Angabe des Pfades. + */ + define ("c_Setting_TempSensorIndoor", "Program.WeatherStation.IndoorTemperature"); + + /** + * Definition des Aussentemperatur Sensors, die Konstante muß auf eine Variable verweisen, die die aktuelle Aussentemperatur + * als Float Value enthält. + * Die Verlinkung der Variable erfolgt entweder direkt durch Angabe der ID oder durch Angabe des Pfades. + */ + define ("c_Setting_TempSensorOutdoor", "Program.WeatherStation.OutdoorTemperature"); + + /** + * Definition des Helligkeits Sensors, die Konstante muß auf eine Variable verweisen, die die aktuelle Helligkeit + * als Integer oder Float Value enthält. + * Die Verlinkung der Variable erfolgt entweder direkt durch Angabe der ID oder durch Angabe des Pfades. + */ + define ("c_Setting_BrightnessSensor", ''); + + /** + * Definition des Anwesenheits Flags, die Konstante muß auf eine Variable verweisen, die den aktuellen Anwesenheits Status als + * boolean Wert enthält (true bedeutet Anwesend). + * Die Verlinkung der Variable erfolgt entweder direkt durch Angabe der ID oder durch Angabe des Pfades. + */ + define ("c_Setting_PresentPath", ''); + + /** + * Definition des Abwesenheits Flags, die Konstante muß auf eine Variable verweisen, die den aktuellen Abwesenheits Status als + * boolean Wert enthält (true bedeutet Abwesend). + * Diese Variable kann alternativ zu dem Anwesenheits Flag gesetzt werden. + * Die Verlinkung der Variable erfolgt entweder direkt durch Angabe der ID oder durch Angabe des Pfades. + */ + define ("c_Setting_AbsencePath", "Program.Presence.OutOfHome"); + + /** + * Definition des Tagesbeginn Zeitpunktes, die Konstante muß auf eine Variable verweisen, die die Zeit in der Form + * hh:mm enthält. + * Verlinkung erfolgt direkt durch Angabe der ID oder durch Angabe des Pfades. + */ + define ("c_Setting_TwilightBgnOfDayPath", "Program.IPSLibrary.data.modules.Weather.IPSTwilight.Values.SunriseBegin"); + + /** + * Definition des Tagesend Zeitpunktes, die Konstante muß auf eine Variable verweisen, die die Zeit in der Form + * hh:mm enthält. + * Verlinkung erfolgt direkt durch Angabe der ID oder durch Angabe des Pfades. + */ + define ("c_Setting_TwilightEndOfDayPath", "Program.IPSLibrary.data.modules.Weather.IPSTwilight.Values.SunriseEnd"); + + /** + * Definition des "limited" Tagesbeginn Zeitpunktes, die Konstante muß auf eine Variable verweisen, die die Zeit in der Form + * hh:mm enthält. Durch diese Variable ist es möglich, dass der Tagesbeginn in bestimmten Grenzen liegen muß. + * Verlinkung erfolgt direkt durch Angabe der ID oder durch Angabe des Pfades. + */ + define ("c_Setting_TwilightLimitedBgnOfDayPath", "Program.IPSLibrary.data.modules.Weather.IPSTwilight.Values.SunriseBeginLimited"); + + /** + * Definition des "limited" Tagesend Zeitpunktes, die Konstante muß auf eine Variable verweisen, die die Zeit in der Form + * hh:mm enthält. Durch diese Variable ist es möglich, dass der Tagesbeginn in bestimmten Grenzen liegen muß. + * Verlinkung erfolgt direkt durch Angabe der ID oder durch Angabe des Pfades. + */ + define ("c_Setting_TwilightLimitedEndOfDayPath", "Program.IPSLibrary.data.modules.Weather.IPSTwilight.Values.SunriseEndLimited"); + + /** + * Angabe des Breitengrades zur Berechnung des Sonnenstandes + */ + define ('IPSSHADOWING_LATITUDE', IPSTWILIGHT_LATITUDE); + + /** + * Angabe des Längengrades zur Berechnung des Sonnenstandes + */ + define ('IPSSHADOWING_LONGITUDE', IPSTWILIGHT_LONGITUDE); + + + /** + * Definiert die Anzahl der Meldungen, die im Applikation Logging Window angezeigt werden. + */ + define ("c_LogMessage_Count", 30); + + + /** + * + * Definition der Beschattungs Elemente + * Die Konfiguration erfolgt in Form eines Arrays, für jedes Beschattungs Device wird ein Eintrag im Array erzeugt. + * + * Der Eintrag "c_Property_Name" spezifiziert den Namen des Beschattungs Elements, der im WebFront und in den Log's angezeigt + * wird. + * + * Der Eintrag "c_Property_Component" spezifiziert die Hardware, es kann jeder "Shutter" Component String Konstruktor + * angegeben werden. Detailiertere Informationen kann man auch im core Modul IPSComponent finden. + * + * + * Beispiel: + * @code + function get_ShadowingConfiguration() { + return array( + c_ShadowingDevice_1 => array( + c_Property_ShadowingType => c_ShadowingType_Jalousie, + c_Property_Name => 'Küche', + c_Property_Component => 'IPSComponentShutter_Dummy,12345', + c_Property_TimeOpening => 35, + c_Property_TimeClosing => 35, + c_Property_TimeDimoutUp => 2, + c_Property_TimeDimoutDown => 3, + c_Property_TimePause => 1, + c_Property_TempSensorOutdoor => '', + c_Property_TempSensorIndoor => '', + )); + } + * @endcocde + * + * @return string Liefert Array mit Bewässerungs Kreisen + */ + function get_ShadowingConfiguration() { + return array( + c_ShadowingDevice_1 => array( + c_Property_ShadowingType => c_ShadowingType_Jalousie, + c_Property_Name => 'Küche', + c_Property_Component => 'IPSComponentShutter_Dummy,12345', + c_Property_TimeOpening => 35, + c_Property_TimeClosing => 35, + c_Property_TimeDimoutUp => 2, + c_Property_TimeDimoutDown => 3, + c_Property_TimePause => 1, + c_Property_TempSensorIndoor => '', + ), + c_ShadowingDevice_2 => array( + c_Property_ShadowingType => c_ShadowingType_Jalousie, + c_Property_Name => 'Terrasse', + c_Property_Component => 'IPSComponentShutter_Dummy,12345', + c_Property_TimeOpening => 60, + c_Property_TimeClosing => 60, + c_Property_TimeDimoutUp => 2, + c_Property_TimeDimoutDown => 3, + c_Property_TimePause => 1, + c_Property_TempSensorIndoor => '', + ), + c_ShadowingDevice_3 => array( + c_Property_ShadowingType => c_ShadowingType_Jalousie, + c_Property_Name => 'Wohnzimmer', + c_Property_Component => 'IPSComponentShutter_Dummy,12345', + c_Property_TimeOpening => 60, + c_Property_TimeClosing => 60, + c_Property_TimeDimoutUp => 2, + c_Property_TimeDimoutDown => 4, + c_Property_TimePause => 1, + c_Property_TempSensorIndoor => '', + ), + c_ShadowingDevice_4 => array( + c_Property_ShadowingType => c_ShadowingType_Shutter, + c_Property_Name => 'Kinderzimmer 1', + c_Property_Component => 'IPSComponentShutter_Dummy,12345', + c_Property_TimeOpening => 60, + c_Property_TimeClosing => 60, + c_Property_TimeDimoutUp => 2, + c_Property_TimeDimoutDown => 3, + c_Property_TimePause => 1, + c_Property_TempSensorIndoor => '', + ), + c_ShadowingDevice_5 => array( + c_Property_ShadowingType => c_ShadowingType_Shutter, + c_Property_Name => 'Kinderzimmer 2', + c_Property_Component => 'IPSComponentShutter_Dummy,12345', + c_Property_TimeOpening => 60, + c_Property_TimeClosing => 60, + c_Property_TimeDimoutUp => 2, + c_Property_TimeDimoutDown => 3, + c_Property_TimePause => 1, + c_Property_TempSensorIndoor => '', + ), + + c_ShadowingDevice_6 => array( + c_Property_ShadowingType => c_ShadowingType_Marquees, + c_Property_Name => 'Markise Links', + c_Property_Component => 'IPSComponentShutter_Dummy,12345', + c_Property_TimeOpening => 70, + c_Property_TimeClosing => 70, + c_Property_TimePause => 1, + c_Property_TempSensorIndoor => '', + ), + c_ShadowingDevice_7 => array( + c_Property_ShadowingType => c_ShadowingType_Marquees, + c_Property_Name => 'Markise Rechts', + c_Property_Component => 'IPSComponentShutter_Dummy,12345', + c_Property_TimeOpening => 70, + c_Property_TimeClosing => 70, + c_Property_TimePause => 1, + c_Property_TempSensorIndoor => '', + ), + + ); + } + /** @}*/ +?> \ No newline at end of file diff --git a/IPSLibrary/config/modules/IPSShadowing/Examples/IPSShadowing_DemoCustom.inc.php b/IPSLibrary/config/modules/IPSShadowing/Examples/IPSShadowing_DemoCustom.inc.php new file mode 100644 index 0000000..c10595e --- /dev/null +++ b/IPSLibrary/config/modules/IPSShadowing/Examples/IPSShadowing_DemoCustom.inc.php @@ -0,0 +1,104 @@ + + * + * Callback Methoden für IPSShadowing + * + */ + + /** + * Diese Funktion wird von der Beschattungs Steuerung aufgerufen um zu ermitteln ob der aktuelle Tag ein Werktag ist + * + * @return boolean TRUE für Werktag, FALSE für Wochenende oder Feiertag. Bei NULL erfolgt die Ermittlung durch die Steuerung (Feiertage werden dabei NICHT berücksichtigt) + * + */ + function IPSShadowing_IsWorkingDay() { + return null; + } + + /** + * Diese Funktion wird vor dem aktivieren eines Beschattungs Devices ausgeführt. + * + * Parameters: + * @param integer $deviceId ID of current Shadowing Device (means Program.IPSLibrary.data.modules.IPSShadowing.Devices.MyCurrentDevice) + * @param boolean $command Beschattungs Befehl, der gerade ausgeführt wird (mögliche Werte: define ("c_Movement_Down","c_Movement_Stop" und "c_Movement_Up") + * + */ + + function IPSShadowing_BeforeActivateShutter($deviceId, $command) { + return true; + } + + + /** + * Diese Funktion wird nach dem aktivieren eines Beschattungs Devices ausgeführt. + * + * Parameters: + * @param integer $deviceId ID of current Shadowing Device (means Program.IPSLibrary.data.modules.IPSShadowing.Devices.MyCurrentDevice) + * @param boolean $command Beschattungs Befehl, der gerade ausgeführt wird (mögliche Werte: define ("c_Movement_Down","c_Movement_Stop" und "c_Movement_Up") + * + */ + + function IPSShadowing_AfterActivateShutter($deviceId, $command) { + + } + + /** + * + * Function will be called by the Program Timer when no manual Invervention has occured, present + * is not activated and Automatic is enabled. + * Shadowing can be activated as described below, to prevent other Programs from being executed, + * the function has to return true; + * + * Executing a Program: + * $device = new IPSShadowing_Device($DeviceId); + * $device->MoveByProgram(c_ProgramId_Opened); // Open + * $device->MoveByProgram(c_ProgramId_Closed); // Close a Shutter + * $device->MoveByProgram(c_ProgramId_Dimout); // Close a Jalousie + * $device->MoveByProgram(c_ProgramId_Shadowing); // Shadowing a Jalousie + * + * Parameters: + * @param integer $DeviceId ID of current Shadowing Device (means Program.IPSLibrary.data.modules.IPSShadowing.Devices.MyCurrentDevice) + * @param boolean $isDay Value, indicating Day or Night + * + */ + + function IPSShadowing_ProgramCustom($DeviceId, $isDay) { + + return false; + } + + /** @}*/ + +?> \ No newline at end of file diff --git a/IPSLibrary/docu/Screenshots/IPSShadowing_MobileDevice.PNG b/IPSLibrary/docu/Screenshots/IPSShadowing_MobileDevice.PNG new file mode 100644 index 0000000000000000000000000000000000000000..223e78da1989c86f61d7ef7e78cf0ed803a1883b GIT binary patch literal 245656 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%0A2P+w? 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

qB@tAo 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 literal 0 HcmV?d00001 diff --git a/IPSLibrary/docu/Screenshots/IPSShadowing_MobileOverview.PNG b/IPSLibrary/docu/Screenshots/IPSShadowing_MobileOverview.PNG new file mode 100644 index 0000000000000000000000000000000000000000..e781e6e3a266cf2be9eb116d896e7cec1f8f7be6 GIT binary patch literal 250129 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

nt{vEH@>-?@6@AtPfTO*Jvtlgxc=VguTqb z@cO4qZDbE>ia{hj*ui@39lJDHsQVeHQg;&?a#Qc$-sWr{rF%0vwd^H7-B2f*Oc0{f z4>M=0xF`z4Y<%Oh9XO`MiUR9F*^|-_KdLgTKWkfZ(+cxyg%Tu~*=$tQXxyC4enu6R zw5J=oDfhQHnS8%#3cB4vljlu}s>CcvM{J70Ag7j$g_=)#ZA8txnq1d6Ki8s?-#qj* z%}V2MPpvTAf0J@bzMpx!qSNh$Qjp<xB8mXJeP^l3DS)kX4EZWpH&I`qYrB z94e{*3&23nu^K1nO+9W#ZynYB=ScZ@+S&-81P~k5V9j8h;-CTO7u-5SV#C#f1U{F1 z)N4txP|0-POY*EEsQTO8M|vxD0SzrS@N&Ik0{OS!s1DFCog`JW+N?=i55_l~d5t#|GNK?(M(caB}#@69UK;BDHJ_ zdqquUN1ctpR5sfW-A;3oQTy`9)&oja{sp(cr!qL8ahe7V6oXdxxzvBjzz+*D4W_p07UZ+xh)QxJC%-C|lw8 z*;{)jc1y**`gxKI!e_pI*Jrm!(<1dFU(p^i6DdHHZuEDKJ=78igx>j3U+Vzsh47yg zm(hZU&EJ%Lf{y5=gVi)j@J@t^V`uxn%fLt8X-rEE_1oVRn4iB+J2IJtm6oV3;8W;_ zS=|8krfIS}x6gIRo=lRzMDJJp!uvX+&S87vc=yMaJ@s@q42`bPfVKAo&1=R!PM^(? zLzV3&q(&#seZTtP1K-2vVmteWUEYHI&<|~eULW_Ark;HtLXXP6Z~7>oeD<#3sev8l z%V}+hf>8v6-&z3R`~T&6WD6~Hl8Eo8-8YL7Krqr`<0t_rxpb#b(S$X?X_B-fwhmiy zh@aKGWAi3gg3SelVh+stwU0xac0+0Y0mk*nm(`v|>1K?KSUhQ6Z9 zGf~4ZY%kwK$0Edph{Dc+HDSVRn_7h&mlLk`iWihb3^RJ;lx8;Kk&G0@5B2|PGz4h- z;1{4HRITiRan&r6t?mi%*agR#TNU=6@ieeOH`r{0COdaf@aG}dlG&%%H5&Tv6Wbua zyAk`P-SbaVo_$E?ZUTg2KDG-fl9t95yY|cT%Rx3bKP;d^z*;gI$Jg9~LS&s3_#@29}l4B2Gg=HD(E248aBIt55PPO8x=w56`R)Pany)?`^wS@%}L+?)n~ z`3Q9A>3^!LLm%6*HvAfh-egm;&mdFK;yiM=dA7~9Ko;?H3q>fn$2M?z4(L9>Sxmb7 z#+PTHBrtOsU=x;)tgpH~3V}HA3p`8PrsygJbHiuYyxG%HbVB&&2nKGD#US~qMP%}4 zZ{y|)2tg;iV-CMB#~Zs4!7w%KyPvA~pVOaXzX#LHnt_oXLcw{j8hVC%P4rf4|8|EBQIGZQ>~VSvY0j+1#185-SwV?-dS~F3K#E^}WKbdsS-{CIH< z@Ub;x8V+kJ6_DswlJ4vlTg}ox9jq3=E8AYP!lbl-_rp7GLyv?z;zPB{!?(difdWbE z7%s7IS6erS-;mSAP?qnu{9b}~?OqOvOl>`5Cp*6*_-3(pe~S80EqgD|tDU+a`s**Q z=H}%fXv8JX;Ox@O$w6H2O2tNOg(PnN3DbhUBb7orUZZRB-uNn6{cq;LP{=Tm=xan&Z- zXTMIl!t-cG(}j@NwV94%V@;&DX1*odo&wBZ0&Yn=R+zc{3ln4&4Uam2jUcn$(x`5*#(?hF^Z^UY{9>fP*W6ZtZ z+PkDaJ&fi;d{g`Z0@4T-s8yG4`h2k-bw*s9@dORgn?Gy!mM-Z>sbh+yGN8W)tif)e zeb~A#`4)l)a?XXD1h50R6dLtS9c1!0=VcX6TEqIr*b6YLSox87JEU9aI-x}kH4^XY z@IjzbouO}C&9@(CjgM=YWJwu3x{EddTcx~+>8axPn$coR#K0;lTEG8NI`P!_Jw8NxWJ^FMl!EXEn6 zfQ^c$UsY!iQ2f>7bf+mg1N9|eB?ZIqQ9N4F*1=ATBw&1p@!`DAI-9XvIKbuei0(%s zfR5d3_(!zRy1Mfvcr&|%a8OBr!Ty>}2-x$k#bKISHw=Y&=pBkR2!GU91x?x~oS)Sq zA-~efb+_^2*|xI4DhFU`XM$*B)_Af$2KWXCJ%1(M%kkD&vbgj9o=1R_3+wIgwm}#w zo#}fzHMaZHffP;SHwx45s(p)FB~%WB3CPKI$YbcU?(IxI*wT^ zb8-ECeHgL(t;e5fDD-apRv}vMXF|rz>aBlTgQaLveM9HkHkQN?N07KbZhuaqyrTH}v|8~hc@{rh>CgKXEUub@ znW&e66&G{F@v^1GlbgKgF`P-Gb$kjh!#QFvmf7w1*+O!D&s=~OiuS(n zhi&Ci&*RK46UKgOTZmU9;WbB?<0?y^halcR1T%)o2*aa5?lS7{=lt-SpUVXfSzf7y zayZ{sB7dw(Jj$eLaiAM=K?CA1zkeqv^MpANv@p27QnY%fX`!5pWR*+Z;CY4A?Hda+ zY?1B>pzCD6ARcyt7xmNe>e1+`0Z>K`Tor2`w!W4Yn2yp)nP@VVLh{;lr$eS3=H z=GGfyiQxP(^nVFGj`(PBz>Is^5&dpVEo7i%Mqp&H>{U}O>@9B)@^?gu!$$a(3%;r; zpycHXsasihz2f8zjs`wZ-mN}9{Q+{$$~W?|jG@wGDrY&N8 zAwD1mcibqL^XlC#Pw_dku^vU{QF=KF9D@k6glIS@GHCc+aa>3b;NQL(noZq7;$A{@ z{m=IRJT3h!$g2czu-^dnZ)`EA1?F!p-pl{SJg(qVZsOzxxc~MHiRi;#>tFEv9`9vN zr8t1S_qF4}pFAXVE73hPgtttEkUcVpw+wv!nDQjY^)CshI>TxEJ!GJIXvj-9t58$g z*odd;qtB$2a)Ug&B;uOMRs7ciY$!SJ`K>W?-J^_jrFoh5VuMh|Gv)Bp#Rl{hX{2F5 z_0?lrLH0C7t~`wT2!EIO_NZd>Fx2WDMT@al!4$Yp^Np5@Xhg`Kz>JZV=6Q*ZBla@M zX91sQ^Iq?Pt3olLKd6=ekxu1bGya)JhXsprepW z`!N2T&BMwkA`zh;8P130{ov~?Z{+sJv~-wW-^VRWW@ofyUR7XtN$^QBU69b3r$Sek zW+DZS!+ugCoBw+7*q%oplOjEz)k~;qCMd9aELYnzzc#b@hc;#6hp(H{jj?&m!lj2H zHuSuU@h?GT%WYxdNdtPe$#_atp>MIA_74;%MHKN`X+9<=1xKV4=pCkqh9!7CJZ8C= zR;l>72+jPjsIH%7C_quA2e?v|e4ZssnIQGcV3HFq#V58V(m!S^O8Mg?`sDE-vE2sS zyBy;2yJbC2?+9e4o;M4f`AB@DTFlRo9OXLd{8$nr4XoS`{sTf9LNHlHI#D{dihvGYg-DEz()pVv|;u1F zW4ZPFb)ri(mV!y>i?ywuyd(bd&cN-2aiLPKL5t%)i(9ew53~%W@WV)qbwA^VCK8sx z0Xa=;#O*HK>Imm`N)?5>X9N(@y*Y_^NAT9gfm^oy!8R$6JTGDP)8J>eRL7s0-jTf& z|4MgP-V`*i0J*4=oh^udQG0g9yP5Qro(5#A*!X}r5_?1B*_D0n*9d?ua_&P^tj0$1 zFt`M4q-n@vj;%iDXONej$LV`cF8e=gDDtU3;;Fsl!(n<``u8gLtZ?x%GHh)^qrZ!s zQ}_?(*w-BKDxxXt&?zjW+kCs_cP1W_EQjva3)i?)cNzP{{rG%I{pI7GTb0BH4-f=g zroBEBPk$AWJ((ghQx8H(^ai>%8Gndj7C!B}0YuUOk^L}Rr-9q~^7;>lY-ydApb!}! zSYxaQ8NLE5{A-0roPC6hu5ylkHpXSR{jZ74%FX51X&_C@Tjmjefur{S=!~wQ)7w3c zg-6RT+bS=k;!AmdqZm1z7Hjp?d+0s_Lwy2=p zy*Al@x?vL04S*6OV)20b4*yhoR1EFxGe*FiJ|mD0^dYPH3; zv#6n>!{D!!X9tFTH{;^vtKgy7zls%?bb)7))5#XmmXicVc~3QYMxQAi;euVfoWT7e z<<-XS)h8t|WHMrNs5);2c$aKGsHc)Z;->H5-y*{b_SMfd? z!~msbRJ~9aJ%{Ng4YfB%=B%9<`aWVHCI-ms(rb$4T1#XHOtscwf=bN;T#rtbq${VK z&Yl9P>_Fa+vM-#PUC$LGB-TbKEyDn}fd8s_M;Ay{00ux~boeqeO#eI3+h6PeX5ks+ zziJ*U08)dMGQ+rP=Od+oZUcjpQjB0yfKTbu1V{?sY~$Ie;Me=JMv| zFZy*lZO3P!C0gE8#BZhL){oeL=C6%S_)l*X9G_8SoHfMn2}H$$_QD#U3ih*EI3em# zGmNKc^d(%=56m}yi1!LbNVjQ2f-Ci^n6G2G1{72#Wt?$(cn_HUKC}#MqUea-PorPZ ztgoO1y6rCA*+(dSWbW!b=ysrz$xUXWec6nv2)Z^q=3Ggkyu}j#)Bg?iHPuK*k!KM) z3naStxa)ma!GW@gc9LZNM!yQZ2LJ|nJtem3Tutgbu$<8P)VoJHo)Ojjza>pU91ckl%094?{dsh{pC5FvU22*q38kcc#>r-$Q_Nk99I)8(K&b(Gr za#iPC9hH8lIhQ^z_83-AQUwH!PcC*IfIEN(Sg&SQI3N9WI~;uA7(&JNDf7t-ssO5j zJR{(&L-8~FS^`X9{suWi2deK9cQQaDL4eIz*0D@81=o8p<*E#hKNCl7r zBb-r!)jRH8j-S2qoaCD4F`nKjnz$!iA5%^xo_fo+yFn zaZS=gT;O<`7jIA*3DRsIp4{`wK!#b~jg)0_Vsovm!quIXXg&m|-5KiM@%75V&0m6oCBDjRS^N2-I-mjC z=1JMU$1H8!dC&4*JwN*yN$2xc!RDm{ae1uWA4c z3bv!1m*huut`ypf-X1V2V-$(X1t72)bi@!JT?a4blgiY%6Pyz4y#{!%Z!Vd4NkAO& z03wD0Tz1X2^(%750-&Cd7YfFPj-)7U5qo?(UK^fxxoS?^9ajETFFPrt(7bV2>)_nw zxbTi;8J+e{T(XPmpOCE_P6GKKS?}o^A1;}!4O&4ZEl99WZqBjT~<R$uL0ONpA=TBHM1je>N8 zR`AJb&ZS3h(>h2F-ZIwZ^tR9t=WS_lu}}vBlrltPCgoK{6-IsPJ#(U1 zkA4>4rBc`-^Li)ylE$=Weh*F^z9`6*xo0Yy`m&=Eb8)KqnEa^ra^`>`!-ZZ^hosSeQuIz17)$3CtAzBOguFFvRSseA|<;KJCC}D;D^Jtzo zZDE%Ujiwtn$@u|>DE7P*ae$~TVUi1C< zs(Vg;sXQ-ckJ(_fvc7+itgA3WT#V`r(7xp9Y+o|4USCM23VQFQ{bsY8dNRx{FDZn{ zc2t-zUE?S~8)tr2h|=~S01YUs8jR*|aP=yOqLm1F{nbdQ?MeHQ-HSAV&(|d2`M;&C z{y|wh<5)zKTX;af%?g<8qxJxo0AO;P(J7f~8v6vl7o~#jM-KiJ*dN4rXSh*~eBvL} z+;!fEZyi_I;w{T2J@I+mUNTAifXe!P+>40*0RQ}eMef%-Fw{ecyNXNH+D2NTeJAV2TLXowP=hD*vH~apruKrycQM&{CNBAH_`R z9$X5)rSOR^-NSj`Go}KTqU0FKzKOLWiD;&r4NU-RPoCl9v1mJ&t{70CA5xkeBr z&Mo_%sXz*oDJ^9dQya+t@qqtZs=$kYp_E!^Omo8nfH({s$da>_*DpSg#)5HK; zT(&OB9=4-k5jqn=LFuT631<;2TXHSBkW~Nv35>jY3ogRF>9@Yt#ptdZn1w@2Rx{F3 zX9cG%lZb;(w|#pgdB)X?36LS@4RVir6VC{5(8p)d=O@gLONH=fPdKYZ(CRx zgx&Qfb-x*?F<;7~O}pMj3ef+%j*oK5+8c+^dSxA=!eWzM1aVrl7hyCSyXlM&&AX|g zwL*RXnyI7vO3`44OGCV?N+sdHxd47U+xZS{KV@{(M3`qZ2Ztj<|Avp%(fjDSDucHM zU#9}k%+caI_H6}Gna3F#2wtn!9>BJE{I|oHQe*gd(yPE5NACzz;W+KF=QmEyHqV%` z$)}+ELXRYq-mVl}PfnL}39X3jxnKHz>}eKZFe;GBu#l{NSEx^Ld=wUG`3t9!)Ld6T zY!b$o?vKtm)K?Uu?CXv$C<;9=VCzxi)C^`OR5Dt^%*py@@l$a*dR!B;Sq$R%rXZyh zwexQU`d=uuPj`fJ=0tBV}q`hS^!&vR(M!-5#c5o;6%&qJAR3 zH*>04>Xx{`w82H~l2ysyc3!7)cNg>=oG;l7VPCaR3i+$j61)O;oN3ze#jQr`C-H;N zBQiZVIET<8Mw$detqH(kB^S2-Gvoz6|i)Kpg~(~mTmN|du;2(W!=uH z21}^5W=h~i+R+NV5MdLwUvkYxSuW9N%yF`<>YxA@;nCN>cyWAmLz-d}>$3{TUhhXA zkF5XY#!ztSm_GPmCbGC9z&b#qP$5h7eRa;d|I0Rs4T?pUL{3~%iP1w#;+je)Njl-z zYqJDm^0}r#0HMQj)g@hRc#VHHt$`glA&9Arl&DI%@~mG!91M+;$}cz?O@@{?A1-lC zHe?NFXl^9}FlW$K;%z!B2M`v;KX}n}kZp2G#n)qoCI}%0od^7#VZGE_@;SKv*ziH> zwSB1cA4R4Q93!p|?uLp?zt@&ME1!A3$pylC&#fL&Wa_f5Kg<}{l+FerCVCdennkz*Gnlz*c#P{Wcf8awu z;SLA*%O*|~i4bTfPyXls-nblEIpY|2(<<#eHehbXeZ`=NN8|>_`W@n%0Fl-*Auc|z zkm+a%dwjHXwCUUC`i=0G(#_aMJDdg>%15N30i+L&3z+G;V(5~Hh!7Mtd<2eO`0eAFZ}-gOori}eemnVtsgir9 zIqc+3*y)P3*|!Tu!bf@jngTQ@ZUXV*Pu6#nqW1W69t{st6&&us#Gt2wb;tSDvpJRT zBA|v9v+Hcd zghf>Xv#S^;bf4pTDlUE#9!K|DLP~`?*s+D{6}IW4$N(WdIpG=za9mi_4RKGPq3z|| zs^WRVd8&FmI~&mJ$`yf?x6;ma?BHg?zPsiSe#U?2nGm&R^~{>ei%t4|x*kiOnHASX z($s5Z$x+K(X7=4+*XGGq0hLW<`A;v`eq4}uBS7m(b)&8l_>PJsV*xWU>=ja7KRj+9 z>OkTy|1j!7*-Y%sk*|7_Ie8&Z?}XoZdsw+f5WJidcxUZv|3?Z02k(5e?}d80w(M!| zTBr#NX7-zL#TN{rNuJd5vZxybi_w=npw|q2N*C=@EwdZ`c_*8f37;bE9ygq-?HPqT zN4x)3lF(~5y_JjQX1WePjRlF~0BO}>NS_Hm1p$C`>pZN`D5S)zi@kSul7#!H`6YTS zqLQ*leA*WoT}a zaP;<_oaVb_kDd){=3Bsaxj_p`t2^KPzY!Aj*PFl2SY>9+Vm3@+AV(209C8iPSmPfO z!VaiGO(z&=^%UbC9odqds+$QK3?o1Nz)UG}d za1io8RB@n2zkhmc8Y!m!N#Ff@){zer= z@L7=7VUF`z{N@kBwHv8g${TO99u5qSuI~h4DalXAM9#)Ek4oeordrKXTUY+RCvYvN z3L;sh@Cs%nR>wY|QV=0c*CI?%^k(?#YwKV8TX4JeJ`79Nk0Jc~Cdl0;z^#pAJb8W%`}fEDhplJJi76?T%M?fe+xBSo!zUodmh`nVqbN0sXO) z?%;T<`-jw3PU7DvlDDjl7~PLvBNm}CL!gI)!s4Ms+{BoN%%^nHSL)tt0gTaqNT%*P zC@^c0Z+_ZA{6@_s^<-S@NMG_lLQ?d-xHpo0a{ypi4aMB1@Yl^0Uoo(r-8!C(*L)-X zhpKBrP9)XwIz`4`pc_hC0RYSA+Bn!GU})@*tndzs!Y|d0*rQ3=oa}4 zN4dM|wj;!?IFpq7fe#T8I(nA0os44HeOdgum2hW2%$&z4>t=%tmeYIiEx~P>Yz6X;z6jp(=I81OX( zg&n6N<>QvDn`;8#yLMR}oWaa_Z&)R#d2Wg1w2pIXy%kfOXBU>DrTAQ^Qg~nDL1BHr z(b%Pu4ebmZwHE)QHzBtYv->>c#9FgrZ{f)EP$;!c}4Vv0F>Kb zRxlXs{55?p%jBFYX@x6$ZLqtdJ7N6-G100(zZ`nC8vl;$Y>I@^@k@;{CJ7wQrIK3q z4m%YEnm3BPvd5;w!)|-GRoY;TFx;u4xKhIDd)d=58F$_;o`&4%gl5Qxh?|$wxGmGr zN^xW%<)$tHGXxR{6!@Zi?l6Lc8(_h+iXk2jc@z@kp-G~~+kaOi*NsCd$uc~>%~=_% z4?*LO2d@ST0uaf6ek&YT@3dQ`vir2JSI5JD#e)wFtwrA_y^{}^hUdSYd{^keLfOeP zSDZ;I8^FVRIw$tb79X;3s3{!;wlWB4FkvS-Q=6k*SiBmO5@WVoL_`vwBE+qFI+*LA;{lcwc*=MA6-SAY=vJt;sa z4W?sJTp5m{8wFmzZKh5Ue~DTB!6xe0>PoW%r}45Z2cIb?n>M7nsSBeq=bEAce={~w zrAz{opBv0SzBD~Sz9_XUXVHn$3bX6%x2$}WE>5R4s#bO5z+Yi8a6M6e8FMGGC**_L z)5~1kJvF~d(`@I{wf3Q_Y_jJfnpqp~g9T~XELqk&zmut8EO70yPlm`oA}=cOR~4Tx zoBZpXIHIJsQa*RT(|_v2gHr)@nDTueWx`*uZ7kLdI;~wnywSG1HT-_%4j89`3vWpa zWd7%QUJdojhHaAxm^8|DHx_h3w$?c%n#AWnKoiv+9SJWnJjB29I;13|8H z`Z?<)`_#;SdJXr@F2-3R*I$TgCR8?z?-8yaiK!0F{D#*{%N%!COkXDQ{iKpW+5SKb zQs;_p$ttp#U2)?_<+f7R)2`^*UI-VRQkP79EZ3hMK?GF{KjnV?>BZ{=c91YGM!*~K zeXEKOU7f_h$Eu_~tMp>>>K0qLCTeG9jx$nb{89O^XV5^Xqet2}!LPt>LWXrs#~5`} zY3|efg*9vcg)5^cJQR9%aMtr^O)TI1t+oHb+j|Bz^~HaK0@9SGNG}0VK@^Z)1cDS1 zkfI<+kqC%@Gy&<5fFLL>AXQpGMNp*ome50$-b;|six6rEDSLnao!#fz+4s-zCYd?+ z+&edibH3$M)WVmv5`0Y7W!5%&h-)?=tjLsy3hN)3`Rgn1E}hFzRUuRa>%5JT+`PvP|Rz=d18J}ZCjYH zL;B|tGeoX(4lL;;{)MMOWx44U$X(A1OS>=e` zWHf#YO*urZ{+wl*2;GR-%Oc}%qWB(1;rwkt;6sOnDO}ky3BM`+N|3ZqUy!c4r|7F` z8`3*9b`HjuZ8CcXIuSYx$%Ppjg0_VBPQCKq>e@OuW*r1^TAPNjlh2iBTI7ARUBgOY zG&^#k>GZn@d^&saI>zUtXb@7EQ|+boK7HT0GMKx2EkZ?sG7QQ>K?~vrz3dbEjp7l= zHZgS}Glym~hY*tW;z%sc@v4Zo!`bE^)~e_#k`~iLnp^RD5_C7X3xsu*h8ZMY7clgq zA-mByiwPPqCH8!|_(Nm@k8Deok`*zHKF)y;Hu!!u+}HT|7IN*fJp4zERJ}Q8eqSA- z?#xkk^q?l_kV3pHWfU+Pz1J5XZ%jQjdV0}5&u#I)FwTM+g{c z8!~tu{;$D6VeV+~x1<2-wi9cg&c8V#^~6_4&<4zR8FtEMrE>qiRDKDfhs4n zC_JC9y%6^h;F|l~@l-m_Ec0@%ze#5BGARYVg?+P=Vs|h`B9uWo>dbSLzLYG1NTXMp-rIYaN!j2o=|a%AT^$9nmRop| zT(J;W!PTiD|6ADWVmm_BNW21Na^n|(d?=b^MGkO+Y2K_*`F#8pf=ic^tj z9|CL*$wTvkt}*Q@?AiI`Zhr~7k{{E zdcf}K>|ei7GR8W89!%?S6lXbeHXct=%*FXA)88iT-d{|I5;liM5%u40-E~hFb(9J` zMie4~yFCN7Vj@@(Ga~k{9f*-}S;O7oqY5%{n9>2x+{&+N%Q)lIK}>Wt{d8UqD-{22 z6K;D>u-^cdn-4C!Az;=t*JPQPj3QLx@84p#4TrY_7p__HG3Yc{C!;rdZOUiBO?r4L!JyId-WsG>cO!-3u z5!v1qFw~?MH^U`O0jx6}l!Kyq%lq ztN-!0RS96|O+4{g#B%lYH=7z$<2GOZ@tqX8!!^uuba6gtKKF1qjRPC!>D9?mQLCFyb4QceOAW@^4Ub`=MvAwZ%-Wyn%(GqnR+za z_pY#%wo{EC?5^_c0grWD*3^$@=NJSYXUC=x!hNx1JM?qmQ@-OCx1|?iS=8sd%d_B( zg<1>D9ALB)kn$OP{-Nyq)RO4>0k~f@C_G-Cpv{=YQ!7f^fQwmScTcr!wM|V{=@6snePgXw| zF*Y$%pZ5A}vV|J+@Ou+9t@W>r$hShngQ8S|B`V`mk5LZjgroQA$RGP6?@v!io$P`o zD?_UlJTah(z0cW%ia>k8tS$d36?9NVQ(xeX>vy+kfCSIDa+A1Rfq8R3&h@Ymt&v&Qw>T_h^ zu%xg}2e{F>w;VOEYJ{9|upDc&Y~y(MlJ)I#)QO`){JRyoyifh3ON-aO|L zm6+|Qp`ddI=nwhu^^|fO(lIGy1w;83BD&-tNY-*8si^+^r4SBYp*qz=^Sgt72LMUe z9Vy9y>A%#o{V!OAN^5N z$muSR5ur7jED^f9joCQ!q^_Y@kT>~aSlCvWIYY_6E*vdWdDN^s@__R}e@{a$7dOpSqH(?%bIWjSge#>i9_85arecBu&@6E`*re#;?$o$8wve}@ zQ_X0LVsgV|X*WR>MH{Chr5Jcsw5-I~BbRR7d(M#yv}3P!6kNO)A8aMPp8Am- zJa!q*R|kt?mfOibE^t^c`}ZrpM3D}!f9A{>>hkfG^KVVBlc?qB`c)x+?a&Vs*Bu-w zM<31{en-Bpb8y?&++Ds;wR%p>y$$->>QBA62U{>eUR~?ROwP_da24)he6>k$C!dRD zYnaOoH5W#B^=B0pQg)K>>V4R{5_=p)e8AkC5|9=me$sdF_ahWK?%$i+5;*A=dN79I zh>_RCT*eub(p%;SwiofqNy6t_=-9+&&(_tAIN0&Z{Grs-Sl{`cLq59gcMDc?JAW^Q zW92$N6-8_<@dfm4sQM^6*`7p2ozVqN2 zf)H2r+~@7TGp=a74wKv9C(|qMc4uownN{O)e1l)h@xo{uc0>$n&bsBj!0d$@MY2ld zazreq-@+iux8+&H*W!ndg*qXms9RP5-uE+muItx$)P!!C?V(MP@2h8>Z`xDQ@zz6X z!7_?iB1-xn?1(Z~LB_Qu>g+LgTA-&3BcvvMSsSbdkKq$}HRYGEQXp!tn}vtZOAkXP zjV8x0Oe+gVY)^-^xOtatY~2*%m6SCs`{V>IYt;$wH9ZRvC-vHw)FadB9&c)RZNt4I z7wK?2UtawAh#_t{yPkfMZp(_hqs@99py524p~a=Qnb6*s&Q6!Cfp;Zpq4M4$MD&*w?9O&bQ-bn zRV;6NPb0+Cmg#~pms7o7BJx?TPxMP_A2oL2xs_p!kX38 z7J{+Ywe5jAWjp3~6%wWy;tk*ob)y^UPX570HwTVAO9J7E+?;m*Zum#B;HGrK17t4P zMg_H*DimIBSn_MSV4tD#Ga-gr*sT{_Js-Q3^n*zmw-)9al-cAn|M-c|dz#G6OLi|? zH4DCg62F4uATADG5nq}h@%V_296at3FGMIVN{SP(DR=PEb{%y9;Svv?mO@W4FNwdz z3p3k95~j76)!W!BsP3+X)vtAf5HDYM&1E}&i5V65Bp#+30rSsenBkwN52Jvu)MI2hdt|#^34;#uPpr z8>96%<0ug9C|{vU7K~QjgS~NM?6w_8XSU(@*m_;&V{q9`1^N*BP~F zLp_9f8+2m#=eP`x{y_clM+Ku%i@3X$0h-mJO)Ame0UY_(!;jcjG{m@L@8i#UHbDm! z6;iJbKf&vg%G*okY76|An<(D%10Q7ie|E#A&RP&5yY#bV#O}QUf7G6qBt*yV+Kf0v z)-(&moZt6c7OJXGX*-{Pp@X|4q!nM`Jpfnru7X+!I)1TeSIJE*_o9bOv(wLuff9c* zLnp0t1(qOXN!kolaC+J!pT9al;~#2C!;E@L%}aKT_@_Yv{M1FAsA%HA34=|Gr&0n9 z0avyI`;X`J1zz_ZR?}Me&g5jh@6n76QnIXmr~3I6Me8D)k*O?d)amfyAKo1 z3*qJFYi;T?{nnwI_%QqMYH2zn|HXb9gOG-q?Xnbw!8%nt=|Zr zU&EHg@O;~&9%{-nN~wBfpRW^&|0dV``_>@J?RTV(=#!D>R8{JoJg`08mfPvVt12%T z$~u|omZ>D<@Nsl}>VM|4L!(Azo1(Qm<3r@ncTw2M?y;(A8K0JlhJ!8F?Cd-TvLmVV zZN29Fy)X*R*`?71WM!zp9qA>ksNwM@z3@ktLbnlCET$r#>+iMYDJ9OXD#XFoeRpTE z^HchFvEUWp4E=Kx3?hXvP5^bzcDG}AFXAvUdBSo^*`KOFqL1sJ+FpPbrSNYadJtrr zq;+T8!uGNO!e*Pn@VRdh{mfUe8AT`P!j~)XH?gXVgC(%r+oqr6B7V?+4_ogRy&a|& zc(}T{X?Ft_F_-NsR1DA}0``CTi3C$SjYZYR7hjte^@WqlkSt`f+ zJg}1$=)(F4(wh{Pzu=XD_VQd-P8}ezdu7cy@Em=)J7yG(%3>{_oKc52Cnv-#kip!7c80;VpgMfjMUr6-5%+o7M zaaTs~{S9k|w_%UC#0yv-SQFD8uh@w}paW`uLVo%2Q6fsozK78mTJ=@!oU7#TStxX` zaeFTfGk8r9GJ!kIDQhP}Vn@QNw%&I4Gk8f;rF76wBo{g;=bGdhQ^S)n2;}-7jO7szDjmGK z!aiC>IhE@1oKiQ3weJL-krqam`1uIE>KDlUy6U#M&VLOG5k#dkmIr+_Q8ZxrXw1cb za!F58@1EC`O|cr!pX|sEdWz*ixF~>kVGeZb6Wr^^-Rs#tL@{M&&wfrArex+SU5b2fF#N|k^_fjw$cDkteOWA?`Jwu|+6Hm7c`Xp0~ zk7!(k3A=&inpA)04>lKv@30!GoPks9P(9;>+{&=Cl!jyfr&mJXc|QA2e9T@_`LImq#h>|qe^ z%YRK8PmZL6o8K+@Ui8GdUX^2wIMXck)d+he!tya>J){;l)R0&`KfVotoa6)?_(P#X zps41!2DF6_u_k#we)@xp+U?J{yWe~Sl(r#D&Wbi;(ui98GXmYblAOZ+ z<;UwFch+e72XdNCylSQcbE58Mz0zX$zm_>jEQj&?Yu0aIEr3^Z(}T?!tXWTO<vdY#`D>IlGVk9%TvjgOxHTdgSkd+h*T`ZX<3HpLW9fPWMCC4k4rIfw(bG@HrN4 z5JFi5fFfUxEMSLz2FRhLJ<(1I%h}sYK$)emYd;HBhL2e9Dg3f00**e>BYkSfLIim? zHZ?PmK7ycO9@MzpI&6Y+qm>z|_z*^psw;q`q^nj)e;D+q3?jZ;kbAes8n|q~OBFBv zt*tWxpLOcqArFDhGC~ahEa)Tql%DyNf`nymX#&`-`n9)DJLcGkdzfSR<|i=W?Vu>~ z)p?E7dCSoum~@deqo`V=9e3I|_hPj7K=_JV98UX`5gy20@=PpLfkIt^{AIvB3x5;+ne|q-(qU9~!@G%Bb+|fjO>Y}28H-41*ub59 z-k8_)Get! zbu*p-6@{ZnCcbYF{KWcqMRIR!3)PMJZkwWv3@O+kq}N}>O7Ne!6a@8;W2pFmr=!e4 z^%>L}?*j@p_GfxQ6u7xEvubsIE!>JC;BrSc(L2yCf;dZ}9Ln+eO*KNySW-DijbhJ=)zurI-DOO=u}XjT64ixyK>?B>`EZ{PH7WhE z&y+6xXE*LzgfgdmzPEN!?FeYN?{v*@ORDPwH2-#wS`XV=VzOuh?DJumA$G!nvqn>+N#A5C-CXbO?6gf z(HGFwXPI{f8F!Y3V}HwDr6lCsUsZI4DXL)=5$XHauAri~`P5eqlHg?Bp#5(!ancx2 zD0O1|$NvX^NZyA}IN>?@6n?=@2z5Ws)sOTx5AJkgrkj@H6hB!f4LYkS%zTq^MO0(;tgo3n>HbZNFMB8BGFJkNErj2m${YspHDkMzGH zn7y699egRv37jA2oT7v^i&E`%N?p824}eQ}U87>0%)RKfr>V^5XZ9-?gUbVX;9Pdx zy8l5P3XG5YgwQ!}A1!A6->(}KvGhhwtE=h}aK#3V_&+zM?qt%feHlSf6g!Oy;1F5e zRmL--`gWetAlC-@k$OwGkeU|fAf_bgMQx@Un_+ZI6G6?bwGyb*Pfs=?hW zl+0w0V9)svk7*L9oGL#_wV|-?Lr?h-0fU`GCibu39?f<|4J!ZM=?arZ%GvKbO78JQ0cx zB)(Y}5g4r-5R3t#4#LyZaSLGx%5uYINT5|Trn!dhk%$KEI=7}!xp5k6(frzP+0h?^ z(c5d4b(`NLNqaNw5#QU?y)>$eAR+xB$-kT$b7yqj7E>n6AbJ+Ij*#_s0&F6dj5(Sn zLVM;GkHa@(?wmbS6>i-bYE1P#cuJITbo=wUqCw%s+rKv%`Os>?r{mdXQsSH>M2u$) zSeBfR6E)0X`aAiuHF5HgUQSu2X-TAGgb$UgCapdD5*7}g5Dx7p1Dm=mys)tLmN?a` zEv75~5jax{Jzi%e-mk+U6p<|-^V zr{o|_7Y`+NVaNd6k_A!*6YFY_3nmr6^ zV}5&!#l|JbxIM=2yiFohN2EB|ROyRNl=>m9+ERG!G>9PJ_O9omNksD%}H|LkAr#B5$U$$`xl4{y-EQnQtO z^hzu&LgJD}QnfHG@1OE6DZS4&&Vq?j%LArAsGLRAw8Bg%mctr+05g`pmxw+;$7i9$ z77s3i9G_4hTboce{Hnc5u+%@J> zG=AsYLjFX5`CZRo@&SpQC6lG3e1Ip9HD-9F;u(+m^@Z@S+*tsfsW=T6l zu?s&HGX$cvT8}ZJL4|v}=Lt<}&+~6N=OKZv+S(v%Bk^2RJvDZHDIOtwebJn9-bk(i z=wsI>I^|g}0{m$9ZJO^Y$J3LjTC&0JxCMWKO0~vY{e!Ksu0|YuJ;X^1m0k_QVTGir8hv#R#=MGvji2QLHhWu1l zcz~r_%CKTybsO{ZllWW2;D3*rdNm08N-NXqot`sS9I6et4=lXDoNdI!a@$n=?Z{Yr zc%SFrDV{!f=LZdn84Fv0pme}9ap~_7Hy{D=dxYTaIZPH=7x{FZu6WBEOy$NXW zig%zMVu-c=g+tK4{W+VH-C!=(Z9tOSiR5+&*@}=Cjy1BT%o1Ra7AbGFx_Em4N~+w) z9%&9r49^qaCk!yEpGi1ots$z6d{aS?mx)>=ziR3aJ0Z!Y-*Wz;$-1nsh}AiV%C&Z{ z$vZB^aiBw~UJ>KNB980N|4^WCl$8EEHsbCz348;jy%)!N!jgukoL4~}vx3)uZc4z& zqmdA`hWL=gHO1UBvsZajetp40kdrOcBPqhSsoQ0;w)8GUEBcSOCed}h_&U4~M;)%r z_3Iz{oMlG=RkJA|G%0>gX?T@5Hc?M0+4!0rpPA*+A)13vKbrOr_tK0ImMh&JrY%)y z?F;yOS;r-a&QvweuwiGZ9{H)xHl&yX?0wykURBEm`zdF{J6un2chmjP+sQFiO}iq; zC*>#p0Fcgn`|-~*3MI`LjX669B?$^+eDL26)KPN_Yvzn#y=cFN5X1h4g9&Pg@?QIq z_}TK7R6WK)(noV;7C$!|shU?q@H_;#lQxIaA|KZ|ib^PtVs=HCwh;}_FR#C>r$}Fz zRLdV(hf^}yJr6^H@S`!jT(16ixo&u#=4YGbu!XYlE7Vq=TJ)Lxa>G>&H>ZLKUmx*y z0_GgF^jLNY_Fqmd;U7oebV5p0+}csO9Y)Vaa-p%PIOVJ3{jAR3D}=_Ma7uUl_9~Z& z!uRc3w+C{h$=I@Z7?01Z;&jmPiqfNQ)F6y0h3{U&R`nvjmLMe$*FHX=$>c8~Ckg09 zEX?gnCx2EcjKGn>>#i@;K7nBjH!L2Piz?d3=?#b3VIayP_qcKeb?lXb*P z7x&n~QCNA|mh!dKAzVtjhVT$~RrySx{tDGs+Q1V7hAVJv-e!Pe1vicL6MNzi%9i$OniFFka)>ci}HoA-* z`){*3J2qbT`4W-SH*)#Uu>xhAFxC4s1CsVX^-WRK#rKZGERO?rFGbPEW$_v12Hjic zQ!ts=zH$i>OPhy|6?d#c_A#i7L#{Dzo+&EkHXMvfoSU(}rwC-);4{=py_IN5oT%0B z@vu5S{g#W7H4H`g`Jmi8L(mP~BFN3;TU^LBHKSv5it?SFFZ@BNe_tZ?mzi9!ki+3E zh_|%A`cSGaSDN>IpVD>0v+FM2e_f}sT^AjzpvABoB~6su4ZIpkoMHWwD31#jrkzwb zH9g}(S8wXkjgo&hFQt6QUVi!riP!kXB{9*{ zzsHy~P|pl_EI%!CBRd4tDy;WNqCLUBL5OP@tCJTIzz8=LBhaY0w6-Lm+q7J9*5)y&4iYc9E!l%oPs|8ocG^wmH##TP&#wrJoX&N9?I=E+}bsk~Zm{Y@kxX{AkoGg{&GE~ zS18XmgTQ7f#+dYdrGjtZykxrh?ErpNx$fTqi*Q`3CI^G)EL|s6R%A6QP4j_;6xQH| z&}X`AmMib0j04NHTFk!Yh|zC&#SEuQlkg0SJEpEG;VJx8#$blR^C~$R!D(9c*BJB; zZWdwZKo}!us5dWPV1G~3(reLYCV=hIWjA+tH%v@0~)>O0QG-3dJB?!!TgGS zm>+jK4U>rNqH*HF!PqnB?aAN$jX|5g=Z?P~&XYGUleEGB&TjdRY+r;?=HFWlQaBN= zVUeSXjET*vDQVEa{cHe4^81S7KeBOa1L+(GI8QE4zFWEV*Vl@ufRtxV6G#aBFZ%lZ z0a#o#fcS&*$Uj*08VR<*OX_*JZ0jn&h6-V3s?*of6B!cnc+lL2rMviRa$-zP^%rGE}h}ZFMP77bs{fmydC*ENg+|F%1+UE+2O?b!@bw9o)D4izaSFa z7$pbNn5X7p-P+*XJ)RS7=d0tMxH_EEV3pr<_TNb!61+9$?9vf{I+En<8+)HQ@6kcN zs@KX+Keko>t<4))SdNvz%syj*O)mKcYP6nb>3&@aMS)y<>mEcM!Oz&9Y4EL@;KXcs zl9*~vsnFk&uQYS*^>(V(KR%|<^<1i0(?Bm?Vh)yYt=3|A(}g>@m&=B^5ok?W~hcA$Sxp5_h<1UmnYZO`r!>|^iKF6byal*^}MQEkE0xBx)Hv{ zJ=wuMHtBeaA%hZxr4l{DgO;fDpMf$m%$uq#86yP zT~l`y7ntmaZt>lhTR{D7%NdU1-MC}+^n=?3S2g-}KTGonpWk#pGD}e)x3qane@I-( zt%Bi_v``LNJ5z;C#E56s{)!<^%R()<+Mq}MC)c@1s3kXvZ}cz}P5w%@f$m7nI$$Cb zPXmAtS&a!K=3c2SsV!aD4}1kmYzWCHyoZ~HR4e)lob!E#j6=rZ z1fzZKbxc7Tm6j{EL-K7u}hJpmJByWk|9z!O7;KsYd@ z<>&S^CXx7+{1tlS6axZiNIO|<2ZF$mVAH7zl<=7jNr$vCbPasMwK}6HyrL#}9((em z)B&b-5KD+9j390UkKI@0so4{(dcw79_ySFiTH!kO@BCr-t1@)m==jb*^m3FjsVmBa z>_XFOdk?ZjH>~8BKo|RVQR5B$bPDs1SlL3QM2`2e*XD+ZVxhsxV2oCl_EDu+tK-!b zpiPiAyko(5qN5}qW=d=zKQk782+{aN8ms}D4t7u)g_JF#4VpION?AMizCM(^F{BPco(&!`F z>S>J4IY32LXbJ%E9QJ`9&*+ALndfo1+D|~R%E5csB8Hmw5x5zAry8IF{79U;r^$9d zAeVU{aEJBaj>!cY36K3B3X!?6j+0%N=$*%kJ=^2a{YJjqlS!cZsob4wGzl!%pFNZf zT<(G}CaNR~86jOJ4&TgWZIzv<#?|1t;Fve?sW)@3SWKuU*k%sTQq9HUuvROUNyhHKYfSppR+W^-hDtJ(-R~ z_NcUZUTZ3J7y7rbXoqKMJG0SicbK-aC#b0i_#ZuSnNtV^y@ZYzJy!0zpa+UpaCE=D z)X?rMW%M>Vl09zNfkU*;)AN@`6A`Br$G&Uat4rAwwX3FY9C4lzlYa_-7BX+Eh=jsk zs0Rx~Jb^tf9c?0y8MiwReXqD}C#xSn?!ZwPf&qry{{IcICJw;k-)2#2M%B!{)`}s< zCFC#c1A0LE=|xl6Nn2Qi(vYiid+76B$tZFpSFi4Di1>VwCHze4yx76f_(PN$=c%<< z2bW?%1a4|&BlM|4*wcsRL-x;0=UJ`@thET3NCdEcqp`5@byp#0d|Odc3B?}V8A}jQ z+%WSBjS2eqSh@p!%k1vkqh0Ilu+YF0M>gn%Z{W_`jv?UiUv~+s=3mM&pzm*DNj%Xl zE^Ddd%XQh0;ZB1RmCiEuZINbivTmZ_kj6bW-Dfp+9S;{w?NGj56H{q*Q=2sP#9@|(_;cx|x!by? zp6B;@;HqsEd)Be+Okbos9#m=BnDUpy0_ej$(^=o!gzlzQKZHV7#*>Y%Wu0_=FsEj? zti~rdUpjtYP0xwe%1fBxO_+{a@^)@7U-F)nqIKSrT%|k#1vw>FQiR~fc(h`xtB5VO zw1uba4%~L+w?9^*(sNXGj5812yJrQ+oa^>59_q|j!k@H)+o7}> ztj|o&3fKHogtU~ad`+FJ-7MoEL1!GB86xmUX#P;`M&d6+mslj%FkY!cN1rc&x{~wk z*{B@h;D_s2_3RHdgHjH$pnV zGsPVpx^g})LzFpV4qUwD?Yo&S;W)unZT!o#Z}~cep#u;IG9K*n^w4tMsTkJ(XFBBH z)RcW7c9K|ohRJ~`L^rH?J+xq8@nQJ&*PSfF>MRW=5iWME7XvN?X(ucn&QP0gXAA^t zlmS|R;)|fJRL7x$v(JMW7+4o+W*o{gV^en)IhOnF%arg&Zu0}UkErD@9-ed>fn_KC z$r9`2ecyY!9*fzfNuuwYPWQ8lBS;}L0{1d1VK04f2lXS5`wy!cp3!WC>uh>~yF#6g zXxS)_r}EN)UsyqZoIX_!&R5d4=R+M*lLhjD*Wo~a!f*cBh;Dv<$`g*V|%DEzCs?6`Y+IbNZoh+j5ciFz7Ty;_-!d6EZ}?|AQ7sTq^n&!d79pv+jqiI?l{^iZs@i;D3mAg zkjB#T>q7?iL`(mRxfj-cJZ_`%+FxBf=!CyF%9VLSo|Uj(9a+7yxgXCrW*6=Lc zS~2)qr(Yf_@&t7CyTlkIrBG66_8R7U_s|otemD6#tdvad(}jI)>4B5Gw~Ih$rYCD# zdu1Ua~#M>I2(GHwQ0S+|BaW+Cd6eH=@X5- z%6Hx_ui!tQ{5MnS)G0Y+x|NQtufN*)-j+6f52Vh+T?M;V*hjC$!Y+FHqquD5GZKJ? zo*+fb5qXlddZSZlU+Zbia0R$sN$7=Zik0BQ;3qz%BH zEMD@zV5-)&KMp7Ah6_56fA!~hf@inUV+Ga6WhJoaSwggOwO5DT=C!j~)exUcwrgF% zWXbxKZI@GzkbtzRi+t)luo*C}V5x${xqefgYNWBM*ZJh)J%h(Qa;Z3q6OBdR>-I=mdz6U0rF%< zde(}l4?Gn#*vjg()Rc^SCY28Ht${9SDK^Sz%xl>leWYQjA(Q(RVyES-wiA?Arm}As zUubx+wRf+Hu0G?!S1&~)(({*-E^6O8IL;m&-WKH-1+ght?!5BvbDf{+iPo<5SV;5x zH~SOfS8pH~zN{tkZsB*Q@D`m}FmLzQcSkUB{cO|6yN_C!Ne8_YEN&fSw7`465e7{^x~e z_@v4G3qV}U7~n-u68KRsj`WVu<7Z=jH!7oZAtQLTVm<0zHqmWt1;%L2mWzw|N7cKuy2nhRf;Trd~rbF2-N@R@WQGt4SaKI@8^^M{bp8l z9(_Emg@HJ|#hm;8{dcmPURBkZBCj~Qo`s=hSO@MR|B)H*%b-v(d_6x&yeo&sZPKAH zBI-3ow4Lr*oo4s3h|WEJ@65u}S>w_kB_He_WY`Ej_fs1vtuvmNBS<}oje3U`O`O@G zX4_c}*rE&gN9X^*qTNc>W_Xt%TQIVWAjiJOeSCMQ=HGsVcJlIcC%S%MeHOerOZ>O4 z7&mnlHXU?r-scnCQUM;)s}ut&fMPhXX>z zF>GdVAPPKm4z0aKe2iXYtGu=*U* zvVQ8swx0F?oBZ0RIJkD+yQa})kz(P76R>^na6$gs9qx;JTt^;wn#;}as{EOaEI%vd z$<0=}%osnP^cD(Yxc_~^WBSGF7s^h)e*01VyI4e^?DYQtpMGbh(5^nd-Z}o}5Tw_0 z`^`3D^=k>miY?nI0y7*>#H9iyEbMT`t{>&ZawW)<8mw~8%h6@MWD7-~= z`?f?SHg@!v#ql|m&2}xtEYaDk)C*J^B$W0PcniofOg7at zH`n2PTGf@l0|Dpqf77$T=&t_9OnSm!B(EHHRa`PXvacdjd+^PIN@m{cC=(r>FXa=k zKbBdP0_b;z>I4%JD^dL(E`1@IXU|-($lunrrpPg7(p#gwjpQu*SBgu3SP}iIkDX2I ztwxuCS;8P-SubEXtQswA_C#7!jBYpA3tI|nr0PWXdkKkYUN&Li6*F4qekJprUwB3A z&8WDQbJTMXXU)UhDq#&?@B;0I7xtI-Lm$?P4*rOLzb7oNi2i{CoL=k$PtpVPXoS`o2v%;^+p~fGXd7zY3wWE+k$q6 z_HAxzfZ+N;t8aF>sddoEB&;~ykHS}+UeBNJ_DEKHt>9|;n$LphHBMXR z!QP}ve*@}>=c6ZM2u>IuAjsVZ2L!nlDD>&yNH(6c1X0V?O!!51&uz-f2E(hTRf2OQ z&*MFqEBeGJIYRkHt1tI3Hf6Pw>PYDfsG5J-^Y0QYR8foyi!lI2&Vt;&LRzWLtE+~F z=Z=(^2^nfe$SGXF8lYHWt_PV&9Eq_m_FT9I(V6O<)b_<%3hoWjq#@bo3)kuK$aj<;%LW=bPTfT20#Mm?y9G zp~*i=fiKgP{{vr6+sHBGi8f|yIkx*ue5#bsvf5|ie~3>{j-u|(B4%JXfgtBLl%}b+ z(FimJ9G{=e+Ix5N2<-1P`@uQ@hfTZhE8hyeCxb)i2#fo0 zy3Rq0Fn?xJkiVd`ri}0|+b9>a3|b-}7A*Sc;KxrpvL>L)Yml44K6%Zj%aye)OJvVC z959-}B+U}j+qrM6d}a(jPI>10*&uM0;I<7hN?Fk|?I3#nTMMZ%2VJpsJ((Y zQoo5gGkc6{eP&XQ@d0;FEtfeYgme>+t}=Z2j29gJpWXLfOa$=n0~8#(uKyl#C+$Hu zyxt(I&k+M6CBptgQ^96Pjt_*b1>`bmm#vxNkGOE~+VEqXnEGc8k8uY1GFt`FOraZQ zm^?AL50>3n$KRE`@_18rN6Z zQMc%|0NC$;8lDTClN1j151(pO0t7B)n8qH`CMUrP9w3y2toEchzin9>kK}FHX|4)p zs2bHT88w%o6oG(Uc#f#6R((8VyL;O>An6)PIrcJe z3iv>0NkjTNC)CaK5gPn#C3RpS!v=#=^#5Gm<*mlON4Z1ZmtfOZStJk#Q2U z&q;Gu*X%2KSoW^xuuN97z{@8pHgTAIpK()8VGtn0D0rtH`P@rgBjmP8rGP^P0b4ydarib4&szWz3~ z=Y7ZDPxXeT<^;d|xb(E(otO2#(95f)@#Q1K6~HSbzhed+vR#Eh&p6U{t(adKR2*^xG)QDNvjJpGW5})CW|pQ2LqpB{+bB(nE zbh14H!{+W6ZQ-}=+r9U&$y$?b^HqOTA5kyCgZ6FzmZJ*_;i2LD_TI5lcw?{k=U}&*Z%Oc*MBJI3)ZgYRs1K#4*#cTb{l1eJqA?tc&to%f3u0qWJH=-aXG2;q&`{?(~)#$ za6elw3kM$Mxp2rFcN!St8;%n8E9@qp42DK@{%1Avxj4vP%a>8i9wX=g;da zjsrSM+W0}J>7q{psDW~J>-r=oiLMIJre5F;E3(A4o^g{Kgg&RdN(oFlqS{o%JH8K2jhw7+-XvGjhMINBh>BEI` zmw)}XRdLGiX=Xc!3~4H!@3Nc#M~zN&n^1J2)4=c_yHKtIBU1|kq!Ww&d0Y=_DtZIS zOUGQ%J&l|LG+02}@vQwDZr_8)(D^ zFAiDYjYk_TFEV!l!;ZZu2F{`YFy&4G8eK6QPDxo$Cn1(+Y1ok^y8m;k$*nhcEnM#M zeq-&9x}8iyzDJuv8bc!I_+&t0jdnCW3GJ`@)y;J?sC0w&i=y0S$z-7tjGXY-l_CQ* zlI-4omi)mpsS9;>mt>e$zIfz6`coD5EN_l{W(%;fu~m232fNX-4FpkG0}7C>j0sC) z6`C?U)YoYVAs;naHbhd&Z(IMu>A`U($>X*73FI3iL^KcEwdGt-9Tur``pXYWk}x03 z3nIU7^MT_kduy_HUB=7*P1=`wh$`%_N9{qzPQOK8g1bNt9wFftxwzl6H^ClD+|PAf z&w!L4@MGgbyp9N>kAw-=e%gR!_na|!?T7>mDqoDZ6}yEw7(r90*--tSg6#=^ zru4hW)%#}GsG+CGH?}Oer#AdKCb+En3{q{)JeX9?&F${sDi_aColr+QGXN|7Cck*& zwqKCZopL5N{AT=%<`;g~2Wd;Q;N0&*qN7M(T;rZB*(`1}2yZ>2vQjM0Lgn=-;oJ2C z4x*3mjy*Kj*KYg%HADg>=5yh7#%ShZK)ix0A-U+gCBUEoo?(>6bp54{?A?&Nx9KYQ$Lc*Ow)niG)?co%U^F{>So?oMl%$0o;OAsUxLoL3OA}PEzgYsCSvy z$Mf%k6X*M?duwu2q_8H6tK`rA()0%=+?e2A&}=%KLG}gm1NV(88s~2sus@Ly@i0jX z0C)76Em#ij3Pwr6aQk#h&N<_2lrFAa(^~e@-|n&y{mCrx0}tdT2sP7mfF!yEpk6ON zLu)Gi861EVi>89^44rhpg;lfvcXsQN>Ae24JO_X!1boB0-~bV4&dw&AZth;!7v$G( z>H(Mup25vr!01RI2=HrcwVoF9ZcaqO1gdesj=Ezipf@^#2A|=UwGh*zr(=QdenV#- z&|?bmyr4l7Ny&F_eMJPAQlVbBdyw8c9LpGM{|V%UOO{2g%`rBKZ>0`4+((1Dq;O}H zoHh2sP9OS^+H-9USnCwWP~iFO=x_=1#f>=~G`_}7p=h)$#!;p3+~0;zQD*&BkV9Ze zQgCRcLWf#dJxQH1Qy5+#Uy8a3=Zh%6gUZrR`~W2lxg}g2=@FiY{SH!@OD|TyaN^8v zcwAWhy0ZRD9B=U^b9eIJ<6sdj5&#^m_Bx=s);7{J@(>GO67hhm#$2B~SvH@KjAN<) zUZngw`#Jx)>q_AuZ1Ov5g7TA5aj+X9eZc^|d4MWEc7j9*us3>lt>ndoR->g#qa;0H zefOZ^Y3GN(S@J$Q;m8|xx2-rcms4)eKZ8#DNpowb5_T1y!HmO=rzs$4+dlLcu8!AGui?>_gBd}uaGoDYl7#QO^^p&T6kPCWL%vp7Gz-^(hqAEDHhenjDgCs#{=%O|%gD@_ zk#;6ft=sLtVtRNKgavmxm!F5%xpgr>u@p4gX|sKBDJNi4k8gC>^F_e(yaOrRaNfN< zu*JYFwOd|@!tq&{#WPtxGbhiXOb>-5;y<%EU!2n=G@IVFePFI*=V|1#WwI7N8m>WY zyQgJ?>Vqld_l(ElSmZ>T1r%}UKmLEByw5-8PFb@^l_3QM1HXL(QYW+3lHG@Y#mE1b zANOQCtIK=^$GOp0j@!bI0Vzs_S6)lA^&$OKi-MaNIy_%})KlrV4biVV6k>&zmNGq{ zZ~7wbotMf_lQ`=5gBpRlmdoF7_=Z(osqiNP4I&w`7MeU%<*6c zcVRbc6qZLx!kI?e`Gq!LfqSsr#ZC!=u0PH9=aC$M}g~=h{f>f{`uniPdz$A|$Qg2O~->-=FPJGjz<7qyEZ8 zikn*XVQHo5n34UHP+{;w(wxi9eh#hIyZx+VEnuqHgI#Nto2%D`ZjCnbgY85Rzn0Hy ziZT2Xb&O>23}nG%i=@-kP!tj|v=umybJoh0c9|rF?9bKA-F^-6o{^j@8wS)nFTlV4 z3Vx-VQlA`7>!R^clE`4b^i#cgX@FPK*|hdBkRV2HMSzbjQ(xw&souA$HPd-)`JZ59 zxnNB@ughYC`jO8X@-Kn8OTh5rmF%=vJWQHkJp5*TaIU2-Jhi{0PL(;I0VCz`T0=VIg=%dXd!7v7j!@z(Zoc^#YGjv zfYPYi&dmu%Iy2=W{62uHmZvvLpr?UDaDV|7B;62vAYy6IE8Sb*bljJbgz4S?a#eQa zb-45gQ48}|poiauR=2U3D_$_x`~!Z*e)`!A_hZ+P&w~LH)P<`v>JOwf|ASjtQl`t? zusuj$0c9Ite6EGMw$@u{L885}rXn9HSMw3l^es6H1rO_1&xBP&M`G>aY(e5KA%siR z;pcv$%YQ{fvs&kl*VV$;%9s{{I zb~hm#+V36!62|g=e=4#q8Cc zJ(jehOFTz2222({VWn|tfR;%GS~>t%tsWKQz2(@LoEbYeOseKvMj_mOe~IIm@|z28 zZQGEb*wNohkx1M@DZW;b3tG~;9CDG}IBjs|y5t)ocia`X*%pGBcKg;#q~6Q~-RR$U z0DxPIpzB3|qK6qnf){ctLDvO8q00Z1}{>-~c(+x*#(+|X*=#IgmD+ytzZLhBi8)S-5EHgfytQyU=> z(R{&ySAQvlALMo{hf3^4?>B*1CNqy;Dw{;H_E2MvSN8<VC=qPkqM2H_WK2N`F{GwYiC7ks<%U)?Q*iy zaYx#RRHP437Svb-Z zJp>RB3;sYA(;uzE;#bD;*9xPFs#CNo8C+o^H$Q!Dt>3Sx7S-sFW3#W2`th(={UeRWv}M$XIH97PoqGd)Y4Zuq zy>8mp?C!l51c86=Z?YmPGd&5;Wys&EGL>9>uvVScX!zX3f2S*EVc5{)BhPaR1;Y6( z@m`ZH!a(`DxQBmAU#X;%Um))^MDBXrd2R{>{qcx;%f0y2;x4(h+M!)V)4-jtvH9W7 zy4g!vfY`>}Eqv48Jca#wPe(anfdYWMTx#L}oR_Wnhd3_I_=>jM^o%c6evUs%P7rwJ zYzGuRJo@z~LT`b-$?y2cdsQ7W(?)k;cy-gmJpVPDeEt=^S5)rQ)yy3xseuq?&R^#= zzP5xr^j~Qo-HIb4`0h$oNtnLH-BBKL8cyB1O)YYLG+#$yl+C6Bs&)V7NEGqrB~J>8 zXCJ;th0{HPXm;yb&iaT)3`(*cT<1;9r$6RNv<|x0dqcMf3)P{V<@L^Ek>}2QJ_H|7 zcQP;X$0ZmAHa5elgQmx^GT7Qe924jGZDC=SAVh^CPJT=WP~q-O`M zY6k7)3?!meA4h)WV6!7m4o}s~3$`=Vj0}s&n4z$wWCFc*n1BobocpX`hZOfAO7D8w z(BI`$2?L3Vq=z(LBmRut;vnS9l|c;^CX(S3KdfYIWfoQJ883z<1KX{h4b{}hXRd`M z2`4s+J`QTW-trF7hV(t5CV2N`=6eQBNqp4E_#Ixht;~d-az-&=-dnIh@AHCk?&ohz|}RaB*ZxL-*Z!5A&B9~${pm=6HmB3~xt(%`Ga z7@n|tX;WX7Qr@%m1QP2{Hl9*-6$Nu5DOj8f?aTqhhp`H4$G#QtWPth9aF|pwODEB>PXc*w5R9+?rnZbFw!{v8UJJ9*HaB8v_%X;+VR5DFaBOKb*p*D|DrZCrT2q>w6@=a{;!6!Zv28(ReyNy9PTDkxil)60r}r z>C(*fQ!(^|@#9wx(aP3kH>Kdte9IwnnyOxSUjdJ}1MZ9Fw*Rv-$ltA`hyJ zgZX|*c%R?x{~o`~y@+-}QMbCDDn1oVM4-CN^t`E3!r}4nC;KMvcGtI;PAEV@n^S@i z*zLrO>WN&5fudUQ+7nipss?#X?Ny6diO4uP@!TiZD0Wj>k?X1td}YoLASd@I-3Oos zbboUUEU4$-52)lxx*Ep| z`Bs1I7y$r%ieIT0rQgT{mLV4-{vF(uGHa@Y=e19lr-%SqpWx@9h7f4eMS}bVDZ8U( zqRjs(`uv{1^F}TBL_6+Bexn&8hMID`|H<|L96ZFP?;SSS1|Cl;KN-fYD4_%r+*HtW z2PylhsN&nwO+VGW`E0a4lW*J9_O+WRNPLk1L{ z2}HMt)hYiM3z1a@&=YtzJr!0WqH>|5#YR0y*rWUkn94y#nWr+F^XK!Fmhh=lqN=R;I9=515D(kabW14I}|c3 zw&QpT)ji>%Zo0d?cV&|}`U5fP)`0II z^G&7SY>8@*0`}y7f_MXd&yjC7TlG*(iMr)){*m8oA=7Wvt5XX6>PYOFnAo@@i2&`X zG~%9c4F^+-vGdPYd{XIv5+_OiVrlS+=H`2ogE+PY!_;&7@%_YeNH8aS-`{*5E}#VY z0DW!hSWivZ;gy?4jjd=M{}58E%JO#d`oKpMEz+KR?9=*CP9A?(=hWcfLBd55wS1#C zY9(oiqUsOhJ4$6F{-Tf8^h|3U7>0{(~SgirW^@}B{-fT!=Pn_c6Sg0~A!j3rf9 z_}_LF5gZe9$d!^WAY(&mBaTA|*r^ZY7lB(>KEanf`T(FD*C`m&v(jkB!M2JLz_KBGqwruIjOGUN$+>t^K(|r2P1JPCL7oE|65^cC0q= zK6px>{K^ne_m#aY&Y)ZIfZmlYE)QqPrbI2jM^_%aVK7e$YH{wVQ^+EOd1syiP;f?` zpi1e#h|Z}pa{733;*Sz5^JOY4r(ys1VHhXg|My{D(Y5|3sNrAGI1nV+7BnR}H~&s@ z(aF)XsMO-IU2dBPDI2LRxl2uSO_tOv1v=6+Rgp)}<@XsWecO52c){0E4R-qtU5A{; z^4AZEKCj-7MyGIMxFW^Y!q`RFzKGQs-%(u?Kdps~+muHBZ2d94NH@l=_q= zO!aJPO5XCTZk)heVSim1KyaCGJA*$Bm;ZY{3vU1MHK;25bp87JfDI~zEp@c8 zo4=+~8vej_m~U+rrp)A-98aDu^ubZDGOYSnu~6k&b(S&%H>|Mw9{t^q#$vBuaJM*( z9x*HR#uxHGc%q@CR6Ia~Lx0`de^x%$eEIi!ne9!-QMTXLmX;RJ%UwTL{~e+rvnKJO z_pM=o&ubk2?VrO4}VQvG`p zl5FzImb8OqLm@0+h~Q&6!oxaF#*wOgrsjv8uzHK^ykgAfs*dO@;Eh4rBHffx#`p0M zBy0=flt?_pMRedeH48UXP*tzO@s6vW=15_EFgngW6+XB+=E`f>j7l5srNZwkY>mC( z$KQ3cD*+@Xw-0b}X18s5C8QVTW|`ca8_U$OL?^tgc-#h{WzD$0zSD+_h6B%U2h=WC zM)o~?v+%2$uRiQjJyu%4|8rBZh2;Q8%v?B&x95|Xbt~GF)^UT|Il<_=DjS_V;(Rqk zVu0^cvK%+7Gy^JZ$}}gox%8v-5VyWoKAE}A-2=mZq9pkce-Ndd7GHc|Y!VAMHD}1@ z>?|GTfMWTz$c@RG%e!{n%#JoLv}^B`R+migOS zY4=W3k}v}${=nA^BpJPMRC%lw=P%5!`J!=$;BxkhbWv)V(8lJ?orqX@xuTFFp^liw z=A7jbY4|s`yr1XJyo$7=Gti)=3^|8ys+cECo$IFEYON4~_f3W*?5}PY8KCszglPNS zomsg7pKcx0OVc=kCqnKy`q!cc?(JRpM=|!B>l^)I13uXgC>RGw&lx->$z(Oi0(*c@ zgk}tq=p(2V|Au-)K6+CyILqh^wAR;jC#opEPppSNq>oWILNg=AMn)=;_O;O3Ppkq5 zJDhdjB>A-(Mc!E!=(lQU*G&ME;`{JGDQygI35B?m2Lt-j4+?Hp@_@_6U zFB&6Ciw}2VA{5>sBA#ev*C?U^)8M@6n>qA$&iIENq3_>!It=3(ms+sHnCI`zEcUQ- zM5X+N#f!~w-@fvAX{WX$Tt-9-PWrP$FE4#xp;ZjP&@u|!44~X@SFb`oOeZN;G)Y6r z|J{7XnHa_sC!crvBaFqg~y($~@c2E5+<=i0W)jdd$Z zsRh3Y@6%}UrADH2kWi2u0tDg}RH&ATMNIc44&2`6}Q2A{sILzHHQ`_X=% z0~HmQHDHiPo2ben*Q-SKlI^|YeOl6K6PhO; zazd$(z{Io+XJ=cx>v*=|ibIcY-jjYsmn@@Q-%A)$my2t2YQ+4Kx1pMQs?0=SMm5Et zn@%|oPm;pAs7JNRL)JgG(1K(?u~io|q!N@#E3%gQ z+o9<;22orq>VAfnuW)y~dmi_sicLhOWr}z7`pbSp-DUqEa%Q>@e+}7(-_qVEMh>*7 zDA)GBw(iu(IRQLg*^f3!1G~o2cSRvoqXu~DqK;opc|OQW5Pi@tv7TS(JJG$f>_PD% zIPxT~+~h;j_mjC|9|7-$RS_A{Hnq?{iE^{l;VL@=bjqayF!U{r0!sB#S%C;= z(%A0_URo62yG0^jUK_9}yJ+kRaxgpd=#ih#^gmp&nw}VaZ>!St6)j@@`sPE7n0{o8 z(+G@6fV7lNboNcPX(WT>mh(5s_oYA8>jT*WxMC#i)RsB&P~7_OA3AnYOTCo^#L z(#+oIv@)I1@D=~2#CgC9KIbBINhS-k@4}a(+D$4d>^q z?B1>nNZBw#;>+F1>1Ug}ZzI0(fKF~Q<~p*tvR936z@U6S=|nUD!AK45LESf8y2Im5 z?Zut{_&x&({Zgo3Bzdqye6PzU6sG(-hUGb?@r7tx4!6Z08KoEZTX!y^&9mhHO5)h# z%y5=g6@m=3T0L!6AC9K4AyDNOc6_th;>b-(IM*b4c0K;?j=)0E@9?AO^hSD!+($Y8M zo(?_79LU5YhP#0@d$f`~xmup++`8letT*HI;1Ayqt#|ERt*!n=n*GFI$(P3(uGEHd z;&5NXJlQgkhL}wL8DQ$TL>kS(L`aWVT4E(KJ#jk+20pmTYw+9XOA!&a zqE7UL`)WjA5be5V3-w20Ll(k)(R`?P9w}wC3~WAHiT_0vt%(v|X5l!$r!n2n=-Y@d zMYO?LY(qW++4rXcOv{Vu`Cv*fRDQ+&g1))sZN!0;D-~+pP9klKQ2)g`mHCcynBH5e z-t))e+$6|_^N2<%#9g*A9VgcQkg$itC*60lX%F_MVheuDWPL?)k-!dPmHhLrM>+oY z9#M;Z_(emLBE5Yp(c9KmgTI;fbWR{mU7M0`{IGPq%mS~zjiv}Q+#S7GVCnP17+++c zRJE2N_A!xFY&gBouI6oTA7LkxU*gKB5I_shMc-|ABTH$hg?k3No=-|myM`~IImgvg z9)3&gV<#`H#{kxL4@5m%+m{`bS#cZV~SBF%U*GjFqEoy$%JuL-DAL8HUIVR)N}5*sS|a`szB+$^Cysav+= zN>6`~aUM*S+j!!~`vVGw0MU`RcT?pLv&02MY;dF;*=LR>d^uj3!ZrL`dm3`j-w{46 z6xM&w&q7>G`1hW-uJE#Pqy*0`rzl1G`yU7iS~+E?awOQiv=mj?BE@O`;<3@O8lK`2 zyEuDb8LHe~M21OHsF6m5v?mVs{`!#ohVGLoo>{%NM>9C==% zBCu~Us0f%<;9M(J7SEb%8&{g;?AMNwSQ(%wn*BOOO9BRsq*ieX*Hk4bpfpZ|cwg-zqd zcJNCAwKWuN+i*12=osY`iL^Q0wEAi4{U%7g`esaoyrONI+@q)Seids$9FE1MNx5b2 z!p}HhIAbYUA3HH-apI2~2_xR^yo4)M{cxb)A41xf=jT_qqnQu=4&Ha3C{s$qd`e2d z1mWV#pP_64;{*X=lTkM?xa;H3JUX+_myh#r*1f0nF3R1~!s5tYkN&Lelen;bRj5-^ zwfr-XPVP_uHREP&X@s2;R`KDo{ECyrnN6GAwV<#_vQwBtH?~>ZS>obM%u^Z`H;*T` zE?XdGKfJr^wM6&k*PHvr*bE3um^g?55^I+M_Gk&Gg>hZdALgV$v*g)V)xCe`Mo2k$93g3G)AL| zQ392D#{A-@WAYX5;(@DT4LO_(+E<=3OqhS?Ro2=j@j_QrX}8LHTKj57Oa%U!8EK+Q zYvQ{tL9=ojs`o9e&FonIsOS#vQ-$#AIGcwupD|Urzm?#lLHz6U~kg+LYZt@S56RzDW%3c#Mw8 z{EVD4H|@9d=rNysUksb!{SI0sG7KR$4+>wbqUWZpK&fj$tD)*50? ze|jQlU>oDVt7eTe#AHnI4Z;@I=_+yUw(@+;p`BhK^r#9{X4l886Ov9d#EH+a5lI@K zxLRwTQO~bgSdZE32$@3qRk32ovsv)Ke`^6S4#2(IaO(xRzVrJKIx1_s#R2liimzey z2Q5xhmtfTF`S5Y@f~^KBLN!UsH0B+gJ0JVCel{@eb+`Q|#3%1MR-x>tCm0M_`+lSW zOLo;g@79_*kQ5fXWO(d~0mQgzQpkg32*6&~?f=1KfF* z<^xRHl)i!H0Ddxl=rs3+^wfydL~RND!cqaRulbywhSH|=qi6z7u3zL^xZ{}t3rCcU zi?H={d6TGGP^_T$n<1sl_R%3I`U(8ZjO_INvV&?*^Z};`r|r+2+vE1*v8K3O{@y>7 zy)3b>ZyOUJ$nf*W?#$kpJ0I;JVSQ%%Wo=Y);w}OPnAhEy^O`w}j|@TIjvJrOhN~h@NshgvRYY;8d7_JF_kWtyoV2`fw zsYMofeOug<;mr7SO%hq+_az9H5Dml5C7pYQn`B-^rkkkeYqr@lt4SHFG-UIqL4ew+ z{AN_u#n>MxS|hhObZtX9_#}685q`dRUJAu(>TB0L-gDXg;}^=&FN~lweRC`deHq5F zK^Vzi|MJ@H>ESJw=X~_41vhG#p24Sys&`z76??!gn2`mXBa#~R3{!)uK_(enxj3}x z{=#nkz)H`*>94=!bkp}UbF-1$dlS%nY04L>VVRG4-LjDfDK~d(*1r5=%6?o;hT*4>FsBb8Uw}xpB7gB z%%N4plbKkV^V3)NgPkId_XN)rEYe?G$z2~?+$13^oJpqop!@|i@&#zP@BYI{MgxD? z!sQ=mfJPT*vYc@P++Bi7#qjz)NyR!rI{f-cd{gb_{(Y?d8|CK>s^d#}D|N8@2g=ge zElJ49BBSzkT00#VQJv4-54}%H`mOE~5S92`5$fIBP_ew=RjeD_I_1fHP^#xYc$s1DYP66b{kKWwra%IB z&Zly93sO8ro7CE|D{U=nIV1?}oCxUZL9vC>YBAfTW@5<7zu;t&WPI>{sOL$jEU0M7 zSqs#lVK;L?YVM_hkd{D)$2Dj_?fW;=aZ_7NP4fkM*CV>^aaBW0+ZZZpzeWcV(yuew z47@|!31h8LHVjjiVBa#eV?V&IkH?i*R5441Z% zhLO@K7zVuC1;^@!v~PXT5ogl^fp+HPK&n*CEQdC?j|cXlEUZ{X6t;es_d;Cm#Ggz} z*CZ16yZ8S0-;7(Leo}B4X|lb_{ZBP?sq+rDmy}~I4}=oE5~;Uy-Gs_wGD)7AY|)bR zF1_8%jPt9zc?m|9U?PL>T$Q<#mDbc}x6*nFU30&qHHAi+pi={EIo9tA)hmXwVwaJ# zbLD(DQ_DlK?-nVjp|8+8eBj0O)gK(&(O^ZM!cL3!YMzCzd(`%f^smr zp>#QETVD|t!WEy}rV^!7C91TP(gi&^il8Mk8l5xt!(xpTxIz}>;5T=0~JGLh?=2Bsk4D#fW z)j)}8M>}YMgZgB16}%ywVt{HtKGfXo1}Q28tx#B2M}zl>;D+2HXM~I4Q_{baur%BL zn*zP+VZ0?Wi(7)ltA{nK6P@iAmh?LXc6Nvre7)Cz!zIO z5qg1t?cgE52F&JTLYV0Mr=g|z1#Y=D!J{BMQtEJjxfm%uY^MP#jJE%ekQtCa^!Tv| zy;U8Zs{fiy<>lR>p*cRhwpF|S*+e-UCq90l;9H}~zfUQ>oR#l!qBCjQ zjy z*HZ;Gtq(p0EfeoPE5LZ7e>1iN_&Kviz_g$FMu8+XON6U~7D0^FgcKLh zif0t2qrc+r&{hW!#mE#k`1TCl$UdWR=Z&%04|CYOY4DDhmL-77T5eTt;TkG&*T+FI zt?K>D9>{VpXzFNYjc;tTM*BEd)o<{!pg$ZMY+|;quQQeMb57^i0mf~&zaR*(p~qb4 z<}SG~e)@IVa4DtixwLC!pzk-2p*17T%=gl0@tB89z43z^-&&uoKb4|{kB&yiLhrOc zYQIJay}J;yXyRY;Not!cTRcpbT0rMJwv9CELEA1K1c6#5Wic0|keQmqLCLZ^ zIk#HJ!1CNxKaVsV=ONYF;G6gmCXW)Aqx6Q>ZOmlZ>nYyFqvUGX#nAaSI6qw&)h#kL z2E!VmhH~uIrgpBO+)KYd8DrMlLj9Yi+lhXMozTRb){QFGygajNqMQXE#*Jo3qw1YMtL*ia7 zi0#Lg4?t<#(%sEhkiDEzutO5rys716h}#u&7TcziRaT9$=_|>QomX!9K?;bXuT;@Z z(2&u%$;S3Gj3v?te%X$NqXbPG(rYZ5pR}{MKgW8+T(3%lE5%`FOQ147`OmoFpML3t zv!rkzZ|sJ90qyWc#|5xFLMOkpF#3MPtdDt!TFiwhsj!l5?Ec9O$*3!|XnEVoh>V`B?VlC4=pH z<*~fbCsawzc8~xfLP|RXe(6D4rf^Y*YI>w}s%ehXG{zlMTt zi|B#;JGrMWsIleemt+1uiQ0qI0T6|w@7|le_S@Ip_fM@8G7;n3e+K*+FL5r7^FJbY2n_gEOUoEA)9RnL0T0lP?i~8Kk%Q6tb4<+C30vjl+tR;<5FN81U{6(hO#@ zyHl{0(?-0N;XKDDHHO|Vyr=QEU*Mjh2Rm5@%Za@3q;sMp=W@I>{%~NCQ)#OdZ287I z?n)O%KEi$Pc@kc@a-4EqOq0hK%lKc|3_TU;Ysv@g!HHPa=%0PK8548KkgK--jczyu z>-lQo_zUU&ssVB!@+ov$IW}wqbO;@E!R+8*io2(~!??4~;H!5>k2bA*yUJl%invX; zQm+k1mW8z$6CE7(puEhK^`bQq$2(Ik642>|SUmB zBM9?0oz6xZdXZLBiyAf6ABctxFHEa!w?V?^fHQUw*Y zTZi7pZKifhm*={+Dnnh7)Q91_Te)sS=jIzzeRQX>-D<_ ztyV&9Lx1UK(_q|InNkZJ>ef2@j8NrlbqGj-wyJE-gY;6oVn-#bwDIxZ4v+5_yCvCE z7AKLIxhfhE@oR6ZhQ7(7Dst}P4EiFiYNQD%%+9z&HJICj)A;(}9W%eNC~uI6woo0HPAY-Bw+p^UFNLzfHZH$DJAZ?k+%ew# zY*OzQy#H%=g%P8PKBG5v1Th9{ZO$72c6g^C5tD^8>OeDe_>FO@Tkv&IHXqm6RU>o) zHFgcHc>=+}k9&&FPom{HLe8&jkfP1k)sH{Jf>tn-vGD66v<7JQ<+c8smaZBPD@MjfP4HZUyV&@i}S)wec zCj6Y!OA4H&-3<&7xWXx(e2o+-PdtUc?I$gR z`eSPmn|~??FWHZ>8k)A*cOxDF5-nbU5zd8h5{6pjOdsJX3gi1eZ`^B(K6G!tgrXCy z@Cx4J0Fqt4mG$?0h_$azwkEEqX{rDGsB%wm`tk~a-sl+$Ah&z{$m(L*C80AZt!9^|>c0T@Y zie$g0QobgzTWmL>zx5e4^d$Z8;A}KAGqfQ6WLd2~2!3|7%SoLfVxJChj$=C7Xn|y) zE$!RelI0QjT>UE^|2f~6YczlB*+kcvra%aSp(KRN!KNw2i2mHxUFmKi!<WsW=*0f8>6kW$U7qZFG*Lll_Z0G^UuGQV1r6{-qf8ZbFX~YW$0ZC? zxZ6Aodv)ChF!ai)r<*2f?8U}u7gSQkA=qGLB~__b9fvx=;od*cdinuM#=`0TXqn>#LE4(>Ds8YLlVyTSa%z4!#5Y%um755RIS1~P@s zwra5E%-`}{mdHn0eG#T-ZpgS^E^rJTrwxNOU#MAuWhuXkMEJhzkMvc~wyjADAGRGc z8dPMl?$0|akJMLUr{KLDab7NgeY$W4GF^NO;J(T zDcn8oe~e@SH3od2g6_atvmayNr!_-&{QN5piX@^$lgiHbk3;np4^By$CiihDdx@ay z6d!35qX!xQY=QW4%h2OAohCeTDYC;67C=4P2VEIDHY^}Iy1X573~^UCYG;kVy#1E7 z4qu|@&F|N^;g*?Nm3HbkNV+T7IM)VAARnpPef8*R{P7#Sa^<^!3GBr0GWL?yOQ|F$ z<3)Q2Z<4G2;*hXjiYN(rpejT(4H_az0}b%RH&o`f;Y)CBzH@tuD*_FX+3&)die0)X zXAP)BJ3{FD`J6y?$5WHF{UIHisn{iW{}JZ$YfdPg@6A{pvsy^HYYmRlTo8AeZm_+! z`AR}Q`|)M)d|u&QutTI0kB0w3!$=#b6#NUkQ5zUGf|?`uMeRwqAJ!g>;dr3H1r#`7 z87!!aL%{>egY0romX+guZm3aURjM5O0w?GmDX8Klbm_C~v7jn;M*4~aH_bRkiu+f-G>h8rm!$(vf%*v&4SzBHL21r#>?;+|m+O5`ZJU0O3LUEGHY-;y= zR|pLqj6vgxHr) z7xs-tFHs|UCt8$2L}x^g-V#w_f(Rly2~kFZKcXgjbWx*5Cm1b=-U*`j-Uc&fW}lts zIp@RsUe~$i+t{=Aw)a~1UiW?fN(W~Its}M+;HIjklbSCpJh-{#;TpE$&6B$(sTs+= z$b0gAYEIz8nMy%&P7H0v2`>RNzIkv&$23Foi?^RO{k>0NIep)GNHxW! z?23rUjh~v8lhc|>XlBfd$Zq{0%SK5sV$R}4*9vG~(-f#_|E-V<7t7LRIlw=VfyBurZFyknl?Tnow+hVF|P6vj+(- zg#A=Skm&+K47djjSX?4qbrxI^@8!+zD7^HPa{!p0wJtNQlUA2G*Ov={C&;XH+4M@q z`*zz#D2*urR|$q7Yc43*50NLmNgE?c!&EG4^)|F-rSQPDVM+3N@GnTs(LwwI%RXP9 zz6Sli0|Sat7+189K*P>K+PB!~tHb<3U%j1uxWfVf1dhv9KV6t-T}*c(@#4J4<_lN_ zbZhn|GiFWp;Ncp-UWBKV-YIT^JuLr=g|{il1nkJOx@NzH4?XY^yLyuq-Q-P85AKh+ z$XWiWXwpIC_v=QmoS@yOmzYZN__5!hl^~o^Zkzc*+J0o>TheU9!HPN?Y{iKimx z7?}M64acaO6^BF|q|XC(kA`{xJLC1l`uJs_ze_1r#|ArD|kNy&j+u$s3aI#9*5+h1ip2>#i0t*m?oBEiuy+d1Gx4lbT@zE zYs}1HLO<*K?RG02y=62(-T)`;A(M5Kv#?R0Nw|vheV7Qo`u-e3@vKUtU=Jq^-r(ck zjN%SK59ug{_mlS>%#^l4O9U8!>?{)gi*t0Ow8QqbS?dE+l>w}K@)L$)K3$o9Hh8=C z%Z1CN&8eY1%3xBk~hXIMBH)U@v5%nv20**9qc*y-U}S7*KG0PCN^ zBh7G&6jy}i_E#EI5`7TWYXw{?W*k1m`UH5bbytx*;;;RIFcKLhbiTaCoUpu>Y*0## zgG_O0hn>dDas|`)sjkqdFog@nyAZ_v@XGX2O(vpGh~oMkKj2v++h1+p)%zk{=2ht0 zw*xZeP(xSmlJ~_YudSD+B7mCmIDE_7 z8u!r9W`85TZVz#w@DT84=VB-kP+hTvQ1NnHk(?o8?MKbi=him0Tt@QNxR&uQ0pV`C zs`{A)bzJ7cmxHT1oO?CuxtHDvy~rsx#2Oe@UKO_T>QSWO+0cKWJpB2XtlCrAHCCZw z;d{K`ZRs(0@S*d*TbPhFSv$cWZk1sFbcKrd{&b^*+d<4c9|gH3b3eSa2e(WezYv;eYl33=*5&0u>Bi!8juL zkQ%G|6y_DVT~+Ig!1O8+Qg7OKTk}W_OTF9M#!KmNSpm2Xnkb@8I%s!)S&HGB%p$~o z9#(ndQYq1E{zq>1@OK?;O%al_69jAPnmKgZ}2pNEDSpYWf(?GR=(|>LJ zY%q&+_;lfRF>4i2hGT~X?zr|v9H$1OH>u~^9!r0-uA(ak*g28+uAbWHw4I1x&BVx( zx|MT#3$}5yfAGU;u7njW7A@Pq5FG+bz}Jh2oS?El3T+&CTzx-ll!;QQxG=G2T*Ys) z0v!NefiO$B#w@VHs5YqE9SD&VIXcggiiyAEG=B15>vkUNmHb**uT5q#{~U1e;19>j zL@s~ZDXx@DepPCs(|15dMTsNL`PNlEz=rIuPOyAz~pb|KDC@Y zOZ9>`NEP@chU8liID54M4V)xyw#UH7bz!M*mtD0`l3V%@-9XFV{mIa)Mac8_>Db+e zcVUBY#xhTuKWqebuLjlzTXh;eBI~RUM^|O9o?0#W^8i<y37+OOfS$dH`+M& zA=i7&tsH*zy#+rb$Ya2a&7q=pBx`~m7ZlcwoZ0|uqMgzaB>ONQNIa%YPnIyp*`zTb zq5=S28eqe~VJ*%*xvCD0l2QH+@6}h-RyeLl;7V&V+-t6eezZ5w{#mjQAahQ8CxCi+ z^!FGcW8_*KxT)46;2|8ww${silfJAr&e;su8}avIfq|162C7SW+Ew(1A$%H$2yM(-8b zs7}LV3($Sn?i{ZpMNoDw7n~4U&TCBScGZ8Ky6MNL(OD}!+i0o1KJ)(SiXSb3-`~Ul z3fDO(Uic8ST{Md_N2Q_4mzI3vj|Mlgvb}fBXHlX`SF3&NBn(jzSb-s;^Zoe4!*)o4 zyZ@2!{V5y{N^<(dDr4M^6>1w z3QXBSx(bB!CF}|I4qkJfe1%8j+11v}0Hf`g&M-v&hlZC~loM3fldjqvUj=*wfuGRJ zbTr;=z0PGiTr39r*8nGxmN7e4f*uU~NLse{&JRU2%+XSc$+8vIH`bh+YD zLg;u2%Uf({!xTiN=Yi+3Aw+(|f(vZlImKUm49(77x-aFbyxIk|c@xyUwC=XR7g#}V zUlAT@{JC*yqHs6eFvxC;=*~HO?J774^vc<*^U12GQ}+CM#mo7n9pmfY+<_9|pMP?5 z=|7Z>W>i!`A>84xm%n9twFF|GRIQ&a%Y?TCdkr{~!45wjYc5)WhU1M{@3f)aAdI$4 zePH>`WbC9cbwGRY*XtxxLqj;W3=Xnys4!21w;ET*;gJPno1fuZJ#}^ah;fRcGwOvG zBrK=BHZ;E4kPA+l*cLk+I1$ol3|I6One{>+0_EJI#Rgc5z%An(lNig|yvTGsr_9E{ z$0D;~??YPEIw{WJ-7w%w@EPi=e|1Nk9{bKv*$m+6hqR-jj0`IcO8Wm2QPOy%K;grAu(1DibOQLwa> z91Kd0=G>v-3cf{%UR(Wa%hMxkPZs%~;^$X)X&&&~gQXVnPfnu2-4c((n{H)=MbYT( z=rqZ){7A5c=HlhJgz7uhQMV)$*MK5nGw*(n{!HF(XxixJ3_L!~X&;#f4y;xY6STM8 zr{D!We4KtS4+y+K^UmR=DsVow2)><$Eh|ciyG=9eY4na7~*0-L7{S z?Vo3RWs_D*IOY9*Esn#nU} zxKMusZiv&`HHY=ks9?lr|M6S?huT5>u(w5^hed_=uGCCmPqI5zs)8jp2Uh_Yqz>L( zj)5o)LBl~RL+Ze_=rL1E{|`V}d5i3!?@7kwNWf7}#A&1VC=^RFb8G>m8`EszNevfv zH}oE%4bR%(0`QtYYFEKW855cdOJ$`5mza)_9 z76MCSo^QQE$AS&DM$tsldh!`CId@2K9*7C7KO&r~;pzV%IUvmK_jp}#B&BEeCk6?)zgC)}onGh?Ot zFT=IQ_e>14|Uy{SMBlybN!( zpSl4;(KH~xXwgf#*Isy&QncU1#<3k#or|JVeb-|j>8mGJkOwV@uOWRx{Bfru(@>s! z>$8@#8CB%ddtt31^424LNx3<)+}k@Zn<+{L8)7H4n#0&p`M2yd4co%l2G2<-zT+C# z|3u{wO7}^w1W9eY;93kt^%cK`BIn`y*9xr*hnM1!dOr`bX8v85Ct+%nIUA#;&%J-; zTsSQ8?Ykx&1vdVjP~te*sVfR(mSn~8^u2@P81^rj)q8J&lCXf$WqM*TU3Sp?KN$f~El0}AN6zkQ7VLJ`Wl}_?@mta6r zn{jXs&P&;!R4xab_fcfiR@pg;8-k}mfA>+XQSKc*gNfC+TbL~x9x8rXyShjC1m0PH?RK_XQ;hEj2DszU>(`)+DASk zyaVQhQ@;UDxLg#eWk$&`?7?~rY=;Y_HQ6>AFWg?(Ug1krWGTx6I~r!@BR4x6cVJFVM7hZ^Fr=q>joa)1m0E9&^e= zpqHL6i-rd!tLTw=gQJ5@(PtV9E|lKf}+MFZi99DtrHSXoH@#4B~50o5#ofNXikZ2|0vB4pcgkVr zxtR8->@`r>r*vxJoX%FK6QGOhh1WJh08ay*NaPAX+i0xo`*T{I_U zNoI9)KV9pY#k0i~X(k65NfuzCfkg{sc*#Kr!0q0GWZx`wOP!gPQ^=6yRXxsLM9=<0 zZmmvWp2;)L9I)4O!QIS2j|ocBpQ+JuS{TY#^XvgLVbtM)Tm6nj-f+*FgJhY9{0wuk zgO!GkxNFwkFmq)&EUs^Eu!3qwhP!BdTQFbWW!7|~_VW>z^LX=SCc-AQ9n+vjx3n~mj#`BQtX;`p{V%NOQA?rqJRnZO5SKNzJa47&OqZ#rC`1FpBngqP3Fj|`QI=ivkR1wiGm2=p2Bhobg#c*f0+>qt+EImM&IA01?hAMzgb;Js_VQt~|$ zD$d^X9&;Uae>sls$Uo?!j$ip8z4sQUYBQUiL=0U=3?nmTF!vFeNiO!kIk-D6P7l$k?yDrpCr&tx-hO`J` zSIfO8>CJ7}UpCB1{5f0l%Kf}efv-(hZW^B(ekO$J6G%FB0yxfA6UurR6#upw;qnJW z8-1wD5_ee-;merbx7S>;m44>??VBnQ+9z?e? zfUSC>tbu)Z5&yfDavCEeL04Y8JXC};hq+|cr3X&D{VmU0^l-B(aPj@%@GivM=4&PP zJZB;tfpwPkq1+^pj#~m)U`Bq4b(PA3&)%(9Ouo->Pfd9q@T6sL;`YSDRG5erva zBNCPi`gM(W4)ef3Y6$WqA~k4pv?`x!Yz?JFRtQ(ycc;P~x15iB-O6y*j(CxxBpTHx;Zs@CL2AzK0WNdb#Fqf$)Gbqv^yBrZF9Zok6>F=##nUK z&Xawn-$eYXaM`Fi8%N79}G zKA7%HJ%Osa_5h%5XZR2{Sk%T0#ie%+KM=QYRoYnPD=Q3Y+lAXV@&aVPpBNZ1a9J%kjGQuepq0@<9T1{){%H!mWeNzPsot`Trvr)K~R%&|S>XV7O{g5L6}fpctz zTBCUF5a3Y&685q4DvC?2r&%+Nwd`F$mpFi?W~ND!e~l|%j(?5iedUW?`1JJv$M_WX z7r4i?cuvE())O9RW=L>sufTS&OT}20BZ3HoA$h#&(`j;1Rk(xug6* zIPFs5X;@KJ>G%Xk##5|&KC`{?Ic&y|u9(=qB2+cAx?Co47SknC_Mvc|bZD*#3wcma zL(VG|6#KkTNm_26=JYEd8C>xqAfj0_Ro0f-J<$A>H zU^o|ZVSk7(&EY1t^N7lSOu!&J&vPiMV%WXv`FY}_6<)W?b#apU0z>@6lZeo7!x25F z6&J-DZVLfcH_O+L;QT)rl@kyb#RrBw@rr4>peUN4a__YD0!9txj>&}<;xub)H+V(* z266Y!`a_#RWz~6{PhV_Va|5ajU>My}5;;V|&PV0>MfR&oMY{X7p2ekNA8&jn@s1+M ze?;xPL$@vK^rIf-0_uUj#@5>47-pceYU}%fXAlw0MGiyP12$EyUC@$t<(om1OVcCfFRRI& z0KbiE!0vwe84Lt9YmI}vF>D?vi3&VyBx!!4O;W|Z)C($D0}t?#IL1-orsI9Oj;)UF z?s)eXvYlZBRNZqbPi0UNsw_r*_MM3-;VLAo+a^m1!6Uo{BB~Rpd(}6c3D?=sIkz8a zWym4E4la%!RYFjE`uP* zTGn$^tvnKhYf8I~2_CvAWV7R1aH9YDVgvqYEB)a2;{H`HZ)E5{A{bUfs@vXxX~DVc z-(EPDe6@0mPjUWXzYO$FO5Wjd<0dosygk3+#r&4QvIpNMiD{C!?C-wi+s}QH_HN6N z)LtESNpCsnl(8#A|Bel?lGu-hA(vn0Z2@sjI2Y^N#y}Z|E)(yOK%^q=6~izR!4;L&K)Uo3I9atogdC zGOHDBNJHB+d}{nIvTC&q<^KBnbHjR^F{>|j7E66Y-oWrd2jR-s}4FUO#BwfM7Wl zS5$>!iEO0f>JNuab+CK!{VR1|iqv|7pyc}=f+z=Efe;s+PaYc(*^+k*!Y4JJZ@S(S zvAS^NM-sfwFtKTHRmIlh_y+Ejfvilof80z4YBs6rq^=L&D&d4L&DPV@dgC@)t5AXL zjEZp}?Htq(xA)?<*btr4H-#h_2;Par*R&2_SA862!1{~RL0xfBn8r;cgjT>RDNpuV zJTkg9M`KvBq$z>y0c=I)hmO-X{!0Bx4lLMg&Du+_BkeR~1HlXXF5}ygi82F5AZ6{N z89-a|6|`*J&laD3T*4?U%vWcepv`YaHKoLoJFCQvBJI@t-yi+h;x$+jR0C;sSe?Flk<2T@bt6r+G9`7DJ6b4dD_`WrED;R5ZWu-q?Csp zk&geJ{v-CkdV1IL3L0(v7odrFytf(G3@q%WB?FflW5Kc$8WfAOS;R&sP0s4AS7v$^ z!}s09`(w`}@KKanx2a!h{MI71>(RZbtzVEzQSin_C!~juhC9zpxD?$`@$7{`HXa)H*PRvy1hV zXHkwZ2GUCuZ^{GGt(mxcd2I$}A8pm$We_kW^#@N=9lt)tcv9XPKT}+lM9tAp-AW5y z4k!s=*8@Do#0QVg!ckToVDHIJFjo9EzRf+OV8+jc{ogd%Z-rJ9`pXuoN*R{*l#aZ* zJDVHe5o{a(l)(9Qj5Qav6p?Gdp?lTH2w<|5i+%O<#u7Vv$`r%teTW)venk;|T4OU9 zxEtuSjk%Na?}$H>A%uTJ&u<5S!Aq-`keiRH1SICK2S4BEgd|R5Iel|u1E{$pX>+`k zD34%8^+A+q;%&xDjOYPe?pfp{1qK#I`5`tMk0v%lV=GE0C^Im`sX6VgxygPb@yypa z3R#swQVD^zX1b`Lrb&hstMpSCBI}Rqpz6Ksc4jjWM_(~>keXo$SgYKjue5j`tvPy% zCo1BRAI4(JNTfJe<5m0X@0TiT+i;d><4qllFs7aEtf#XGLVRE!$EZ^xl-2?)*fuQz zPnT|BVv9|)5BU_4I7b-4I%~Dt(noJPPHURQ@}PDW#*+~`#y>&YrZ!9l%qoKfX^V2& zgEev_gliPH9GWSoh)NC!&R(q{Uf1Yq!T*)4coL}fG_W-@cmk!fAS;&-#4g7)g+pd7 zp96{0rhkE#k9115d;vA~_aM{lw5M$eILj{JlT5{e8r-e+ZL=&b28$oOxgXL^XpoRbbbUFF!D@Qd&TgtJ2~6~!met0*E*E82ZdXS%;?D7(LOdv!B| z64x9mQp%p(c6+r-EC+R_!N>8)Yxo>3Msx znug5M-USvbfw-^2UVF;(Jm%2HjGOm#nAmK|{=L2MLD$FIs_h+5g?cdW54BeC8j zUrISvyrmb@ZK90jIhcbQ0yl@>jANI<@bWl4=PO_d_+lei#T%(2us6DY0WZQ&e#tkt zuY$T-fJSOT7RF}y1JD&w=m@|fe-}*Ma30@;IRqK_0Oxj&W@O1jap1V;I;0AgocKc2 zMp-iYYSkQH7RfOUxkPkSk*fApJ|$A5-j7YA!WF*{oRJ5Q5UC3z(_Qsf9TtSfz)BX~ zixLtKOJLfj*(lK2uy3i06MHD!W4aloVPVs`{5j&+eIVETud&56yn=wRfTARUNthyF zPO==8D&GZ%tCpVHQqWelBk!*_+c>C}_ZhS?AQy$HU+3ytHp6^2=+S%V)Q!g{V2?7m zB%CmbDE#Y0zNYVEZ|SZU93R&;7*tI;OW0?Alg|M|G;?E_S=H3}$=k7yFQGwXO|&mu zLUE7Cq#eTZbKiAq(0HjYQjm|8Cg8R7QA+LKf9}aC6ZAqVu5($?`VR8^RX4BTmRj9_ zaaOg4(7Y*Jy|)}=UaQfX;f`~rc#>ri?YaLHV7^^I82jVw)(nQ1|19SeoFW{|l9|;r zh(irfHKTJ1TXh7KguMb1u=z{C8`I?d!&4mO)pl=Cj)&L{z>~Ehvp9lh_+5a($Uk2M zWy>5J>9>@iLA_nVsA&D#*wS?^W$U@a>MAX}tbB4{mc5-vp__`-wHgb$=lnVeXXpw; zf5cgY`Us+iZzs5<7uBK7U(Vs8LIiI0e>4Szr zWXm*sSZ^3%#``*d1~H@d9C&&=l7Qth7TmU8#kT;u#@fzPH#uVQ?}0vL<4m}sB)Q)a zcjh2U3reV(_cxW|Wsi*TSsjrUV@?m(ZoA24CXzn?Z)6SWo;2)LA1-l@>;^lHE;EQd%H2jyzYHi zWD8keGQEP9HM9Wh{9#DP(`t0-6|@p!1!Z8hcBj6ATV@2MZKG4EKZNlskWh(Y=nJe> z<|+=HQ=gc@9(^t{x$WPA@=nDkh<*1=S)xnU`Gt&?Edi@|+pqhbJ~FKLw(e8P7mmw> z>j;U3w@sp}W;$Md65V(Lv^9Kct))tH36He>r$kl$yo%Av+%{-er)(d39Mf_&g{2Nq z2E{D)vBz=mfZ2)52mfWu8tv-*yDv)w{kwCHuHKvYlBMsbqj8#FsXsh>p?Vo0-`un_ z#u!- ze0l`<0*UkB`=Jd$DY^MC07NrO>(&b9O+38T~FnCksIfNRdB#Wt*Y5WMoGR#|JXJcul(Zm*@ zFvt|fYI+(>c6cBimo_y0pJtHD!5>3|s*d2kKouBO8L9m|p$Oh3AVcX(Fx@~u8)h~& zgjP_h?a?lt=FhiHbV>IISebST{!p9|`%AJa&Ui?ziJZhixt#DFcn(dO-Gn{%iZEYb zeW6f!sP%u>&ZYj7-ym}@?0!3s9hBi7KqFraL(9I;z`+Fs)UtCQr8bP(K}D|||Jv{4 z+#6Y%=dlhxt$Wz2(mb}hkR;@j-e`sTCys`#YE*h6a`sB2*SOLzBR!_qK!x zs|)3YC2+ZbX~I^;zzz)A-P4EU64Wx~O7{^_kKF_J&{g{|a{HkMVp;H~&+02s0LP=8M4-?i-6=FKmCjarK)`-wynr;s1A_pnS0|Zs5OOM_W!;3kysm zlxW*nn4OJWds)^gu^~~AMf=^n_CSJ*xhxXL~JW@n^Yt7=8kpVq4~_APR^ zz(c4oA}?wzu6+*Or48n!gD!HJMVHU+ND}_ajku-h%B1+(OcBE4rx|{a6tDd28w^uhIYU z5nm_WS@m4$a6(W$l8BGw%Qo33<64@FJm-Glh9{7m;P^NzQNXM~Gxz`ayzp1QWq5W$ zj~_9Xw=I#q`aWrGvG)Nh3TfCG`#vf;{x;=*e}dP9Vfi6rrolMxyHhqN|DP7X6Z}>) zQp-1c>cJvWpD$zHR!L-&jCd&y5Zfq^i}dNeK}b7u?4r`0bvcd+%F{J&qSNib_LG`0*v2j6wsjr@dTmuc%^Yoq9?mPM)sL ze(4Rb7;|{(7{bZ)4ld3~PJf@*aG}?5!Jq4aL)Xq)5psFjvn8SiT_vZ5;Zu1C=m&A% zYkqdOzN-xB?pd*z_6R>Ui_7`|q+v)*HyFtUk zx=nDDot_+#1NeIwP2&@*>Bl|Ik8QdCBS;^KN8eLWeEG+^xrLYWJ$lDdPRP`zy8oQXa^Oi)qtp-u^K;U&QR0Q%uIJ5 z!SpD2NP^i`Erq`4)Fhjtgi0l&Y(MsSy2af{NujdmZ@voFSH7mtyrlfg)!}&AB0IM( zWuy}zlxnn13~ou2ZP{Wpkjr<>dTX~3Gtk!`Z*wf%dK%|W@^Kcq-16v!Dd)SFfG zGp^65kJ(D4+TQ*3p}E22I5B5EEIsKJ{BWSQjl+KsouFnY=<6~Pn|A~ZeeU`8@73^3 z&i)Eo&MJLGbpGrg_XK3TuM=cNTlnW{i%w-fcT(ph)Ub;! z#E*Qszf4VIonyV<&O3vI)OV*n``v#=j=UFcc7^aDNcP)dIVXC01)qvPd|;!T_rBWD zp3ZB|6oy*bIyFm){C4*_aqk|My7NNTsd`K!psQ(jp2>EbL zTt@smoYenR`qzJ@-C*GS;%Jl7 zR3e(wB1bc100%Dh(hLw?VIdiPG*rw-{-ZH$8lx-H6m{8CHUmGsQzY`NSG~K?g;Anz zW%oPruszwoA5MW;h6+nJO?8OmOh^!z=N-N;zd@KqiBy1^eq|2rS5Tda?q!NgsM4)1 z0l_b#+4rB&&d6PA!j9jDGJH8oGN4{h`&Mkd%r!unx2V#;K=sMBH{l@}JX3d}7U~c( z)xia0Gi6|2j%KaRBBrm2`ZRwrr-F;phB zi_uA-638=TGqU=@z1Q|tYJH57mnC`IOHnm4_B@I}XR`UD7PIl&Y=uub-a%|3_l4jo zxJhZ%y;}#aQoY>@JMpAZH6&o|zWF~I;9t&Z?Nvf@APlBFY(7Cl-oW;fdOs7vr8NJy zBRE60UFi2Ks1U_ccWa29YclJ50h`R|CLQ6ffS=aDR+RPnyeF`=2JloWkv_%4(_}dr zAu}!KqFjGdA)wgRS>Q{NL^c)G?C>$E184cw`o9w~90*}%10fcUE>CHW}e zOesV%ij~q+B?0-$fhK6NJZ6i+p!?aI)1uyPLk{<%Pvsv3;{3nxx{bCTJc(fSue|_; z6I6AP(0hycYn@upr!fm(YlyTJXAG$r62R@uU`}|MoTz>+Y#O{vdZ1dAw3irl@{EkW ze|G}eryESG-1wt(bynYY>yqw`)%ga`%(hGg)#sNF2O^uCZ_lc}7=Pjqb}OJm3VG}v z_quuSOhgrjWlO#M(99hpwc@b8NV`{*k{avzfgResj>?09i%S(WK2|;1Jg8kC*=;RqEUI zwCKQp;hia%9U?z@d}dM8{^l@n`@!){h0jQ(6~-Y8>Q4M2M$%I;KBu4kvMgPUj$aY) zXAvb!ATEc(URIzQbq>QIKueF#8%8#l&om}HZYCM~FIr1`ZO5NH5=FUsgN-^_iW*ID zIfCI;!x!lGT3LG3UwGEo06bu*J%MwFlH}d7BOvE>dr8b;bb5(EJbV`I z?5nSEE0Xd6)mSqTuc`nM{Dk!cttTqQTm+QwV`|@F`xcuzK(S%v#cx!Pe+h;m$u82B z%iHZfF{vZSk{{fsxBf}Bo}f!_1ST#2hy@0|Cd1Iz26p-Nj@6CUZDGbPZAb>Sa#=#2 znY5k62O`=p!fB~M&L((ed%o23+5whw@x7%|=N4mM0s2h%@Zp;?2%N0vi_7fW@jN59 zWXLI=I)U(*VxihfuICG}CQ9l9k!}>q`9Anj67rp3xOrY&A{WZeHLg^3)^>N>F?Y+C^hM);6(PN?y z`j53PZx8Vc?^I|Vq@z82;MFa-r)xjgQhj;rXT`sXGM58tt{$K%|3mWZ7u7%VW|t#e z$)#EeoGHu?9G=mY;S)A9Eg_zqcjX0XfaFGB+U242FkG?9FHdWg^ei zKV_KY9Ec4oGsK;L{oSqjx7+G`p+%3}`32z-oosxyU~bX1q?+wrhuDN1-#@ahzUR~K zXfx8I!!M0!_tWx!?9PYNB21MUMv-)O>;zZHAqV|uvxu<&Bve7I-CG}+SnTC^+T~`X zN35r@qpD6f=52uU@9^&|;h+@d^uYBEJceVI&-O=lb2(YSC1QOMpd@=Qyuc5HLjBfJ%1>O|zPX+S`3DM=l@ydCI9z zDP7M2rni*taI9~i=-zPs{~n(1%mlg)q0;v)0sTOxME>9yX2BjjaL(_CN$|69wZU0l z&A!F7AldvsyhBB&hNR1Od8rD~1a7P{fjwqUzACn23e^GPOkLsatKDy|35J=~nXq}I z0b!7R4%tjS8#v7imP6E$obS5yJQm(gMeF$U0d?zz7!w;gg5aNpjcVwO^gXl zsA?nUZEF&2K)5dgy@{FN7%Hx!6{yIB?FnxtV6}O!?l9sbKRiA z)-Uk+QprcBbB%oQ+I;Is!o^ zpXuP7`*cx-tzLm8uo1{%XCRuzb7BBh*luF;8+zy`gh(=vqec#*3YF3fVY~*Ga)>GO z|NEa3;Dh7OK}ZG0iEf`*wZ^8#U*9-td^em@Cnk8_grFL2=)Sa;?_o zG>N_5vY+k0!HJVU9UE`#?~qBhkCXBFw-u;${PBt9*)hDf39wLf)gOTa=Ln)9${&xP zLZ#a~{z~Ct&koY~AN6=9N9*6kRwmCFN$QT=*@W0H^SAfnzkiA5z!xQ*2z4V)VWXXp?vf?W^w#R}wuBdL zLN2aQ?o#ujZ{vbKsw%6Z^+BO6B%+kNhtShbFGRj_tnaa!xmBcSAOGfPORiSkAVhb4 zS&};tlmZrtHWz@g{PMGPBVA|m7(EvBpWO1c#Hs$j6^gz#hl96Gz@}(K0FCWCApIp4 zV&?Dn{Xfn(Twx!D_r^Rpi)g3xNn6&M614jtQ^rX0a>%kh^zXHYuo`r^U+KTWUrWcV z{9a!5y7jW#)+mQqHH|zo0@&l

~n=L`eGnrv@j_l7|L!AY^6{8(|$C-*Bk>{uwGNM_E+gM~L2^bbqLNQ}8EIrE&D|;h*t#Za_oMKL68-qqq|h z+C7-@vO`Kr^}0g#n$Wj3$`gq|W+kH5mpAUz+De14{|ayj-R>wc{? zhlE+3)Uo#>)<_M0#+;4nXOy=d{}$TECx!iBno z>1*9*W~1P`eWTMA@2Yn29?Q$vhPqY11)tb+{}`U@|CeqCt;Lj~1X<${ ztMHFC{a3|mKBk?)j$Uz7My@p!&o!tmrlb2DUIzsIRxVuAJO-j!e5KPPG@Uw_ie6=Z zRFTgcA!E-rARF|of9jwbEwv^VdQO_`z=D#*gPg`GU>@h-I1$WPYa0ZGW&26&?|A}h?kuAlwhd@1UA6<0=;=MAk zULfanSh8_c=J@k=biat~)q7Qnn+TPd#E+yAZls&C1%kspn;8NhBZ+^l<691_zfuo4 z+c3r#TI{0^IDHubeP|%&XF|$)xcTBrgS7fKh+eg?IvFE8p}X46Lhq38}#ETl4EX6#B{%^OS4API1}A2%B{3Q z-jfQT=F%+mg+8>)$^CJRd%z(^brDIY`E{*H`&$s-60=!X+HE2^Hpk-vL!6H5<-L;` zpAD-xI$&!BPV+3SjJLp{fvQuJ0~2ynH2pNuefM)g@Aa1dM-K`b%D@8VUzLtoK{oQ+ zt+(qQ=r9oX{hGX2@0ur~dZPX=k}hTa{sXG}wnO2qR1pWFbNcL2O0WOhu+DVc$h23i}(!5F3Mk+uJv+ZfJ&kixNP3Ew%Enpai>zQyJFeQZp2Y5b;f`~Mo{e=awtr}DyjKOwr;GHnk- zw_!q`H$bueskak!^U$*CbX-NS-#W*`HyQTaiyKKy;oj;L%&GF}+|1(ol!AA_B$C)E z>|Ws;oS1xDr$_MU?6-oB@|5bfH8uQon6)^k^y=dkDIE15nOJ~R4hNl_@SQ1oeEw03 z4cTy!(%4q~J2`yejNz=f{XIpghX$$&y`2V!KwHLC{y7??y?8FcukvH=HO|TfcWDE- zEIR+KTPm`$Y8Pl*av!bh1NB_nPul@)$H1%eZ;tfH2ZLC{GAe8o# zumfH`J*sRUzPSvDcz%(WE8u~J4GDN_w=*342J%f*TDg;MxA5u7vlDc1=`bt~kgLh8 zSPn~5mrqef65H(ge8m4`)NH>I>fRm!HSND5T>2XKeo$eWe}Y#8%UNTX$cs-(f{h>8 z3g`WP$9`FxRQD!1&PR^ZJI_1dBK6$y2&&t+nh-ccX3GpiYdo8WVN>tTVwUsvpkfQc z5IN{`&vCi*g6$xS{o4#;+GS!k4=S2{LhFutt@f@zhToq2mW@T%d34_2y`Y0;ZL1ep zL)G@_Fiv5c=*(X@ck+w*W`xIIx(TZF6yeJ@dTZdPGP=~c!dFHoH4FH85e?jgrO(s? zhYTpcTR!bAfW_PZ+HQ$#5PdiZytQ)Y+pwCn*v@oR?XJ&+XG|gXx0^p1{r2uh1d@i; zsuLPVut%tD^L)^J!_g9*yRPq~C=T8%J#FR=6OIid;(}C6VQXsp^|AoEgG8VGBkFN( zD_gm12fW^#3Q>Ck_-f%CEnEE_>XWI)rO3Sbu}(w+6?Sdve6Ir>Fd|Zd&uS+v*X37I zIk6kt`q?|7@xzip?FHwSeg;sZTqmtT#l2TXZ*<7RwG=6z*#HvXYHS?MfPU>^unx6c zf_C)JL9M$N9K+9;{x&A}wuSgYdJ0+HlQ~X@W(!0cmY>fK6I=#7LQhBKOuyNvSHsx> z2&EaQed0RaOQK4^DSm0WhpFeu@E6uw$NqeYnk6T9bnYGuf)$x@GOmlvou1bE-KSg1#F~vw%>LwZ!y8k^(3(^UJ@f(Q7`pYCmk9eh!wx78?EDkJv$s z3~T?`WtQlqZ0K$^%YOoL_AXZ5G_xi{CD2>%Irf1$r=~xG6#0b@*35D&U*SG&#$z)Z znaHzC5x%Ia8;G}yz^j0vbE6m>6TwiC8{oDJTwSHdL{hIH&K2lYmEYjU?qzHUtcV)W zq?nC}v^{Jdxz5N!7f8L$S{rl*j-VOTC6{r-flM%dh;xN4--vqRQ@-^UkFLbFg#a<#LiboBP0#*6hWh2z~BzN~NlOl;6HM$-f_qfsZ>{%XtAEJ03A2TEF6@T+39yhBeaZzx z%2I5+z)tQd$koCnEyuh?NPDeEwJo0F$B*}iMFV#wdSuRnkkQoVq8;O5Htvd@`_1yPE?InVel3Ax!~2dA zw}8h@31t)MTYR3m%x;yN`ETmguUvw@#*&z<{6>gdOYxNU-RSpDQd1U)5^qSo@UsjP2 z3(jY34q5Q*ELi!k7ca{&gaTD6|F2fmG|znk?^9{g#7j4wu>7JKy{Vyf86XX$qxW}b zn!K>dSpB6|rQU^~8FF$qvq~pWKkR-+1EmOQ#U@1Vq3COT^O%|MBh>_s?>w0Fjh>n- zr+7BkQ*Ts$zX$PX`j2)cP{sh78|Ujk`ShK(Rr(vqQgHKgK1Yylar5&xpH`JEBiV)5 zXu~2cSBT+l<|gSJnYD!3*qzAIGr~U!{9NdRYHuWz-1r>|IC`h3?{(fYaB}iqZ=Gv5 zPX^v%b#rAq&A2bSwurob^PsqLpUd*+t4S99D1qShH1N}(2Om-n$Ay>WNwM=CVxX5Q zFMtAWHp)K*;H%}HBO0XZ*y#VpVT-eU2RU?YCcG^~Y@bO1;_+?%j#^a;0FxK=aO84!i8pYs=&ly=o_ zXTE96BrUJ%a1MgJ<`3r^BAioj7!ZsVJKJCl+6d*vhBaGs-V7FyqPFYP#WLGf57hZEL^Dc@=h^q7VO9gsxb+6xYpe-g6!O;BWTtrwt&I?zykCoMZxd5X$qAmjD}|Vr61t z5#Y^)Zf_loArQs>MD<(hKNcOQGTQ$3OA4?kt*9(#N68pB#GcOn>H|86d2Ki`O7#-> zJ*uhQseuRhr6iEFgl9mC zst%WDkN)ocSjDnPtxd)E=q5gor_Tg{Gn=tre{bpGULrclP1guV+p^$|uP*CK++kZ| zdE7@OxF5K;)}POdB3%@#MFE{!Ss?LFG^dsw67PMU;)jPHXQ45Ulr(jI0BSPnM*c<$E;JQ4nPkeJ zzVS_}YD;~$&$VB>`_Eb>K3YdB5|m=d0Vvu_#t8D{J9P zFQ~0Btx+O+zDxyOlAO+!i?ZWuk!{$`^HKzRq6ggca3E_k+keR+5wY=UPiR>)WmGR# z10puSyJ&md12r!)q4=Q3(In&qMoP8}tx}NkxndnX87b?#O-WNJ787!y{0eTbJ%Q!k zLPd=K!`nOYckSZ}TxOgBWBK_LZVK2RDEUhTy*CRP0&_BtpPn2D!$TKVF^f#A-$3BY z>pYFudazec$-;@ss9Wv?-zNsKH?&4Q0&0q3U0ZIOZb~YYo#;F1Y})TDeV<>>w0dct zMKyA1+)^dx{t4}`Qs_?JRA@$aV-Et3xo%c2|0n%x*b(++f`b9MNXe)MD z%%brWZuwcZi5z7!<+xK;H9Kml>#qag&pDa1fM}}2HgL1+weN!|(?qMlgIH6aPM6Uk z_=rKoD8_O*l$%kaq!v2;sehm?4_pVEw#HJoGjXip=s#Qw{{;hpIMkbua$ou#z4~Ym zZcn&Renv6sOE&W;wco6ZV*7f4CV+q_bXd%X_MiA6K7WnDaG9zP#4&6Dmwf!d=h?8U zH?IA#@GU4iPAv)_qM+cRfaYWbK(8{`^UUl}9#mr3$A{g@Be@b#K9B?48z7=oWhyqUzp!GQr z%tm03a5FWi;#Gm_hdfow$EW6x92~qzyCchq?O#TUe3dgEQr#@o*morkwa3wLKTndg z_$jLF#5$zrkw;$IZrtw2|JCeRn6P)OdY3{R*Zy0cr04$F@AHbg85JFQ8-h)GJD(0NYhPXomgrI8 zKNxVqPHxv229ZMhU&zu7-q0^Q&u{7?j>%C^W3HHULo>_mwke72Cpk&z{gl+j~D=fvKj4mTI}Q;_Pc}?N1L*JiQwdqDKcRok4Umf=U=Ru3R)&{ zi{6zvpW@*EeMt{)Dnee1Mu&!SnU>w84np@-X)Tq<{D^tR0j^(e*J6_98B{##=+phY z9VN4EJ_rZPs!OUt?<{0V|Bdi}i61})+)+Iyde>R`SjNK~L;;skoMrc3&FJ%ACqL%) z8BZ1gjTBkyTr&nUX$Pq^Gh(E{qBG33_%yO8@*fzgwx{S`G+~&<(ifQgV>r#iFA=Rilj8VIcC<=6le8NV26oVzr}_$u)s_ zc36iyd0_rO%Lk+s*Cv7EQG*_1)_GoOVx&U~51Pk*yp;t(tahT5J+C`8>JEJ;O=>#m z?M{uS11<02e}ekbPIakFnsT3d-!g+OBHve430DL`HNYymeUSJIFVu!SKT!$zIX=Rj>qFhyPY_hZ6FaT|M5*IfR%)s5_I z(YhWDcqK6RkvbLg8%os4f2;^zqyjW+O`jb3!_=oE(1Q}?FB@fP4*!k3Hg$HNx%5Oe z1Oq~mevHN?172-wyi>hK;A;V}j?5<;%OEj-efJ<97@i25Bvw*Fe-h%|7^QZ31|MXy zW$PD5D7i&{E4>36v!?djK~s22$rxG7A5kN(wBZbXf;fBboRbhgq%tHNLxuq6e%xtb zhnqu5X)&Uz0mx~4u6CfR8Vd2A(ggloywz~ejosR2FF&-F8n!rsILMH>g*uD&3yKA% zE!mvXSa$p$m0nrtVuhX{F-aOTxAE+<5Bwg2?vKGHOe0HTX=A5p=K7B$*YeO$;Dl&d zssRUV8c5nhl&0kV z!%XSy6%mUdtNu$B0qJB#HWl?uv~t9rTTHtV436&3)#V|sS1*u)@l)yNA3y)G+g$?h zhodiEkX7>59{ejz}s%SqF* z06ZA%uTf5F(35|MAkUk8z#M1A4$WJQec49Bt}Rxz%NJhEk(x>7taWn-Q~gpFH$phP z3fzd*T+V%mjnL(L;}+T3-YX`^cdW1|SLJ2bU=QMrqnpkBGjTxIRd&7x3?QgWc@U+CI z$5x8b%(24!P*yg}9CjSJ{3FVU%5+@R?yz&CyPuDo*G|zx$e=^ty>1>l8gaou3}a8% z86=9|282X}8w`CPKveyQU`2a;_C5$hg+EY$!JW9cEgU{KT@w%6r1hMq+mleL-S(V> z39yN(et{RbP>eWLN>$D_EW_b2?X$81N%_Ed85T(p2cY(zKzq)mx$_g(7q$Ei4cyy3 z&j5>4q2(Gk3JKq;E@3T&S26mPc^}834Q{9ELb}RSLk_Z_fb+^2d^@-I%;o=nk z&CkrP4jI4)+7NJ$&kFat>W12{Zx8Uv*g=b`!sG#v)!~qFv(1XzhtTDQc$0Kd+0!r4 z@laNR;LIg1^`42@m@nrkearALx#k8~%3av?-&kP!&5#)D`XWwa?)pxx+fuz={x_Fl zUbsyp_(H1`xohVt2OB#BmmYYYDe{=mj|^e2v<*?0$>i4EgVYh}Kfd^$b(s0ac+2B~6zpAIQ8i<`(#;o{ZVdA?7nN4l%=u=JN z1zK3JTSTN}-JdApAx^!doQ1%;Pxb|3iN~yMTd-I%enDY6vdGTitS@YL-)}!bfsUj< z+sTDCAa5&t{1xjspKHyC`emI~B5!S?h;2iKreV4U{>GZ7h&@eLR3di=A*QhNK|cMi zY1?Uxn6kaeG!qZv00={BG*es9^Ju(VZA?eedi}1`q7vy(T6*#i=JJoh?T@xREc>C- zm0RoB1o)hDb5%5nCBo?J(9Q)?x-D5Yd~c$q@sd;hnb@nT$~zn% zjZf0DL3Pq@w~1HlZY-zD!A&fn-S$b$yWdp5v4Q2fs|%s37jCfe3hVoK>qb4+PgsVh zqPLLOcUtmeyhgDZn%y}y5Kd85UoXezXWbX3WYyu$lsssnzdp}x5Z#ap_WcM5y>lVi z8!+??{V3rCJm1o4+NIZ8`0m4{aLL9LrMwKC%CEp@ub= z=Vu#L4OajBj!8KkB|Q7+>$0z(kb?vebh3jNw=e`dzGUIv1zbOUUlS|FMs#Ow;OU+C zaDP_Tw6vM!oiELw1=xU&j6@J&JXC1{B{$m846K&da{zl%RDC-kIdbfbZc+dw3q*l|K#NNNn%sXV@ zEwrQ%JyOh4NP>}jah9jiH!Ool8#3~5`XuShwm!Ub&Ui53#P*$Rly>Z<_(HyvIyu<_!y26wuIU+ zqs93DMnI=-lt&yLZtEws{UP!w#OCc}F>qIE25+$L^qQCSN1O4f=@6_rJ0cFx&XLc= zi(-eEccoLiV>TV}wOyNA;SX$;7Kul=fGX@MNBRs%xeHmzi|1*>P0pJA z`z#>f6S3bFVchT|PQ{+CU-o+zP2j$iP@1I$!()990i_Aj@Vht3k`ei8iuur8~ zB7$31Y7BECMZPcP@AGtO=cT78^W@FRexS8`a(u%)A6X!=kj7Np2z`XG2IX? zVzW?{j7O_+l>l8XXLXF&h7T9n00h6`+Z>emE# zQcu8t#cw7b@jK>|{4ZXKkIUntLr?Mp^eS#lCrkjJO3a zwG4(0e>y&HqNvQw^}=G)w4h>TdzklTcUHYFzgq0flegdo934JY{{uVX>wDHdFO7NY zK2n+#A8eH|xztaq^YXI{+YI82v)M!rR-gIh`L%oa@gs?F@!fyRdcxe6=7^2` zUDmo;U8A!*8$ym$B`}JgK|shgF}kJHBBZIul8Q|@lmc*WWW;SDXZ6y&p}qO>5<8!+ z$R6%RgMmMaor=+}norq=&_w|8jpxU@uXSOnET1x}Or{#VYTQ91qS_%S${u1lb;s%I zyXd)x4P|ekzBA1juYcY@F#c zfp}~7FB<`8r`Vh}dS71GE;^Go3i+J6oeJFiFhJP*5s%bRN4q&HVRd_`Y)$vOxwG$* zIg+NF=_{XX3R9W6-!a4K)5a2Y-;{Zgh9IXaIB{;XpbqbNU%O-VRXKq}POX!^X>0I&DDo$VPinB4S&q!VCQ7msohI;jn{`Z@0!=GQpu<)Ku?rk9*_HOUSHq%jK4u6qe|w4z$ohmg5t;yshw zo3UcMunrt1uOzUE|BlOf?rx_UT342*uwM^;<+u(~XW6f27?%jz5*@yiEp^kA06AOJ zfV*16-1DQ4X$L8BSsGV*Q1^rwzfzzAYlx+vDjy{*_IqDs&#hbcNltvau`k;S)pHUi zqtyQ7D(k9+c*frSlZ%fCP<|VolZ=;qX8OH)*LwiBA#jB`? zvHB_a6*7aFW|Y9=#u(u7S&7qX=@gq8VctGSs;-3)da$8 zWoVu|HJIW@AZ5G-BJ_?yRg-E!b3k#JOJ$e3R#aZ+(b^r3HaS+b#YOrN`|P)A50VOw z*O{4z)S<~1zoNEHTd(@G$aP+;(Ude`<7yk} z)_cOzY$XO3Kj($2WRjeByb5_oUN*<~vX9}+lTW+cJE&x!i5d~=GN>Lcrg;DArBS?t z`Ye`HRfsjXOR=dM*M=@x-k*n%4>wm>%Q7|)tKu+hy+An0>N?ZnMlCR6Q z*Ak^yPqJfAj`J~QBdzjmvf-tMxKQMq+6kMFyXmmmapwO}fws*7E{l__nNCtk*siE% z4{{>-44nzw|CC|J0R0@0t4erSPG$BifP?4UTV8N()kZL>JBXZb?f)HqZ^B4z{S+z!#HWtqoc^QF42_)3_;zY@`Wz!;??po>3@kvSQ%#H_!EncUuxSGP7oNd-!w}W2bb26s##2 z*-r+n5n%?kkFS`}xo)`RG_|#-jD$PIH5$}cI$xRu`ZzUs+E*2B=xWoCeHC9T&>6Vy zme`_8lP2fz`Zv1?PhGz8nE>;~=P?Da5FW{$)X8V{;i;un3_f0WA#u4be1yq&>?V>c zg1+jRUn0K-pmcdR7*OZhB^(6IDB?!MA&CPlrO;mpE-jWFxC!Efo7_6Ur9P%yo*$F5$f5!IVS~ zbz#8`lgVk_9_kQ8e7N+^roc9A2uXPn@b-h;dF--`dXa5wJoIyMn_+xX-zBGB8MKfJQ@ z$2*Z%Gv0=P~@Z_|3Zg5>Z3Y?358;%1tHcrl5b!T<(TQ}3dr&`vxLi`qY8-E(Z-sxt zE6%D(hCGSyecMuNTkb8C7E5O_{FF~IAAN90uU`2b?GQbAF%>L?&P5OZ=KgVlpGsvI zP|~1Va_6Ei(-t2BSib|Idd{%kiY<$j`;So&-3V;zvX56ti|ZJjki7FD>e=dcRvM6r ziqO`koXq=gSP{Zy=A8)ptRaXVnV5Oc8dXMJM4HI}3Mmk6DbI7iF%?M8HAq0jHHeaz zra9WC_r5Us?VW4|hU@1n`^DDkrz&gc@32!)x4l>Z0^^7f-2Fz)!hSX;E0x7Gkoo4^ z$~D5{ggjd)Cu1otHqKS_;qH;m^24Am$-DUD=L$j>)&_+DcJ)+G9$iPN(7GhWqL^(+ z@4pvl|F~|N}*$$^$8~dh<``a1vhOA!EK^viM;}k=dK%#Eq4&7X_>*SC9BRSXu*dc+(x{SSyvnHe$j2GdLZ4F zul2dZIKoPk`ol7tFXqlv*U-`>`6f0e4Amz~AxSk%&nw1)kg{GesUr|3i+%R((eyfN z?YVc;fp%`M*Qr5-4Yu4-oeLK4e!J~1&A1G7z2zVW>#s(xX$)f#ctJE$3;Z7y#U732CNC(AvZgQ)0#-4U9FXtosvB7;gA0^Lt zeic(EuApTaZt+8j3PPnZCW5U#DVxO7ZN;ZBFwfP`6bQEn47J;*E3nl4O269mnmaLQ za+S5~;aPSEKd#HZCypj@G7>af}SZKUL`}UCiuJlF-kAnY4KnjQudM85yHLvjEnfSZ6gpF=`og{69f5vBM ztbRuh+6XXOZ0HDJ%%hnsqzK=C=pL%n6NDo4nBwk$6z+6gJK2{Q ze1+G-dwyMDRkN^qegZ;8HttdMUU#IC!=-qVY1M6o4+A)`ov<@{MPAXjp`O_j|FYav z@FpB4fm$PY9<10UeeICOv*Tqu>oTcV0pN`JuyY zqh+HSZw3zkyTqWYaX{f1$X5R!9Muu60>Q?2M;BME+gVO|IV0hEb$qi+_gXa&TDIX%m2lH$h{_jC>$iV0s6<4l`2E4Z+_z!3bY16*y? z4k;OdL2IyTD%kvb>3ZVmfio#mK|VIreVQ_V!D9XO|7Zaa)>hPf`mRTXMwjElcA{bh zUhZb=OEXQOy`zpFOu!0*)u*haK>}#+{yhN#Sj&nc#Z53-mEJX^j3F4KDN(l1RND&@lifxRv!L&h;5;XtB0wu(E{b4_f+#htU1 zR$3UufH{LDtSPwKG#}f&v7LT_Ppe1^l~N~%w#|k+H#e?;17aOGNkmQ~1|DHFcSn*m zxsblJZP_POzoasCwgt-=%YC|+oMEvkF{$<|i?)j8hPIN?PWkogi#>G2VzSe{{X|{A zsXU5)z?1#WK)vaI>9Xb^>WY8)p6$7Kzb>Z!7-k~pRj14G@H|kX0Scgh8+|g$G_*N1 zu&f&|z(W4wy&Orm8dml8^t|V%H@{(VC?lE*{hzu|$Y9fySw6^F8*Tn~xhM(dfd;`*aw2^Z+j(U@qgBUAXeUHVrumk_> zKyS3l29PXPJ~sFDWM!oRdb|JyRS&|)zvU<$1a+iDhqt)m3SnAcDkOc}A>KsH2vGuea}vS(eoS~{5%;9{nDp2(3Dy)i3ru%&${ zHu??vP=M$^2RT0s?_}n%>0##XiQhKa!nepKjrIcHo60zDPuvh1#Kmv1%sDaKZ#0p2 zu}MGYX0}WPSYhu^4wAIhi=c{|6OV8Hr*5}#fePG}4@94@FE4B3<(y=iLa^jV(W{`W z@*$4n8GEBn*IIn)P85%Y{{nL-?LodXf39+F0ZSA$Q3-NPa(P8}I&6^~t^zs=2I>EU zm2O0kx>=PU1|&~63$LDcQ7s`g9|3Ks z`d_0YtFrDGS;u?tEs^urPs{l;u)umUGkOxF^wKAl<;3hL*`DXhQETKPK7jN<{MOz?p%*~C5*DBboehfTB{eONt?amZ5sJl8h{v%dhj> zAW%g%Tkv=DJmL|-lGZrZTBiZV4MD;UH9A)L*#2%r(wv4M|G@F)1urQ1&?jOYX45PY z>~vk{K!`LW?{E(nApredKPJ|!?Mc%ScKDqGPXBJtKi}~ZJAH=7AK=5Jv{KNJZCSGG zv#&Dp)|cFWIj54B54w>TrI&yn-056D@%$r&wxX|_T97s%YBh~d!y!;7vXPM~n&XS| zd1dJForH>l&*#``N=#z6OO+$#VE%PiQCX;U_4J0?*OL1E$YL!v9%ZH)b`2Z*5u`(< zj$tY}xgii2W@|t#E>4{yN{r!wg~kujv6<$#V=@kf-h0%?LnP(=E7{CSBgw2EwZj&b z{6*L>TYIUdk@+#I75&Yxy@mh&h12S`k(p~*j@x30x+cb1;jAyY6X{6 zJ~wo(-Ksv=GTO~E_uH*@SKL$R4o3r9L(4cErv0xz>(s`j{pOv9L$7bR{u{&z7V@NY z>8)KtJZn$ac4;7Fo=70Um=VA~s=F04xqP8Tlz`anI?d86>MF}VIQK_yJP#i=v0pLK z9?8PWxFyi~D{hdZ+FKFo_aqzs9o#eYFca`JlTps}qxkqs4%p@BMaG)1ek(M;bEurf z(QHA6_e;p4R-ut~M2|5kuMm~a*Ym`$5Z=eu0fh(8=&a_aAEK)1lbB>h{ne2r@fZsS?D5l8JLR$>@g_W-q~6ks&(Za!^?)NVUSnoLBy2$()6HkviHy#hHr zd~bCc;Fe5Y<=#(SuuVQ+(+B1zGBfA`pf9hgxX4AAv$|?Wyl{v%RB>Y^O&{1>{_*Uh zQMDhgxq*Djq+sstR!fD_mPD;<^0i>BsT*IzJ~t_Mnw?yNB=A`es+?w(kt`rr|Hp

Jf&SgrC`~MJOd7x%(g+TsGt{Q~$ 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 Y7z5cyZFsZ>SeT!dn!ak2vTfA=0NEUt(EtDd literal 0 HcmV?d00001 diff --git a/IPSLibrary/docu/Screenshots/IPSShadowing_WFDevice.png b/IPSLibrary/docu/Screenshots/IPSShadowing_WFDevice.png new file mode 100644 index 0000000000000000000000000000000000000000..5a614ae4c7abe10be0ed965b044fa9004ee532b9 GIT binary patch literal 87831 zcmagFXHb)C)Uc~t1wjQBlo}90q9P!ml+Xo4#83sKORu39X+flfj?#OF&^w`n^xjM8 zk=_Xe0t6B`aqoA&^Un9g!(D9i*fndykx+{Mxl^_vAiEt6aNw6L9U? zKee|>h`$Kl^v4lDt~;v8zPna3#JEK~xM?N{mb`YYJmL=C;1=-5BuJT_VA+O;cxIcdqy-}H6~uE%Q# zuMNtJ(v4lQ4Y}o9J-C%Sy6JTBBJ}GV+%7Dw z=&g)vZ6*17?e6#Mudk8(zD9fP#{W5x$iLg@D-Fwc)cF1X@t51924h7zc8T|5OJ+!t zezU8S{FbXge+Pf1it`{B%qInoZxkEf(Xciw6xcHrE)nVqPpwZ)5%CDIlRZNbkK5F3 zrhC`9=YHo7Y8&iP>28ZfFx#n6Dqtq)@P?o6{dZ5G8}FQG#f_9X8Sk0*OtOfFs6$F* z#J0cQNg$nOn^E{mHQkXD_Jhh!MOI;*Q=3~lfWf9IB&BZ4h2;&SAT&VN@r>FPJ|lT~ znqMhU$tSQlRMN7><#M*F$?tKP_z@juE^IE$1tEoQ^MuQarZW-c@WDtTkisZ;09~5| zausUWXg$3n>+K3syc27?`;7?%xgkoZpEKT_xMe*vyJtOL=GN?XV-mB<8$7hP6Iz&f1+Hbgf9ZqoHBi{}K`jF9B`U zQ1EM(LxBw|i?V*&m0R0=-!`)sez|OHkmuc)xK3-%^;dE{1`4tZ(KG!sO_W~Wz0Qmj z$z{FAZBqu2$(=i(L@2O7HP&STQn9zq`Xfzy-}5^-xjZ}aywDdchB<`C<3~^_rf^k$ zmh!EM8SNR?2!hQ-T#uMPG|OrgPIa;s4W6jr(yNYXLi;jD%&Zfb&jq!s?Ol;`#skr} zLi<1-qqE`BlQDHKg*3};NcGq3!ow0oP&4c+aBkCXMbz)dhkLXoCYDJ37=887QIBt ztI|8X;2^*NvWd0(_u+aJff!la<4x&$XNAgf{sdk#A(|W}EmSdcOw4J}tgdpoWR`tGR^(t4CY^$E>Lys@k7a@? z#%-O#@IO%n7cm8pOeAH@)gp|EYAtTR_0%igR#X#3l|27Vdju$Q+#C@Yqzs=8;9MYT zv&w-ArDgx~9xYGj43kD!Dm&uKh|67V&A$5mc6LkQyk&HSHOtDOL6nFaBgiG!T;5XO zVRCaThUXWs^k6RGP;{4~!T0*>biOCjux2Ts`u;zyOFYfeXe0bVfi`Z?@?$jVdD34i zgW=Uvx`X)QKBt;anhYfA0U;H!;`yFuH<%xN`l)&ZJy~z)h;#=H`#|B6ZwT)%hvvTl zcLb~>YwCBS!HdH{B?Kj|SG(KftaO&WqEwKjBTrpCGtR%{7xTKg^ z7a<%c^DI2A`sfiqS~?AfTdDA18ez>e7OI!!VU$Vn`>b3dtJoC|05gBDHvepaG-co> zlf0Sd>OIP<$%qC6$7#m9-+dH#i9+Bgq1VVy;x(gdxcWsI9JIU?g$!v8NhLiGBi<@T z-k@M$qju{K2bjCq`psramxk_LCO+L&*w+jOk*3AaRQ`LkVs#asE^X|e_o>Wm9x&!9 zR3iiSE;6llYW5zTqyrslP)B8Fx|i#|%plg^vW=SdV-izXDQMx4eoXSnWBM7{yYz1- zwbU`J7fj^ZF_40)AiZ249lr)_38~Q@O#S+(abp1{X)M2wofx_4IW7{C_MKh|V2ewj z{S`)!__w;zEW}W6Tyqd3UbPU2SQue=MNA8Q=*|@?M25#uL0H3&8l8EUh}%-6N|Com zUCl9zy0M(bB4XB0(a)j-ptdh|8t7fAtW{i?9_UxESWYvXklgs1zJK@j=+fBrEDpyv zKDm-t?dYr94eKK>tm=uDp+ZZpt){o-G*K|dnm3d-g}&rhQ{x9 zzE_*`Bk6Dxr_TKtTUgcG%!&*K>2+(g)yDq%d(9pCTwQOqS?S@O+>{F=FOnF-W$mQOd>$ zTiJ%BQa!<;b-M=!OTqW7+owdW=k|TAFD6N6x**6h84iI8xBjW1N=BPnEYo4Y3vv%} z)Mf3(Z?dU4@h5gKw3Wq);&V$E8AZt)#XeT(%Fk6br5CeSF}=L6;cR3%O^^61!xw*L znAyzAVL!f6`f%gTh~6^9BU}(J2YqqZKS!{jhdbq#k_;&Kjd{yz6D3q4dZu&14V6_S z?)`E@xJAtRU4Ju{mr2aN>5tSU)KBrJdC1Ke#mo2oUKSA`&IfTOr~&;TS!8L;8k1Nc zBP$*)-bXqu;54xYoNFDdaDt#A_}?C6OKWJr;2okA9$ZSNE!+U-N)l$ zEBM(IoolhBHSDpmM-WIw3uixtr?I0`%~pwnm{D&r#- zNnitFc|dbax4$sBu6^CS`X9hDA{G5?Fp1qiql}ugGe*Eu@2VX*aFQC32n1Oh?M%X^ z^Brq2K7X<@i`?dOQ%D;(kT7sX-#2dYVIwl{*}Pe~^A^vMFXa#Yn#acl+%w(muapfV z^808ZmFegzmE}w*t9;EbVm$fc6(}BNbt+}Q3L%xjYnV{=%`M>NI48Lw-425sxSZG2 zQ*S>tToQdZQA6vx^xg-EnFnQBNzuHfOJN)PL|WoGZ3P*Y#sbICsqwDI?oDg6)1S?c z*6ZW!RVkaZJGNAFFKik%SfJ0*1Rdkr@V&G$d3aQl`jT^M7h41ezAlRd<*Dq_lex)VE=-O@kQ5UL7>54`c5 z&K|(Ca9tT~FIFCg?Fy|t*?i_w^g}3A(SzBeoXUn$O z@+1Dnlbk2p0%F~d8z$zqhs%*ONxQw1Tab@~r7!f5nA+*~SafF^bX*Hjf#FCPc$HRF zGwZ?&Y4I1u1!xoCGaQA*MC)(l2yk~kinFCQyk57qpfgrX z-NW<;FRI))rgc64i8dugq6GFpzqxjW+q9d#rln)Svr4v0oOTr;bV^<9i%q!@$fxT9*qqHSv1Rm9`hKT++r~akpk3 z`#nz^baS{`XEm-(=?n7p-g)5|yQSWi2zB*Uy1+M`-qXDr?Nr`24Ff9o$h0Z%F&vY{ z+B9_V*O%Hld8CFRUmAaghH;Jo2( z>ZG7?@;RZn$jNiMf_HUw5X)y3*BXW;_Er^8Rhl^1TE z@CGQB#}yCX&usVLVptyJ)T{(shdinI&h7j*=UM5_RU%%6ag4chj{|+I^;X}$@bH9z zU-Oj)xKeTvg@i2ZaH5C?*$;#~ZP6bwlV;}_yNbc*zb(F-VRu}wcAkQ;9&rVY`!sXw z*GPH7C!d%g^C^>}Q@RUQi0WyeOr~}g4nfPhasvOilMQfy$u|dRswp!d@_Vs4MF-6g z2NslG%%pdu*C&&VpqNGAID<;xOILLfF$k~EDXifHV02Xbo!6F3Jj{)+#km#ZN!E+89#R?u8JN4)Mx%j3_O~h{=@6R-)O$QG>25H#?uV!d! zm431g9lO8g$%t*O7STMhEBj@bbStgzrM4z625ZF4JPFGmq=nS~@XPx~Na~L=<@UH@ zmxj6OgQi1>oj}dE1 zRQaw2zdbI6eOU}cEFmjIcw5e0n;3I0r=O3#a|;#~-87E}oupke7fZeoG&wG4iJte)=MJzU`> zTWW+n2m%IiJ9V{ggNf}FWgoG8$&ho>N^_$VU-|vHH1dTgBlviB?f2tFICwKXpT!97 z*q~^n?XqXKaTXjfcV@|~HEMT*hI&(?mjO5T!aT{}sp_BQb>R=5w;6TeYLv1H$xEg4 zjR7s977rP^Iu}FE)E{Zj1nZp|P+`U1dD9GPPsIn6%fO|1Qs%cs zd+t9kSssE`fe*yN$3O6WRU6`94&JI`>E<=qhJ{dP@tW@K82{5KCuL3Xb*hEMxTu#zzb^1M_C zf>r$AaGG>gQKDf%)pzvBxBG}}*=vY!7jXN7_U*oxrSc+b)6&Tn4;En)-mVznrG;BI zw1e7I*c+QGUpITG>JL`8oo_8!vQ0_nv^KM?53xjjCC08Lz?|p~$@cZ?ngZZt{F?wu<;7+)Kp-C4|;B z%$02Xki(Eg?QPPh>2PLQEoE=w91R*MT3RmY`1J>ze|+0KnjL5GPm>xx;{N45haK^z z)_4CFd^9pHvOt9*_Y1QtdGu+u4R4NIcB^|C-|^nSx1z^W)DE_M5&Oej^|E%5<6?lVPhLrMB? z!B)5*^&a3yf1VBjtm$~imcwAZR@{T{-#MjA`cldkKIoZQj=eng)@`4`KdKW8Yyo6^ zs4aT!RR4T0UxC9`vqf>EU$1{ixO1bO9mL9S`UyGQ;t*f91vnLZ+6M;akDoH&FkjE1 zi;oU>OlG@a;JyKU;Bvt%JA>;k4c6+`4XQcrq{*W76H>6_JoU#h+0oZ%Zd+;n;S812rnHHOuY@+oTaom={d3VqE7e z_Ys8?)VCKP>a37F_f?A^QTXKfE8L9Rpn=PEwD;VLO3tExlU^K8FlWTMGaY;n8Y`f; zg@S=G>n3z4L>?lhacK!PT-)HW=N|6ms|akdpEnj*n?3yc!&@l@=|_d^j#HlgjkZ#R zm}9l60~8S(L9b(X%4^#iX_tYml2e_H@PC$`^hIrp$LfE)06$(Gzh9GYUEa81(Dzl* zNJrB}G1v8{G-(BAXU_DWl#dDiqJ}3!&ntTu^Bt$|?b;`P?RRpF>CQ>k!UuSE^qUq& zxM2EM5V73PRSTJRag?=p2%T-)CidkT75H~fXDJ~h?)JxTe(6xHz#oyBYIog z08XD*!f5I=%B0QE>3AMpxUc-CtNSCywWG+(tWH-gEih^;Kh(YH)7)8^Tmo)KT8G&A z=-qK+5O4UtEg0fe{~p@I?Vmr!Ph6?mi?y0AApjqSBUDGUNhicMH@6r%ufachoNX(P z^+_l)~-H-eq6E6T$J?;RW?pWTxcrCdO9vga)So6Ask!=f4Yai zGzjdv^HT#p@muRAT~Ld=Ut!Ir=cgM@o8m*8PbS3ytC%KG(c3&OvP^M zC*XZRc1jL-#Z3VDE0jaeR9UR4S!KN_+NF@m&9ko0h}-NbR7$L(|8b3m2X0Wi`Sl*- zNj6kwb+jjLK`$377f8|KwRDYJp}D^y=#Y|@C&wvi#6jAED($Ldv8v&?Q5A4r7BmzX zMmO%5QEIU5s#QI4cV(JyB6>OerG+JpSn1=*w&w zr>^i=z;pM+wtn?m+Qh1C^kTGc4m@! z>Kn{Cwzt<-cO-3aeS>Ax>h+d2i94TvFYy~Cpe1}y)aj|aufJ!Kzu=J%Mbhfkm>Z>2 zb9=4D9eT5W6W2yDFvVNzaE64DGZ~SzRxCTYx2q&V*t& zV=|6~kgj(ZyRDNN>b|l?x1!h&lk%!c(;xbnao)#emdPwv?LGAEoi^F14+*On<6a7T z+@qS~sFPCpFU)RmxS>h6#~trBb7B-jZoO4E*&xOMr}x$a@g>~44dCe*^+=_JxZ(w_ zW^TPEHBV+SDB`R+jX4>4^S|ows5PkgZdKhakrMo*RWkGr* ziLcYvZJB>U0#jYaqX-rK+w}Ty$UD-ZNKSrh6wS# z2M!%FO6OxR$NnQ!7b%G!#MPesAw#%NzIVZpL)xRDq&A{=FE);7D^0jW3W(q@=v-Y(b%)DJk1W=Z z5p=tc73NQ)%Fc~nXQTj%xr+08{#g_(piggw)`WmdgDW7$ej&23Kmc{ z?OZoFMIn@1{&QKUlx^qpi}jUuc8km#oG|`1{Znr;@wbGjh8sMv)GsRWUa}>RP~8VL z>LaHzg@{1(4nlAIc2cyity=enFI60`^^Dht2|fUC;RPJENsqG+Dzp|)sR+`duq0(` z{0Yb#9Kmc>^d|tD6=wZz(z-v&uDS(D`soH_c~28q+O*`-46%xK^&l!Ih=Mo<_zFC0 zl5Bn&!gM=1?EfyBdG{7}bo6kw;U-dg_FM=l{?ojEGN z7|>m%=fgVRi^tEO1}5sOE_T`)%v&J)9|Fd1CNLfrX8M*rqP!rhhB_JasGBBjK52so zD%bTzwP~2*d&Pdg1VzW9?p_B^X%s--8psX#7DIrgwIrjhZeLf47Up%?*C$Py_&M4u z3S$uUX4EIO=WmBQPG#lpOhb4N>{oTOnAsu@E?%;0(45e*K(j=5R?SvBgu;lXZR_+! zLz6kU(3b9Y%k+SYSeG~p|XM;lQP?Hy*QNRxId^H^wcabs9JXteF6A~esIO+Koukx+ZHJd|dp+4~ zXV)~z5uI?1D+-B`I)}&HKPLZluAs=W^;!;e7ftQ0BHL2@rA5`RVY$G5Sy;3#8=fTN z_Tdh(#LBJeyU$c`pYb_bZAQ9gJdn&$T36q3(X6YgU+%UWW`VJHHEM zW%zk}Ba5?kS`s@hm&7RO!ahZLvB`Zjn-z@UGhd}HfA&L~l<+nlb5ZU2wjI1g9$4IP z0>rCMYuDbEBpkhHURw^9G-^b=U{02BvP+2mnj`g#KlJrpr3u17uvJ0Chex#f9#DSF z)>>t;WK&|TvePy`52je_`zn7JIw=F`N@Eu-tmXeq6OQBhE)Zp~ZCn6P`fOI)zZ!DX{h^_D`;0RHj z87%i>HldnTq{vf9{FL{YE=2_3=h7s z0to@&?OI*WxmDdp{rPJ2bK!QO^h(AL5=skoD`wO8JY(pB$X7oEPRkYo-epK$D%eV7 zp!m_#KnkOy&cM>ko0&xGl`3*FM+Jz@-CN#oJ13*0_^k1k4Pi6FChD9y?a$xKvs9c3 z{!*hc@v4Q`(tvMdN|8#FYF#;i9ae_`Y;@>}1D##^A}rNz!Q?42q<=tOoMpwh=?Tw#V-B#L%H zV-PCQx@fl*;*uk=tu?+Nx-SrS{TCb42Ns{prUcu#bnh+Ktck zqcvx^E}D=nHL&@}_Kn38gC7)KS-w*U4UO5g%^BiBXpwAH5ry-5a zc59|Qx7mezCfP6oG#(q+6(b4jekrD<49nIG)#MLJ$_?o?vGK`U-{q2u`|B6U6pR@|Dk z;)R$|(nRd0S&G@u8gRS!1%y8HhBWLQKnh^9?YwghWI^>%Yty3G;=b$Z#680&BF;8; zw2Y8qK_`s+Qrsf#vLntGZoT|e#Oa;gX4PgodQt;;$EjEqQlOd~npXbd(<=)GRd`=& ztPRlm9qBt$@Dt%CY&Ln)h)*OTK;bLtnfCM5nY$A;4}t8m$ey4Z?r4v++m$e8UO6+N zGfyl3Rbu1j8FU@A(>z8T>=Cs?%v!+bZV-yAG9lVLfgAS$Pe9c4*2tw?y_%t%asCWZ zBpdsP(7gi4Cg)>}vrAQ*BsoRZSnEb#go0vOr5{Xzj3Na=rVi>5_S9OF*bvHY`hke@ z`UE_u0$n|mcS@f$ZZeE2e6L`teYV51Yq|j4=GjTG%kLvBb;dXq+{JpC z&l*4i(p+n>{u6I5e~XMl?b8zwgevM_M6NYs974(g&=TOC4VEb#YVsVJ?qd&hJ5N)n z27u<;-uSR-JG(D`&H*pB*Q|q6D*cL4?r(*=^rPhFUabZP@CnSb42?c`dQ*Q*qL6_i zO^^d0o}jZ=_e9KkEd09?n{}$o(lT)ZpfjdMC_*6wrov0;0m(TxNg4hlF}?@+e3XVg z71$Cn@cgX{ORA4>sHQSofILlWWCYm{U67Mnbc3d)A2ESA1)a2<(vQJ~0FYa%6wxw? zw(cP#3|TarCf=&sW)U)*@d21KNB z4h<;R2&-t%Wl?VMVX6RXPD1T(2{YXf z-oEb@45)H(-c~XxehW{XxA;E6XBC*6i@Q!F0*90_nl2p+_#o2l`_8vX+@r3SW=ch6 zY)^ojhWLHKktsK=|4FK?(zN?WVY`D2!s@osd86|s>=e`fR!&LqD%c=&s5?XBL18#F z>c%5h*NEYOG?3!| zP&)q`*=c-D93n4VDE|NOI+$G(yRz&5_o@FoqtZ(vFcJ@Py~SvK?LYSB|GrXm9}&P{ zAJifzWuP|wx|Im=Z~q}$CHh*4l4K-&N11YAis`r7siQw={}QyH3ngp(fwWn!lQVgc z*?vYB^5?5>+uc`M)pd4X%3ugmlI_-Ov-YCf8FRBYYPX>!O5F?k-3t@kJ{kwJU=e}* zS44V+&jiXjzt|3^tE*on#o4VGUSjS6N-NuerDon(s@pECaw!tVhBTmg002(ob$5mDSyS1itXgFoWqVm*ZJXnk29W=)(EJI;J=hX zN}qO3xfZFgiWl^lN|6j^Z!CK8qux%RRBy-d&gu9x!l*z`-m(x*g zqbTPdD$Jj*&c7gymOfQ3x2gEmska&CC`A8Kh0*iJxnrUDG?~j&5>JHDOwD+UnN4F9 zF<3C}Rg#=8yqs-TEct{>Yq4f+xbQiZT_KAR9Y+xtF+UrG*nqRPL5o#K*XHa8N57<) zgt7E;`){dVWa;4cm(-4e&wDk*%QQ}BjpEntFu-)am`h^$h`w+xlu#ZaGQ{Mzo0VDWje>~{g6)UsxMTB1WAJN zuZECo{x+(>+TUq=&|!RAHjv_mtioRW9Ae}41rh!+aB?b+a+8|1(HWUj1X&a+N3EBq zT{TvZEy2Yv=ommQrm{y9avo100yYNl+7zOMw^x`6f4a}IZMlTM;jJf7l@q8LI2OBdUy2r1C9SrAc3K+0@&uWIpJ9w3dVz z6U9uU$zyHmb|eo|pv-~}A47pcLrVQG2}-o&^3dm8bTGvRC)N4poiEjoumFU;(X2E1 z9N0xxGkBrJ>%ekb-*ZAyZR@N@c==VAmB0)*kU~S}ZHYsTeK*wJ(bawxDa*9MIrp2% z69t<|S61yDuTkBw!A6EhG$LON*^fVNvjLb(IU8Pc%WtOSoLjHjt=$zg@thb|)i3OB zF&$T^h>6$qeUUh=h^hO8S#2nD z4)eCz^CGP@_xU_44_#N^FwcX66K=QKft5Jx(o>@aCFbW+wpGFfW-K5b&{wA%8^V;; zbi3#Ggl^^df}^10`P%d-MFS22?N)^{Rb9G+nehBl??0oIGK8CC&0`dVGhNoJLWtuN$%j17;Ssd9keN1 zWyaX49?DKh`(OIO49@d7Q1fMM!;G`QV(aD-N%5y&Sk|2=#HW!nyZY(Jd@_RP9t*Le zp(Xh%pUCBrf2U;2?*R>y_5w4#vT4~T+{dmnCz1BsgfBB&Pns94DAlIw?gO~Cg)4Y# zOplljI|>7{%J$Z=%h0T8XMy=v(mL5N`#n)lPGOfl@bc_4f@}z~F$V_`;MQESKp!>X z~6}B#d_-Z<80b)>oVd%o(Xp>LLxUCrE z#kpqlmG)x9^9V24r{hG^gtcDBwC8*aBKElDV8qJLG6|dGRa_8=;f;gVu7GB@<)TGI zsovvY`7U{j)fa_~`te-?Z>~2JD=?kIgt62*J8-B5J*!jV4SnZEyS4S{FNfhC%t2nL z0n`V{y%@btkMGQP-FI{;$^KG~M6fLno6#+45v|r8O;N5I2l{2yqj2=AyIJiF+gdo= zLL8#TNp)FlcUO$5Tx3_(g*H;IZ)I73>UBEm&_oR0*PnEJ=;8j(sWyH1;N$!@xFIX4 zt}%au5Vvd&Y@s;;v?}O(3!_fGr)eouzIq)Whb_;_5Z+e^qdneC+6v>I^A%Z%xiSm3 zmN1Gmb6zB1z(8o6W~zI4wZCYu4D2uDptnAmwi2b?mD+$vL{Lv}zCU3MqHxzEui7x; zZte*8Uz%vy(WZHUO^?%^=>H2os7=WqR)H)${)P&i2Q&1QC0_+f;P9>El4Wzt<#qeg zbl|AA3o~_8b%ka&X0bgEIj(9?cbYh;5%LCzp+fg7lxnOTbxsOhMkms0_NO^SLAJuE z9pg$Ai)&u3KNl$uPM@Sa7U-0_d=Vysjpc9t*)kq=B2OAV^a!2^)x!T+BSoQjY`i89 zE1c(KS`6rc3d^=E#7eFC3+^X>c=lgnFA=XaAN`)rIT;w92|Ws3`pga*lpV#KlW+KH zRC{Oqi-e3%MQm;LiTSqWV8xwK{q?E*`@`FgecMNU2-al|F)_||mv>Hr=-`aSg}$(c zj;|$mW$hmg9^o`7sLTY2t9d=N-KoC7nO~{`fmX&}RXWGN9PjgIO#Sk^x7V}@4HXX52?FIDqOTtuDs}UPMP*x>B_ujCFceS{2jt zhE%C^d}+uD?cCcCmj8T_(Y`+Wj(AE#T%3Ui3#f6Uf<<&?(F3RCg4rz&T?{sOdAffC zIFmsH7OggPc|P5JH-?|;wBf=fw*l9kevakb=!(`u9;Z$#OfM&SV<1Ojq?a6%m1!an zL&bw<_e#AiRi9qoN^_6m7Cw8Wt)%HupDHS!>C3`h*9ZN}E2uV4ws3IB{<;JI<5FkQdH)t1I8SR zH(r&jdL^oVuI++f$cOk^6B*zLOeOi_N8t_Tsn3%mKr52seQd)uW*2B!sZ)huC>Ck2ui)l%g(jM z*qTOO1#R)%ZVtDcn)*@C_h|2%44yIqfa$c2W;3IYxks3(7I~Or|qYq!Vt9!CV6et8N=s2)AbxmN7)pS zx}4Q2kkT#zd@-KzfLAYpD+i3sW2Nn<6p6&$CDD>(+MIy6adM{diiz4MPTCm}=tU%fD%PUeE2G_=N5SZM3%vSt&R<=^{>aT2vQzvF; z9TKTIm_12=`Q-HmqC9nh(A$ifxb(l|YExIIr88TE ze!{%m;BjwKT~P8;Ca4m0N8ppOI=D!jx@P+1k2kiF_8)WI6B;TK%nd!?IekMu)4+yi zeas9fv+urcl;FB2K152l(ec)@i0$Esq|unTC|L%O-11xfuhEKU^w~;+3la2`olT)F znIR{sDk4>|&tQ4*M)(C&(DKB1x^J*?qB}nKtVf)T(WzE`2J1DsX_3>N0E~E3d$w~$ za4qi@opekUoF^dI8_Hkzi?Me2nkiPzs=OB3pjtFpvdv&lR0=K&dcBb;*BmPRpquO= zk8!e(_o18E*Av~i?9NtT??+*AHidNj-6X}9Ai?&XZB#(*^RN$2N@F2wlH9;k8hP|X zne?AHmok~gaFuOIbiZ_CF{o@x?u%*lqE==^l|j6>MN1Dmoim`ba3aPA9>159Qn~!9 z29*o#Zvw2!C!H&8dmH1AQ*=^~^U|~{Oc}DEzuLxB8Mehk5Y97-{f%|UVVFyMB5XcQ z%s@1_;km1%{Rg~EO%b^lzdmv7iA6f6l`VvfVItvr)=)1yXCh!nPI7)AkTyLA-*I}9 zZybK-%EvOO#dhyrIfY@J+W zoo7uldQhYWH!Chh9!y{r=q*FU*c_0~POWYPjCeEvef$M3k#8}*;e+y0q@+7u| zk3|P)QMl=br7dTB_MLs&icv#HBP*6)(huK=fC{pMetHFW#Qc<6X#mS&%atyl_! zx|>@|JH1zs5u{Xj---2!mUezY^o!ZdLppv%Pl3({*;liw44FG@f_ZM?-5KW^n7G)8 zFR4F{eXFz#WbhSt4VbVZjCW=3DTmuFU!CzjBiOY8{3~bQp|i$zBtHjL8N7nPKs+(P z0jnaedoF!NRy4wE;g$2yIbwEsbZf%wWB8_U-BU>PkV6JktE(K{Q|-U3eDRGgZWlR@ zk@0#7NR=T}(2Ln#DH`P8t?*W8;GWrMMO^qnOXV6g^4wmi05uIf?PN~h7x2|{j|-6s zEZDci2j;H%Qov%Jch9*y!O$0+8cErcSvIb!qS;~3#=00R7dF;@SBsQfdQRADiH`O$ z&w^M=$4~zn!B#|D9twM=+y8P$kkeb!NYE=Z7a=?sKQcjMj1}e=JLV}1sw~169Lmp) z+E$&vXO^m&6R)2ND-=&_RACBUoU6cauMBvgKVPsl4do5j`48J~LUV^`bk^U3^gp95 zMR$&XxTd%|$F<5N0@>)2D;NDVQTs=N;^sdo9`VL_Y%CfrJIgzT(Q^b*)a%a*y9;~A ziEu)4o?TY4g$kXqX7fAINq8Fg>7x)I>x(#|RHOTtJA`w7QA%73&TROpo90 zZWdA5lKpNW9a*Qy31-#g+)I%?=uh|+63uFPWlbckIQQP423B2s_~oIz*jQzx&#a@I z(97>+%Q`pTr@^)_A59@JzW@(~sPFlQR zn8x~u-iygNQGdisYe@39Zr#dTjj5e=#eY$i@2U2muXmR;1r?(Z!(Y|`9ub(R$l*Y% zi7&QwN7spa6*I9FKw|DKCer>Hf<-o+RNtp_em)ajFK-Uf8(Y$O`wP*KhF=|~U zNF2LD|Z<6-x;&*?48{n?DPOKl2pMUzfu_>4&NgGGmeM;>qx< z;q9~+05{u6M8<{BtZmXh>$z7OR?oO!KGnS(hi#p###bXhPZ9U)W{CLzDgWgL(T-(b@Uk{0tW!%}~j2&di{(Qmji-kByxN*`W zitL>7V$U<&xj6Q}iCE15KRA8k9r8P<6pa4^HRQPxPL|krwbrgoTP>tog(*&%sR~*# znoT3+oJKHDmm}?U?yuHhMXh%%=PkVTe?AbW0sN?#Il4a_v1`@lDeB6utoUA=Z8u(- zvH&&j{4jcBr#o6qIZUc6#j>)hdBO(%#Y=mq887xXus4UD%gw|ZdvDCXmpzIxo`~zU ztCEhA{(?Mk!z=3(=Qw%jn59jDkJ>FXwa0~Agvv(l-b*d8#-jeG(_bQ|WZ2YL=h7Y{ z4w@EX8^`(fGczlD)ppM_ZnwX!FGnNoXv-I6|+Cu0^_dn|0> zX}l(bwyHQMbM}03#06pP9^t|bSS3Am&V?Pe7P>2Dwe0zOK=qA+-wW&D|Zsw=b zU)<9Ah4qziA9ote#h#%p{*>T(v}Z!q9_SATQ5b(#`_faNkp1={fuxjD2^(A)M6rEM zwJXM@U1=qD&2Fno7j%{R8@KuUXgw!2Q|h^dAUS2`fMEq)03X<;E{!m3&uv(-|N0j= zh&6s1)+RY94a?hC(~f2bO>bxCZT@*|n=28WN2;B?w%Fl`Sjo)1k%E%&z^+MzkjPcV zy|KOeO7HYh8R-NL?sEd4lsY^qJ{KUPwjg*|ex z@Ahl8;Qm2ffc3Uw+C*1^Y?EqQWWr~|IqaoR``zE^lNl;fJ= zQy+tW7)x|+vzJn2`r0oumGHhU?hA}*{j5$m<&`64eJhZfQd%hI+gRERBm=4M6GI`S zZnLVj^^;Z4Y_#>oP(?h&@*&UtD1xotsE@h_=LU>_%rB{J?2q|u<0F4|vRn@dtu#3( zwmFhS!J=>mb9{w}F+YDIcXEhvo%;x@z^I%^bdhRM1MTezoUXDP+zSJgQQ7YGPQN$j zlXb?tqrWtL;9#&o^UOpp=f1(Lwg5(1_Llt4sYgw6eD9Eg^NbQ?LG5cq+Jd$G`?m39 z*TN`AH)Q35rTB5*2lA}*9Kjd+jR?Eql|~K#F_%^AJLIoa9cI6{!qkXx06x8YL3qFS zL7&rl`vQ|4Qxk4|c~oVgt+Oqvpd0pwerQr(lLKI^8x>zlzU8*@*1|CFRfO^9p|t-} zna%ckDetHcxn97*NXZ`w+(_K_90EH-SbdSYOF{kjbPC!W=9$sldyn%S)rF1J9!&^4 zdEp{0o~W$KY0*iX|26KyBMw01KN4k$5^h=mg{rI|_@!=%VIbnYU(}&FhwtTrq|@O^jvB}i$puSdSYWwQNZd3&Nx+uv*R+MAD2()n9Q z8tbXjefXg-Wx<0wwOW2~!520kStCSsfZ3Y=_}-Bxicd$dN0ptXrFlCZA^l-VnTBSw zk>erN#3Raj=D$p7sa$e8F=xf`eiScpPS$XGjeU#YF?h_OS!klhq82NAGJ3o^w)^_>lnhoHow>K9$bguVEMKhk(s$OUp%bH<1)~t_!Jpg_gSYmO$|) zO8$EtW2xB%guGdSsH;~jQtPVT75N+fB>M$D5bdq>E~^Hbw_e{BO`0r^->~%j%!-=8 zp2H{a5c~VWr^E>jcaA}bRMS3)WpLIZzcM>qKt~-^YxfiWi3{q51+d-Be>ENq#0nSd zrOWY>kv5z#(-=Mz`gi_v*Kz#{%)%+z) z!%(6wGW{f04Vr#d*5;SRuC3Y-Lkr2lm+yKJ{!-0qoUmZsj#TNDTSq5ttB418%Ev5g zF{V#mJxUVX4gAiQ@7MJwiA*$2m%8G=_ETj!Qt;xYZ0Ik38LKL@oxm7lA_j*%z&3gS zs#7RYi5rwaP35^A4F;)G$5vYP+Kk$BKp`V-4y5*lLVSxrIq3Xn*8teE-<5(k0ex#Y#4*p1_(gSy z6^rfp&n4JcO$dm8M?JnOsYyp?d$iLXDhlmj;uExC*vpzn;-&yQ&jQd#4m(YoJ*~`| z%19OFOG?i(i}spz$|)Y^;CT5*8xEFCKlTW$_d2I;78>d;+v(MEC5uhh5D#3<-uS?! z1~x^H^(9?5#V^ljnV{i)K2e!SK=G^$HOg7nYPT_1Z^Y?sz5wN*pk6@~{GpT{t&qWJ z&B&7Y%i2?#tn8J-z$~Z9K7Qv>F;rr@qYJ9quN%XVbOM+pOKE7kZn0LY~Sjgo)3f?&3{FuWboxJ1Pb zHP8a$f))4x(BvCSfU&HK0l|4~DFKbFS^=uJ8>9pX#QBA?t7N9QAcJ&C@3ZzGsyl)n z60@C&KlR#@tP@|;*B_Ze0_k=}gX@pp^LSExQ>8^wj+N6*Qe6QAR5AJl$sSf5Y@`De znsX#t8q0I1P;n9Y{E^6-5pHYk{XL&r?KLiE$p#F1dn5bJGO+aEf-iqFX-YH=s@zY_ z+LB=+VT<)Q{2q3+Q{IdZ2e`oywD&04W@H(be22$2hfYBC$I6dKc#kM~m-oE#att+$ z%bA5wD9Y{pL8&uU9u4Dhv|iZ_Kz?IZ{kd;b+>G^!ox6sy!pH;*zcVwVA0d{S@#RII zmQwYRWjtNWob4c$th4ug)NR|`llfoTJnYOCz{dx#GV4S(iV@4dJv>CbJ-KNCd_f;V z+3j^H&THArov)FBye38QS!G)>OrzW_cqz@4_mLqAQGE|c*$qIocSX9Ef#lb+4TD;W zBbA>O)c4iH+H(P0Dl+gK^L2}|9uN-&%icx2&rvWRgfbJhZdPqvMYk;gJDipu!nyj4B@#brFTg<7w9G#@pl^Nu)*84W~o0nu0F=%Hpd#6}Zh zdU-X`J=Yq7n(vH&1i}P%$BUCkM)du&UE*@duo|13P^*U)XUmM;avxa2=}*Abs^40@ zMNR%izhRZD$0!ZnPN0QAlj;;xPue;i<_R6fb-_)Zz2$lZqNsu+GC>1AJY};3vkKPr z@yWjIYyp=dr<~q@9rtmCNE#j3 zUK8Gtzi=AyC!>-*RjAUG%mfNPmSo%?rd29C^4@cBk<*bmXQ9GYpH+D zSK~TpO`SJ}%>qow=05Nh$$q0Zv)s>@^L=e-g|O&c5}ZttxeWXTzH$A<9@^qO)Y`a4 zrcD&f*%sU?1Y)C~tghsDN@Zf3haqYuue*Iu3CGn&rBPx3gK`5En2x0^R=+={qg_^H z=7T}IRp^~+?or6VnC|-Y#zwKQ&D=wD;ug07hbgxLDNrn6wugXX)}JYi!&5CXtTr`R zQ><9$Gf%71Aq}S)*u^)^^ln>4jVgOKT*e2QC;OKIc-1MF5k5@VOL=m0Oo{LLFH&bW z+!C7}A5PTDJov@VAninaO4bV0Z-d|-{ez;@=9Svbzw$3i%&i$|XQVG8-`yoO8EW!( ztv+1q2)37gk|rZR`N1N7^^W+$@jSicOV*a=EZsR%tyRu;yWZQdx&s%uvbDT9f4}Zp zyzXtCWw5IhmZ3!qPuZH%;*-%6>W15vR81w%1_d+zmp`@mt88{Kp6s|$Tp=X!xoIq% zFbyBhV1I}nt0@MO?kl$I0|h!RKp)k|cj2YpOqKPYH?#paGvFn_D3i(kwCiZVaJG#O zIPBR2Os~ZAyX`8b`p4U>RQ3gT1k9f%@?gU`CN4rsi(t5w_4K{Fa9bx$vL~964olf4 z&v6Q0?$(TY{t;>)n(_CLC>|c0>x1t+Cl7Ty^PAXybfdfhRGdjm9|3F#6F@-%knSx} zeb^#p)Vm~5q-W5LI@eFvr@6?L^6lKr*NeiT>}=TDPHLXkQN~=paqqFDdjxZY&Qw#X zJM8u*(_E`6`XvBkXIG}zzx=7uQh?2pyNzL_$usN7S__>wv3axbws$qJ_3^=MAcdhC z=+R!U?tJbQyZFp5r|C}e?1$x0)--L!TFEVmx3#8~X-o$#;Rz9y-p85NcAOyK7&?rfmxAs$SIvL2YTme7>I9bq`QsV{aW zZ|>a|dAM?JPKl(6O<&AYTkDO>T}GRJycl;}+-WO@rd3CVVkJ55M()0>??NxszN}ik zh*^sAXX0tSFitx)P1Dx#>YizH#64!ea;?3V0k>HJfr_^hax)5(FDpPsL+!yvr{;`E zcGHDfgR)@>yK`n5!D)_DJ`d9{1UB8jZr6yp_tv3uW$gN`@27SLeAxXfo@{Yc2&1+- zzurZi?LXy-c*0e8R7lch)v&g}z)Z371dqP%v|N&RjE&$n_uK9#4pIq%PAO@ja)GhJM=FK;M>SgYo_=szLYS)wDkiIC|>ml0E z4c#%1D~Fg|xOAHk6PQ7EV{IVVKG;q+wT!Pu?gpSuQ+J&(@T0|otrVn zDmOiz7kHi#y?~n9>{MiHee3l~gzF4cs9s`tntP5RrjFgye7gy^3g*iocp>KyYhqPCnk(!{7fqVu{c4jV|v9}uhf|!SRl{%!? z36b1elf=0@8u0%6OxzlmC8G(jFC^cn7zumnw?18TmY8Rr^mowau#5XD3f!>}lGa2Or3r zzwSh~sXn6{xcr!JEBqrtB#Y|ul_{%7*peZ+&~>(Heon;FGH>@6y&vu6t{<1jna#f` zqmc2pXOzm+eGl@y{jt?H0@7|PHPhCNFdxwcl=lx*}<)l>i~P{Lxa(URLiHzQ-$;>7yKI|{4FN+`H2R}CujxLg`}Y=7h?k|tw~?L=+8 zFTQw$F*UAU+2DH1JsRE@DSfrmXFTE-Ctb^s^rS`YCb?S8f)OB|(B;d4N}%uoDQMf@ zOE?!z`JT9-MyAPr7QwpsQTvEM`gp{B0Kp%{7wVh+lhbMAq9Zaat*LX%^@^ZgG>1!GQ)2(bu%I~fT`_k1(PUEFTE0{iB8@cabp(IHv;lBMmeQlnWA zW&L;TV3ORIeiSSuJ>B~v=O*XuUk>Qp+%?YJ7$C@VSf&Bg;!lf8N(r$)#S2(*+Mjp7 zZI(!K*ufY*N&b<&Gu_@=Uo1~^J5rf@orxKrJtr+Ky%)JLpgA!%erVQ}G>M%s1jYIk zH}*xZ>|o*O5#=z7+A2HB41G;3Q?45$MYsp_ouy2T?rA4sc)?G0l!_^>Gw1LN#N$VM z9C95G?G-dfKn_}8H!gu0Ni%zxlxwLLQKo%i2nN|Ri@A!p0``1+-BXN|h% zNV*hsyx2o;`_#z1G8B<3h5UuhvhrODahYPw8tKtTLewv^-7`SeEOngIrtSEmRXaC< z(~AX5gW<#7*Q%zR75p*{9}fi&lyq{BMR<(Pb+ARwdun#y>m@NC>Yl3dNT)62A4Ew)N0DbQnk6PtB6>f_<5`IE`WrhA~#JVA)>??1|o;X*Zdl)rHro1v5#9 zZ@TloT4y@49GQnI{V00a_9d-2mbO4ZdaJf;5mTFXDlZ&y$^oB7tm$kyWH;vL{FkQ@ zGN(UEm*TDo!#jVTh?1v4oRZeHOv30cN#pOfh2iZW=bNzfNTgBEmN8!6i|%|#>9K>d z<0w&SvW8LDL+n_cH2%v}U479yFC{nCl)gM^y*Ekr%XOzylVTHmRQv*l{kkQ2IAG7q zCd4leU|sd~HPjDQt$eKP#UUY1nrB zWB|ElzF&REs;gFmg%XzV+BMni{D~)I-4qD*l|Z$-7%j8nrhbxrq2GEvX(d1*y5Uf2 zxHp(!*%_HQmcPYv&YYy^zUSbng`IWZ6n8Jo?L2#u0NAM_?fOANhQ^i?wWLT7GJi`Doo@fzKCthy@BxJiS!~*Ed4k?GXi+Wn~30iEAI-&~?#t zYf^@xrQP73JX`s)T;GjK{L4(~Ts*6Y9GTKg^<*uW>E`{q)8(ms^R6pzGCtvguA-mq ziz&v^koetKhEPs5<+*1iBkeDYia$ppc10+isM*PgA3xq(8(Hg^ z+pw;1|IL)|t!d?RiBH2Gtgk50NvlTD2>pIIz@;n*56o*TvpTi@~7q$}{Ko&IET zN*3?tHGAOnk&mkIaIL%U?cHYhasL|F3@x9st(SRn>J+D!&hx;g6+RbaT!>ZgKUX^<*RAwN7YluRKKhMxk-2*Bu+iUKF9&WM&o8?}GkP)Q**loCQ(exi zRI4`iyh5!aE!{lpTdt>!M@%BIQX-sfCyurN+cvmz<_1-}^^)W{(YkoyJ7YIONAw z>cy?dFvVyF!Vg}Pe)Eq0p9ZiONc6{H%g`532Z`UPdDmR*+wqDWdt%6#tP!DUgx2`E14E*gEYb zH`nTOaq(^SXTg1~XVt53n(5Cf5-6j&H@MLdR)Ro{$hyR0e&GQITF0b>c_+zCHQfCGUVzQm$qhcK?@kfYDjeEl@M-4)ZpDc_iyFFAbGs zig|)9cC_21Oz0uc!}*>L(lIyc_FnpB99LQ=9*_3nLKEmpP@f^m=am@h*TX?94bWRz zEKLetqnAF}5i?>?8(f|)?!w4E-89}L0FC}Issd$m&~-J=<3ETxS9+m3e7sjbRhb+*wjiNju$zaF(7RS`m?i8%B!6ZVz0hY2#C zN%B6g_JYXH<)+(a)kYk?z8QEWKZ zg)vFKWlXC{d?gbm1y)9_+>E*B@I6mJL#?6q+3T-8dAW}r+Msm4MTowUeY3!zpXBAO z>$^@$9g8(Zmw)Mu*c|>f(6||Pmjbeq*OZp8DJ&Y&Met!e7|g_Im|c4YdSyy!$5K+dgFN7rshn9X6cCVu) z_@FTt8w&d1;&P;b+IE;l*MCpF+CXjbNm9*iuR~~nXQB7QK+k&7j{&hOPhZHX4GKA0 z9A5dAmp!vEhU6U6E@i4PmV!p<@t`!aFZzWpoL=r_OgO}pIQSf;Rdi7%I9Ku?pu=J5 z^ESIMfb1|8hZj;(N9_m~W0E*1csx@vB(#SC+)o~*3@$Q$-rPyPs0D6JkNcE5H&10^ z5N8@@BcZRL3`0c|7xPy5;O{E+JB05ezgdc|y-HQefD;~DUtc{Si)R_jOH@cybA!>k4A4Td4t&ef7IWR1yS7BTLXk?-7gUj~D z5P7UoQUy~G>b&&A($C8*S?w_jzsF+VG!j;o+TIuc9`q-Yg)rE-bv3gn8qV(NuxNbKm?bBFu;GcL=Irk#2mjAO4O|K>otF zy$TF8d^ku4V2S^K&BucNubY?1haw=|OyONH-Evz&+Vzpco~0NpH@J}mtk2sv1^3n0 zW8HU9nycAZ#zN8d#-O+Y#QrbX8&D(}nJJhC`qumreJ4NhRIiKx9#W+2!T=c7AC3OKC7;)% z09|7G#@0WJp$v#&GungoziWep&m8}M(FQOn2r7&UIK`CnKL3HPfA@Y%NdV?P49=b@ zn6pp*N5**scKu;IyHHSkWMc0>$y?V8bcOa9C+NS9*VzDA+TRcF5smcBs&Xpc=6L;G z_d$PdtiKjT&V8g$**!)!y_G(YPG0*}Oqh8p)(B*~g8OUSbtOxcZ|ue!Th=ApW-)FB z%VFzff*+QJ#9O+|_J(4C5&{o3&kU>2TpD@-k|3EaA%jPa4> zIEvYts?$D7K%<(S=!pCjZ}1eACj#mRs`Kw$`F&9 zvhLRRo&MS~9sbl`ApcLQ-}P6^0&eMomQ*?Y)d9B=?ynAt;yymRmlU@jp{D0Cx+x{T zC;~V!6_V% z!ooMMLka0&?0tDLNdHNMM&~x2&1e5fF+EhFpsKbDdG=-EX6ls4;+I?YvpNd+EBlVhB33}p7o=O)PpgMcP3t3cEag9lBKWNY~vs4t! z+O~sxMm-iTHzMQfZ||QvYY&%Qx+Qz;(eugA-TK;-4lTMTOZ<%4d-1m&wCC z2ldaga_SxoCNUw>hWus?uU>Fnt1?jB=T+;zc|m+)aJRh8ou}ojkjb2mftuj+kSS%WQEpgUpZ@tYBmA(V!a}}Br#H*&AWX|X%u=uHvGKIa(VLSw z)tNcIc%4*z+T|u^W<8zuEt;^?ku!L;8DKIa=I6zntIi2=3s~rqFYqspnNPl2+Od(K z;p2d7ylleIaW+Zr!hi}aNK07&>HSP*-bB69SQ&HeN!h1txw4ATpS;|~%vTrn%z1Y0 zbv9$i+w0MJ6ZzEVuP|tiYBL2jjFOF76yJR;uNrZ*9hT)`S3AA*k}%9|Fl;FDKVN4O zATlg&xb!%!(jM+PIaQ>4e^Wc>!~%O>KezVf&31c{`?D~KTV03h?TxPv36-)Tjv|(? zjoj~7$lqKRVjVb|ys2(>&ojE+!66R`t|c8ilPbeUI!m&r*^}?SubcKv^iH)F@z;L+Euo(s>BB0=-VoEPW?p#^UfGih}GI&0l7GVrT(Z?ELX$C z6J0ICmo~@EY13qd7T)XLLeAANn{oUTWMJc{kpMA7mhP>07LZm@+I0IW>v-!)Dqr`B zm1ah3NrWZGjg`FlO+?xD{(_E$xR3jnIGUcdETfa3b#1?NsI1$c@}gaPX6-gk+}f*~ zKMn23<%UV;;+ws8q3OHJOB}b4qJi*Xti#)-cmaY{z1v-@Pj+2K^6~}E+Lm?`{Iiex zIcVmx%oi(_EPC&Kd70pO)RCuK4_KTlrg7`|^|juAx`NV&!-kODZ2*K+b8iQc6Sb1=gbmIvEbx&@LN8DI;RdT)!`RZ-w@ z-GMlaV|+by+%^hyVxeTZ44N0IY&~i2>>WjC1B{sQXGj7ciu8}g&)CtJFOHRzxj#|D zf`zZu#Z%JdfQ_8PdUpgFoKI`QqvdTtJL*hLy-U=M8O<*yeya2Nq?vQ?U|t36Cdzi> zn+ER>VMiJ}Jgr}`I9^cItoeEe^BIqZY6k9Fa=c}ajXygkF(27=u8K7y!}N-= zq%V_|u{CjvxDM4knS=7Gj%CqI5+;jz9jR$6d7cuA=k71ZwDZM+6uZpAalZ(Y z;&dra?bd-}d_q-1O28E?6)@r|v&33!MFk;vZcaI^YmlZ*uLeOD_9?wjLqMOCl+mcbRd*VsszB?$da`bcb&u*sVYIN%9Trs;VWK08h5 zva?6h?O!;tccS^DkLvN7s?i@dBAc)#5zEPBqRTz=u>&?8pk8eM=s{pPcGyRqNWoo& z)a70_+!qV%ahDpT8%D9pRG7$w;h>aD*;4`}aYDS+k$!>umvioNA!rLNy1^2WG-rhm z@C`^VxI*Z01kbRe1#yT`8D8p$4v67j*VeA%JZA3x@SgY!W^~T$;B_2gMA;n;YvWJ% zZy#)p++a3nOo=i;#z~wu3=?S~VMaWFX|!8n-((`C?f1{(1|f1U7>H7m=lC|Z96x?c{^lq8BAxabj-y)Qxct{8o^m!lW$;hS#=!r4pF>=6n zJxa=s&RW>|JV7J@_-8XSc#*i9ABsL#$ay;?y zNj!XuLO^yy6!?U~(T&9yl+||Bf$QlnH^K`76oxsznB#~tur_|~{-B3_9+HYSm8zX2 z7IY$tYH2I{Qw0|Z>O-aNfP;_aho`T}70quTU{5E8IY76~9!*7Mg?!L{KMYSSaN0#G zgqej&{y_m$(m>6!4E^9cfH9cjzlL_0x#?653Gt6w1*1L(8eI`}=klY2kRS*Az(4xo z$CdCi7hk=y^GU0UIy9XSd z3#E*o3SvPevGiS=1S&RN`7}>N*B9|dBU#u!s{Lp=x5-n>hcXz==hb&oFHuTSDU-AW zk0Z|t5!i&Zf1{xrlU3$_Nz$| z`us`e3?H9LC4m9R^~C4x$rR~QG8ld=({1fuAqpC#qR}(uX0z7#>g?t}ok^)ij9lhv z$%LG?op;Z>v>>B`LvR8TO-#J%}zRo)Jl4pj1^GaMN;5p5L*%u%Utf()J;)JI=7ImAQ@JG6v6=4_jF_T+OOAg+ZXVuBOfNg<*fCdujD_rk?Vei`lX=y z=}Nrk5cYe_wDs;$EK?>h2X?_opD}|p6paw|h${Xyg2_DaJJ8J37t0qB3pL#*58}BM zv)0o;)B#!l;ZqwpQbxzVH|1K7&PcRM=BXK~&TO?e(ql7#)gNN14QE0VC{aO2L8OFJ zH!4EWD$PFB4`uY!5Ic^+g#dtX@pS(xB3BK@W*izm=H5dGs82H?b>A!VTlcCf2bXfQa&$fuaQUMFfKaa)HzUd zd8(Y5_*)jdVO!&z~U|ez-$OY7GmT zolZYP_s2SRh+d639UX%b;ea!hPPMeifV^xK)X8(~L>t9d^313AvkAOC?CwJ; zdsxJsm1>V?!zhPURW-}$A>|gs)-8`cQ++=r)up8M+VBB#;n7`rbceVYXiJ|>F-06z zs&(wejJF)~P5Z!rZD+t+V&{7c_mp}n(<4u*u0g6w(tjpg`opD+jLAYXNp z;ehCU%Y$GJu|U<7_u_!7*%S+MZ1kaK6oESbq>;~}(2Y8J(5f=KtoD-c^*d2Q{Cmyt zK3kJuwBRx@K_gX%9`8o{;Ncc^8287@)=#0x1*KDqPWWI=>Q@PhsSWaCQ-U=L7G~?; z>-bg`vx{i~n?A}u|E$`UmrB6($S2hCQ;`A2^rTQO{6p|OVbSG7O&ZHwXo~J_Ij%1%)oun!{g%Q6{1_@tTMGs z3_c7+urhtDCQ;=ty_!wDRgaq~Qrm=tjEW6gv*~Wf;GwOIZ}Dv2^u|*gbIy?%!QMm# z;F3g+0n3WCW1IVZ}`97_gAauRn)hcXVK^aJsp100SbiZ$6=O&e%_JPX7>lk~g2@ZfVXK&LL zV}7z|+eW){8FamO&WGaQA3-4T%(N`$0RYh27+)1d#Cpd`7n`<`j%{*iQQCya#J8^sX~ zTEn|t&PMNkr1w3(6W|3JAi&8V0{AeJm>i1UcL`jNGQJd^xqjnzAFg(m9G18kus(p1 zc?aF3Zs-$}OMcjAhTufy0?GS`NDGW8O_E5-zi`kiPVZp1=Tl@5O91`;{wh$8b6oC1 zePiHbC#z^+-}p>+)d%g30k%P*2iQ2|SJ(*b9RcCMx&nkxXGEF&$Ute~fsAn%3P_xO zL~OM8u4AO z82?T`e?z*VoJiHG5NH{d0{1iMzsrMw@@p6?9Kd2d;KT4%V{tB~-~JP~`>h=SP!k?B zU=|od{0DInP`V5Oe7S`PP42hP{zsN?YzTvh`YwnVUHUFvlose(zfjZPbU2_4B%B=Z} z!JsWiu)#k<{eqa|MC{8%U=}j|lz)QhU6bx0bV*8_{{r+QknA@B_`LVZ{iit}>k8gw z-YDMw`ydf8@0QP<7XC+XziDXRA7~t*8$(@zE5q#X>buk0ouL6@XTP?{@2UZMaW?p_ z0VU~}6WLs3Xp(j@`dui+O8}kh`m{I8?9O!$2iu89$y%9Ts{_?xN=Mwyb z!flAbS%vSAz{%;|(DkT35e@bwKkVNYys*dH5w6G7YjOq{^M|CEJs}SM` zuv*5KW-6XqeG;GfwEOo(or8f?K?MF83$j}*!g$cQ*NI-Y$+|y0*@i1S?J($b$?QO0*6}|Q7Bvh?@6YO0m*rtBuT33n_~%*NU679G2V8dLiql3Jk}fvdO*c+ z*Gh|SAymN+$)Tx8zQ!=-$VA0QvojG*KUl929)(34BtXC}gYRV-i{gKTCmu*ngkd}UXw8Kfbx4x!_0WRauGIHowalLS#fbryjpc-MFzwg0;a7<{?db)+RiTM{1 zl1P_JaamP}zVv;#@?Qb3--m)l+Cc@$e}j}g2^LF`NEyU-?s;IYy%A*>^=5$+oD8?_ zup}Z31(^nlXBC{}P}#VQd+RaO{l_-(dB=$p1e(xndZFuatdd7hDz%a+0!4TW`1*rW zw3vaSS@m_o#9&NRO*s6y@>57c7v!nCY_{Xg{fF<$$mlk)k5Pf0{ku^Y<$RJHVXRy?Wb4JR zRz#Zo&cZRkNiG^Zw^VK^UTzC0U#2&Y*={H!wR6(<#F|v~QUr^h}CDmU8!Y+h?R-b?!{TKhy zoS+BEuSmJ0mcf9~NH$DRC!OWrrvZV)B=B$XQUs*mrvEQvpYQmA&Cmb+gS&43?FZ|i z|Dyvh{gq=NW3a2}%fDOv0T9w|X7h5ag*QyAc8RU_Em{%5KZMH#)ob`FfCU_4QILSzH?EkK@ zU+Vh+OdYDA3Pf3fJSl@WGgU$Ux88pJ;_Th89FD&eL4PMhipM5tbnX0#UqyNp&r$Vm zO0b|`cd=@wG}jTf?oAd}Nfu_^ig_Rs`=^I}w<-j$Nl73Epe@>Lj%uTRT$C{jvYg`y zY4S=fRp79FNcrsFZHLb*5)uw8BH-t8aPA%cj`>7OqzZnw;3dcI$+Ao&rgJ2tx|=S@ zCYl2>%D;x^)5l>mI!>A&pWHQdv2#hHU1pj7!#Xk{_|EG1ceXR3M%xeVH6oK-tpFR^tGK`N2Qh3v^BaF{3GYyQ`mfK6btGC%mV zGO0d#XWWfpl}Mhaozu#pd#;UkSWGi(&TcJ3vfhQnft=5J!z^wp<-+hJj$h3AGIAoC z+O`6``tyK9Yt?nW500kh&TEYcRtxvsrpua`BxzjavjHX^6gOChJgo&}XWP@*Y$U zinfWJDN=b5aHver(Db92>rT1pS|n9(1|;L!!?j$ZcE;_am{W88l4^vm;D#&7&e}_= zrQtPt!`9D_qUalH^eSdopK3N9RyFHokn$T^d#q^EPFHM8FRoQi#LEFyS@M(b8Vn}q zJoH?j%el)2Juc!?c9_kTk}r^VVp%P2ZDFe3VVbZ(@_K)SJWN=csPU)*OlYF?@(JYW zTvguZ7;?=)h2))COy5`#-Jk*QC;Amr`TZ%`O1GwN6;##(DNnl!zy-$~uL*P*q20v$ z!?Y)MeqTWf*C9@gnd6(v^KLj?8K<#@I%G*ArmcMjcXlRHp zGw9%HdH?+5$}Ion+u@hD-(H66^l^8 zfsz%hb9nwbY0gQi+!4~g^Hx8xI8o(CpQ=g5;=G8|qo_^3tkbmRo0e&|<|s74aB9D@ zR_7J#RKwx9CJN=@V%;!$eV)MXg>LU~>K;fCSX7Gi!~nGK0b=z!f4dF2&hi8}D%yuI z{KMkX_DbB!&z5Yz_14=c_Z~@|+^2GM=Q>mK9C5cBTnM~6ji)g2H-Dj5eblS|ZCj{* zgU3KksUEyVM+f1xm9el<^cmOYm)f5ak9N6h-uLZ7fD0EcNf|C-I~cfVwbmA6`~{Z$ zbjw$G-_1_A=wf&{m~OOY{ktLH$R_oe8$T3{+5WK%NgS70XkrTvc8Opk0$wKO_gSYB zOO(tR>`qW2N)4!QdJIJCPz#vB1?9qxw3CZIJA^ys7=FDx39veS)<5){!--_&E8?CR zM?{wpbwJ;4wlxiM%!ORDGFw^K6DU z&D%x~hrHGdjH9U&#+j&vc+Vs0=Fr(G32+D+1^)~cCM4vfuc%1VCoES+7u`Eg&4~A? z7pZ5$1G8Y?N6}GF@BB8efs5L5n!uKhfyR6c5BQ>{{T7EsyakYKN%Q zY17e+gnJ$!7bmPol_pXOWCLtH(n;Ry^RwvvS|y74lFoC10)uh9`ZWiN$v-omh0Kz0 z&go`=!%XrV<(;&Bx&F(ds#eJ4#re}N zUqre@A#g6iu!hm#+Im7?3_=t{Z{e?66q$UaaIwcnOqFUaYWkl;K*DSc^m<><9i>D< zK$Bh35kNlSJ$NQFQHx>8~+*!p%c|-e`%4*FPPb>Dr}?Q?977swk-M3A!K3(yKsjG1P2s#KFd$)l44#xw%m2*{mq4k(-DX6S&E_XNqUDYAC~D zoo?kh9fW`x;|_3eZs7Zu3!sp27xtPHdQYtzze8v$?_fwRoGpfW#Es&xBD8(wU!Hya z5g(`zhB1l-?(0h~gYSQb!v0$d;S<+PF=j!Pm?HaMA% zG7JDysqlEa_=knuE@7rgEiMa00j^d>XcIV&E-`g&m71c~v20di(ZB;UuW+sfB}3%r zl#_l{T3rSz z`2wkln<^3=D+`DWb=EX5zufx>qBCfr^X3KoCV8tJn+_*`Ca|xF)cJD|hL#pnPbSQf z!K{kw)AbHvV)`2JUO6j7W;t6HQdKd9T`G+t?`Vf_%xbu%(`haIJb5n`%k|3TknUQX z2~6Ha__AW`O5D0gop91vW&eS+EyN!64uf+A7VWm}Pv2L$V8(-SXE0 z+0C5bx2aVPCS)RmY~o~3?s*TgWUQxu{yIsk7{`!y#rNRjsi;PeY1@{>^Wnw}tI%Q? z+xZ33IL66e_qYMlJE&{W&Mu}3M_^;lTD?QwHjL=g~3y>owHcehp&60Y78VKFQ1;Uv+#VSJeI3dHwj1 zP?y+x)uuCEq`tr?Z7s^W-Bs}t%PB6#nm@XzNm*~y3?lj3BT3AhOf;1f+(bwaT=}hK zE(~{Bg7A4cUnLWSVaI#*@UI)g{>cN>MxQG|C|W;xIua?EE(>_xkjwAK^7AO+7RR7+ zDPEWP#U}ipxw2w!CByY(YGSed73mkb2!ZNx4(*Ec2T$Ooe%zr`O1P9Q4#a~(1^AU0 zt%AVeKs63_{0q~Xk4HQWPCR@UWYaVZ@e=a7M}Fa;v4O)vCckYMxf5CxxQ>H{mEnv- z=6zJDKtk6Ue1x^!!v8ag@7B8rSwR%-73;11MYiTWS5qh7I7UTx8DIEwQ-=TcfS2Hhg0+DmkMGnT!P?|y(MXih|L1zM< zDvH6UhLt|djByc~w32E59n&3nhVmd76cNb%gWakEV9B!co^#I=&Mj3di3Odg<^71B z;W+v{+1vdp&=Yvnk+?E|HKodV|1mv}!O82BS*E}hJC#t7%aPj0+x?B3vTVXj;4wmae?;UsqTpMZ^KKA((6;Ae^Jr{?9#t5EHufnXy3o4r=}R@F?r> zt_yD%y7b%hkR-05@9F=8NSH7p)o~-mp{J2!`~O4a;h7&|Vs~xd zr4&uEDf+_6gW7pP+!aDFL)kxF?N`|bNCpv^fJdK@exJO*00u#O5|fcvsNSRG#R_UU zO#dz)0tzrJU?oI(u$knW z?iyIvL1Ebv2s?hSq>;w%gbssYxqd{fc=_|Sz(9eKmLXsTlE=B>gXV2M`e@ z@?#%x56-uqu1*7h`nn$P$w#hVDb|0K{(sE9Wk8f&*EX!uh(nh!w1h~C#L%T6EfPw1 z4mospi6E^sN+{jkp@4LEH%NEA=in9I*X{K@&%f{cIm(=~_uA`Rd+%c%>sV<5AyYjy zAt1M}EQZV$hh>+WX~MV(q)hFOn1pvb?5Syc@SB=?+>dPS-Dj{BE&!E%;0F}#s{->c zs(fX16#qCK-$n3w3h1sazO2rlu)p_PD}1c1*{Df|Q^zUFR7UyQH-NyAUB0P<@Ki>&-AqJXwZz#B7J8L|sWE`Uiigsw6zg?w&r6u|kMn?+GaIYbqCPx;SRO7t`PUqPwmJGYb5N~^CuIIVRu1Yq{(0=4D5+6V1*IH7$O|e)h{4UQF@5MCv!+7A8EtzgDQjRhUu%m zdQ^DJnlFX)Z`LR}?2-MvR(EiC6XF7=8j{kbu*fFqj8jo>ze}z3Ij|qcX-b<0t~*({ z0OCgqfFXs9pn@$IP=UB&l$GLe$V^#&95~Eu6TM9M*zAnSh-`0B69re8;s19|9IyNj?w`|vUTp}6KuIRH+_Cyo!nt) z`B7lrl+(q$uI_>5ndG(3xU(S8&j|d(W1K~=OeSP##k?%=%+h8;xj@JNO7-YGNT9B% zj(5P`w3Z-iAqg97$gD~2>yx9R2?7g-)E*cOM!y#XV$-L4`t*S6N&iFkQAt9ue-To$ zd!*62%u&lj44Oo9AW@FxBU{$GjyOsH_y6z^ug)_}y>5&C*JaRS_cE&p$~S8tPN0PG zPhRg@o-xUhjUQxBOBsGwYf8{KalBeW!O)Q&@m{*KdG{IKb;iuzVk%WVfJYd1YZ;*M zrPIx?q&4#gosb){45V-KZECWlFYeNu-(e7gW|Ayk2WSZp161}TpYj)QDmxUj`|?(4 zV?k}c7VB8AhqPgF*{0D%Ob={ZZQOiBcpBUfu6>g$x6%B(UG(kMpr~`}x-G5RH)s*` z^!3&DYfjpCELGk4Oxt3Kka5M_kvn#qS}>xoDiCh&8AdQXW>Y`#(sYxwOq0j-rxDdh z1F^H71~HK=21vb7-&2ZT3s!)4J%gHO^m4h z>Ul0kP1DY1r00}5ijmHonzA|(Cd*r~jRN2V&PbD_bIyfS9Mcx@G2^+a*tmLc?>x{H zU_~YvWP0VqflLy=t~|K#F29Jp&2;zKCSBon6rK2_{2pNt-#pjx+3>~|+5ES6ciUA8 zCD#j5z=kD)ragC^T$Ij(H#w(q*k4~hwYftYCW^~J-KX=4!kOMpE(){Rw`9xJ@6H>S zI-k0nq2sf)naOi|2FQ23!w*=|pIz03aP0EXBs1LWlvbFR*zbzd*0FDVj{GGl{Iz_w zV50%;=$V#B(&eU+U|1EMGqv9)s!b@nb!4mJ{Btn7;I4hrA5J>yud(17CKH&4kRr;~9be^7~-6JO@{ViAx9h58S z%)z5Vn}5Vt<{MI>txI6n4~*e0r%71`cs$!6{*%zBuh_0CerQ}IUt7Imgea6HP?=$U zV%I+a712PR>^eJ=59?ii+q!9@S7k=f1pu95uvxbTSmruSsmZb}OXOxQ8^ zzV2jhjfgnsI(Aq1+#|0o-~5~s$Tvnbc`{RQ4?Y8E(fk(Kz%hK0zON(H@aaCKs%0UVWDveC7S!^_5X2Vf~^SD-R}mi>U(Evbt$ z9yH;LxmS2P7lnL8%0LUxjI34dNA;6+I4q(y36dnGiX*7;`BP1r1%!ZUWegjfv_D|o ziO5F7K@cVEqkJ%Z;@ecy(R5TY^s-EZ5sV`uWW$~qM_LUBsM_dSmz4$`b-K6Fz!2*nv`9jcp5`R8O3NNHQ5Cv>hg&bU zs58hxxei>ei}$7HDi|v6KIEKY=0y+aWWFe4UED4Q10n#UfW#gT0vm+2|4`K34a1!s zK(bIlQTBT#wUc$)+{eQ2jWZMPrG7PfBgol@NjLYdkDYc?1Qxi`Ndsx2JuPDu7e@(T zuNeP^f)H4oaD>6z^cFbX4hF&L4kku?Ey$%Hgn>IgHnDV#O<^p3jWp8qYe;fc8cA@+X5gtChF3_TdF%w8d`*mv z@g#j!A#D{aH%S6r*yPXf*=@nps`MvV{ zqi8^z>}hqRQjs(O7&NtTSU0_0&Y4Gw_&EUySH?Y&HUe}h2FMifr}Rg$blQ~{@h(<- zX1y-4ByiYt68A~)*y^aRmt%T?}WS4I(n0|Ex?%l(> zb^Y2Bln(AQbFPdn1O_hRSaMfe_`(&#N5M?4F0DHvP7wws(ENhf+y@YP_m4qUK=ReyF1|E?PI2sL^|+xM8`P4;Ehc* zdNfyU9@w08d@Dc;f*nGK^;G}W;&YU>XV*W%yVa|chXLk-26#hgTm*_~0h|UH)wEb& z@&J3LgXw~^%e{fo+AwnSZ}~xz1}6@t9!tG)S-YQ>q%M+TVq)@3>Yn>MJggS2OFT2i z=~p{8IzCHiESKM@dwG=K^wjJ`?a`{k>vZhF&{fOy?OsAcI{32e=g@$n z>QVVz6*}eln$PxsUwZziI(=u^N69U*$FoJzK0#&mHo0=l&H>4TX}L?GVt{Ls!0#?7 z!j&0dS6q7*Li;Eoa*Z_Ty+{6d3bVm7jXL4F2BP7X4hqy5jNLHf;8m<~s&x+14($R3 zu6uzBF#r>q(+7S!urg?H(|$;Y$>3u>AOwhvprQnx%{~!OuqKKlAd0F+1I@L_zR#g+ zdY=b?^?hZbCt{oeedTf@p-U1$yqr3r%D45UH52z#i-6$V{nmu8gPbweIm72sriCI3 z2?-JwgH;JNWYs%bRP)WDA#U6EG^s+#FX=3^(8ALG)CWZR<<>qDMDcv4xOxkphEw4Y zunTu(Sf97=**I+}$mC^TedY016;!lP=Qg2MORz6TpK$p*JpFNeFo#0t5*dINLwomA z!}zg-5O!4z%bKd|*^BZ0HLKsd8Z6`bDf5*uK_m)=5|Xi&*&x1qXY_K;klk_>{Xh^L z+gvdZT%CR4|Lv{L`xA%AP<52}ot5FIIyZo=mj&E1_c8c<+I?yHe7!{v@TAdiF{k;s zdS~z{R7>;eC?1%`-O0(%5vvK73b;jE`j0iY7q~_)Y8UPDBdzE4{hkui+u>>DBJydr7oZuaJ)0_5sfZHR*m|dPb0Cd- zd6OD(4!eEq^?8rx1&G^3mr}h$QTSP(F#cojlb4N+cJK2#3ErLTEvPes7h5!WDp)J- z(UsE$I%+6Ge64A_nFG;?EFybLidL;RCJ=z)KGK)2v2K*kb_Qm99}>S(rTI8v=bMoD zGHor6VKS&aO`|#7c*_}c$LmdiFL7>?9VHcmbV->-O;poURyu3;gpcgn zub35>&FZpm&Xvs%ahf|y<5sbP1cEgr^n(viK~&*Yy5ei+elqxd9nN9&uV7a1_an(~ zSdOEbI{P&F=LFz>WG4XF&{4qvljEXEaHl*bTeXt3IVi76_nuE<#Vb=o4injNEG)gB zrq-ck$fNynI-WkN9drJUAiQ|qiaf4LW_^P!xx<;VuW=0n^_Z^f8-lqK0fLBcugavV zBh)BebZWwxWf>DdJp|InLkX}BqE>~{8n4gd>-9XYuCEM49KYQsjhGeEp*LUfMH#pq zViLeS4l>&u-Y8HQ2{egYJp4g}X%|+Nj|(7@tO2W@lJ2h}FW$CBI{Qml2^lB3>O{OY zk9a-ej(hkjN5DlH7VeFZTh+lxR)Sjw@}Y1$M^fzZTveu|G^*65mR4QwRepzJg^FC| z<5dMpa$5p&XLXV$NobEQl#SHj{PjaGNmC$9(BNPY@$g`O6|6Z!pk#gYx|XNvsmDM--rCv=QV}cT$AYLcnr=<*1>`@0tHEes z3%#dPyEy0^$L4@Na}5H(Am;xBgA})(+B%K=0TTi>eLk~7?q3MN(g=~*k;|yob4G&a zJiPTi1rib|fGGP}cyblUG@J#a;?E@PV3?N$*fld6u=}=b0c9S|1{r)lgH=cISv|Uk zXnn%3Qmrn&%ZR9+e9RY&#UfY*9zu?>y3Um%`m-_`&J4-J7_{5jWYoGL4Z9k%dH&~` z;imaeL4Z{J2e(x{pu895EuAmYS!mw7-wehcrBdcD=1&53AV_ATTz&s8{8P)V1jgHN z8|FVaUSDKNEK7@;m?{ocI$Y|C{^P%Z$M9 z5w2g2Eau1|^7CkS^X$L>&Jf_mX%8VN^Z)%%zrejaO`ddpIszWhjH%q|s@VE`+Z^~( zQv#^lpTqo*?{S3O{$riy!1;A&Uxp&z(B#8ab@S&t?*1Dq84V*`=w;Qa)l%H)_txC$ zCKU+AERe06^d-JK=EA%n|8Ml^`;E7{mNb?x76WdOQ)LJoIR#cHO-Ss|^xG}uzlQ1c z!vJ8a4HiDl(p&YdD#sO>O0#Gb;=xcKwq(8GKb3h_ncHimU7esEbr89E7Zk_aRAF_Ax5=SC*QQw!PuO=8pH)yDv zH^@1Cm{+4-#tjP$ika1EIPzfK^0_o@v|`~tfR%DY-#+MSJ<|jBbS8WnR-mNCawjAR z@uvVtRt!)NLCXdwkU<~+@zod7Fx7H9E@06tj(_iZ% ziIy&TTqqp)Mv7SKyQt58oZDn1f8TzWU(+>x)={d!cXsT$)MRxCamKkEYNK=z0;>4Wlqe%=_Jmy4@HgUp1j2q4o47sieP$bL zH?u!V`0D)GVUpVH)!jZyQCRrAhSCIMzj#145r3oMCIIU0UHJ4Qkrn{bK7_{37eQ8X zWtf9bBjsW6ZLHg3-n0xlqFLsCB_W*x23bVY>o5yH!mNi;NvmD| z&=gSNeYwOkHU0ekkIW@3)6=277=wixPME~;H((>FvFp5Lw>eYJ zwo$=-vq29P_jQnF6|?x$q_pH&#jq%CDa^mm@WV=a@66o-8)QAoW&TpH?x z7S-muqmK!Ex6K|lY5m^j8AjOMN~=oc{NX@RlL(lx|Fwvfx4-{ zGiEfg0JK~y=nA7l-KiKv`G{iXAif}*VdkwJF3BjwzcR{fGPg+YPT=o@6^Nk@dbyKx%~Ny`10(dP!5%%$B$ z(8h%d7A*GH$uVF9o{7APf*+c7J<)>2^}24hfF4{T^BM7B-Ggz^luMJ@LH>Bsi*x0^ z%SwN8dbYN9Bos-|-m>=={sPsH zwe497Ne`13lK}Y94tos{am;Myug3>SbWhRUGtu0Lo^cZ^U9PQ(MQXEQ+XZUv9w$k0 z(c`L-aelby|HMV6!rGTU)5N;x0xW!0pcqOulR*+S34Vv1l)lrEe%02Yv-Bru_QazJ zt%v0*60{{%3LDL-d2ah}PcDz>3M?%rM(p=3H7xJ>sy8G0;22Qhg9Osr9dubE5>Pj8 zAXq94TwMH;8q+mIgksJ;C5oBYHG|m5s~lHebW~Fk``mcroiDOykNX+Z$rknbIUR>k zD(5=Y zSR~adLqHtV1u=?+avYy~O6>YI%g!+7l@KYW2;dkp=bAO%mx+F{fZ>xSzsrWO{%KJ! zVL}3lKvc2L818U9+QYh`IZcLh*~qwenI2|pFyk>MtiSl=I~0;|3V<-|8y0wxMwPEn znQkvPsP<%vg0*+MFv#KnPYWDwMkVy&mM#Y40_MJMhmY_r)V;x{acOCy8KL9ta`X^- zyTKy2r!@+ft5l(t7SzJjkAT!9Gzj$Cne%+U$^jcEP1rI7d26_SUx@ynBt`R7(PZBb z$)jJ9wf%303-pD^;6P7{G#nUQI-Vm;;6fGM@Cm?+ip8U*cLoOR2R@Z|Im^=yTT`}E zK~74bhLfopFOtUJJ3f9qJkO8CU37vup;}&2dxz=+G~z==k|TOvzP7Q<#d|6;n$}zU z9YJy5!r9qEz9>^ zX)@HuO)_SaF1E;H-^Gy|FHUm*n)GGE9^@BHU%eY-XKrKuM;R68nvB}otTr{n^kQci zAn`FKDbw=+%5Z{L=*F8SYUsRFUT9DE5;Y8R8(|Eigb_j$W7~m`sHeJ1`7;WZ-1rzoOqEdZwr5xr+gJF-ZcPMp6yCnfWJo* zvdyl;W&Sm=t;$B%92?w1GfwfQg|^mdpK5;zr~3z8;hE4BPDE)xrMQ@c`LlOR4uyV2 z2Cb?dvbtWi-(Rqrc({ni1BAqLvBBdPGdM?&&z=V;&m<3*R~__$+||#@t3p63J4zVL z7Wi5a>)Tp}bMtNc4~VyyBOhzM6$@aD-ogi%5zCDH#M_jGPv+G&!$rq@wFDFr^3U$k zl_oE$G3q)gi3Oa_p(F6$+pWe)W^+$c4u5uvws${7QIfI4hf)g~P&g(52(79iu4Q;g z7&|(=WB0{%#}-hagAMzXL_UC;=+#+G zX3wm{j7YO{#P|x&iIF_vUMk0+MT--;o1jzs9FkIS^-y|lx51c7 zabMNti~U7qG6fcFT;U6^+NP3|e%*OY1A3K|XJG4cZRw724g#EH@1-iQ2*w z=3~P4u0wGj5ad`(WG+|Pi6(yKBpK71j$tpjyH~O<3aH(qn1tw`1d@k~#Pd*DpZWc7r*eOwicI!~&#v|IbQ<(_cHb?CkhBM+O2 zd|BP6K5ft~=Pm)K9_hOH-PEcI%dYYVf;tfS;$ZddFr6k7s{3uCM&vYfdpdO?(xV~1 z4D^s1UYR(B1;!`>A4)`1Q_ms1{;IBmk+p84fSePL(u_al1@-W}tzlt5N`3rqrpupB>ElYF^HG zAqHTPaqI^IeN6F7ps#Bg%v*?5)}P^nC->r>!B!*6R6LE08XGw!UnZr+(n5UIcvd%& zo+LYo1+1CYy+9(UX4Ni>l;W-?S0a*#daMXAWA!9(X?3l6$3&7>zxGtq=UPDdc!G5d z08Q=75V2P{)OQq;&${APX9t0|AOv^|epq6GJIE2a?9+X0G=*Q_q0-f5pq08(S*WdP zCvXJF4J@IDQsEv^=>!LZ7&wE2u>JN1AT52g-&WH?nSCqrb^FY>X&}Bj=629xmORnf zTL`5<$}ZwLuK)L-$^<@tpERr9R5{jM+@ev$kpo{9ay%Z42n+;@{g(14DN>`YoV)fC z)SC7Iu7q))Do2ct25cj-u(Xz5q>#PwQGzP@0S!^{!iy>&8c*OE>WPS=qhv%s;XImB zfxsju7#oUqv_TP38-nmdUksd3%+8X#(_>WFze6sL09zKs!=fky``R zDv;OUPG0^Q>#!32cQHon64y3>waokU5pz5dc4xAQow!$3ZsaOOtG|;vk&4*$r`431 z`h&WmbS;k4J~6pi7hd@7Gbnw3{WLTnIA#jILHR2d>Rfj2lrmMco( z7dnmw*3Fi{$j0^FVjwoj%!OGMx{1J8bCTZWGnEcKp^Yj{lIL79;oW<6b=f|Y@gwr( z;pdX73k|1rkW$=6qvN~=t)%-{RP-D7& zRJwuOARwi2SGwP3$cUcmvmI>{Nz#YtSD0TM`(A(9D66G%Zi;PbQrZZj%| zB7lZjW{jwYF~~%e>j>V9*jwZeR9kM}5jYZ_E zj%^=p#nBQCWOdrxl7e%Jd!tVGIw-`o?DNhBXuaDnQ`?7-tpyq6Y}I>UsQVe2W}2rd zNrG5%Tpo3Y`>d15p3H}e=Gu(My&u;5Yvw<0Im;u4uBxNpeCEJ@2G?luo%>mX?FXQ7v2JaHB+9R9e-cm0ISB;)-v?7-!_Hd1gfa8dapK*LL!Dc=^}0T3kgAJ48HG>?1YXE>QcXFe3 zq~~2vvjC)0yuA)W?sdGZ*3q7*yVt1WW{wJgK%yFAKKA=w047v_r%xCgtm$$o!)en` zdPI1=kdMPMl0LI~|Mc_3EY4}8FUn6OnicCIC)SsZ7QDkTjl)+e-CsHg;lX1|_Gkl# z41ja$h~cQ~#j4g-^gUu;ekE9n*&>RM3&tPS{VClTFQ2>wI2;Hp66tz`uGLvG(ZWEZF-aS2P1ozfH@`6ic$^5Gi^t;kO-)DumyP*@>x)87la zzfmB|X9r<{qhTeyWBF2!a4c>aT`XYif>p8_$Wf9mEw;&NHPBrFy=FQ`EcGmFPUUj0 zcY@R%xjR+(F4C>wMA4CNVPPfMMyH2pKNW`$9wH;>40FCP6M+8pn0DA5OYK#9^!E zB%3huRe%rH4)DP$l;Tg1g53dqDjyQTP|N%ZU(7Fae=Crq0leF!4men9_r~WZ?wZkd zmLuzBqQQ`c=$o~U;hOr=MiUo95rp(SO z+u$#_<{4I0SgV7b2tA6BewC&91>ZJCMgYk5f2F8Y*R+8Yl_<;@na22g7Ts?EbNVKs zk76htkNyqI=D~0T6gWbFf^FU$nCA;+F$Pg0tN*Uj2Y&Zd1)^{E2a`JuQ7phv$h+;0 z^Y4IbDnPZUVJ?b00rwC3?BDo4fN%fRQxspJ0Smc<;Sa-jEkCxBoN0uYIh(UYSI2h- zL$-1`&GlX_>5OmsVRUyPf0?3y0C{0X&Q0x}+7q1fk?VcEqmLe^Do3AtE(Fb6TE^l& ziDvyGtRsYupc0zY0Wfb7HZ&hPaK+-=jjKUN+lo4x+rZ~U3Gw$XLO|4j`+_W%GWa(y z>OLlrex_CuxE!_JK|JrWbZ_z&{ zQh1zrT+K>hfp>iG{$eU*WT0J8%kPH$p{p7`Yzl}fvSdjv)yDon@+GMc1_sBUnIpiz zw6#;N3(x>NLJIyls>y=H#>%mjJAFE|T3gx@@?ALcB25)U8OA1}HbTulJATxApq zB{(ZGO;j+iNo&+0OMx$CW^LzNNsq^QQ!FLqCC#nFrdbSw7MdG{$QyEsfX}l+O&imx z!xxp+l{r}h)27XwF-l|v`Kn)MC(U~!Z(0C;s%MHtMx7LW~*Vx(`6ZKtHU1N(UhzsDSRntNs7WGcMAz;Zt#zg~e6F zm|V6Fx!B94d&N)7(9e$D$j^u-3NG&-HI-k9kv^0ZK?=fc{@O!t=V`rq`o_HW3L`%3 zwg$7yvm@6l={&2c1K;*%uY5HcspCXEZYuh%v}gBjH>+B3IWbMRA6~_&ag34nj4lDp zYyw$=znR&C=N73PUmxj_loVOcRK2;!7)Kt<_tK;psQ6`jB^Ojfysok0S(jNj`(l{N zT|RRR%3UmrR316DnL8-!P&lR+VU2e6+=x%wmPgAvxzB#nNp4wXNvFGM>3bJ{hbCI4 z6HxhG!uEYG-xsr~{ya-BAv5Aw^~lb$b@};V#=VFfBxh$<}s$z zUiP`t`)-n+-cw$2o{^s9tSDQm_)EM7DlecZ{gT3U{TlXheV6xd=pdx=fWd-Q|yyFR^nxLU6n6+;6 zmi5=in}Y7UceAl}JGHLpcwzH7=Pe_1Xr8ZcucbBL;=DF_o#@qGym9ME0U@E4$nIQe z=7>`^*9f0oh+rUSN>Fl@Kv@A)fQ}65X-IcN0jl10o=kMmwcVv9YKqGXnz1i%r|g;TJl;JStOrAZ*A4;SdATXte0wgk?{)-@ zSZ_>_*7e!Q`}yX}FuoWbr}TX)Ko__OXdsxFLU(l0ei@{Fi}FI?8smI%gT0zbm@3Yy zTp$C@!JH9AOV~QFiJp<6XkN}7K|w|P8$L2!(-5%^r&wJxJE9;19C3f|EgNTFk=w*4 zsYz%4tgH`;ZLWuw_t?(tX`IJUlJlhU#8-16dx<>r_P5P3+rzhta~xskt~e8n=;ga< zZU{|w?(@D7A+V>HE{1yl@x$fiwqoM={JF@mR`UWj>5H?h^vP}J)?KTCd-d%V$UPHe z`}G#njt{hiClAyfO%K+5ij`by$(I|#CH?mz_apH&GChxP$sezGLcV$z?CI_3z2RE6yghN;I-6Q^Az!1Q33B7X0~*T@ z!I!K!O>}&Au9@6LBzx>+1RK|gn2yxV|E-?KMd-?y9oMv`qeuk2+#YrPXSscH96e*? zl(Eg15D*`&-bEplYff>nucfR#5+{OtI?UWZX3n(0-^ zrUAO&o9{OJXwi}PrZ)9@6y>`sW+N$|10Y9xkg1t2a^w(dF@_5BpfP09M`o659>~!mjDyx#|Ku3Ccf^{ zy8bv06x=nfS3C0bfxb;5G<*O9tHQhmV|iZLe7viBgSV+YG?6o`c0b}ubCTS3E&Fp? z^YQf@`52O008PI}oeqi1WtRue+-gcYW58RcsB)jV_aKzRqIOB1nhL2jj%EgP9Lz8X3zz!LNmReai}V5Z`(co%XKxx?=&0%0EVFiXR3k7T8{&zKu1Y-#V4XgJWjJYtSzH#nob zO&f4eV{;)Qvrh5U_i^=Gy(K)m$^bd}C+>dv0SHJ@!dLhY&U zOy7X{;j+f&y3g0KcQ!#@2hyy&Y)yY$+r(xuDHT zGT=4|D*6Yj)=8&{=CPVYPDP!LeSoWM)mENNuE`;vUsR zXV+(UqheX_cmQI6=r2`&a_m>du4lZ1PfHSK{_`Fn1Qkb#WEGB#8eM!EkLTAU3Y5dY z6G(=YtJ4!yM76huCEN-g!Xj=8#RKa`)(E>w1yXfzr^nhx0H9!tSWdwYDqbX!7a}Pl ziKcfF5%$xEJ|`*fXrRAY+xo6vzFQVgYYd5E$wwt%A1ng^GrmA&+TM-;c@9=+eqgS0 z;IhVt)$q#TMqyYAUsg8hCyEGK4!lv#+kL|EH5~}FkE2mKTYIh>2`2#k@FZWOK*YSr z;Zc39Ah~3Tj37|sqK3P7O&JqKoU+!aZ!lgTt5qt9?>tCmN1W_)jTe@1 znpc51_i1_h1P(E*FynzxMXOGaL**`wlkci$I}&Z&%~@In*<9|O+K3OD$;Fz1s|dDq z)6%-{PS9tACQ@mE!*-Vqmz|PH1Mm5Q*FJL3(fRSY1S&%_GiB2fI~F-~V8y8+ZV7u) z4iUhyvIU7)$ynklmz^kq0ZXe-R}at5)Iv~r!WugQV@qlfDz5^x0?3|N4gt-Lp{2?T ziTF%5X#?pHw0mvQAZRe?>=o!t`Z+31sn!~6f@Qvy6(c90#^wg7oukl|si=RqJbA!7 z{&7Ek<{|@J>*aQ$m;5Lpf7PT$w313e=+H%d3>1EnC}$C7>oxm%mWfEW({uh=7z@Aq z)#5dSfVD~!vh`j&!zC>eVv_RW*YNzZW+Et_#mAJ)ouG{ldvt4=_ccbN!i$mfAK3#P zeXR2N?VespapEsY7rPm1lp&&GhbaP4m6;)lLzya`+v>GFiMZ?1u}cAiIiMltDTmCw z)=Wn$`&LexbGN;VR)CV@j7y!ohmM)|RPhY^`Ta9XTEU=`=8D*zr5S*WAyovhykkwJ z%54<+%8K^sj%`o%U&RciOPjd2Y`barb4HzZ7KKSAo$a7KlyjLWJ}Imfy}CwL=8 zrTvpZw@v}UAm+_2nBAF4cJpF-U0GN#D|D-z3Gyu$>8S#R`;idGD`mRb4*e;O!EoG_ z`+*?cqFmJ5Pg|$i&^5XY1xk>jlZ1}8| zqjLGNz~iRd0w||}B#{z8oLq1699Vo2FZ~o(*N$E1gJ+d=Tr=8p-87QB8?3i&-_zI% zwu+%J-})p|&&CYKarGf(=Z2Kf{Mk@FZ+aXHNZ{$U z8O&Q)XbFR%MjI~+`{-f5a|ToXq|i__bm#lb(D4V`lGcTIeZmR54L#N;x@Km6uVC^Z z`VL#f?nG>bwmzLh`|`qGg92@jT+2>}B{Fp~ zl@+U4?^T*lWTLI?UcWDqD9;@>zfHUx7{!k}B&BuF++U~+L{&OJ2$aego3Q&p1rf9R zRIsI5Zom6I9q_2a?|}HFl22JgBP{&W*_X~?&OkmRh%Y1kU^8R065e_|o41O^7pj0G z0*pY=(mizMb>2t777&DCFzGokUm*8E&EQG!omA~!oIBq0s}q#3aTg0J)Xg2$>q;r5 zV1Z@W^o9{?m?h=hElF=xfZmK-YjsB)bx(*LRN1g_O^W>Wl z9)$4ujehP`xJXn9E*hZQ{{Y8aq|flFftsOwX0EdgA(;7HHo;5EZ-o{M7nwP(g(Yk1 zd@+w8h}o!vDjKv}?-?$|9-~04*vs&n=EA>?q6e`8WpyH`MB{2KI7Yl#jPw+cMe?2A z4#d~FI}IPn^|vb@)#3e6sXtTtva_@AaqR%V0Q*kaT~q6}HY2&6Y&@>kpT`FWk3Lvh zi*Xj_*#r7wU~nQJ0HJ*_z)J+s`BwIav`uvbl+T#Vi9H%IR4A1xBlY?qG&-#7?UYUJ z=n=Xz)XG{>nwVw3LinX^cdQFXRAZEoD?0#09T#V^@vhb$N zfWy#J4|3dKLm;Bpf!z3shcqouUIo6LcqIY4Xtek9mKqRCX>kV!9}AV_@`COVu9wi- zt;?(AZIysMu)x7Vbohawfm59b`*Pg{X7}JFD>^Rwadr2PKVmzlY)0IkvdzKode+Pc ztqx1!Y!?j;n<~s7s7?>_J-R@N70fE`d&~9G*Fgryx@KYmE-~-PTaYIH6t!5DMII-f zE<0YDvvp0?-&DDt)LYiv9v0B5C$w#gdg*PqHkgYLfay57sbx}PT6jZbfP zpNNu$DC^JR)5m(*BOl9PgrJ!o%g8HaPN`&W9RPF=2!K76_-d#7+;Ez)z@K(fk~g#! zDJ8PFosMWZb(=6a&H6gNU69g2pB{nv)nrSKcdxYb%Gj{---Dm%y zPo3!3LKe5fFz9Q9^S=5EMqal|ri*)o2zu57%AxsJ$CgCRk=$O53brWEvUmr_9$W@w zqNA3qHy${537*UY$|Kq#ze;#;BWz*(h$kYz9sCiWk|tZ7FFUcOMge)r0vRnqEUax> zmekw^D$-L^qcKX(yp&lNovI4Wt`&~n$?>(kM23tw;{cVLMB zF|wZ@WwBrvUvoSbh4U9g77|^}i5yK$Zk91q+bje*^G)-ev)y@LQ^y4c>dB zq)XU#epUaRa|7Z3BI<3_Hy1&v7#E^es6z(`!HE8wo%y?O1aAMLvHSkdn(*=7UKN#&LQd}IFpm9F1Qx&ASb8dj`eP^8o1 zzv#^XT@K0MBPvP(WF7ea{r4}!C+n2~$l?R*{;!(yfL|2Ucn-b9 z2c7zRV<7*Bfq@SIXI=d zl|n2a1VzsKU!VU1F8h=690~mn0pfovfZrktziGYaShY~ z|GFG|@VBAx--MU{iX`l+N$jXwRJ5Xgo2~p=TzVk1szFQbk9e_CU|JZE!x6;Ue zy-$EA-1KOmjgtAVI0%pt7NOD<@n2HDw-6oxfhJW?v^;-)Y7|GLE$p&9&cZQ-J8fN%V6;6UFFuT@s@VAfj^JNf3Mi0KN6pRo1BAJuZ$f>>m$A zOlyvAp8cBw0rzRI*N-X0PzJHhZ`RWo4?zURo!^7{-}4Ax^|WSe+q(IVAset0?VrE> z=T7urWAj?=wdDAR)#S~9F6*8U@1L7ws4m=@56JKR!G(D6nH^3!AO zjb_^r(00`)!GD$#c4&Jd@0H!ou1QjX(NlW_A|%}0q56rf)|x3HLSkNlzZ^@w-m=ZI zYx@BOy5zKOfN=&RZ^sIdrXe5`gGuyL7P5@KdN~W%{yb<1MPpQ8s8T{a+aJCcdp&y( zqvG*we}E|bW%_eVzTe$YGIm!rpT|zfQF2BYBkvU;=H6q_fZo^WcE__F$9yOogX2;l zWq5+O?f|506kCp&@3+coJBMz6O--&na}g=1H*+1}p?|#_qIDyo1*k(Em?DT&TJPUN zxLLeM$ece$JDs~eA61wh=p&CjB3T3%48MYD&!Jp$oSCrpzC!-sP97KpdJ_VAa>Zgv zKCRHFGZ%cg3D1=l<(FMaxietghZ&J@Y+|0@SZ2Mo;SA~m3_7|IsQd$z_Qxo;J%LVQ zwP&Q02=e51`YCJ2UU92C9+ivodccS=#RA+vCQSANN&RZ(<SZ@LTn!s*LrXTs4JQ1LrS`v@xYgy0yXG@7* zC*)!C>2_dVllO=Oyc(Z$0`159PWtU0L7aY|8`T?xszKef5ebA&@Kw zFx;4Xhi{Xu`%>GOEy*=2S6Lm}KN#B~prM8d94Xje;rr;_@&3F|E4ZkFj$g9wH7~M| z@38RfGR6HSIA0N~R_c&!Jjt{f@)+g*!M8Yr zE&=A@4uBurzBG7s`CxucGv?t z>6Vs;p`;{-4v}tIVyAZ%woLsLC`XoS5cq`5GNW?+D-c2xs&&ld1qGZ3v{Om8h?s&G| z6T$FNX;yMcf)8eSZ;${PB@AtyRi_h}I!C9qmZf{6?-9`7tw6AO+}fXs++BKwlrn|M zTwy`dpw`(It8ihwfHt1S2(eqcG|Pvm^3B*C67c%S;E1qu5^0lkrT{| zHp%JbL_LE`T1>wW_Unuukgyw=?C{o(ik- zmq@ygxAt$g(5HX>O#ePf6)LLsrd_; zE2@o+WErr^yds5*`Z!^K;>x8z$Uv67reO)m;Bna2m z3(Rvx5>Cne$DbBR=LlneArL~M%>4qofK{SYA9pVaU33dz_&dvU0&5@$K~b$D*oN)% z9dnc?s6BTm+bNuOM2sNR542Sik=mr|m&>>IG+0pS#Z3T}M56>+WBCtNnAuDYe@F0Q z7gFAd?HMh-gZVOC{zHk*uXi~NyYLEILp0RJ{+0pc+xT)f3LH{hSJ41hJ{+Q^V_Qb> z(uUPpXBPkRnrqFu0N%*?WFv=2P=$*-%cj6LskNI?Pv3-ml159`nK}z@l0rCfrC;Gp zXEAe9Q73l_bD$^otuC*ZkHhC8OB@F%5x0Z|1UG9H5QnIgCV#(diyQ9x3 zRlA`0G&|0&IXDQs04z1#^FFD`{082O>1Ow^yE~P$D7B{@OYtW2!n5@VHpAAZBU7V{ ztiM*=mROeIZ$^=r6+1gWN0dXu=-vWNdR77P9rC{C*Fr+&W%CP%NHfLV&MeB0WeFjd zobQ`L7L+QJO7b>BlQ^wELDtd>d1h&SrR#gX;2UhU44&{~BqRw8H60MV0%LdHgseTW zDQ6`GFHhaQ{49U!JT*6Tcw`H2Zu9IBZ*)&fBoq>=KGEsRoWA)gtj4a!`>B`Pa(hU{ z^4qI{3zh3>Zp&Mj^9$`U|K=L`W3ajaKqNwRT-?TtPmb(}_9u&d$N!4SgPtY0yg-D3K{Hs|gC%?avv~cr^`cJYXwR&&N1pUe z>aN^cktwI!S@eo%UK);>rBpPT1K-!*SDjv-6hy=vF|QWZ__Qzmh2e) zv-uF>cClk#pcS#RYe%Z43m5sbh}L+y%c#vap6!PU7F<&=e2v2?v+Ul-!`XanNH;dS zx=IR5HJGf7uU~|*D<6F%N$a&sF(=gyPq8aD{|eFBM`iXhXoj4HW!k(wF=n~RonJ7W zGacPm`&qbf_>u*>YA;Yb+ahu|P_1%cD{z-^cSBBYfNN+cXGD&~W_i;9Wv^iodE#|e zaeTHkFA2A4Ix)@U%jeyN?HL&(btwOuL2Us0Wj_w&Yl>?bbwuiKIBri~yQ%~n5#+%q z=4m?F`zFQsV;e~hZs*9>qU45x`KFx&u1$71?}c4&u?&ntOUhgiuX(faIFqe8!4uGH zt(zOQ=4joYS_4}L9+G72=8O}l;owbM#Ql}oDZs3e8}(1K9Zkb~N~X_xoXU-WdXk*%ssEGQletHDBALF)O4SlUs}vtdz63nYN(h?FC^e%H=l*n~UWfH~6_p|#dtFpkQ$t);xt&;zCv_p;>gl>>kEJjgh5}M`a~=ydLz0RnYi~A;z^{ z=ZXUPgo|q0mETboKHdh)3!gd2oo1=9UnyS2B>5I;CLLwwH`N{|DGfQI(BNQ)w)s`n zwHLH>cY<^t1#P{bpMA|OBCA}joa2EX1;pmN?S5Y-k=C+$;VP+fj*dE%DZaJk2XMiw z(&Tx)MG@61)yE}mgVFcJt1o@?43mI&h;k4qq2cb@E<-MZ@PGU&G zz9#%7JcUP*&BVJSw~KY*jF755;l*pweo0umTY@`|lwGx(&D-#V6S!y}-v?rmm)%y= z5(~ym#z%%k;xpYT_KrVE&jFqF5{62vfNA5B@FlD0&o`g#*R!q-*pCKKxpy(DKD;z6!l|!L^HC=}w zFm3B3{p|GBnr9GTX5P-g^4$&T!sehJ-l-KE8 zRDtzqu8q`X5UDBD%+dox#5=tCHR)?{5@fkEy;%8PT4UGJ#unO6`AWT`O1&bwiPk=^ zYKU`qKzNK2;O~P4yr$raS7ly(jw8p2hMDP;815M>z7zVyIDK0WCM`UO>$+XGi_fK+ z9nt^u5ilS{sXZ@1^(T~7cDfeX7L5|18TDx(Ed=Bl(U01-=42eI$kw!ixmrs&dHH*M ziyJf|HW!eQwi_+(0%#@6t(tO~cpxz0qWXZ637ZdjpP@7GOSvq1KDeei!)PMlpT&${ zG3~8g(%6oeL!1Qa3kfmtO1Pt*;?144r!RyR~l@P4Fhi zR3i?##P7`4#<%}0vJ&WhUz|BM=%*`c4*(ACA6i9qM<@ZRya91aj9_r-AFNnknsV&y zP>dHpb%5VI3UbT3T2YvKYbR>--7A0}FC_QTVVD*r*if6-)RO78)uF0#nW%|PQ2Kq4 zqTfsxwyovOxD%0hat;S5v;DOvPL5_%X>04(GVP_x8om0obj(BhcVq+RCKGT?FRmsS zG5l+qj6*E{6*Gr*4D$0;niox%pITU=5hS`o0={z_zMP5Osnei`-sRnj$}H4qn@phN zKwSO!P|{F4uJoIEvJrZ2c(gBj$ybH=^Y}E|(ERXf`IYj;&#@5Og;zsrH{T_v&J{6H9~+DwnU0VT~nptrtM(zN0(lN%8u#Q08xqwqBhSEcYcBDTG=6C~JG4yJuH!!<&gJ^RG_@%_fwA%^!UA428%8ymRB0E)smWY2-bb^kg?Dr4@~ zB_EdrcJ?Z)@Dr9+t3tn(Q$DqvI{+fKsKmLXxfD*;^f~ZYem;k^!C=5H{6_QjmwJSf zzP=TM#m6suJS}^)Bdw>YYQcy|9@Vfg&>AXNG$I`Xce-ZOm`Oz)RuY;G0Z28M(mM%? zP9J&=61;dihjG%Ri<^P!t@0ENxE1V+VBMsaHp2)FQzStv-cg0eM5_#ei(h(K2q1fI z7dNkQ&~+1tMTH!PJ~}NTHfMbqh&>mgqAiz0AHTa8XXISa<5PI%ths>?F`E3`wxBsZ z{+Xj#c$QoxHmf28ol$N-l9b6mobI&~6 zx3?*vjx$IQkdqeTCB-CDifilv`l%096BFSZrNQ*GsTkI)B*vwXTl!u7(T@@TIU}tc zNNpNBnu%-po8p>0kX|lkX2~teXZFD>+IIwqfmO*A|K{wN?Onw|ZTLs*qd%OP7 zvtX1^s3PVVXws1oa(h+&5&3dKx3syjG@B~(z4l2)O~{$@nM%f?opGBN-?&xbH)-Jk z*-*;U(htu@TFseKz7q0-<-g|(J@C`liO;t{gE}bN{6ym zO;IIa?d<6*;YUH6S|UB*Dwrmfbi6^TqEIukS^=gCV~Y_mASr;E6{jrbfUms0r`aRl z0Qwvbh!9AM1iV7UaQYKm)GRVn%%a|}#+l|) zQGCI2GT5YF&l=FOeIVlzBS9h8&?kIU2v~5Bi`UgnbA;oplwz7;cX7RU!wnH>9KtHJ9tCOU2)7MB`KDYy3?D`7CoJv!;Sy|HPg?>m&x|?uJSbnJW+9oR{b?WR$&B3U!H?IMn$7_IPrZ6P2%ao&S-D|h;`^i;sH zIaLc5s2h=R^ZD&Y;S2ud{u#KN$e1@rg+3B`2E;7Bso@V%>+C>z{><#ur|{kAPjsE{ z=`}_T-vXGy#S`-RG+PZ51?I@XR|>9$7OUCiR#<27n^sXDZ)==qN3p=M%hN7>7p2;q zyu#Q9rkM!bo>c&iS-y|2xw>FNlY$mI0N*w{V`rG1Y-RMj$$H+MIVbWB7mCtiSe@=) zPx1P4?7^77*G5~D|EwW7(ocQ&pxW#FeCL|6D0rE#RgHPrDX0;ynA26CmUbsP!yc~Z zCcX+^POkwjAB2Ny2}|q2)f#!^P0Sx<*xh0hiYsaoV;2}KeYm#z8Mn|JQPD<;<9R}C zMTp*;+*;^)DUg;?H;-{cL9c_sfcwngIs0(n4cEs>e5c3vj@93B z-nzJ?c?~#_BgK<#u9hJI{TRbPfb!M3E>GaiAH6#p_WA3c?lgKPsFM1n60klmM=#H^ z^O8&^xDv{w|vjI3Vghq;qK!vrSt zWXh*HJ>XC7bsxyRmX${=*k57#tNijuJo+t-oAPg3;qQA@bR0+`&!qKN1cjPlPay#p zfyZIC2tIau)z0)Uw6J8FziFr3{9V~>>PuhTBz5-i=TakbPJM;wp_m(hEXUl}KP0tf zGr3&6UQ^R%`F>6hvkn=p^3&Oj*HP?Z)YATmg9PMbFi{&{K`Sgh4r5R+!~$&P%e<%6 zhA&2qNo73&VbvW&)g$Gzn$yNOEF`-QO7g&CXR+{vstj zLirDv4j=~r=C(Lo(dsmhl8^TS`U=`3h)pD%TKs9Uo6KdE-R=N+A5XW0u=$%D&2aVL zyT2Ql2r=ezNSrC2M;}*6lx3Ih`#(_~!@{T}Rl5d_>mRJq!sA;O6ODaoL%@jg>HTtj z@yTJ(KR#8^S-9riJ;Kl_3nCw;RDhZMy2DrZSL{R0YbWvirem(yyZ~N13{H%!m+cba-V*t{cc$=;U~&tMP>2e19U?k(7{z+s@T=E+BAVTFZ5Z3a7sHgkOTXJ9%Oqc$zKpF2cB3ln?$$4Lz{yy?$lHwFk2Q z7g*Q&0Bh9>Rn=9f7@_p$76-)lFJK2iWx%}v-(AMvSF7w3^;HUni_d@0+!M@ymnZGO zGC)cYs?m$xRY+8BIP?&hZ7($KOWQ#3%ULFra<6y;!%3ol!(c?6IRFeV<~6XR?HN6= zA~}5uDDD7O2fmL6N*(<>Of91A#5EVeC7eSU|DZ;oerw_WT}2%ly_+ z`3ucWZ{BfkJFBPMV?6|!?V+x3r#!G5BN{J8)5`AM^(A)~5&wbaK0Ia`7281nXT8XO z)L%R}1ZvO}A*s?CykC_KsDSP?B0A|e9d&WaQsw43N=(w-e$}zY-{P|}+pn`NCKqn! z7B~U%hHN&oo)q(*5`i7?eSvv&sHg#9#=s&cn6R4a{7-SGJ8rg$qK$y$K+Xc_gVyZ? z^F}GOzQMyq3V=>n$veoddb+1C2>ojB)SKKLGTg-ujbc6bjCmK-+jG>=cN?Y4`L7@&(hncRylm~IgmW1O}xCoEjd zCut%F5V?js@twxFvxv@DYQlNuQRGLA{!an5s878A2d8iPG3E(G@at)!a;;XWHRnGw zm35fi&-d+GF1~Vd%7%DFRqM`ay-O?Was5g4ph%H(Q?mpFX7d*gEJNx|G{XN(0c~N# zhe*?00O7&RP*WAIngdzQ%HdBBfLqVyJ4uXSj5hIeC(@c%>DGTCX=}_AVy$nK2))c-S~93xBD z{h&7hwKsCsYh{KSEm#40vFWhWEpq!LiOs|Mx6F1Xs?Jq!^Ub#us9W>_F#6zEx;-_0 zXoSF4@z3t=P0ME6`6c7tj95cri%tFq$CHFBdaWOSWV(dwUH-H^$yi7nHl>KDsdl9P z7eQOw|9F@E7X(c}985|Ho8Uc>hF$zA_Ut?(=TBgO?g+t>Z;s;bdKI*t#Q_CJcKSVQ zOFnvBYxMg)5`}HCt!3>7RIcmrQ)iu7cjzB`8wbR29SDn`uV{XrnI2}3_RnhG6ra$Z zX1-4M0->&P44+(y0_3pQ3TJwsc8<=LVgkX(aYY2C?2%*D;tj`bj8g}8%7rtGd7O03 zpHN=05VK}S)i2%N&A1&SMX|&q&(KAxSjZ%t^8~bHaNx<%wSA zOEj38An`b8MNTk50#}sn&?xp;;6+^EjzrcMy9B1={sEe(mku3y#QqMUBH`T*xx$t6 zb&mO4%BLTM6#pDIq&jS!RHto>7iy(l)umn4?$@1d zZw9r{uzHMIrXD032pgw?kE-{3o5n-1b@c7eOKzgqJJU%+KEUO-k}5*Rs(x%Ei?+qV zBGVPn@CB23`$6RTqhClH;bYn3GmD~-2*$z9ZpLD}W#qVPD{{k$6R|=3{ zTOX^3mUIX|D~vrE`? zwv=#&;xu+SU$|K1<&bH2BPGAl=nyY?nd*Uou-A1un41- z9&8YaSRc~4@qA)n(77R(D~*QqKN<-qKQbSs-|MdW^CM}9V|rz8E7;OtNO2+VMiU zH%y~}pi@5zF)VoZ>cT*PXPa9gsi?3nI0K|%N*xrZg&dhY7rC0%LknB4UstplIj1Wu zQXA2ma=g2gcZ=`puC*9QXm*LxaJYG8(#@J`7@Iajg}vsOba?>aAz?|sz&EK4NAHsl zZ{cK+y zZx0@*Udc#^eOTE&R0Ec2VFo3+%Y zH2(d4WG-YkPJ#bME=x!l2;0@;BtJ-TP~^f|o^m@unis#VYmiSuD+r=zw-{N9q*jY3 zzh2aPtuSxjS^4;mW}#PVRC;>v>X!=zq#^UTbQCVoYC|PR0hK6!onw?=^bxU_ppooS z8J5<##K|h<(I%gU;lHu(zOL%%HM;&;Wn)zWKIY6@Y~!-ywl-zb?dCJ(zfr(r+O+Z7 zVLb-UH6-pfm?PZaJhGIEeWQSI7je21|FNRu)@O1YuAdfA_D1C;w1=N}_K3w{bkj6@ z)Lmyj>}9 zreEq+3+`c}ou7jQIU%3=x1R(8b2JALfSadX7^$x#qJz*?CRp+#lE?299PW;?m(HExCqxySO4ie1`Rg*_S1 z=!oyTO%ZYcivXNm*TAW$L*084r&AS~0RCfFKT+!Le0zKVmKP$BzueW(I5YFJ z2-7}gi%8QvpO1D3(BFwYSPn#st|GJ&iOdeUaoQmfUr;?TesQ;X>Gor!nAl51d0uY~ znCyom86$SzHE_|f1d0SW1otDieVX^xt;g4BrD)#xHNXAL|8#S!ch@0L;>3r1MR6oxBJfqB zdl2^ckwA+aXl>|=FqX*-K)Z8B-I_tKJJ}{~zuQ2R@g#ADs}=usD-9n15sE7wd(pM$MSyYYOuTrL+;WnYl=Dg zamVHPX@|mA&!r5Vsjs@v^b)6k(%u$CWZ+l5@3@|0E9bK_FdU&I2vAPjxD`3^eR`Mh zv^Qw~1Y^>1ElCUvn2%9r_|>@6 z3k6sdI)#y1W0N#C$ev2B&9`IUg1|2o`>DH$7{AVQh3hYpaDl)aaf<2zPh*s$rKq5M zKg&(n_TH{QPqkf>g28r3tC(3vr4RGDFC{3Ta$SO`5<4JNhgQ+tOz~bzzm+PT?G%(K z-Fl+{2`XrV)y!vyblSm43HWOY;>X`cL$=I2X-60(OgGS4z$7Y`DmjC1xDSWRMHac?-gLf z9i@qr>@q7!Vo@E*iF}ooIlk+&A7H}+=p~O51FDX?o9wPNKK^Pb$-;qbee}HC=(5VS zR@%SSO-8EXX###_#BtIuOWS_VAOy~!HhQe;cTN)bkFS}ae4HfLzZm+8)^i`5fimRl-kEdN<9OImO?9SDwQSA+-L=oJ zk2q@>ax;yjI_XWOuOi#o)9TYE_QUq~as18m`kQIr8Y>a{`%C)Fx%5w;l_GFhTcu67 z<=(;gcqX6J+)jGlYCSY$vVs|9wzHc|v3Dn_>3aMTe7<9?9IGfWvP1+((5p6S^IN+y z3~ZFn1iP++Mid{vZXXpjb9p7Lb3HS}DR;a~4zlr;9*ukZYRd6f^%-yAC|$GUL_t5b z@Lf>7y;FE{g-&eVPIO%LfNtlt$EkH33NZiB9`Chjf@@|{_z~=Ms{c9UJHa#}V z^D-i0S6S9CkgDpw+)3W3ab(YSHixeRW94?x&tUYaZnISuJ`2k$g<1n6{nd}$!~${N z*{2+wTlh3m%q~nk?q@7|6025#8LLJ=O26OUbVuuLa+(T$+0Qs?&HMa?dpW_2C+JPY zsATV2o5Jhkd`X_rOzi8y=!FL{`o~>dCC39^HvR6%_`2Q!oI=N{g0wuEPFsw-q zmFH<`7Ht@VLZu<+w#}c~-p0;D%Sw5zN!e#!(}!Lfn1!V(Fl*O=1uWK(KWaRi7+dau z_^CW4bh4j~X=C=omy+%4)7)JGCipPqO1D;MCXI3`xApRTfDt?V7|N%qYd80-wt;$N z$xr_dGh%iyD9)b9CWnuKIwV$Pah(5~+d+e{IUE+_bWj6dh;Rj+-t}rZ4 zrY4Dd2+;TA$vzo?*`|I!WrgDP4_oK7yGXzzuIIbk_>NhdE(@v$fw+$6tbP1PQG&F= z@07ig$fftmz|$}1zwVdUu+Ty2m(}MeYK5CVbcVmo^xc{T)V&)E1+g0oE|l@b^Cd`m z1Dt@pWU|ZZ4J)*xX`V5*?rm2^rms+af3=jtO+fdq1e`h(i>5JCjEUoW^I$3B;3V#r z3RXqfuom34XqHlb{{t6$MrujkAap$3H9S7uPV%se^)x1e59(Fs8k?r zB5gK`FtI%07;CNn5iiiA;M4nxwU|EP=}z#o&m$R<`g5D9;1wK*YMOfha#PXkh0W7i z;81Nlx~bLf@DjV%B9o8%WFj098Hj}~6fNYLz_G4F8_};7T|blQ-BoI6c@4eIW+;0K75;OP*{Tlc%( z=b;s2KN)O#zZfqkfPdH;O!X;a3%3TW;o}aR89aa{V7Gcs+PuMpF+wH!DJ{Jz-5eyt zC~%%)o;?rws0;cuN^c?nV}a5XS6ApUCNvngU9u#76)+y5)UmJ(p?GN%NAEG1UCBjN zt9On?5>xz#iABWx?kw0Y5UePCv-X;FyDL$J6GCJ4JXcm1xAO-8&j)RkW#c~vq`tZt z$kdT!43$9;U?lZ+)NnMGudGTNs6s3lEwe*KFiKs1KngUPtzSqEi14$9;NyOhgx486 z?IpQA-PF0$s1q#mbV}4&=i!88dXOl9c_Nv#UOfBdhaUG~pcGMJcRZEB8aoI()3x`T zx*N_KxI>DFVCucBa6bj8b@r1~3wcG5y>~XA7g^-~t}>~;Z-nd%gI<_+rh-Qn$1elR z8QuC)X)s0w^>?!(^dC&)fN-3UsrKN5sK{8~NsRiX| zp{w;Lt6uY`)iSmTG+)K)Ao^94X{~eD?3hrCGnn+lu{P-Hizo^Vvy?D4-{T`Uc0?{t zZt)}hq(^5L73XtjjwCW*Jy^|hB1xO(T`TtO%SlWR*KHzYV6$AMc2yX^oy$G%9i6#O zHQGxBpV}4hIKj>+(3gMBj?UKTF?Wd9J zvcqg5s+(6$jQ8TuCCG192?86Jce%g)Gy2lX@s@LHyL(S7@d2bLA6cu0{e|6Zq_SfS9ZtQBnDpW-Fa3`*Fhn@VOws1)sqbHd#8{*(;H(`5#DsGfs zh+tbk-uXOf`-!b(Ej|Hjo^^&m(9I@md*+nxFq;+}!$p_+ITmU)Q=`&Xwcl#P#d2@M+3?87ZM|!h|fUNq%5p1X#Yt~Z(94;?s=f*2N7G6C{&q1+xp0Ds0CLIg%TG8@S zxr$_Rtv57Zm-c3xKRNL0bGW}%Yz?*;P-h8H#Z`3rZkgJiw86# z*PibK|>JWDi%4vZ>TnBN44&3=gs@7T1w;G*!Xu^4M6OH1`># zjgP(Ot?<`s?JO2O&)nuO-X@q7K%%~%a_{q~MaA3WyCenXXyfN)BJI;yt&Aq}nKm@m|3>olKlaMoBAhz66LWtS&0CNDyz9+z*j)jb5AVs~TQIL_6 za1pnQ5w@=D)wJu0A%B!!Wnp`)>jQVB!Is0>DL)PQL=F>=xVWw+rLo0UdoItI*i+hm z%GDULAoWP5%1N)yceOrV`)&)o#SNFA_UdWElA{9&zsA*T`=W_lp(#R?K!EYEvFV^q zgJ-+l$udzh#pjL|dHQ`=>rVRE6k_;J4h+>CSumwjzgD}iYF_khUdrwWEu2|%4wH}a z2Z9e%v8|G;XKJiQM9&N(!zj*$5rN5LLaTvmCQ~Eb8%@z%UsZ?fBr!;P+y!v9;x7GB zh`xA#LhE88t6&zmuZ=vjUGHXaA;2!DBdM&SI)XaL_-@bZnpFZ6OVKV0$HbHoHB%;# zfP*DL>^V&ENDrdtxs1gP*OMODi5T%@jY%gIMc2kq7H#U$tR$WM^f0>%oK^jUWv|1If$#`ghx zZMkUR9J*<}5adihymuH*P)g;8TW#okbecKG0b2r({pU0M1ogSzC&Q7-+|+D^x3jVX zLp6_q4tSw)36qX^f60jc;*B=v<=fRYNrZOaHGMMT;YWb?$QvO_65q|!BGh^sPdt2a z(3ROQ6yCxCTgBHZ;M_uuvr=N&IaA#80+8hlVmfIpI1nHXuK`%c{}!l^2lR|B-B1(+^iml3H#*0gXGV+KT^rhYoLiWG zA4|6YzSsY0k<){nbKi-3!vMbcKg&1~;nRN*5C)W7XYydgo5B!J?9IetH2DzTzg2a0 zKgevq*a~%elhXPCvm>+pU29A9f3-LcXmR!P^5^C4KtEb~h=BZa4gY88SiCry)_EjE zUx4L+LWGDz0TQluF`6d{ficDY+Z?5*|J@~uEkjX>RNKd>HymFOqLJ*u6sS_e#ndfL z_iq7B*T=k{(oG`1>`>dMsILF-PO-%svi&nKFM_}`L-ifD`l$c5;=V23EX2cLs>DFB zPHaTO;{TeCFiH5_nb72aKTH%U+QgzS?`gvTg}oC#`T{UBpb*iUimtRjgW$ZwiTdA0 z)CAM)p{fK3%>(li_%@*TOBWoT*`E4#J`Y-z0x+mLroAMc{Lcgce*j)Knx@}fnHCCD zng4$l*VW!)Ah7$1uge0pzEJ0;Zh|;`&q{wr9k+xw6UeD_xu)JL+(->wGwYu0YW;fK>L>j%Exh?bE?EPy2V{CIi47F%5xhW6$a zl!^a(@`F)i^D~H9Psn^^t=IGe%+Lt$73aAz+t3L#r=%-U3aBm220$qfk=&P5_r}%& z*a+%dy7-s>>_lv+XsVAgQM+BN^g$}k#DQSaxfy+cky;1Un;e!zaH1G9Hv96nC^?Q3r?`b*Gnb*JXXws%0h6D)cCmU;KJL~mPaW13pn$0z( z2Nhswnd|^0j1b)bruu%dqoU1M^pgb`Ht>|7cIjdM^BQ($dzoQ4MjQ$qIj}crRiJ>* z`zc7!2$BF}Bz~00Ro7_^`z>;cjmk!WNm_nPMoL}fJr}(>PG=a4!GA=eE-^ZJPNARZbSVNQ8Ctz{^7VNY!NY!W=IGb;@h58GP*d7 zxcfuua6Nqx*}O*G%sl$V*Uk6~7HY`g1Aq%Y-E}+KUk!HI2a_M)?`(K zk5VGk;*p&q9HzhjDElt#TJ#F}-zgT^jgu!3`rHkY2-|obj5uN)TWiMB--u&_9)G^g zTA%Ma&#c!?y6$Fz?f~bkb&`ck8w2LM@wxMyhMs%Ohem$mHnE1g!o1mTJ7s;O<|ekY z%l_uz_#y>&!j4733TNMGh+rbMh6S!fx5<}>%9AvUohd$sh9_{``QqD~p-QijC7I)) z*B%|=jf_hf3Lo;W8eg$~Ps0Gsb^Q41M2dP#`FreHYm16o0S4N{1h4?08_6-P6xWIR z=}pu`c^1cs8g=R)CQJ8L(+6e-V^Nbi=$hl^`=6Oe*%ku=r8{IyS2LJ8gqXkobpPR~ z<6Xbp>(P7lJ0C@HHC|CIkCRy@2Z1-m8R_P??e*aZQSFh0H0dt>)+AV{YwxVr z_=#mcAp{H^-TA>+mEs0$3Hys^pP@#msW0J>Bw=#ELh74})OyZi&DPtqs!yCFlSl@3>5R9I+ww;jD-^AFbaU*s zlM3}Oc1xY+9&Y8}k+lp`N_2v2XHMzJv1*kXeUIO0;Ay=!+aULvm| znnm0+rfx{Bht5(aTEcbanydab-PO55!$^@I;Yv} z>(6ek{<&S&Z&z+j%Dy$~Q6lua{m)Q=7Y; z=64hdP4W^ze7t9}<|kD=u|1r;;qquLMF=H2K8fZKrDu@62ON-FLTCA67?Qi#Bd= zzrPHiS^L>EzMW|ycs+thZToe+-m9MzkX+o`JY-^s54kyQT;di z=l13%=riszVmw!NN?Z<4#z_IHQA`f@j?{$6et||+TBg7r0}S-2MWqz4ltqf>hlPO`nMOMtkTHm)SFZk&^`9eSLB&2bahzP0m+K z&#P#@#~`?z-^iRlIylIGT-h`2JBbVsXH-C;Q#H zmXl)V8l~hrYC5P(oaXO9aE!5>U!XcHuTE{vK5RVGHxM=GAW}GBzy#gM*G>u+Xewg# z@ih&DgpU|U%lWVGJx|bIBF#oui-G8fgc_V!o#C;F)A?O zwY)Oa`FYMm&+=JC}3*7c=Qr% z;gbN4ndmRlQNN5F1m){=J%eIqW4Uj}Z;IxYOQ(R(p``OkA>dwR_l2=bm!Q{EOz5UK z`}mOMY;67vYT{(ZMxQ|nrqDOv!(9l(X-M%T!w=l{%Oc7wIx~G86ppX^;}Svv>P*0i z-8OwO)X$o96W3G+L}7bt*4u=d$^=Auu-0y?CZ0g9UEQR>5HKP1%fHKn2HN(u z24FZv1QytJODFq{6>B+$ssbKC2o*dkyiDK9lcpznfKE1JNr!8_Ma2%g!!$yG5JF{| zS?A=Bh$KIddM$3s3HdNoZ$$7$W)3gT7hpCWs^zv)`@T;%*-_+MWkCWs@osUjhi{VJ zPP>t>-YE?G%jr841nwk$8YT&H+Xq>Qjv9TLeB#zY;Tt5j)fFsnTAu3` z!nK$Wh!IPaBpBV4?#_lhL?!<{^UR9IRqk`hk@Lw}@NH2-zkuWX(CPcf<(Z^fBG2Sn zpJ%kluJE&x9K5X)SPr9MEXu8Q(oZuhxee0yl|H`=@*QY8kD+|{ew2n`62f0!k8~?m zd#{)Uc1}4q>0P3<^gKdx-k_ zcIU7S2Ybs%!ePVKHpA*?P+6%^Gw4_bAU~)X)n092v{adPh!!1fO*3Vr2v>+ztH6OQ zzr>yDia=&Rc13BWgVucX77(Di_3D%Z{Yk~(KLlDGpa)Z0E1n-SAkA!lvdx>Ac6*Y0 zm=l>q5(3`lu?GK&5u_iRu2^#6szdMW>0|U!U49_NwhpbtB0(eA=*piZZ zzvff14&ZB7pjY|m3!B1A<`|(&<$m_F4#|O^T&SkP`12a~7fgEZS5@@Je3=lWjDu|~ z!_!G77e#4|N9wY3mwuyRkB$&h<^kR@Ch+Iw>u{r-cN3loZroVrTA6>Z`bloM=2~RM$czL6 zNuNf(XO^AtQXevzkilD7^cX7RqDEfiNa2rfPfoA^3Awkp@K__3*WRcf-UZt7q+k}s zq}{5NC1(|{;fHI+&C0F~L|>3ffB+JXmqhW8QRe_E{jX1_>M6B6-%Uzo9Q8JNQs~Cn z?4|aZ=jvLQv;z7QuPlx|< z=x403`^2C?W3?gU;AQRVf64`wSq^FqvAB3f3bjy{?+!1Q)8onNeWk3s^V5dW>SFZb zpp~h(W@WC~tm)<&!{iq#SiWB7uTN|pH>al*AMIE9qj-y7uPiVHH^$&f#o~n%bz;oT zguL0LU*&0WA$<#z!`dzJ3k?A*&>fFqgY|5$%LN0u&;5}7R6d@_d*8n7y!ffkpEW9L zh-u?9MkSjYj&uUZJkHKUI{)SLm_fIHT!6q;k>DZT@sQS@9B^X!>yaD0M)5sPZHDev zzcXar!9ZQn*Ox{$>l@Wx6on!5c5Ed<@}vyrsvr`XPh$$ttLJZK$iXWkHtxsG33F#r z6Q?m(sWi5Qved59x<^qB-JAVETHP8pD+u1wU6*YccdHaVuqpKSOIgpf4p%kr|F608 zj%u>m{ym6-A_fqV8k!0yD7|+91qG?nOArB(E|DU=h7QuJ6p^CRk*4%2z4u;2@4fvd z!S}r9ocrE&?>~2~OR`ubJehfB&rF_YKKr}(?D)!^rCV})JmkF#(Lw>iwv%cfRQ1rD z+N4Jr0;I?wOzfjJoFnmkvXt6a{tycd`;^1qa?UrsQ;bYy$Je-GkTf#VsH*13XSPf0 zvSz*&tQ~Q!K{X@USjoGlyhwC$6D(3N(v_gEywsh;IIAEl7Z^|fuZCfW!PQK=rnYtM z?&3+FAIP0qFXW}q-lr~YAax`&NbLZOHbY;Og`bj?IY*vy#7672%@`A_V`Jlf#lDmE zY@AAjA7m>ob@8ZdcECydm69ngiZbBD)H(~3BHsn{V{_N8)OH4A=#8jNKSvwS;wtcm zzfzIzp*Js|3~dot5Y?HfSjiwxX#5nKj&gh6J_{8l0_{Xv%f4(a~d%hm&|O;RoL;&*FfuaHzxCP{(2Q zhYsYorm)Mt$QeVPStCBX(du!j@Ma?&J1~*naVZJn=ONXH**Nhju}JkMTGSdfE>*qm z+3Y7P9W*dOaYF)VG_ArzEl{`}r(NJ-p|H!*kjR}PNjP9!q(WGq38ASo_UA&>xb;_J z`Yc=hxTeqrQHbpyxSKBp@B{v#ru>J(H2`|_wPU(sF$YkbVRqIBAS_$akfVtmcc@Yf zau`Pj;dCv!;kpgO0Y*>(9Pi@M+I()QeIyJ}kTH9wD4bVta3J|?uxO?R)==&CH!gcX zs#d!E35|F36Ywk6-g|#`pcwq?0@_Exo!N5}Ku8XAH^3SbF$3{~c|yOFP}X(L{5sCz zB**6VMxz?gF15SZoR}tb&uI8Nxo>BhS>|jAV_zWN^a#N$&%X|Hb&Fw3x~4`5C3Otc z+mIxif)fI`Ybk-_9uRYd%zu!v)QJDiAFSBKfj;sLPa(jaZhGthHG|um-{JoWO5ydQ zx(@vCm%>|a?=K)?Qagg@CUl7%;I(nm!D|8lvHk(UqSn~4D~qm9aU&#gdK{ooVNxFn z1lFaQcmK&UF*$ONW+zww|HQ?fDYaBMlnwuh!m-<`t}!ICA-4#XIMUEOmJT?(E|b8= zFUCE3Y~q43McT=h1jZLBHR|7FpRcl8KAN$9)Jygr8x8zAQ9d%(J}#wM93|FH5%2=_ z_^&dKs3}=7Y8$}2+8muya9)!}FYo{Al;5u0Rc3VjaCPA=ciX?a5=RwJ1?89e>pHZYwcs0q7BJH_>fFz|qOZQ*KbO!psdRqmwsGT`BbfwQCb zMCP9Lw$0zE+*h!!=UQjT?kp*O}bi%wEt>AjA^sjQYK*%qvnA1DU3D4kcV3<>c^ zut{|HY-$OIQ22J6#Xjz^CC7zB@R8FoSKZfE8Ze{Oc(I?{;U9H8)_x+KcwR$tJpwJ8 zWqu~#;>7NXqN89oSdKn&Acd6QFb%>NF!WNdt1YVbvM3+5l;DoW>C#KQhll}+D6Rmd zxowas>>J-?=N(^FGB|KXG2g=a(4}_{i;bP;U5dip|b>?mRYdkGnn%m}$txfDcA9u%Bn82y zki6$NQKqDlK%7E^1)X^5H<$2TcJ6F@pF(K4R}ZFU3r_?FXd_+SZ18~ej^N|uj{zMH zm*a`^Y#PCn>Qj90OSQ*qXRE#HEhxZhdR4+QMDQ+)C&I?EGb5J*RWqm2wf=EEr6fj5HoelO#(=F7xhDNC(4gFVil#ezM8}=ic^Da+F=l)bm%Q3VaY|9 z$2J(EuXJ{y>5W+339fvtb8s-U^dX}qXK9~;3P0dvnxS=(*ycu0xYOHqGY#%zjaMF8 zheeJxzX-x-y5fvfd1TiSJH5nsJ1td&Zpb9Q{scR>()rP_R(`o7Wbq{Lrlp(?A`bec zaxr@~(qhhPq;;J+^*kZPzq0^^H9X z^K1Ofh|fDZc?)OumF_V&+si}G=PMp=uUt)eVPXfgiW|NHgV~-4eud<<{VN2i^lw!M z)88+6jvHwlQM$6K8rR04wvb?Hb1-ILlw}q&pi#ibyHL{;Y-0JM zAYWxH%FILQ#fWKdqmb@({V<@6?;qu(zWUM!rSi_-F6(nVGB`XcnD_3Pu1x${yr-e3 zGsSnKxlchu0&(pmp8vuyM(z%@Dl{sj>{!3mCauVril9W0OxeEhFLQ%N1Sz#gf#41& zX(=M=DW$`&!)+FqFFR93;G3=alGSg`Y}$dhMBk%CoPu#mi5NA_nmNX-(?$q(IG`s5 zG7CPlNyYg0KAm*#F}-Jba-y~93 zT=&K5X~|*(@UK{R>gj2feK^gW(j1uWiy6>y2`k;~7tpLvmUW62{xf=(R`2>(|9orxZ}?!(eLJ`pfpabJU~fn|At5%!wlB zTe`}v>A}vSoO?eEtfhZ5+4rTTel+2FIPu8AoM*qBH2!2-ygJ-vtXvYqFp)&~kqJ?l z_2-k>pQG$n3n2i6eOnnJY~^j%((K z`-+0ve>aDI>p9S&D(B0Wi{9Hrr10a3(9!jdWUrj11PMOUHBFq=XdCL@l&BcIh7DYv z`LGbM#|CbHR-#4raDMam+;(+BA6(TdDK)W){w}%>(Gj|Rd}2Cob~KG&+(JGwiPOBk zTPb<|>`aUgYig$ZAbxbe+CqV^c`Klqc0j#=`}xece*=Vjv5z|)G0&$D#%uA{<+Sx8SjxN|iyi$VER18C*V~G! zf2YTr!y9Gil_sto-64d&?eOgpc946tt}LJ1j$ip)SZqA;ndc3rw%w`lYfM96#BT*= z??VFEw9>i%(~JOe*e@BYJ}+?Pgx7jGY06r9eye)@SSqzi+;!n`&UbuP!p4( z5{As2ZZ<7x^`!=3Y3IXD^NKT0;gk0rBIk}d?ZLTFJQdLt9T9$a1D6{zqz#@cfv5^H7thE^PwkqgFww3x zsV9M&|FrQP%N@ZW>%=Pzq{#+AImYEn`?b>|aQ ztwX(Q%?2qbp4f^Yiz*2 zVJqp&D59zCa~bix&0BxQ`jr*kbD{;p_^3He-A9QT-7kRd9NEQ>>$Q^9wDq0%Yz|-Hmzg zI18SMgZW}yTGR6s4=!Xzpyo)O-5MWmS2A}$Wi3V+`^_1CJYIbMuxjTsz0?$^74>dN z7S5O79+PmvFx<X(owP8JyqVBfPE0@;l(Pmb+hyOdne&bI#ZcpR2l zf6bWn)Qd$prH|5Gh>A+OBMjUD{8rlfRFZt_)^N%@WehrQM`xN9)ue3##_n5}v5yy> zE+x?=Zd5!oyx}=#JIQ2UMm?tQu^c(8WQr%rpv&JwYwQ|1ye6w@EbvW7d<29wjM`xH zvd(_G`swIZk}oo(l~W35EnAeJT|W2nmHqSVDuRyaCSS5CzDP@jXx}LxNUY%X8p*ql zJn4KntUtF?Wl131G34VVLx^tFs6+BFrV_}&LH7=y+S4B%7-@RGdRjXK$&$n&#JM>| z8yLU|tiu8_)8%YFm zxbc`PpGtnb3>bI}&j{pN3_Ds1Ybq8g^3%uLr_I;;>4i)pOF!tgyX-o8Aj9Qt0=y*A zn?j6T$=?;4ygv>HrzX6Z$xqK$##gM}ntdRNl}Hz8Bs#jJ(XUK?&hAF%7!z1Pc0&Qm zmm*%TEMWTtY-o8<{x(hg8u9y{!kvy`=AUW^A0udh{$*<{d zd*IiTr-)m5djW@GY=S~w8bKE(t=_baNPf`AZ4x*RNoymu$w#)f z6J943H}<*_ycQOM%wDjQ7`Y>yyfcAlRjnl9^LYj=WL1;zkAGI(n1&d zg=kF&a#&6iI(JJP0Ju54-#2lL_QZfR_izYzXdHKHKMy&%HaFP-6b(R>Zo6^7RC#8B zL&JafG?J(|^2PECzZL&Y4IjvlJo?iIDYYe}859WO$Uar!TknU%4F!i3;ThDmixN2Y zosPO?_AX9iH=e;sSGN4hGVgGc8idTI{e0tzAsL%*GKWp-=ZK4S(^dpqSDbO}W9JJv zV>@>=5ZY_U)o1|V{+*AmZ(L>)yESD z?4+hOUT_<#VR|=4Q)OzcF$wrATl7^ppwA-3Qwy%XE4aDjz z&CTKuiMjptc4m?|=SnKvGim3Px_HDQbNlVBHc>?;4X*&1r%Ep*gidddIjwE!^Cln( z<`fJNf&*{6^!8yqu(mv|L2bJQ7{SPF$!NjHS+i>T5NRq|o=}9)VvHOORQ zs?--JB^AK}(kclVwdIwG$wv`aU2OLZ8HZeGZ$5ZX=M(RmJkmp(Xk?q>(e`Vtjd(NP z=fLdN_}tBxmG)83kbCe!k>ZsUK=eLciP zgU&laH=o2K;R$zOt9H*#-jjjmJ@2dA3RFefKwt%8O$=Xd?BSXXb6c4xiJZ2y%OJGf zi&Z(>KC2<YbC7kJSHVDt|Mgg`~g`D~B6fm_hORJofMMYB zFrp`obLN)r@n%5RyBXy^(smFS71x|67x?hzF`#+}dw#+R#p@9<6dnWG!x0%^-z2A? z*(nDDLnha(V%6FB^e?3M4xeC6OTd~uuM)|8yKme6!s{*esv8!I);F3E#yWpR(J+S% z9?uo$Js!f&B7&rn?3@z=8yo&_zLGc-KeA*Qm7WL|iNT{&lvI75Wesy2-bC&+iRyP% ze<1R7A$nqB?77fJ&_(gc)UDdy-}9+!Q)NO5Z*2;92V@`q<{|Jw6}Dc(|NV_^mF(&# zA@VJYbjFHuI*m_y>&ugm7NdV43Gl{IXNtYOxnIN!tBj$e+;M0J8V3jNjGp*uKk6YF zgyJR$babKq9)!Bc-SfD4tQX>NI;<8p=x%2yh}Rn|zEz`3>y+#i`6JVB^EE|RHAnyb zpeb@c$l}e@B}BCc0kq#@^!00Qpd}okZzdm|YNRsy>WOl$hbOSuw{XpBtWx|azb40y zsBy2xeN})P(EX+0a$x~Rc#6lUzr#aKJoz@>jX6Dk`qBygq|k=YXxeBUxJC=vZ3Xex zeu($7$K6UlF)=6o4$3IoH1T-b_d;wv$xfPNa*fqOimHGFX~75U?;bM_=F}8!OFQpd zT#iXdTw9#NCicsSm6YTQk?k6EV9Te;Cdn%jsWpblINR zP=2;TKh47|`^<>{uCq2t@ojAA4>q0p+O*jx9yn%t6)J+NKB@_71tz*O&cFc-lAH95 z9=rC&%w@l&9-1tF7vKE^E@kvxlPZ(do2h7h7$>^|r#MJxC#BZ8dJDIn@P(3tIEFn= zBQ1j3WKU$)M@xri!Y1mlrZzY_%A;5rO@a4zXDRuL{n`MzJdm9X5l7hbeBq1`b#%&jQ^yw1jC~ODYeO^m`FOGYr_r_@M!8vDe9-%HC3-TSf#pX2`OJsKULa+Uwh!OGi}{ETz3#5k^WRePQ7=|lWI zXP03Zh}0>tMV{j{bjyIi!C5M=h-g{ zeR`KyMun=q(HRB&Ft9YRBTq-$y~QoCMzW7t)ZgCT%r&#@zMp=@!hMo}V$kN}g#-EJ zvYb--DxG=O_KnITipm&=p+<8DYAMrarVuRFTzQno0l2NpCuxEzSQeamw_YaKq5xXp z>UVVFfY7w|&20fJ92EWpsF_UEvhzCR6^KFp!bd^F``W$bmk$JA@W3}72@?@q?jiZe z;{*jJlqV$(L|Sf}t>Z%X7S30u+;eGALGyU^x#1p9K*bnX{=b1V6zKYf$U!Jo#|kO9 zU*2~^co&$7Y*gcWwRo>~pb?mb^D>rU?V_fSrv2~@aKZ$50boE@ZsKi!JU=*|-}-iz z__)3a<-nkA(ru+l{E$8lz^iu+s&G&|Pm4HMD1YZ$?2Yf7Jnm4fIAXS9!g>Lk;st|o zrqs&2OE*_nVPD9i{oH13hH5R5Ks&pY`#CBO#pbl&i^Se{@~fjIagMGXT|=1xC1V!V z*1Y;Y@Ja9t;sWcsZL$N-9~MZDDEfGJG%!kFDX7fD&72fyzQs)MN_*KVO$`zXT&U;) zjtdCHl&$hZVhrfd#BSBBq_6_FfDfeA8^(S4FU$|ZAp+0`RbiMbU|Wtdd=Cyp5l0Dx z6TSjevqQM!zvakeoee49`V+qTso$%7)bdnk18wIyyxzl&CqPbWc#=(IkxOLrZybvOze9{6Z9vDhRCRj86ZMQQ$YC=e6)=?1jKo)x!z>Vt%C_3$EY;TwN*E??lF*OM@5Uf5|y@jTWox z7RR30ek~U{-{rKIQ{2-Ulb!q~pqHfYl9{LNR6aN=q?f%P*;Q-!^wd(L7`Gjv2BO+H zy~}z~JrkoFXE^#`v^0-2FSbI?WW=1$qS}ly=-TrmX<0nwxU@8p?6QjV^?u+mMJU5J zUV?lq&?|xheZIKwE1%yhzVVvN-j*_z+cx@Rxmj1TJ=OKKR6`xa^|$9mtNFo455n*5 z>F2!0)!r!WlE3ld#_Fxxv&Fb#BeLCJAd>OWX*MQ~VEB3w+TqHd& zAx)>Q!WTw0zle8sec;-%Ra_}cZ)xmyY=KEPj&Og_Y4U)A`eB2jZLI5i(-iTc@f+GJ zi}D*UGdq@f&9exwefw^6jxXLZr|k&E5&x8z$=^^wEl)C&+KH%hvK*A-)z|)6*}vmL zPAz=3OAio<*xFznsuihU)$tW`rgw7Me;t+C#@dd*J67fndSE*)9U`Qc8^)PdCaQY} zukgm}|kV)@n9+$?CC_2w$1q3G-mAa-2vnCF45E#Y3mrLQ;%aU9UW>F#k87o zrY$+_B(8l`(>s2@7#{p=H1yDW)xDRJoA6b~6U(13uNXR8x3`b~nx0zfOT3DXk)q~} z)sxNM1k^0GG~z#Sva9>>)QTykR=I(;?!EYS0td64xwrdB0~gyT`aq6x++)cWqmt7C zI+Z?f0R!Q?Ae^gPy;-1AuX3EiF#fs5S%O1lF@1~ZRu8O}L9Mhwab@RO%S{~j7~d4{c}*P!?fDN5 zlcPpR8R8(5@LeU2s_$<-O20^`9G8!O791E(GZme4v|t+jVqdneOy}2+Q}V1!EUa?t z3|DT9%idu~IdaU_-0fPRMR%(2@Otk_QiDzNhs@YT`62w4({cFn<>%0C4~z4BAs20u z?%R%9p)Y3R|)-&M_Xr|3~X6La7@iN!)F!M9yu`pngZ1+Jj!3K{l0It}n~ zgm`R)N|<4AhMY{)(!!Db;`KQHNOV_E9dI$kEL)VdIiAK%JOH7dx1po1{A7Y9a{4Lj z(1<4O2a_>ooe{{8i3Ks91Pvv__0zP37q?Bnczjjv^ugj)J!z7iu=4mdErY`|`HjVz zow)de2H^|nRI(EG0|~@5Mmlea6^@p%Yjjams1T`QFj;YZ_mHB^h#yXoSo$lM;TI8E zQ05m0y$_=*m(F%f_ciuzb|nw1E}y81A@5%%i**c_iMZ^(x>R3gn9UOHNH1>SV6$8^ zqC=b_?k19+`0ZGTnDXl@ulnx-sQVEBI!~-ju2|!mZ=aIpX{2vrd6;>|ci&46%Elcx|cuLq}cozCr}9n_gmy zhtb0q=1xHlW(G0kVx{X^as;X(tNivFQJi06gJfRLrwmSwT=s>Ci?G(J;A%$rLL%gR zzj-E{Gz+ZKYLzBi^eeIxzV5BF z54W6AksVcTG}G(9pQk}|F0LVo$0g>%nX|Xs4pOMt#d1o=Jz80WwY|$VTD`x=-3umy zFXU3YQ03_q8ORR9BuM$AQQ%>LY2{_xs;+dTyy}bn;bwM+^#Pucty$Fyb3untB6aQi z{29&P?KHfs#b2()V)h+5iR>G+5S=JhnebZ}7|pDvwhXJrWQ9U9RR}E(Z;eEq-`zKw zcsgMaWfIW_&)Dh1J?AnJ8GK&8!^j_wSLXNFvu3Zq_uV>0>XLK%8UgguL}vmr$w!l` zwa;nG=+sB_4^h zj~WL%eGqb99B>8^Yj>O0_G1+`Htli|qNnfK5pTYfFK*fyds#d4^9EO5LG1@)%NT;9@6AL|eLlPs#pRXN#WoKGV z&RDJ}y>ouF$4yQ_Jp85Swo;DD?6?`jZy}?f*LZT3GV$*hWx1O%tyRm$2`#n{zkR7~ zQ1h&Ne!F_>I{xhT{Wh1-WB-wpy9O3@`b@go>y@KFhSqZLEKw|N8^c-N7sZw6OmBJ1 zDUokvOKBSA1PEodO~WIn3eE=e%NO>`@|oX_Nn)Bfp`>gHc7FV;oYVa&J_Kx|JIC~9 ziqPV((`j$bzi1t*g{WmoYkw@#Osrts+iCDd&HIKC+h;$68cl;HI_o}zdyNiwC*P4V z?|SJ?=xCBPUW$j(e7gjKSND99j*wo%=5;B%3D(p2$rRqT%u%BuSMBO@AsQAE$a4Qg zqZy;q*JU5ftjn@46u>T`lH+a+oLqL{Z-g7Q(?HM(l z@uhx=a8bCABt~0pKKuNG)7V-w)fB8ejdgs5^qcF9bvn%o13Z1_I`{Z*y&@H8Fd<|3 zz1!_rTNEqA`N)CSaG(Hn>zN96w+2M=K?!R#X(%#@*}6EzgMyI(8m9=Ck0_O$RGT=k zN*c`QtLmlL;2U+g;#MT*e0s8gEpYFWXPQzb^x);ZHjjL}p;$ORGx5IaO@dwRy`z{r z=;?Y}epXFswui>@`w#8kt+;@Z?>#iwCyp#IaL6DG*xH{fh?y>X@BWFNG<7Y29+vO} z%-Q+JJv*|~c)Kza3E@e@rRpP>*lp?g?N&a@a=r9}d}Z(X*tglf zE(9+z@Sq^xuTNJo9(ltt_DlY@L%HKn?{UVMayv!_$m`-;q~1TNXl6Feq0<&|3) zWgomfI&2wR#)lMn6VCmPm^JIVdh-M%HHIKZ-$@$H&%UtuN~yAFlvZR_SaghJg$SEJ z?@DVui@_~LT>sL7SCFq{>kOuH_$nLEc1CqA`-pDIX=vm~p~%;mh-cp$0=yxOZ~Vy% zB89Jh4cv@vlE z-&$5aje@imn>P(_SKFR0u`j#tNxpwIYFkkC!Yt=2!`I(c_b?}Fow&;dU))M9mBWrS z1KBq;t@j-7YjyAljh3b_?II5`^_$T`>5&FF!9%Uco{qETlRt@FQPBuH$C>1{abXqpybh=j4mw>>Mt!kFR z*%ymKWvcq{ezYtv`nc0aEh~NS@eGGFM--jh+=>!U_D-GM4=cr*z@3N+;r=y$;=Byh zsO(f*$j|$V;}0S;MdYz-Xxaxp;uZe#@14I(`lhHD1Jjt=Q67K0HUf2{6P8ho(&TB^pUtXBL!w7y|t#R6A#bP(clr)BTR+HBXwC`<)p7BM)vo& zl@mvw7q4PDyy{3s1(gGJ+7{NeSt~|yTgLDlktgL!nq<9@9-b@i@+EkI75YWoNmPa= z=Rt=9AXvN;#MJBRdg|5|fklQHIAL&q93;@rOO41aZe~6-n(eUGkwmI@`S11Ld^o@j{13a_ z#M)SKxO%VeUc#zHEkHmfnk1Ogrz2oDYY&Lax=!%1$eH{LIPYnzS-DQm`Z4Xfvwihn zVb~a8@$Y&eqLOgn?``}ZYDjLyv=SI6v=n^g;r1I91rKg09add(`Hp{GZ^KzTG}|6F z$pK07sLwW@&ht2LI~mp*#}QJ0xb64`9>&9O>T~1IN-BvAERVPd$w7Mcq1(6fK+Xu! z3Dk-UxI_Dvxl1hQ9-N#r={jKpK7sjf?fQdJsxsHzhz@H>@e1`(D?D0$`RdgNq(Aj| z{$<;|3$5m)<4U}eGwCN)v}yI)KizI+Y8@pBBL7q7d>ER`uqM8ji%ZkdgPnkL;6>4n z9_4>q@?AuHBR276NVOCZtgML_M~OAGy5muHIPz01MSMV|gTN$xQ**I;&ZL+5cv}Ys z`v8u#)9(^vpZhOTz?S56!?34V^?#!ib@-h3f22DOSSr-8j|^J>f(mdHs*!o$cI&YE z7T!(=iraW3C+|*l=Cb{ziv^t~3XdN3wnTSC+CQ@$9PH;kRLoXF(WpKah0}oOuMjc) z#9w*(;-**8s!UcJfNWrPD|o=RIuhXTe;_QZFwHtlihaC&eSnHfR`Vy++{ZPnAtJ5Bp$>8Ey#RxzkOtjGz z0+#-c{~}7I0Uf3CM!jU{!$b$b`&G&VG9RgBszuMi3)JJ^>Oqx(bg=~QP=J!ry&=}X z=pK+=%^(tg|1XjQU>IVvk8Bk!t42X-kX{`ULx-pl|L03YW>WJ>;BumHtc- zG*+AW#xaam+M;6Y!Pda&&PD(J3=vdV?+04Ri&prSVJDtgqV$`nCmPT-s2UZbGg{Exg4$fe z9{*bq4tfg)Yr>c;9m$BsjGYtu=7B<+Pgq@9v?N6iJ&aXq{W#1-#OgqE?KhlyfB(fjF G-2VrMv^ya>jfwQapi@!W>0B-EtR~CPi21&Fud;{`i|AWofp-{fg-G;l3E=>4QI>Fe128tnrc!((EHg=ity*Cb|lm9*|K| zQp&)zHW$=qL=+}sdSA61e75h{Kl|189sIHH%)SHv`@$XhCZZ73sMYqjBYM$C8p@A{wX!_>|+hwUxM`{3!sr@Xoiab5S7RDp_-KVf+fi1Jk&v0h@s@n`CXOnK#I-cYFRdDP4W&K)?9o z+E=UZy+tO<7uPCuW_KUa2?$OYb_K-p7J;aHmOO5Pd|S0DCudgX%_uMoDlN9RTMLZ` zN@{)kFYclaqBw2FP3ROER>&~6JJsw-PG4+ycQK0cu#gs2VS%x~P~H96 z%g!T2$N)L>t$M?vcT{USS$j2gqAUYl33w+yo5&&6G~-knpjUm?9&4NGA%_l?>XU^I zPHB|B+Hjk2a{=020TxDZKyXIMY1hCZB7Z@W`o;=PYreB;WtEDLmTc-re35Q1^P-%i z;Ufd_HYxS9%^SJh{#y**j*}9pUxxZ*!aoQC7fHMCusP*mJmC}NX$&@|J-w6U{MIN> z4f(=O!C7=7%G8PTz*EL0Zy5;ldS3Lw6G^BsEb6r+^fi4SsO=!UHQ_AHrn5X&14J+>@$JpOMFW_+MJdnhTs$7-# z+48zzbJI8w^wYmJOUShuq}8ih#@5l#x~8qLf@L)^}XewgVT&W=>l;A*dj zw+D+kLgv3~OCXWO45L&-&Q69mcPT_;3Uabg-vbyL3yu9vC))<;?Y8OD3q+|DoaMFP z)r-~QtqNH9tyYr}HIp2Ta6oEetdm#f?K32o)xL;aoE+!%yw9XW^}z!%{K|{OVGShb z?W>lo6ZHv)dB`eO7qU`35Jiy5X>hA-S!7bg$}#yV)h z7U8A}!&{AIx}K#MxtXOd%b3n77z!Ic{ED53-Cg#> zy#=ra&u82b;I0Y%=K!~x`mbSD@R{2lb9p0T zU3Ytvg!+FPGqzCmftuV7os$491%*PGi?XG!U ztJ)zS>ypyiR9r2FoXo{_M^eR`Twt9Mc7o5d%6x8y4dfbA`;srmdm_8QhB>gtC+jO8 z6F;>MYfy`*DJ8!Q-umO2x z3Z|Iomlrb(KF|0Q#=RHo`&lzA52sK^M1Y_nI}!S5qos@Co>yT0+8jR>$q%>4Lp`G0 z8EsJJ^1U>Jbfb|otqQOuVLw6R#K>4@7ybroee7~5do-q87UN~-Gf3$lX-H=nG+Lyc z=117dllLw^4N_}YXUOWqn>jZqn5Io6aP_K1i5-yx0oU6*O6WD4Oomq z<}OlFU$U+m7!tCdI=04nBJ;+y?{BH5m!0d^_;(Sj8jfwTo}w8Olr(S|{7S?`SrVKI z25;m{#M;t7u6LGp_mik#pd{;uOUUQNyfG-0zH1t+*alv7`2b%&yTed&?8_i`_7oDm;UL0 zsPZ$iKC#eezLI2l$j;{hg{}pN%EWngvc#Rf_*B}LWVHGMP`VuP$``h2X)KSvlW$@*AjXMro zs|fo|9^F%n=9?w!J?BF6sVW$yMa{ji7oG~2=~YOmk;y-0x~1AwFW0a9Kg?-2)qRup zZlb~zt*d5V=K|gf(hSzrnR0m4i@Y02>NpCaMV4)UAtTi6IKrOSB>UAi5l-BE!*5O0)eyH(@S z@aQqLDoo{ljQ70;iTd$RgWD#P?K_FX+0E>MhG=Boh=+v9WHyc?%TJOD`YN!mtFE9~7Sgn6M7OO4r+O1u zK99G<%V+()pp7-IYRDJgW!etnmmt$~`wfMGw*r67P@y5q}gBvIW5( zpD3U?RGrK7;wG|RdM1Z#fOJ%;MFJ*%LZ9qJmmx_&;};wQ%0yA4RtO;a!$+xXG?DpZ z9$#bG^r|#e*jes?bdfq#-JpPo$QM@$YbP*5iq z@Y-oL^vEoHQ0D;Wev|1;l>yAaI1=#Uw%#aw7;-ezf13SMWvxzf!dJY*-DD~pJL^l# zTpqLhk~9Y9b!Xq&wBi+D?C|#q+C@ zLjPsts6X~{cLaz1X1j^*^?lj^QDYx-7M+bBB*Omm&8zv zwh@U=&Gs^lwW0mFvpyHQgxXE@7kDtIF z%AdFL?iXW+g$_aEu$Mj=<*jq6#!W6(JPa`uy^98GQP)TKeO$0~R~+ab%3x>5Xq_NA z%5E9V2@E531i>CLYUdG)<*z%9B{RpnC zr3h?~RE&oi>hh!Y-v{E?2W$(>-+%EM)!%-(d~h8KeE^GCk)=)TUl09;`8yl80?km- zI^kL(_fqF%@eak>fx4>6UHkGi%VcK*LG31gc2ho7fjh4Kn=8bfsR04fe0k$`dM1;% zKI@Fsut;APAmOWs4~B7ocvsUek-GJm44$IVLmeai;Sec_oTqGmXI}fhDaACNegz|L z*+Q$@u)Fi+=LK7LmmcC~d<80;DF-~uCadDrDH;%tsqw?-jW^PM`|l+Ga{HL5=q~&w zHrdCQrDj`=-SXlfF9AvL>??y$hlM?mDsHCB1dM9-v zHXSqnoD}OY$K98JE#cd5=amVcQ0*{36>;#3rg<4Vf4R|37=LT)TJ((UmQgt19^@W; zhBxECvq1!R9hi!gpH^!89S43r$V>Vjc6`-H@Gh&m_qg_|e!NQ;KY?BpUSlTCh9xE< z|IfX;TRB~|g%C3_%Zk{I6kt_$Yqs2=q=6c@Gl$4GAZObYH`7a;SNpXA1^r&*!&HZAx8}+ zGgy1A z8{4BC?QsmXqH*v&{2dPqEPfibWw!o~k`gjDv1HyecA@W#HolgIC7%dNHEh}lT&bHF zwPoA&#Mo}EZXY1ga=Or=1y7rF3U`)tnozu7E>@&dYz$(#=*IfhaKLNhn~31e6v`7( zj{;*a)W&gb&(BF9&M$+GpBA=;o?8a3bp3JZ*^HuIQLo!Y`QsM)ds%59UFLfr2X*Rpl(*)mE4KZ? zDknY9UpGc2bu2VoKH6(BEPSbn1Bo|OQmv}3^%?2AzpDh_Zs@W45?sj9V(Ys(G4h^H zdJ&JP_~6brW*ex7>`cN_em>rLXF8X1>=^aRw3eezYP z9v5RfwtBb2lkdnJTuy6M9U@ULsHs1o%wvUm6WXO^GmAB9w)Oc$)~B2#@;5$lbM^TK zUa+wNkU;&S1JCURC~A)Ia0SKLR30(In@Aba{OMX8{2ZhDuFv6w;HV_rCvs% z9~AOF`v(bVR03X%?UpIh-42Z|TrD0QVNa>vFIVDcC&t%3JIqKHyRch3VWb0cGJ71 zff@KF!@75~EmgN8ftG zw>dC#Dw}(@LZNf?Fa13sq6jE?HCEZ30fp+DO(K1iRNTWb6<57N9@FCz@E(+}mW^^D zQQ()!fs$WLtt}PdRz~FV9L~^%=1UtkOlt-VEFU6CtZiK7rNEkz)rb5V|5Sm{DKyAX z!5K$bXZO6sRk-~Viaya{17bsPS&6CcrKJbI2OUP$8r@@#2BU?dzv5QC(k`NjhFlS@ zu}@nL&ok)F|MbdD;41wyG$}3gtP6TiF0jCT@I>*Qa;c`4i4E8Pch zq&I!Z^fLv90$<*^Z*=nl|8qsy1U$zZ0ka>o?>P`6D@O*?F4xiBg9^ABEEv>2o#9yd zoYy{Uf;S;OGi0Gupv@Um4+DmJ3}IN)jv#tRuls;Pqm20T56}0U;`2lzRn#22vd_iI zP9AseUb72%lMMNOoQ~z#F?>UT=}SSJczkSP;^eo#iDitM@8Gws89!&A^v>b8BdnEy zuKHAsX!c3%<2=QXzHQC@E!!!}7!H$qf6VELXM>vtZjm|WHjlH0PwYMrP_JnekqIHM zUUBH#pauFngUH_AFPCR1a-vC&?v6$i!2RiFo_27XO|45-^=VZ*hRkVg69xRlg z#en~MuuPDT&2^3{(nrwxM=BOcp%Sbk`cS(J%SMJH^%Pj2VUTWE9{_?}#a_DrY!0(J zM9wEtcMY3B2&R@!f7-uQPKWmJQe(8n7&>Q8U`FP%sAtBCmY9=OHcs|w^E}y)3{exK zHyA>I+g)U$Ij8uVoI_>@V^$oZr$}OHlAYyao(T}K>4Am zQ8Cn_%CYVG%S)z<0l|-|yJ*S>Eb$i`Md->BUW!&mdzHA;Z~$0 zGE4J!SXg5LzP57i0rYzMOJCCQ;;G>yK}5GNojRVVL0Ob*%${yjxnEFwwJ89oe^1n8 zxV%bGCmZnHyJi}kx4Qv_MrGLkUcIWk#R7G7J=CYWOX_&{OG96KfFHw>xUvEH>+Gnp z0NnR4aQiyrBJ!=xr%lgizJmE0L8FX$?1QPD;r0{~ZmJ!CJLZhcg=B*4e$ld5w+|C3 zuR|V(NcZgm%xe&Y_3i-K>(wLezh(S~YNv-qP~}ABPbtP0n`uAc&8Z!28CEllF5LFX zZjThj(~)^idSWzNaheAN9yEn8dQlS;*lg<*4K!qqdcr<^lCl7@jAB+Q*Gc*UJgzW` zx}5;z*0=$?Orx*zPAMbasrrb?NXGVv(jC;`@lwN~Cl@Jcz{RY+0+-G~Qf?ZjnyY$c zuol{nI^&LAz13x|_<(U?`r+oFCmW_i<&V(vWY4uCRi5t-rC=l($a!God{Y@j?Q?0! z80G;BEZg#UAbcr+*Ua27b>}N1Y#;JYRd=DpE%+6DT+NQ`#0Rc8@ zocL+|5iE=e)lZ%NEhfN#F^m&us-Fi{`}TK|f0P`+zey*hhhCryf5+4kFxAV(#X@5t ziC76rhfcW(>1&Hy?}R&Vf|#zI>=Rik5Z-hvw7u>6WN?i$lI~yb+}3JwR7CEz)QS9U z@8~w)R-?X6ey?gg|EJY#j-=n0?ftyx#$%5E~yLZhICOz@}w}738tz;mGfK=7PHeq0Aa+ z@a{(_X!jrcF@%`_(-b|4HpGBa4H=~Pb&H6QC+UxF6mrBaH#y%Y@F&>A?2T_HTd@s- z>=zoH(QT@YTVpoZp0t>ymu?L^#uvany4J16#}Rd(rR@bg8vc4&NWH!5c*3E`J*jmU z1(|ZcZ9sJV3eUdTZ*LwuIa2<}Op}eT2#0+lUg9w|5_bS!u3aK;U$vo|39L{09w9ab za#YxU&geKC+^C5ycgiTp*gn`0sR9o5b^N2Tf6vZ}ibmhD?iZ`3X1lnGbeUCHsn){2 zUORVa9<5UgRqUVqs`8r^5NOI9c_|_F)%4Im>vqbPRD7|+#sn@sl)lJ9*uTkoRFBnf z;j2NtE;4iQV-Kt#d?BbLUFB*0O*ZRO`k|Nb+`Y21irQ};iY$-rCcGa*(Za>>|0vW) zem^Rr|3?j3**)JNY`^~J_`2J}kPi=n2kKv>%o&T^0FZ}T3$e6(Bl`~uIH24ncX zhSLAOK+T8E@syc2>Jy2Hn-eZfM z-0%<*RvsRIM#c8!_T^2x{RNG~V2_IRh9k@G^?eVW!pUqg=K2c{jc-J(6!u3;9gkRl zI+XUFc$%K)q1ULf`RhILMT$%7Y6_n=k* z*egAx5L&C+cDp*_v|$y8V?eE!gKVpxwd=&^&ZMlNM1hfOUhf<%EY-q5KAOub{P z-{#&w;HQL(6azM8h77-E3F&An8t^Ln)29BO@`Y`F(Xs41SOQRVLjnlW^y!LcxgIxsA#PP@pLc9W+jW(;ck z_X;75apQ70ELc+8N9H*Etu{tVbJ?LkSm@x>@SFahKir(0SUVKX{n_edz5hk;wc^sD z766rYPg6~C(<lV>#hj)x7{NT#A#KL2nQve>H?gk#f9eCb;IWo^M$m@*J+&KUiZ* zeUxD|my!T5OJFI$%}VJHN>uzlI3qy?73SK$u06;o^{-eTii2Y zRC7YR;)bFUNzpO5^f@qSi8>_&TVE6&sQ1=9F`ms$v6;!NI2d|9)?3Td?`ke!_fAu1 z5beDdKCwZj2V97$&AP&Lcia7?fmsOvR1Vq|(kk!njW~Mb9J|;M%Qn7Pb$*y&K*)A7 zYZccQe)$-9-5@UcBQ-;_x4>U?Vw9d&Vddi-G^# zx;rP`t56xSyX9q@A7-ml7+^mzFkoHCSkswFH_XP8d~pwPq*I(3l1}k3k@r&+f2GE! z-_jW2NnamP=^6LID(cfX%6BTp9&3Nv@vv{@LjslC%Wp6A(!>=wW4Z+vxWaBU%C|`) z%jBQD4$Gfif$xs)?1%3=fOOv13O^!@L*@3U<+p^79t`|=PEfCt6Sv`6CLqA_JWfN3 zl%<^@7I5W>7<4$`MK3dzK*=EOr^~MmnikO6QyZ2j=-#m+QoO5=wyPnWo}*LF7kqEup`Cem%#uo9&t9tYRvNoDD}lv%~NHQ8u%k^p?R@K$uiFx|z*ovs!ii z{i@UfOsA?{A*zY!cnAO%`DdL(ZH=(7b4AumLqmc84cJi37Z0pzdpzqP^^4Lba_owG z;F~DKB_?wWgg`rjY5k)8qPi~!PIzlSK?y#I2M{cqg^k!R!L;|Z?`TmnsH@1!#D7t_ zt02gsLWaAO;nk5!GX!r!(l8WiIK&^|=i{U~+s;fh~nj*^;*@v6=ACGw&U zyZ}b;CGH~iCfopc_#Z!c8Dr}`1!=J2WY=S|Tsqi5(5Gh2mxSm`jpb-m#vbPdmJ>!* zk9s%-25HlSaBU4&?VV|kfgm#HT+`CALC+LqC4rBXpqscch>PNTpb9D-)?FpqKO(>W zrV^!b4CPqde8TOb{(biDHj$GhVyok>Pd|HU?NV{#aQpQA)$_C66A`j?S9hD-$9(X; z7@kc4%_3D38W>zGtmblT;4hl!-hmwZIK{7a9%U+*)1b4b@W~U7!sPo7-+AiL z2g&N&;gzWxuR3U63L9B`P^w3$`Hx&vKZAwRvHTy=n+x8}Yi2n2>5`w7dyHYtTYG$#mW65~U6gAKgD>6gy`0haI4lVtp2 zMP6$#LeQa0br;FUnf7%XaUX1harHYdo8DLQ{=|f3YuuX6Q?i_z(grYZICU0wmC`tq z(4WwI>jqU-Dym+-%?{1N00wb)(b#qG*ju0bR(UAn!=#w7V^q|_`-3`x$E7z-4&@H< zY%;1)8{JO4ZcO=J^I7iNDUsV4Na0)eOELfSO~?diefDJBoTi_k4;u0gVJ3qPSq-uc z*#lq_eIi{sFIw;Go8bII8vJl!s`n!U(Vv zKQqDKpu6D(2mJslQ1=gwvax#s^`+DyprOUR6tAhS=4zN*z1wBXW0$9YHGlMwK9caY z-mVEus}|Wkxp9gneYx2fpncORbpkJ2H^A!_By@CMX5MPb$!fmMi>7?C zmk)e_X6di)Fm`m289D5|6EeTHuB$RQWP0SUv3HPiQ7+X-RaDU`kD_^;$Qg@>0HL7| zwE30KQF!eON?Xj3poJh_Tc0DZdN@5e(5=|y$1j)<@f&#=BMfW^>jFzT^`>*f(gnIf zQw%H8-tX&`H~E1IDONp_i&|g0Aa$Uf%}t8~?drYPJe%X6*yQ{GL}ok}VA= zHyHUy|42&?-CD9jJRBEhAt)_kMJ)f8&x?B~nkxHXy%k!}Q?fq_Dl;+a(KDaF?4m8JLrzzI&}Q@#ACF$%=RnlKsNhqhud6^X6laexXP!WoR%j^ zTJLd5beay)cT-Prefqu;_KDQnUba0;&taG6NXiZ=z)-bP;|tr414Gw+{;PIpsg>zo zjKzi;0ARu(N%ze37jt1H&QZU{4*T{Pl1kLc{{71wD+VS_>nj9nR1zK6@Gc_)QZnMImtVI!;#`}Z{qJv=T6q-S1> z+qxIg@e=2P&! zoZ?85*ln>sfCfs1R{E#SRxjgm*x$w9eM4SFoxTNQci4G=n%890mx}%j*8n2lfi9M; z+&lH$6=`3b6FOqf&?%V_S&;8MYiL!-u6)mTUfRiw;TO-5_ZwV|@=ncD(jn$qx)9dT zuE*Owb34^Aoo0M@I-~6hKsvQl(j(~K#+q^2AtxhSS*`b{6Yj_u`HGnG=Y7_pSw_FT z@#MJC@G?I@`KCU=HQPQf=rOmj`ZHrDk(+s(j^AT7LIP(=@z|a$!D&Wr#U?PJly`~U z*7?!*^01G{@(&3ccZ_q;pGnB$9Rd>98(Hs5VErSlM)P~{)MuNycW%^d(Y)T0KC3G| zTc%2=;)%oJ&tBJP&n)%X9%KZ34t1*7vgHoQ3Vvi;@)~M_+?93jj@14p)}S3w&@NZl zjCqVP;u0xa`%O1GhR==`riJHWS*CZVtEk4wZjMfRYOQgTI;vT6gKB;3kBF`%W z=f_w7tYm6NxAab$PCGvKeV&!Ong(xqL@E?OS9it*PqQC`Hy`N~I9_kIj8jtD0|Iw; zkaO9!s3p@WhGwkJDXb^&M@q7$On!MR3~|^g_E&ECpcT>Ws^3z9Kay1m{IL?ts8K{?^jY^OJ6(4%j-u$(%~C!a6Rwn0NM6p2g5 z>TutN`Tb3;+gGXpFTPVDjUvq!TmQGUS>w1d{Vz2i=0rVrVZRl8*s^QtV-H>;?$rU( z0r<7b?Xj=B-C=H0dF#yO!gXf;vNawWbTQIp{5h9=iH)nmYhmnI)$ zPX2$bQWXb z^-Dvr+4k;{PdR=b^o%JF1i3A~B8&7pi+wgdSXqGD>`H-s59jTH6xn+Bjro2kmYqq? zBV4rfoI0$yqBu) zRnK7%bZe1)P1Ofty9sgP-saH0q}ljfQTtUXxG2UvX*f58D)GaO^id3n3spldzp>ob zV%%hEZq`ALerYPEC}Dii>sx30t4E%FnC;a9t2Z~aONMCkGoh>f#C+?{wf5_F&D;L3 zz(4Oq-q1lz$7yEXZme&-|8xn`HVdek^&C4fP~LqA-_?%TVam8sr($|Tdrm8q*cfX6 z4yAoJchq9$u=>^tm5gi3eTUcLf;OA7Gq!f$G33Mwkux*!Z3PhZW9qP+FOw5tB?GoheVHd8I_Jqthxi;^@Hjm$yw|zgCyfi2;V2gl{Q#nPUXz2 zGLDX!h5PdADDEhNJ5x~sY5sXbez<0qQCm|a>`lzl+iGJ;YyFbTD307|vr6#eo0_xV_S56a8^VWyS zj~h;UHF(~;J|AV1u5;`-qtVA}YQVf#PEaR2zFT1ly0KVump8Og7!^!b^)^1zH_DmNGSv*uo z9E1p6p{XsWbeX9V(F9i!&O#XV2R+UZvao~Y&a2G3A@?nbpHfIcINM*9w8DU$c38m! zJxkp4ibF>z0cIB7m^(E{c%vnWkimnw2S+Mp}LE*MyL)tya^Hm!qQR%N(t$ zd=Vd-0Z(%sh4FEdd2MI%9hYFY?1&a5&v*Tgjb(om7E6_M^8c8;y6vWbe$af6l5U)b z4bBL6xTqRnrVAIVhBBsEM;GY;Kh;GBF-Q@(ubf?6;=tlc|1F;l`bD3@EduQsc4jdHGsdVe>KZ?lUt@j38M6YSj6wWGzJOZ(^LL-Ms zq<|jagl@f&73IqCrNX-UPBExad;Hn~0WrXt7i+=9fCQa#R`>FD{eixbBA_Z9@aF%=MPpJ264akPIRWo8KN4#o8 zK?s_YRe0qX;$$8!DRcMwoT9nZr+>5f3+OJv&a`1FVWI^)cXjiAO1Ir;%>y3u+td@r zp8@U-A+yQt-5Xmv9mT?<4?WGdK~ooioZRC1%bV&qzQ+s2UbyM9Z)MV+cK|C=VMuzp6p2Aqxglgl^Iv-TgZUzwX3M=77KZ`BkS-Lg992_=MT9`v8J8?bnZKVnW?zv@t$yE2*om6?%mX+}Wk%*&>? zqV*T=U6j5XW9%`UQ>i34^%AO{PA?fgCwp62)QFe7Gjp~05y93|Qr4&GZpTmuC1FAZ z$Jo5=16Zgg%UJ@?s>5qzFFd`^Q9o#HgxpCVR)c8MWe27kC9pfoWjlb^=F+-Row*8D zY0Ts+Pl5aiLx3`#r5*I8%X!X+#IMn*op_yjetj<2S9jU+<_u;Zb2WilB~IOjW+*u3 z!!DdoZ5KW2H3c5=-70O*BM4cL>e?Bfp`FLQ z8Gh4X{yhp|gfDI_V!F^N@>>%Nn;&%%(?cKiu81zz2)!Kg9oB%aSKa99PWokCDX2ESud8zOW0iajlnHfx$tirDhp^YL<3DbY0|$As|Wl{s4V z0WjkAsZ`#*HL=H9*UUbYP;J@;gZT&MpFQ_{{Gd_6$lQp)%GjEs zWx zQ4@tb4dDD})22mZO15;Z=@wP{hxJmoxW_~J9az4lh=u|&x8!cGU-Z<8+s9DLFC>)! zfp^g$kvMNFhpqhe#ogS>8SMW~;FBoWVor3iJb!+E@6>z_@wB#b>yx}HU~l+4m~#Q9 zqJ>r4+zB;b&j4L+Y1?XsG>rZqy;n^E=%QK>T7hAkA04`F>;uc|II4sB@8)YvvasxQ zhtd@pVMUrcBRX5qjP@oIu4fbZuS;X{0avdkb8Z;>OujdC*_$GVClk0C;anMisfsl0 zsFT3NA~73h<=PBPU&E3DXw9eTKv#lG>Z>3X@+yQ|q{yKgFSo+$;+CJ$LGt97(Bwt} z?oR8;&Bx5k+eu04?CqB6jnAB}t%pkxy4L2m>6lrD#v zirRgDu;hpGH`5a|KcMU-Px>l6lW)O4Wo|XC3YP0j#g=M=r#{ILQ$FKRc&f3X5 zb*K`5%KQtJU2-=Z)-xdjtb?0%DCLU*T8}-6CmacZqBCaGwZj7J{c;#`sDxfIZ5!2# zm(jI3yjV&o@;)H>J%D6J%D*+4m;C9~(Tw_1%&q1mKLxVMO=x+m(I*5Sq^LL@nwx+rs%AErn@WmUVN?8qU%5$~4X#3B zu4|`o7YYrrkNRv(`q0Y<4x6_fb|$7fKUdOzHLsoc>eKTdIy+wT!8I;ge#tl!zU6GU zpCC_#pkJuZb-&9=xWYP47eQyYi^{w*_dX{uPk1EP?S;DGNluYHv`Ro0hyh_}6iejGs zNJu@d@BsCv6;Xfwb7xv8gBn9qF__9U^?Q(ZQYU9fp63`2d$Io?tJb@=M>ypKkI3Lk1Wmap);Cv02QZtbH4lEZRj(- zEI;1*H)?d%=IPRI-{FuZYqT4W?oo9KWLrCPDx{mFCq}=$gCO*G;hCh6s^=ie*`MpS zMU_dS$5v0VUp{}Ele68*Ujj3#lwx|4CcDw_9;!01bL0catJL$=&gpx>T2XUZ2UCQ5 z?wzT)DJt=C==xjC+~B_9np4E=mP1L{0c`*KkCj8I3Fkg8frgdo*a4-Eh+cs&Uo-}z zh_J%ggoEl=@KUX}WAo+iWDgyASNU*hac(nN?_$~QiAPA4ps~i&^P+UXoR78XLyp;6 zq~`STFexNh)Y(ee^N!7lEL62&k&t;Ih%baFpB!l1YJtsdk>`hFRTuxO2S_NT#I%)w zgU~YX3%OCi(e*P@98=HXc3f4Vuh-?#dvHvHrwN$bFG<@zsn`MV)GUj#p?2JA47_|o z#8*TpHNjj2d{JhE4$-JvKJr=*@$N5uU|n$Apy3e{XPD?dzO!VNvIOM*+w?O6TQ&`% z^Daej$JTGzFz-1&03rK2UCJ2&&9xgI6Be7>IL!!+F>s)%v`aU=%{wx2dzv9jn(0i@p>KR8XzEgp6#ExY zr5hoMxtm8iPLbLHCcYW-`UgS_(>OCODq9x><-{IlZvQPW_)WF%c&zJ4cW1J7ntpP=2S(Uz&t7Rj~xg*TPoHmU^E_%rrhJXuZ^HWkX(2OGYd|21+ukN=gQ z+($b$*Fp=~CzGO+hRr%!C>FPYFYf)4w0I?bfgd>Vwh4x&lHDcpeWTp&(@wk>%R)S~ z?QhSwDeX)?`nw`?Y&JeP+z>x=1T*`P*F=khmB?AN0E?DD zHM6)R0k*vX!q#&$m>d&K$=XW_t4X8@pF=Ua-IP5i_hEY3MDsIX-8iunl&Tue2#}ZB z*9PB$PLA2~TN}H{5q6(KbESk8MFW}q?G>(Z2ii#qz9N<(6EBM{=AT9=i1+vCrI+{& zE0*06)mD#NfrX}?TQ20BjKT|C_Y0E}*EeCk=8N6b8u3BA1a-G@GycRlb=DwOc=aE^ zcAOy>5Jlb$CJ8E@jGX(XtK_@$c*!L?-8}~=^LAqO6rIboYyIKcx>L0=ua-`y96zJPC z{=54jXNJ3oMzr&VhUc6&O6t4*7j17D7uDLf|BIu964EUgfYPCeqza0(bV*CMz)(X; z2`C`lh|&!MLk=C1gXF*vf;2vR%``P!iw|n2u|JDD)tNAc%&9$yP)^UE%>(W5< zi2;dA3t;D;X=e0Fy3=MgKw&jCk-BnIVyBXX4o~dP9yeB4 zYU3k2y6Y*KBZ;!asRQx%mxAkU%;=nW@|ok-j1sWbs%yX|V)IwglPLuRmc92vK;uB- zh2LlUad#yrF`6h2_D8mynk37>%E}x~YlH3t=vV^30P3xU!p>uX1)I&T}5^J?N#MY2zPkgKq z67hl>a~~+(%*8wXADnEwmE335D1N0xjH^5BtM)KM zvg+2y%Ee{RrDM#RRDjpZNy*`Zu|o_|DE-XEd?7m2%mE2%Sjmu97?M03pCxaI!dd|# z0GH@C@}h)6fW8)}+&+O@9Lg-_XhVl0UpwmF0C=f-(iP|Tbg5GgvxAi50Hq?|IQR4- zB>TOJYs=o?vw5?L2yW*NA5ilEYbSNKi?6(3)2PB0Z?~_;Yx5jLzQ)=}M%QlOSeF%{D5%Jrr#cu+juVKb zog1^c@1jFUuc7w#j#JYubV5qfKF+bcpmab0B3_(DwceusTyod}v|uVk108FG=dtt5Ss!@B=# zBL#aE_v9*=DIJ=I9J6a?ACrS}Gp2J3B&oyRz(kMR&$ZkPk9ur1fev`_R`68Nmf@B} z^aB3ATRA3O^Q?K~#OW#%qA_AA&+9V4B&4~8$6jsm{sg43Tot5~c@X7Q7U0I(Nw&H@ zZzF-2{13!{P^G`B-@GQeO=v{29bQ!W=Y}i4Fp57u@a7O2wtFiw)@hk#zf$aNdG{O8 zQHrG1asympLTZ~!xPQ6s&ku%zv|2*8D--|6|9wk4+i+RI|8{W@aPevP|BZrll%x1x zm*V_oznK5r$#49P;cTz9;Qxt=XphAyAkZv|vF_ho&?jONSmC7}Elq$WWb zml2$0hwMv+#jarn(KO5Q6s4B zzwF}^De%NYIIBkTphOjKNv0%F?e-1K+Z-GR`=@)nR_uCj=0v;KUm))$F*97-p`n3t)B_k4} z2wH)ExqE^Uu9+ILG1e<>L4xfJ#m(bOe}+1b$2&Bz@4|s^Hkz{y-$`%0k)|!Y)u`rs zzB>aY5;u1j!op30a@ z;7NA2dNafU-xJ#wMrQAbIQDTSk$VC;JL4m6*Bn33 z^GgdOdqW9Y&n~M*5-8M1JX6ni#znZ z5&hNk`d7+lX;M|*)1;W1fnxBLm@l;ysJBK+eCp&k+6%7O4Bko|4dqNce}>E%e3rGM zVQDCVB>AmR`B@qpVglh*KOrLGA&al;bz7z>x7%U6uQ{m^PDV^_Gt*Ucn;X}*f*dub zi+HCiLS;a^DR<9bAUg+Jz@GIfi4@uFkkj}sQg33vU=T$$oz*f=LpeHbJ#3KCZ87_pi_rd;5lfP3AR2oR$y!rE8-Fgc|8duKor_U4uvFfbppvR>Mn+Y&n= zl=%BE;_xz?0>miYG}nFD=I#`310%jl&TR&|OMk8BUvps7oROiZkxy&tc+ICU{_=$8 z0-sd9Q>n9d8>Seq?FX`34>>2x~c5XC|oq&T8 z5Ayoo%L=S7kph>DB#3mkKLtOB>w-R#3g7*`7`42-Nu?6fw%6b5=?;(jG2Qb6(8x=m zfAlioxy*g{oMkV5y$CjEkOiBQ`~Pts_AL!A?d)avM>n}d*vkvLbM3fj)%0wua$#2N zTIRxkqdkden8g@}P#K=Cn;wdcDF>eqRf3nEB2DHllRx^G=L7bwxPc)udwL`&J|`K7 z`_C%yD<GZQx&B{-NADfb10x(GlG%t5lHZ#G7)yVy zr@KNu0sKZ7ihnfdKnf1NC%$KI_rK$_ys0f`9{Vn?pR9W%S3S`@Dmk~VakKw;NMc!=CKQKaUjsSNbx=8)eOJj{-Ye1aNh#U;F1Fj z*Ws%l=pS{(c@sBV4LOqm!wo2bw4dRAuXM)hJoI-I|97%?F$!l8uJSR(zCFU)ZsxQu z-A%)`)#nK$ujudwCgDTV8^V9-2rp>>dH7-Eb-$L(4{4eQQNK57F9@W1AC1u9z?5Cr z-B!jfX6$4T{`hS?`}&E~Sg@m2lTfZc$rGVISref=a4MCMCrHql_z!7@ANapLx}Uot z05I!rmr-8q!uNX9A3BHKHNm;KM z*XsI)ms+bDJYTV}llcm{BYiQSGR!^GJ43`b#SB-kbD%^cfr$WbR*QGo z1l^4Wm}s@Gtw1#Z=Z=Re8J98Ky?H1XN9iy5Hfp2rBd_{Fb%G!Q?)pW1E2N#)$(vKG zc1)@_*}2V8WjyewIiKCjnXG0Gly$?Q` zOt&_62A&i)91ZxM!_Fw6^YekLx-8)+*X~;JnA>&QqI31TIINXKtDUk#mdTY|>h2MO z2`76KKKIVC-2*N+);|gW*{J7&G8xmOX}0NW#zR!%Bd!xa{P#L;~UdKu0l3x!WCoOuuAmciHwgdrnX?fTNdU5varK1Wy zuawV&TtoDF+un;TQx^qPw@g2BNPqP+Hhv0Ysn7awTV=!BK_fow=@*T=R$u&42>q2= zL}IMq{x}X)mpNUkT*FFXvOPdHx}M?qWk~vMB_ktRT~aRA%FA`MQSKp!1B`b&HFo>7 z@yhm8+zGI^_Fp&TYp;7eHe)@iM)cVVc9~`^DYC-e+^;F`XB+Pprd;gBpC3?+wZc0&pU3=Z`_fQV3%`@sHB}0j#IkijA25p#Lj0WI4_@mAfB0z&zUM@HJ7`w4H=NxM?}kKE zbM>a|Jrl$~P6^3VsZcwUTW`ak5ItO#Jl^{v9(s6712+t$7fe%E7TWO0s-M?viJX<1ia5ULu zE=|wd7{NW-U>4I*a&wpTp+@XFKXbPn{_M!A(WMmSNBvN@jkhO=QJ&STs2ap}!ZJR|}5GRW{V53qQV z``_ha5aWoC;##_8#1ty9s3zmF=)Ph#);5Q(_DWkywxOjG|M`$&yQs4-P^>6Br=KW+ z&Ilou**^Rdv^+@6IC!1-Gr9K-l6tR##0CM@lvHwVJb!}YZ|>Ck{buq=dhV4+>s#MT zEbv#g##!Y~$EbP4-XAP8KmE~|fWLq3JGUtb!LgKA0+rEb`tT19%nGCZ8KtMs%=fWN zH?}`Kdf{7SWDTq@9l&}ce#Fg#5?l$W!+vd4n^7;uWol?mI6>{UI(9JJR760FUR4L` zsNh0(;>Z$NH=~3kK`+iVAUTkVP^u|9F~8^}F@F{Pj?afq=}?$;jw@3@pxDfck&^uL z-MI!luKC>8sYQ$oS`v~iX)%_37W?SCxpOw@`dXhmPno^BYZVe1-z@UZ-Xt6k&yq4v zLO%Vu1oX`n?J}N*sa9e0mI_k78R3J>GdXn34W%pYM=aP!j4yGOK0Myl3E!oYG%=dV zLdSV6>_5E@u<38R)sO>qloI8jlCTIB4ve~lwuBa0i+&4N%ZFQpk+?!25VYq~0NmL# ze>!5V{*La(cNdZ*r$?Jd#AF4;Bjt_kJeO3r;Km1$IeXo{mDecmNiJV1d1D%}FjSvT zbK^s^E1KL<$DJ~*BAqkXx&6aZ(aU6?tkLsbiQeP$_GXWMBTIE;3Xj*fv@)f2hg@Fi z(YEWJ;edra-jz;`3b!(a`jsBQU9H*}ONdz0^Xjjh{&a^2#EVsY6pPd6=fRO^OaEC? zK2PO<@cGeD<(jHS^;Ofb7n%oop?z%!Js&-m9tVRp4npsR-DyBm4OVEoB+DQ$?>E85 zbsm#Y;%6?sM>>OMX9Y~Fabu{Mb0AJ-l&p_>bnL?6G?3|KVW^J@MFd3XjKtO>taX?^ zz)ukEyW`oZ7AW%ojon=ga|*()zIWquMN#TD1BCcu0T+_+FO9z@6wvyVJuJkJdx@Eo zRV1U(g1W=-iBkE4gbKzxN-sg^Ki^Uk*e{eBkS|<7-OvHN3-z7=0cT}C!y?#IDNgp8 zuO?~v;WZs;P8Ro&QZxT65UL3uP-7hX)`xzgz~WyUTF=C{vl=>qJjqzfSjvA9LU(^j z84X}GR4({UjgxQ#>n<1E$QJW4nv(F}1$%-d?#lz&hx~s^7Re%Hi82SK#rjq(et;M& zJFhb6H@$L^6!{pKxSWJ^LDk=z{way6NPbB`71Wl=m|3OEk7Fy2hWQqalXj2*9rq#K zZ{_xD|8{9bKSVs6H#6r#5H@aWoLm@9xrJe6r=1Tu*~;@$rF^hxko%&XSBhJ75<<{`kGlvWN|`_(!jUcFPYG z1G=f9=DNx4UTO=_4ZLz~J5V|tb)-4x=pTeQtJ(>6Y(B=7TZrKTkEkZ*;7>wt7s68~ns} zXxihg|D2d`cyZKGy#9le*IzVTQ^Lp^DclY;M&1k7KVIQbU=C41L(d>lU!JZ5Z^h-h~g}wCzt!A8VX;n7PgGO!&Bv&f>kF(QBQ!_o> zlPmYvWj|baPpD!`Pvj#T%^VsOFfI|HPPM4e)3fAUJzJ@vq7*=)LjSJX8?RiOG#qp@= zPmgMu=EwwBFb(=wICu`mHEUt_;AF~mgu*394L-pNrJU`|TG9m&)76SfE8CVBZ`s3d z<18*}j)q_Z<&(48C<~5Uo99QPZ&~yW0LX`Q_HecpJ5Lfek z*9NQhYv0&09xwldXeKK{pB}61>QxHsuX{LXARdy~NCz18t_2g@!bOx-6ekfOeJUnt zK%IVxIL7@sX4Zvn5yh= z=NwJDq~-C&wmR)?_8g~XhVv52!B^iVVu^$Ce)97`ulu(}btilLrsiRvHA}bx*5^&6 zNNVrYk-q!D;Fb+JZB0dfcMoYxB-smtBt7LIXV1E4a`{m#;*~Tl<}p!JVo{3iob6E0 z?o&q*PKt$L?0wvgINLjzLRNEzWLhI-6JBQg(7oW9TifknK@38Z9J0AncD;)3X%6#0hCan=Oba+xK9~ zWyJkCFdGFFim4oIjC#d)T!ywkZMwuoGBuF0i-bkb4V@C($6v#>IskSeFkuqLIHL@G zux71hXI%S*jrf)6&&9e;!Af4QKV(VyNQtMWHk28O2vLl^r+!CH$axJ=N>@Lx^$$SV zyJrgQ+0oXH!kb|=j25yKn*P+IAg*R7HwIF7?F7`&y@V04#LPv0qp_9v%fg`7=;Lcz7Vh_JGl)d=GjZ?mJ0v`%LDD9*gCGX4`@fpif8Kr#{~ zq@^CzSFzLH2!aI#&wWtmm+|1kSqbxeFVr*A7bh6~;DPAOh^%|YyCd&TEo5`eCR6r$ z>Z5!2an>j?{j$10{2|Jsd zuN_<4A^JmKCo>_l6i@0jE>@aKy0&!GYIl|8&28~ydpWK-b^o}pOjFv|<4IJ|6()`y zJG6?MFUzuOy5-I`%xin2_+N=)H8wr45KHGW?Mlk@rK$T&MP#_$OVFw|Vy}QMJTdi# z-KW88$HF97=I;TjrY_x!VQkcdl<`=qk!}eX*tyimc`EL(C+=HZE;DvTc?I2V;*2IGFtH$Gj%mfNZB&Y0}cjV`#Otc%w} z%^_L4zJ2sM z(j{mI3Eaa_s~m+p_M#cqWEm_gqHU=R=Ov#ZkZ4<_sng6hL4KSfAO5&%6ND>Y%OJec zTi5rj_h7p7xwdST|L(veL3;x_2hLokmrR%|pxw^j7B8yw_ewcSJeg#)&yk*0Wg`BL z)&(|KrEMw42^CcxJLrtpv^_6bFc~jQTGQq{gz}`^E8R8va0i;0_~diW>!&H)OhlIt zLr<$IA68sz!5d>?Ul0k!2FRRA3L2XZd`UgsyiYH2BTPS<7YrqFaGKlOG7r%+x2_~r z--gKAtTSbfRLL*4)OmU+rn%LG5s)6Qkze;yK_;SxI-O0SEe#ZGP`&O=@fn?7ypzZz z(K6be^Pb&RBbi3F72&d925m>UJj0{F3w0}9qkiFvhIp6ZzO>mhUL)wMsfsl=1xP_F-bWuY$DyhoskJR^80x^jlSz`H&TUMmQOF6U4c=0oz0FwvlMl^yfQ$+N zOh0PZLtlI%f(@EW_WM>C4<5(Gy*Q|5NI?v)$=xKt_~HTh)(Q^G8Ho%1ifm-Ek@4S zrm-F&CVdq$W1I1_Ji5inqnAG>ZXgJ_WCA6b7l-V6=ZfC&?4GPlX-OGa}y z4f0Cz@8S>t;t^;Fj46!&Y42Xb&5rfUqrjNwm(+&oIkTS~43AC801ocVz3uRS_2vEC z-}pM0NHM9>3=ZAzTd$irT-&&?FTe8lo0v)^Ha+~kgtiy9sg*cb;Ggd0#Rd!)4)W^9 z@x)JZCCGH2kIOn9r(EMRCqEeeJ&@kZ0?PEvqSLl-SF!+{TL{OQ*xY{vyY_z*>9NOI$GWiiWShvzz z(*1gnsZ)HCooa2CKP4LODyr6?1^PZ}w*4Zf+kA@T4RjJ$+%sZ0VG832{!sQ7T`iG5 z+323w;vSBD(fM^K#W2y_L8W&%_Ukbb^@p*aOluy|#(jsp3yq4Y-zcy!JE)n9)hm(M zGb>G!{BlYL2v|xWvdZf@TsvCE#7hY{kg;<4}70y0~0`(Fs%q#IA~t;JvA_+ zr5|2-F-=G@EXJMP=d{UKLLvyvwJA(;5gQLlcUc)7Q`Eq-pL2`)qR8obNB8SC5a=ZoV@9W$Potj0kU1 z5|!t2Qfs4zcOhTD4rk|rV=Fz2h74h$9Z%PTN>fv@9?LuAdy>IVGfb4oK54-1zisu7 zPwLu-IE_A9;Vo~-x5cvTzaY!DJ%WpkNs1tK^%qn1VwCEI@Un&XNS(TA1K`NA8n*|r z-!|T(J4^I$Sb}LRetVNt^i9CHg)vGSN>O#-X0eaRW9M@)j2dVVckl>h36~i6$ zHC>(KZp_lxg?^HAU|+Ffq--$Uzcpk?yXbKT8`bTDXO4^M95`wl8B{V~I#=0luHR2JGpv=bfR`OaH>$W0ugI|H>`l>%G%&c{i34|ha0QBHbzaqcI3|HrT5($nf3~@Q3IOkyWq$% z$)2=I^%E-WJceJy=WqijHQvfZ!>d!K$%hnd`K;%J;dtvO#5GA#U<1!*yly+smC5~d zAj1pHCR^yCkN&pBC&3{o_fhYQZR$*M(J`?(n=zBu>xMghC-P4vM*mQ*w+w+u|8gP_ z=gD~b(Ty+!d?8sMj(!vn++FNoVt7+q@aa1v0r+eZkQ@bZ&?5y~DoTtg+a@XFf-f)p zNDPTKQ#&b(y>0IBxn0}&(KATPmkvgH=Hys&0mJO`B7)?%v7AivS2tOH%E#Xl({Ars zDP(_)8mw%RL2{zaLs6|a+ND80I$7!*`;>Lt^=&8AJ#1Ajxr|#!ux}z+1#3B^9KA25 zJzqm=&p5BT^0^hS8*U*vN9~SI+HKO3DEhA2i1Ea2*(paPjhq^*M1@Fl%p6C=lo-^I z7ZmN%zAmdWApaIv#pQe=7*@J=_|ge2|0>{Q>rqB|4h>-$2iiXwTjHi3vhM4!HqMFa z^*SvcZX6Ad@PK~|e;l=5UpHt_`L!sK2V%e^k#*$jpdYl>NeAk3eD?|~2o zPcCyUxeKlsUj~+7P_(P>57 zkS7zu@Xv@{(X|J|-7E?LF)J)Pw`ca}s=`XruAoTLzshBYnY zIyO3mVe$Uk5s;@RetyrpE(Lg9hKLnxKIWC-k0i7uB5A*GP!e?4bj9q8L4_8H%G@V|9If0@jz=rEaCfirh9~oJ*6jU=8^3`ZFnj;n$1gsCd@Tn z>6qYqMhBnlzaLnwOpRA;NyGj8sTEnzfx+4C#~XX79J|F7;5GL!?+bA}*hQnRh#;SP zUyK#4r^w2J4m3@tGh!l5`Kk~^Xeclq3JhWGfYDo7b z{C3XM<2U0YjLT!)IwN@JR9geuj{1G8(T-75aQmHRno< zux%&Vh_V^bY(J{LdCW)9iVwO45J*ilKy?J;mQ35CZ9dyhxsoJ7!4EWV-=Z|PVP=%! z@%Sd+BlI&^@+!M|KBSDFqM-au%|usw$Wmd+4GKl8J)IiS1z147XQS40c9PaXce4_4 zEj%s9I70K2hXjb(XZ;#da+$&w9*vkH{GVwI_7X{BfuYf>ZyXsFA+=RLyeq{oX+6P8 z2t+Z~A(R9!j?7x`g6hgQQvucU^rKn01049(Gn$mAXN2b{fBs2t(dazS_p1emFb(@A zM=^*O1^XaO1k_kyxJJ>1*lW?(1>feK0x$19(9nH!eBQYKw@R#crLj+%P8s!UtukrQ zN5$XmOCW%Z_V~8Msdcl`Kf5@+a0AR7PA)s}Zdr3}1 zO7)TYcg<+{`SC9!RST?3RVO%gE`^!eEvC|w19I7;W86Cb720bO<$qGEng2;fDd$1e z=9yjuQ!j9en*xL@lgzJF+BBuJ`#rzkMS$aP=II15eMgKy&}M&@?JxiLqXo9+^A1WK zGh@X=7~Clm$r4D*g30 z{VV}mr-4K{Scuv9pMagA;jgKN$mgy|K9#|4I^R2lY`GU-M>8UJ%?G_bk+I4=~sd z_1-tZ-UHh|BWl$W_!Knt^_WA#F>M#Yfr^^yW+b(Vmtt>xEU}K=S`dgegBMw(d$Sjf zEXE7yW;f|=i$n-4$+r*XSkrDZ@}sxC8XS`dM*4yhpss| z;~C#9nqNmVrRi3MnuZte(Gi&yw`SKZdjm2W=wnecvaIFwG! zu^Gc=?B|^zrgYQ*cY4>BKbvqUl%LL{5lS<2%QFshZC+raIN?P3E&F*8!i`q`ELH(S zn=E3h5F*dr!LlG%>Ek|)KB6-VS@@1Doxg*y9!{f@v*P!w%(AVqTSL(;WfMEi(0Wo6 zTIu3;f7VtP)!5D_$SW6FmKN(J6i+G$WI}OCB*)ZmzAAGUC*iokw2g$%v9= zXR69zSDm)wCaXJ~h#bWAMs=@!LKz$%$7=b+tctvIml=uuQGM6m9t~@-T0240iBwuF zv0!b6`X4d4W=$ARZX)}en8cPD4-MniZv7cwG4T*_-Yi}RFe7{A855ohEJgkql75?p zY+YPAku1qBg)efl`tW>1 zW=-0>iE7tnS-)mvkPzMXIl-p6y>QoOt41oAdND&wy2VWMMvL z4fT@INsB)kF9m*shizR%Me&I)c@t-UdAQ>_rFh=& z0up7Ly=2rxK(ibTOy&a}^ras|BHaq;{ZY;cP|634yuJ;kd^Q z@6z9u7WJuY*Mg1)Y<&1{`pslH60)Id`U*zW&Y8=vS%(Q=i*J;3rT1>1=^;PH*SL6) zG9^$d&2j4=Xkp3xdm}NckT=5SlaCJ4qP9>^b@wknG z8WVVUe?3Y|Taiy=X5q(1MVaeL%ywUm9vU3uE;}xv!*mZI9ZHXxr;6enQRJ$ z^M8!cV{-its~ovoBnTH`UVTHM&Y~X2;mGzUu3FjHb%09!yWu3QEeO6bu z(4+BGG@a*ap5mLL^7X+Zaph_W>?9dNCfJxv^R%kgpdN9ll$c;{!RW)#rMiYb_y(R# zN@`1te_{71_A~p5gc5?tdSl^PM{5F`*iD12nm1yv7}jEIp<%W^pHGDBR4VcGW_zE* zO4F^=nX9VKWQyn*iAVQ;I1zZljJ|FRb;BqO@;Al>xzNKf2ti}#>MLZGdvZ<>*2wOl zTwVb<$AsV39Iv?UXcT1z$mX}rJzHK%20vnYF8WnL*_*6*DCvAwE<(6Olt=@XG-G@a zW&1L-L;>j(w@#*CMp7mHFr5O%wSJ?3M0Ip2g7X)@@FV3jP{7A0C$3cRx#oV zh}<{rslh#c8QSG>tLx^qaj(!Ypi+Jx|oyWmTyGDra+lPs*n~5^nkSsRV zY}@Zs*Qqxy4I16n2>SeL$n;0F81}ACEu^oF>cG6WN+cxuw!~(>OszWeg{TDODwHj;&6<*%rhRNlKOeC>EOnx%hr-x-aiVZz*{i4~EsZ(SU!*v(Gu0e0pmhIN~RI_l&h zv*V-J9s1T7A=i@oc!0QYMu!@LrcOe>Q2StAF&lQ-47VUp$b`uAuGmywIjAyUefmoE zr=>#5_r8(E4+-;jSaw!`%vv@kE(7u9QHjBN%ydY(=vD~67~ky8H*W$g4)slajKc#3 z$QAlE3UHC`ZmOV~mg&~;E%DElYruJoZ?F*WCCeJH3gP+8c`M{&c6#%P zOLEG>#Jqv8QV%8&r;wn8>NQ)>G&2vj2A48=GB}oLbsxqq$*oZ+&fI2J0~b=_QR}oi z7!HuFk>qR+i}mp+dam?D1DnGi8*LJpdIsGJ+tk6n=}Z6Pf<15W_y)^#ku1s``ZbboI_qO6lq*pwT=E7F z@-oO4@NlI;{@N;kXu0J;oO5e!TM>&*r|4J5DT6R&>ZC77X6s$}|ML8Qh*iJ)0Nm-_&2U+nSos&3@tcNK0GwBVYPO;O zhrIqpH3P7!QsY~%3xQoF=_Ng*{)OZG<}viYV7u{z^DX+>f2!-$2(eTyIF@_6GE(+R z%T031ghCw9@7}7f-vvC}tJSygfs$Q_&i$`C_=5kWx(@W)i@$$d_=`>bl{Z7xgC_3| zN!0lL+NLJ}`Fa5+_x_W@xUiK0qtj)27HwhX4IHuuA4$74j!mpN_`8aJ_E!}>eXBSI zaCHFz54gHW8zX>TFlR1+jGjIb?6Lg;J-`=8t~$FfLN%K?)cb|fb)u>!mGw>VeM@`= zFW|7a9k{OaTUV_1>U;?Ss!0>Wx3xsp4l8;40GenKHzm+zh)WNcw+31LLsdOCMJJU0MB-1K zqbe_dVZBPDIT9XXOxcsF#b0+NC03@p^ZVOJ1k@#Frt)4e1e!lr2&P$Cu(X4SbzpaO zczK0SH;^N+0t&iYdV7RhY*Cug{$9kHFg3epWow5y6c^*H8F9xuf{(P{T=~pm98^fp z-6bYlnB+lW{zxC}YEGu$mdL1NBu?(~sapg2J?RM`-t3`nx`yM0uu%I=Ub2N~R1b5X zD@pEye8v~AKeO6U>1LQ(-aOt?!YcBon$hE?Qodbxg09^HNANA~O9sP+Q}5kp>se|u zyFW{sSLJoUVYb6FGu5fhFET?o45k-WJylKy^Df+(40gK$GBm`cvEWAkOhV-VTSu2Q zszUNM%hJV-Hv84;ZVxsJGtH1qy}^jYrPcLm)ee3Ng}x>o@|O)sfZ~CFIk*d-$I9{^ zBGZ3RIScZBR0^$bNguC#O#rQm^gIQQeZ?LHi;Oj@jL{-h*5 zWFu*dWVQ9fci+@lz2mAK;IOhC8NN`Fws+D#<1 z!4VMiUy<7RP-`);N-~O;Hed^GUb1OW76Z6Cs(vt5ph~8G1!2$b#H`C_Z4M>K$Vf-oqm{ z;qhCaVuLz27reafFFC3&_2{q2meF&1&Y$k8rSz@cO)k8D#X9jtFUbWj(3lWYN*xEU z7|9Iu3ZS)2Hg&TTqviL#-~}=mmCSS@+sS1t#nOdDArsFB8hX8buFOu?dj<9x3h?sE zT^O(d@JiERf~wWl)l}sP7-ZOq4DLfYGxd(GfOmFJR97f4=c!z`p~ik@@GhVSeK;Ca z#dZ1!V@kT_B}-z5@7zGAUV$uKO~3aRc3qGZGy2pBV~NefNjJ#ssN#lEW7=gQ>#v%R zx*sE4sB+^j_poH}-S+Em2lM7QZw#Qo4|Q5|I1|j7!c6h*HB0)!A7uUmVJ_NZLu>qYo+s|)>0;8GhioP?J?dkev zMr?`wd*%E@GBmm&$I#lNXvx6H%&cz&CPg0MVnAd!rfE5>VZY+_+=H9aoHOFn9@=fa zUaE&N#AyT%&9P_Ebid5t!jsKCR7mph?H!U6bsaoFT7w4bWxMYXwC=v}r{DjuKLTmH zDsi|90&9^XT>Z4v!AmzdY7yNXBuih$?)HK=cAOaF+Ml}b9xfsAtaQuoo3FnrO+kfT zJ(>woHNJC7SRm3aKxJ|_D74;L31Ki()7QPe8B#878&_)nO*+ot3UJc7WRvulBigN4 zTWaB^Pi0ibkJ_U=XNu^>#h-JIcWtZ?3jqqVYv-H^ds79KeGk*i1aRBVoF{}$c%EVx zTg}oiR;Au7Eo9>&$cA23pJ8LsduFtbt}9_%oQF7|DO%uLMw6Lg> z8(Cv_qP6JFcV`JlFjY@jgH)t`@% zS8ZLH7;X_eT*1u_0whY4&_iD1?BZj2MjL$kcYa-b{}cJ&vHTVJUlcLOHXSt5uo1-2 zTmd&HnA zh=0Y#6aUDXv-d*h*>oxBw*Qe-x-F-e=-cG zVi*DdVrbk~2K>5$;REFLiyXtB1jnu8%9V#n=eZ+D7tEFBex*J*aGER?!=K=*&E?xM z)A=L~>`pR1497o+9ZiYiXA99&KQngPS!E|CIK{Cl|BJqMCJoCRx-b?kYf8jL7#}Q_ zexLn7502O&P9@k+6}!>qw!Y=XJV=Fs~GoeU{VApCwg}b(tMxfcM&N>=^@P3Nn&L zk`g}n595&G1A#$tRMcop7H_8oA zCyL?mD?4)K3fB&EL#BdZE^CJ_@J;^uMp2c!f%YP*O!+P6cS&8|5kc$68d8bE!>Y*oSaBRDL+-Y}dJVcv zVxKkEHg6bMwR;N(z-=GYNmk%lD4J_OP+Rf)eEv8c0DDs#bxR@O{bPGexB*$($HXx5P`FDRF>_b zn;Rge0+i-89$9#)M7TZj7TfBhF@0ZJ8W=tc3s&L=IC_#i{IPZPo%GmN1MM$Dsg>xG zm~uWO!f*o0FZHot?ma2-nthL24i80M3ZE-J?!#v%dzdkGuR)l)GBMeF*QX^7D+Nk^ zV$`tE!ZZI$8f*xXr z41<-C-0fHJ$b&T+4sNo$n$#HQx?E7Mfj79=s#1<<<^@#jQ-y68LLyiQ{L`{kVAgsSyG-5~xD(_l2hS5rTJG1~yIv=mfHpQr6_Ix^(LZBfJ`z>|yEx50md~jqM z$7ftlm!R5igML=F1a&^b+ANy#e4@4ns{Kygn)AD=!Q+IIPZIb-7ccR?Kuk>>=N%PI zWl`LUdQL(qNjvS@UJ~K!EZxE2_t4i{^57ZH8x4q<3ryiO;gOL&MCIta_B!m4Ru);;ka(d>y{rPf=4}$bvr6KYCfc-% zE1zFo4{_%Fo}Jnxu!Et6y(VefOhh@S0C5qUACQB(D9uSe=+pPrp1fono@QN_Y1g0VQ`~Gh#`X?xhCqLE&_& zrFw;~^F^0(@9Io@Y4yzMBmJ3Ag%+LN(@AT4zJ0>UPixtu6W(k)2}%gcIqLKH9G6M4 zb4@A<5Ysom09O9J=BAiy$0MsT4O=e9aMVbMkKFUIDBy4`oCDfEo=rjU1hICT=~T{B z_1G7-l-iBDxf?li9~K0n(ilrp<1NPT0GQKdk0!QKqdx>FhtXzctlLKB=1pf}AM$y1 zm9!T|S~vHOmsv?poV=Uprbzx@X>T45_1?$-S59PCwqz~YWeHQ!422|H*=5hZj3tbn zglr+%vPbrP9m_CeN%pdju@u<{S!NjP_cJ=@zR!Kmx$oca`hNZA59S)z-Bs* z-ZMoQHB7lv23xQ16DfNED?z+LrE(m@T;qj}QX19+ld67&-JKQWtPSf_%FMuOoEiD5 zNVBUECUAZDhrBbdUT->5(yrTRKEhEM1mE7%c6s8fx*4|tVmv+^xW+#NhDN-Y(ZExT z&S<8oY|WP0sq5>6!1+qSp5Ni6Q^G6vlM)>A?z-j3GZlgw^LyqC?Tn0!AV&?M>Eqj2 zO7WPKF+D{{iARKFZclbIHqhB}A|R;mK6bPe5vSm`_ugia7HFML$E@Z@hu5hj$sfC} zu=~TFj0=vCEGUmm1e+VDgfs5Sn{i!iE9bH&C2j#UIe(^+_LuzJt{pRM=BRdLoHLDn zrNg~o$}>(%7%Pf!5S_g^n%9S2fr;9TTQ&N&=X6*GlCDAq|x=2PQN?o3SxRDB#H_^p~DN zL-GvmnOpHh3O|@5|CUhyNR-!@Xj%TACxKl&V6ypdkP;yN8TWjb1Z2wpOn_$y$@JGA z9yn+J0g(^jqsP_eYwWi&QVq1drnBVwhs8UG)%*H#Kn9S(HlWrqBZwR>089X9=pz4; zHcwyc;pKP0qPPAME{0qH_d@^Nt=1Q`grn`0!}>iWGY}C)p1L!3_C`ZS!jB?tJB&PT zw9A2~0?QTV4JhJiEq+`4>tBFi7>H(j<0K-LoRmR}Laf^7!~AU5ePh#!on6cLTt5ETlz#dPx7u{4&kfxj3OvQFE`f9}pYm24|K_dC zoU9WN?Z)wa@F&xj3{bi<1nce9w*!`UZ*32Vx3g}^9yD$q7g@WTVG*WaXhzwl&sVUzHpSVaBLj4UOL-Q0b)fqbe>Q2T%VeA z3!sk>TPW7`auw#<^Kp)t%dR9Rxdl|{QooqM7d&nBahe_0UMEv?xS+s+U6r})pPG=e zhY`;ab-_o*v}G%umCPeg<~fZrN=^_ILcwkyB2QAlALJBC&MvD&5D!3m7Pn<(rFONV z@5Ag_n}wK1sthh@uLOxI5aS?UsdIh zCBIe{3%n}{F<&$4H4}a2@AXt`GO?0@<+B}fB6se_(%@#vY^amh0uuaX(%8Oqk<3=? zOoXF#Q>CQWWb;A5Fw+v9WNxjGLozdpEjh0}SZ;TJ%6swg`fDes1GGI~O)v>v6Tc)} z`C;DS5?h{Lqt-Ep>5bW zLZ&3kA&I6WSxO&SI8Bsv7vU=C1n`Zw$&?gDV+^gZEzvBJseq{qU+E8;NP5PkC%Y)q z5+A1GWtuly3|L;q2{6`KG~v?G zS9@$ECHiA#-GfG&mnJ4pM1Z>4v85Zo-`<4BfEnTRzt)idB2o%Q;y1tfnvIv(R2nIjXHtw^B#jSNRJh}2Vw!;?+B-sK>v`h{Rmi?Igjk>T(yBcMJLEGZNVLNjy?MWDnOac7UoFVc7$&mden z^=z=~EEh`N5lb!pi?8aEWclo$=7xae1vhmngh5w;$!KEER)8sY-Lrw(pYDXY=mAfi za($zLR9S-aMXl}sMpz})x&0Gi^&qsk-)!4x6?}NsznApSPK#PVV7DT7s4}aR7A_5L zH5%ymp4N}2xFD;)DGSgte1D~`hAVVf2Fs+y^}~Q`saoq!sjEd!E|aF#X}x7$o!amR zeE+7d(*BdWI_zn0QLTAyos(E@r9N(VmTfvM*8J^1LRZ$)K~0{Knbn@Jt1^R{&{R^& z57Fo5Qbt>iba8{)u?)Bv7cNVbWhH>|A7KENtn#`wiB+>Bi>2T-)+!Db3^nmWECKJx z<27YRSikzNZwtEr+%VTt2w6&;4lQ*LztM-Z(kX=2ZscohVZjpCcsVG$Yg^L?_|dx4 zU{nWFkJ;^}KopOy9m@cD(*Yk}SvCdTK=-T@L^0LS{=xE>0iG4{ZT=eo`Ts~aq0AS> zWnpt^fwksC=FUA+F$9a1IfMOGuf zKS&&RY=+Oe`xQ^x!2WRbcMdDsMz%`h3KMCO*dKF95Ctc zjmPj2)pkZFlAdmD|3G0qg_pc+c-hzjH!*=+1_p^=Pu)hR;;Kw-jIf3PZV(_;KJ&It zBO=pC*;kQZj-f!+)euU|r2gPNh3jCji8&fp-||{}__NCc^Hu9$+Ve1o@+)(Y80`f& zQ)7xy*?BvC9GjG6k9Kc!J;wma7*4HU3Cn^C4Iavx+D_%VTzGj|g4C?mhr`Zip?%qO z;u5+hu%lNh#I1b%gZj}f|oV? zcJZUhjih^5B|O#Jis{@~ndlPAKxap?qMW7QZ~z?EmGvaUrS~@s%Xl66N~aElh$Q`h zdP!YrNWsK$mKv{iVc&0#Z^Sqc>uH&P429RG%JlH?7axCCz5wjK3R4=>M)kC4Ve{tZ z*MNb7079dQ|CGj3Fr}Vp5_c^23)gd9Axn`_aR#x2wq2x^**gyyLb$ec%2`wMkQIhf zL}!T+z^a#qu+N$NPIOKD`mgjPB0#ZIL3H)WX!{CIPVXx%B`*6wZrkkB6<{E%7!_i| z_*J#1z{KNiDhJf*9B~#96p3iWe>XLXSW*0p-``n*1$L3yak-HNS8bX(e_7GIkf~RJ z8h1MbyN8ehxjdxq?K`FZ*S{599&Y(${qXPkF_0i(tRoI2k0ql7_^zwB|2i&x&qXNK z3M2TWxSm5B_0z)r7v{58EA6x`jZgZQ|BIkN>CcY@2!e6ZLcoF1n7lv^Fl0Un=(_UP z)Cok;&p=b*m!&H6<%bv&LN@+WCN`-!&DhkY)c+Y*PqXXq;oPyJ7m}I!&gSnjsUYBY z{|`+X4NeSmw^!G6^wOVS^7q$2rL0VFik5z=<{QOT0jSM_`dxW=+rL|_THTMm1ZJe4 zoQj@~xi{_g>nQT9Hdv_Rg|(f5k*X0>kynm zh60lV8rK942UcMpA2QESK|?^E$q82X{j4*jr>W^FUB07n&Y(HJ!R6mpOGb2jW16;+ z4XG6>#-3`T8JM};{F&tmDx8HzyO=(f=J;jvCrd*0iyzzM_1$i6D!OoE38Cx?*pee{ z-@~2~Caf74zVxYW`2^OJ#hYwXpZ)h;kDD73BbM(Ld#?xd4ayHUK_~GTB;_>I5Bc!IS+f?VI->XL@N#QX`*S=MnqqJ z?mbL)yuaTNOtqhBI0Ib~spY|P{{LmM%Hl208nf<4+<6w|TBgYvn;x~i_N7URZ5mK_ z_b59Z8H8#*m`_y^5No zrj%&ZW>?2cIynu$PrW>iMdE6-`XF*$wgt*S@b zL6p-XWdk5fCS0s3k+&hJN=y=&t-4_Fk&E z($b6v#o6of?>O}5vnov5+VyTORp=FivG@qoq>zp%zH^p*KF1DhtGyWE!vvbd`3wwM z92lz#CHTr#+?=dNR#jsf8M5l_nOV3433$uiXJxjZu7S!yz>K!soz8Rz z@OGjj$R4;e?G)zu4xhFxH^QE&z~SiaTb%$L6%o?Y{k&mUBk!l-?@I zfGO~jud?aGUsypx2+llFXoeRF6o`Qv3*30RNj|ZCojxtS23^(vc;mc@*R`u5VQ!GL z*=n7%9jQ6WAYc6yE`cDuid~q4#^C1GJr}3)^jm&>F|o-U&+E6T_a^VXsoJu#UoO6q zOq!*cIvR9lb8$HSy;}VXiX+1xk<<_M^B7rZ<~>Jk^5d0~FY^r*g-!Zk(c|0;(uxpY z>~%>S4T{Mg*ZOkmNhQ26Bd%}7y*PceBhXM-qt|vUvk~j!5Y~p+ptzP@Nj0dhASiZv=w+-Pv+MWmQiNs+JiU6cpJYGm zHrKh)jF3k^_5745RwnWoFP*=0z)g+E?SENui#`Ru6lpfXeaTIYOIH*oBrkX;QjW4Q zxYg~1R82rpwMxFxq~3|KilpAAsJsW`-Y}UYxV5;c^l8%|9oIhuPk>pY-Ca!~!<{)n zV8@=jvFg*Tc7a$kO74_g>z^|gK7m%>T|`8hD3lAzjSC1$$qH>u2^6jx*!WiUt%ZIt z_MX1#rdgj`D4aziloozD&L#nqnl6lglZtYq%mh7#h%X@=OafIqMDf5PG#x1Ft z@KhITZjBXMBe)|zJAxIIthOj|;cFE84BY8scvDRT&zFTAK8&4!M@^+ zb3qt0qM_CMjDlHB6mXh;EtX>EN)ys&+Q<+T+a#ZBWkMOlu`mKcn5=A%xlK5;$J`4 zZfDi=E!%Zd_5PG$NC%2=+JK**1ZBcnhlKQwWCa%Hj&$Em=^9HE_!S#U#j<>;vG>0y ze0Y|afzaHwzP;)2yKhwa2GQnNwii?Nt_YahAC{~A_hS_qyFrC}*tj1tg>XaKZbA4kS^$7NgY zxBS(*e+Jn3iQjx5+#~}i0sdI0&wtFFF#|@qdVC*?hsCvde~?mw|2niK!06Ox!xVq} zhY$-WsZOW8W&`K0f_v}&{WWu=|7ZDtF!FeSz3IOj?!cC&6G+^xfHR(haK_7wn`J#);kFw+c7X|g*mwz%KyTXQBHi%?_4XpU{p(Bb zS_m`tKc(!?fR5qpm2?06u5#7KGm7EgJ4-2TS6gn4X!~@HKn0F9fG6xtiIXlJGkkcC zQPPNXhLx1yg5Uba)-o^o=KTsEI>fEE$cT32C;tpg!Qp^!vcC~30i(ShYJ#|~ZZm(lxAMV$ zH$ph0KztP{f3TxrQzMkoVbm0>?|44 ziaHKn>{PU1q-q781MXygwC~#X@B_b5+uSZRNE>8S{^=TKEVfrL6(zxk&TfP8d5dgZ2L-K7 zXZJ|cE=%DsA5;hA>Q$z&@Tq*^l?^Xohm=|SG$@!TEv2y>RvwP(d@g9P7CoJcoDmv4d@73A^^A66Tcf{17vQqDMLoO<4^Q?bWaL`93H}c5Sb9;a%hhkz z`6*5i&1!`;sIt*kGuxG}CX+q0tPo%?~V91FmiMgu&n3X8lI7+&(%St6)Y(NZbJ z!=C_k>IWqqkcM*t;>^?1YjyKVC_#P<>vxkiNfS;o8J2G!RJU zJ@_{?ecDOj0GBTHL8qS9bGT5gig2xHhhZ6yCD7~Fbieh;{(kp_=q$zH-fsbHuaiGo zwWe42JkashtDn4)RS@>^u8*j$m0%6Oabcv{%br?|mmA7tYwCkA5xnx&a_M7+V>O75 z%1_7Q!@rs!fuz&)xBzTy;&FF(+MRHvSJVh=#-ovHhl+|;+duNondiv?Q} zqIQ?!I`l?G*PFBM)_C(JJlkdUZh+1TqC3_CdxW|!)nVa6lEk5v%#N|XW(@AFEn_YdhlnsaT=9s|tMMBv-bwy8QjS61;u*)s`CT4oOhp6E0w?oz;DdsZLen*G zt#LR0QUPSsI3>)zBdN-xr}l^9U=b;e-TBXQMwEqfe=u5I-u?;S989asEkc2zZ<4C# zZPNj$QAzGTNsN}RerlI{a9r!_2=U#GEacCdwW`AEyS?E&&WvT=#XeylEgmZ8VUo-T zHKHVGK`Az-8wHLxdJ?;v<8`d=^DpVgGQ!b7k^zMie?F_q!_BZU0A~^XhH)NO^ zX|3E0Sz$vJne7n(>itcbw zK%J2xpjnp??Gxk&Fke+3(}BHt?BmwbXoNL-!uH&`Yx0`S=gn-|i4s~`ex52KJ>+4} ze@v9GnF1dRTv6h~6b!1r%YLutiF5 zs9GbDs=fL&Oh!nZ*3X&~qv6IiVfje@1y?ng)+Y86py+D0h)@KqmA1>)t$t?^pS3Yy zB1!7)9M)%8)9(G$($?v_#_+56+3$^03t#eL6}We3CUEES<q>5kYv~gz`W$6C_ zTX({%FP}CPKE&T#HGBeZ{ifG-B~PQ<{nn1JhmoeHC%i1BlF*MuovD!>UU?Q=1vC}j z_!r-1ZAP}iqU+Fa@nEqob8WshS|uXPj+1<5jbRGhZ#zv48;1NsW{=pCC-!IC>>i53 z!$_RfQ^&NYaMOMQF>e212?cJI6FbK2Q?wc*x$tu% zC~$6G5x_80SyaJup7tG z)6_M6es|C52d@pA=$rlOY#Y*qVUZrI;=et2ftiYpQ&1>#0>SHQCU9ZhI>kbFnoC%q zU9X7*z17N5yNnl(p_5pDq2y4Gik4QDZW#V_<*?h{5>7QpTXXi_^^B69X%lsMZRa%| z#=1v5zY7jLts~=-;pRu&)&)wd-2`t ze_)@^lAaEH)mtIYp>;|n;~BZynDb*m?=1YNmhOKVX?H|}ul|yddUYIo)jT_el?gfY z9IeEka^@eQ^YqG%kSd86%#?pGMwo1#mOn^rnf)*gDp1xvshVJ!=Z1yw>pm)B?*A%( z{AofApkbUqjhJiyUF(~4RU3yHU*ML4iiuah-%{{@t@#2HIdP2yhfiefvlGof#=sR; z(J&vN;E=vn&LIK_|4(IGRbqft*5^bnNojv>{D8S5{-(hzjY{{ZkZ#5ldB6g&*K6>5 z+_mKHJ?Kr2t~9%-Dw$)}k%ogh@UXi_SS<{RY<8^|_6qUTBUaoRV#{*ha{@*i#iUmY zc}j;`sBqB2P@bz)Vy#B7u&3{xDSLiTTh6)B8VJhoqZOkxjMMr5v82$EZdoPyM z%Hjl|=t8FD=mvOTM6gtx3w(lfkNo(p$QOh0PKjEz=tcd_u?XQBdVk3vFy&<>=kkMX zK{F!xDd%?|LmE0estL2*UzLV(pwdtl_U_hl=xL?l>7ObMFvWT6E3dY;y7EBeDsxV4 ztGAP6;@cPJRJSH4gZ`ki;zM~?Hlx%Q)yDn%06fc&^}pa*FL|zzkg}Mjj1M1cutSzY zr~-vL)5R+WtEW=D5FPEV+0#^C%c^TedUq7S)qzlG(4u5D5tJwOr@^YC{ZC2%#{1(D z%t4Q6eiX?WRHJv5z>$x*l{}@%o3WB6al;IJJlw<2Vm4Mlk~ z;_OYXWY9SWOIO*|U$S((y1VbPt1-XIzW(DC+l%wC+mGvAzCOveBmSZ+ZiBvkvTAkB z`4xuA@-;E07&Flv?}*M#TnwD08UaU_tHpt>tFqR9PQub#`rh1B39geT`ljyPnK8O8OICev(VEa&p0_v#f>Z4TB z@J|$#xA`DbqucQJChuWt5 z-cb_QcQ3Al`?r&S1WLg&YQS+$PEjCbIZ(*!Uxq9wFY8!tL@XeQ1d|@-hb04s00F(u zVQrn=*8x9@h;G;?u+Tg(CVyvOxloM&#f>=@&^B( zdiY7d2gsppI`XGWm1A@)%rP^bdir^Z#RJ&JyzX@J1Cf(VZ&CJ5EwSC2fG=Q0NG!Iq zLM=@gL6rkk41|7F41R~N(jC8VydB6dcju008EtBmTaoQkC_NMLlga$cU;M2XH64t# zQtEy>!7td4x;I}kQyfJ0`uN9T*g5vSOUBA?wew%ToJK%*7z+vL4%8hGfk3h?g`pOE;Zt^~Xl~!+pB;ke z*N2NoVZ$+nH{8>+NvTbxHtb}x1W6|nQ5(_fM?~v9t1FM8XJ(-#8sEf*_4|QNe%Pr5 zoq*psZXd1uY+N1w?n#gcebxmom#dLk^qylMmiq93rQlu{kFsvZZ!p1r-Fb>U9sBR* zo?kaI$*w3WGWCATAn)A!P0l+d>FgV$nuS>I>iChkXzjY5tr}rOJ7iWQ{T?5CC{h-| z8h)6FwsynYU&PjMx28K6)b_yWaSlc-ehn9(;LC?qV7y6~=zvU(l9zKco|}tB+G9mk zz?6OGN$&>bI_ZkXThm0t?WZ!!u`~!zR!UT`SVlO~v9!f1yDF)VxOIywsd+JO$9wG`f`&k?>1s=L(9od- zRYYGS)-}|R%Qn$f>M|WpY?z%3Ek{~*f%A%4>nKgCiHQ$z$jDMw8!bEgkMkF}&9JeI zYCHCE@X%WoSA}Nhk(60zw+TelkTH1nKeeDyr5neakmMviKPCPDwmfWy`tnq~U~J<0GM;&`Te!3Y%0BO&B;uMJFlb5Yy|q&poxDGl zyaWIpN{cq=U@9lg^B^}!yF)nFE>i!Nk59O6;Q`#%F#}Xr9TzO|_%1dqitOYhvla&A^bsx|I+G zS4T!){B%R7Q5Qgo8N*5etthqgN8(>;OGJc-gzPKWB;$k5b7~5Ms094j%Q$Y`rx0nn z44`C?*)15x2utesy1vQU+TsrUjK}5A!A;74EJ6Err8D8*%V>>l1t7q+0-U+_CZWW1 zl!Qo2O1$^zhzH?q-&Pzy%tzP%Nhof>Cdu_3pn#n!Z4t8W{A5YB9B@ZO>^8WzW!8<c_ zW7G~oidZ3h(f9qI@BPmCzVn?NC!WWXcz(b8zOQ>+*YinN8+4uKF3p7t7p|*4f2x1s z!e!`%3zu@QQj*UI33TU^-!6LSgOo3n4zR6}4=&p)X(?T}PywesvA#k+rgnX9>T%%$ zUEBH3#ZH%eTk=UxsHzFnz{L*gZS4-e0CER|oju;TK=0jPIDfeY%1cl)+`nTUbm798 zpW0KU7e1C7B=4c+4o^NhoK+d}=_lFM`~0gZ_Oso-vq|3W14$_?F>RWk;-2bRKaEDI zX~b21ZYSHSr|=LHWf;7p`5P_;KO?FtSqeq{6BEHOXt@vQ+o43$8b<`Onf&8-$tq&%kJ_YDZE z_sONCe0TBHg*z80*W2EKu$pNS=#R?u5ih=H3=U0|L=I(9qjUj3__lp7CI8?{k)=tw zz_0bIJ2O66{?h7CQ2NbPQH8B&nQ)y{=3{tj{Bnv6*O{XKytUgYqO+X>F3%g4T6b?n z)XWOk#Na{Y5ia4ao5wP^{g>k8--2f+mQ+&&f^R#aF_`0oa=e0+{+@pjr z_s08qKkX+8jiW;ar9LT8>3oc!2R>X8u`o^+##O0tSnX9hGddytMntxMjSTvNNeNBW z^N4gW&>RWQ^oQc`eD~f3%TUTI+xNv?feA~jl-<+;9y@GL&K))yV_k@)>3+f{sERVu zfyag#OnQb7bHH)%ceg8+lgVIJsH{CmtGt`G<><5S85SRClV>G$p9{Yc3TpRA3{o)H zKz~=B`z={GLVrx?czT8jCr%yc^!oU3FbH^S3N*Pk&kr1yE=D`V?r|SCR*ZOM zT9#XQVgL}Ndz)0nS=U21{8F7$@|Prl6&t`!J1wvB(@d^$vY|C&=vn>gT+#K7eZvVJ zc$A7G=(S__(D#yRYc6!87YM1LRPxZ?CwzxzakgkAjjv()aES5 z7vbw;O{HiEBL?{RG%vkrBho4!4%?}8mz&BB{?V-hKXPoXOb_@;3pkdPMiNUH`BfZI zU7JRrUz;{|<(qEfho-YA!Kuu6$pmDnu{9%%1HJ8Siqds2ELY=T$0x~*Cu>v>gB^p^jO1?sb5cLwfca0a-_T3~%IA?hEp_Q_oo^cU->{r_9@a7 zu!&2Zz!NvT|DFZYAwt5m@M|((?EA}Gz(TW{K+lB_sL=w+g#kASiB5G-^ppw&htx`y zs_2A<^T=?*)@?dY5F3(Qfc3jAMd|fUNRKmWn+-DXcHfmQDVeSZPgc++PYdAhYZ%i< zfNVSNLX@&gd?$e*T<+Q`51|hQtvW62+ zXEgHZk7xDA>@B=lo%B&rUybn|k{j3kDb6$3quO(b#yN9Znca7Pf2j~2w0@=H3_IBu zSU@+LBZWqZSgc*%tS7qfskHpC@H=5~*(e+m1al_P&lA0$zSK;vX}oQLLs667YW}2% zOgshpZ+~~)u$7?EjN80jGQDBpZ{*B_zx$-uZ~Dtks@$`@y#_+yffN3Wyw#+S(>I$||2nuuoNR|m zpfWuR%RjYJtUV249u+P~jVU-Vu;VnG$krs?D{8iXJ8>8F-vmqE#3C0KGmWGspAv5o zy40C+*qobJ`isOVU9%Xy@Mh?~Iygo92ce74k z4E>(${zP~hQx;!e0c1lBRn*3(v5fg z1O+Ib5;_(1SK4+sRLUxVUMuhKOnT~W#FU8w-FFn-R!+lzQ6J5Gl3;FkJ36C?*_c$i z43~FVjceS`<{2mLr{DaLW9VK~^wOml86uKLll(w4-(P*wFE)S_Xoxxy_>X4}l0Ea9 z+&|B}a1LPc((uy8zC=vOgWfPYo*ABlt<}xg^DR|E?w|(Ef(UU(@dpUpQz{Sy-2;4m^`?*v@ITI7OFMeaabh}bf`OtH?N5;3~EbdY`Vrr)NHvsBDy_3Ej54{ zDYN;4vixn|^S6#TR*{3rC!R{JK8t z+g`}Xd7jP0sV6x;h7)|f{!G+Ob)?$W0GyO@1&)#TlZX7Gv*%=zer8QExVg=+FFID3 z#!DfD!wwYweyeF;ub>AC(tkVq$m6=j+_29XU&a;m1M_U}Yopg01>7%tU~-o}!h@MJ z8p088ucN@@#VNxl;Z64`7AXRm&r(Kqb;Px!acpXDtwOcpTncoE4Nf!hnoa5A$N8;% z;B_j~QJ_IvN4cBt9iQhX(YqISF$=cWx2=5_KiVuTNfRZ)V&`rwz_&cs7+HuVqLEAW z2VXUbt1-CAzs)YkOo4<#la6gny>YwQLg&IRE@m}mT|%uiPyr&(=5M>!w4nhUU^6o% z3TWCziWUJWFg-w`xyDZXYI4BD-qlq4X&;>&@OGg!{38PSc4WZBYW+JY$V~KY(fZdu zfxTw?;c4|{T>aq7s+aP-A-z0ut}S!O1}M4SS8HA1}T$7s4``t#Id zj)3V(Of$EAquZREZ(3rVO1Q%u^neF1MpS(qZt(?FM; zFDAc(1}V%92bWH}=~=v0fz(0#O339Q)MD-AA&itE4V&Q^R9o|u2UnG~@x=wlR0R(E zs;ezdRGiiRcAo#NRXtIxo;>8(GidH(VwbBRQe!cL2TyOvLG|q(EAnzA*bb2B6<4CA znMD-lVW8!OHk}?77tVubpg^TJT`$D=>4vT>`PZ!=EOk<~hnkRiMTPkB3u{J_qH<7T zu)RfCjKkbq&pJ66T%lQf7`g>p7(gd1X930!0>Y$;?}ruM_Ni}>=boq9itFLz`X7n>4fZ7$$HD*gZ`4{ zfR@(G@0G)6PgahsVwbze6_dveI@*w(3atq)nAS0VoS!v}qR}=|v{zAt6nL0ZQtY3D z@BL@V11n%55*a}9aw)nM&nr%v8BMHrKASU4w9WV9X%LuM8$}s*k1fyo;i00T3f+{x zEpxS-Pr!cUYDH2J%(!>dliZp8T6MHV&CX2s8Dn*p@$AS!Rb+(X2n&GVJKB*tYv1!) z0Fy_CR3~;^0@*nGY>JCVUTN}YA#&Q}%$zS=qgA%IUiE1>{*nm5M#D&l`NCl)XS^4hfLf?2}cD}{o?HTyG=j%3*xhZ+i4x= zd;p6SDs`j-rf*ZH+Aww0Zo4@#r2F@tQIA#ePnyKo6iJfQT51B#gsj&=&4=^jEy96V zr^Vj0wla;IeBphzz}iO$c(7dBWB*4^*^_qN%p)B}3C%q~)5YHPL4`zf51|zb`Wi(< zEL8*9DVlLxrP<_8VG*o8gs8gply^_X)10?Jv70Li9Y)Mo4)SZzXL48LlZC&h=E~Ea z_3oD4=Sg;L=8wsunJFs&bQeB6e(D5o^Mv)U%%olaRE{9hc*p%#P4DcbC|v_6d`W;L z{sU;w-l7q{s+^Aj8mlR;oofG+to7=LkMxLs+h~yDT9a7REQik$`ik4%U!>P9*VaEx zWJ-X?Ad_av3eP*q0C`z;_`7eDyg|pZap=Pa_A9@e7VZ_n$mpoT2+~Rs-c;21vZ2T$ z(xaKuX`65tydeLe`!0a(=>E}d!70BS8t|6<$z=w)Km;zX#N&kEdo;C6+7XTz`PCHj zyyc~{RqtK1-#BvN(*hrwQ}xvF&qX+z9#m$MjI0@>M4*;4DZDsaqp`LM-*yK$U{v0* zt+d?H<&N&pg0`rl2bd+Zg*SKj=_2N6uF{IG#M$bgYd9~Tjj;e#+RyT8`s=q2g5sX@ z?1}QFKfhpQHF~fhs>>HWnx0of0|qJe$FqK(ai~kZXzS5V&6^y4zRY&{#A&+ zj#o%Csj}}_(>`>_9-y0~IC4J^Y!j+K*qbov9i3R^9UGq;xv_Txq^h_6*y9(O)W?7Vf!k(Xo{-t%5`VId@(1QgDV>4a}T%b|aoPbjdC{fV47W8^a%qDHg0bV~U?{RKdv1{f8 z>W?EL$G;_6K9*)XD!n_cj`;bVB_I$d__~4_M0Cf_(YHL>7?mYT9^Efa_f*K|?9p)6 z5r+pV?fV0+2876r(Gw|P#g4fm-ba@&GH6?x1qrF+U4_1jB%$I-N1N>XJQlB!P>h{T zB7y&C{VZBBdaL8mX1}JRaYs-Qv3QiAC+|DUk+*;-3`6zem?hY(aq0UGdc-R_u@^~tkURBxg25;1j0SY350 zry60zWl-I-ZHS<(LQgvv?R`&OsFq>H)oHxh`gPvBpH0Sitzc_LuG$nOg%^!cjy`O|JM>0ip1Tv z_+PUC*yUB{MsPlAgN`n&cv$Y{Z9-C@7W)5b6YS_Tyu0#sSEs{7-ud`IKN$cqsL_)8 zvccRypBlw9^;*@1e|S8Dag}3-!*#t1WQbE6zJndVz5{G>ds3$2H4Gd<6;|yf=|>k; z8H~!1Cqo4R8lxezzOr$Vivn>7j}5|=3S*9Mnn4DLU5_^khN0q~*kc3zF^fgJssTPC zEc>(lt$#6fOT%#SLl$$>H|2D}6sdfJ{z|D0nuh(bVA_j_MWhWBGA{^>vHh9YuFP#W zy>x|0wnc0sz3vR>r$pm7?%FVeXBBg|K#fu?;|0#|Pk=HxQ;gf$xHTN}>G4!3Hqe#; zfooOo?(KEt*6_lN157C=_I+ecJSIkDQI8uskGHAW!S-MS1MeDmoRCM~?4eT-@864P z? z%itU|1YS56E5E3VyL6?qa7K9cw&Gbcn7QXdHmiG@;?7vfO@4gij+B^H8W2>*l~?JC zy>3*hT*d|TTMu;mgI)WpWxQTuJj)^nbw!>4Q_ECV*EGLZXM0Nh#&a9WXFW(Fr?SSw zH^Y9)7?wR*eW=hIA+5jiiN$&#w0oE$8!Q@Xg$7;!5U=|2_G9$>k ze8AIL#<~w1=7-YxyV(&vbpl&~Ry9HjhKm`%ESJey)(9g1o;*wBW_gWd-(A+x#18}S zr^S#eI>Wqtz1Hx!=I5Zff#!Y-sconHgIIC9IgW%DHqvpR+hM#y+O3xE)0CZ9!mGn9 zZy2wU`(Z>;P=MlFFT^SIWO4%hYKR+(RVw?eY;UNm7F)8;LrNb((afxkPa~HVxq?^* z@4A?duNh{7apaE1>5Hv(hbOE(Y%|T`A;ss8M)G(Vzl-$5G!AC*4<0CT#)SVs{p17V zOllehTw^3Dr@Rg(!qfLqV?(%&O(KEaA`9?BTElX3{Mee&|Ju`MDX}gO^*uf!A3xyE z*{E<|-ox-geE^fMccVfO*Rf$5t39=2)?AnCYy@AHkxTxGurVhF=;`&;XcbfG7cVHI z4r+dN!a&*)o{r(|voKJ5JGncfE$o84WCk}-f$iwQ>*jG@T(T0(#l>imf2D`5Le{PA zoR}m}pdeTB)C=p_#`+=5Fu^ybMq%A}clvrmYw3}gtL2F?3-W9{mJV|zc=CdjB z>7%)iEYcqndFuYu@X7*jiVBY`z1gfRZCJ(uawa}WoY;!@+eMw$FZRsL zQtpxblP;fj*uA}pp#jN+L0M7u{fmg$N4|wVuQH{3<5VYX zyAd_^%U0+S=0bA9eTp5rO`Uk^MRHum7;=!l>cssP-9)ea**{d&f3a4h~n;jnhPhn!se4ILP{pb5oOLfXClA%0r2(SCmSTUYu@ zLtgj42ftq4@m!eR_E?zK^IeJJ@g3+kj!%!rly4=5^8%li$pjG`+>|)(DcGFSY)8@0 zzD$A?mQ!D4*Vc`(r23$Zm+Gsu%oN$MV5f|sa26eU@ibhO!-se$`-#g3ZTA}`&ogV& z+_;``e}lp->iy@gAY)4tRk1wL7P3pY4^j4lll#0gK&iC^$rT~xPRH~ogyp+BmzwpL zJ6HYr5C-3yA1-BYmB|zNiLG2mxA^A^)1w0@l=Ge`+wU((Rx^dBBebxmTJLFLLHsgn{fo=%!W}Fjuwmq2{oEx{;^R z#Yi{n-l9wVY^jFtlrWz+$kAZ^Zr#;3-h#|L=q+ZvI_(PuDX{Gin`-Kldy_IevT^?=& z-9l+iF+XHoH;T#Kae}4aPL^Ht9!H|Ro}SSl_TjETwHA}qMZ}1|>ow&(Z&tgK=vq3~ z@sNw&KQ`?-u^01n5}qar{ak(2wHZBBC$1FuO*S^}C=-089qE3F1li&0vZSU?&2Wjo zxM3rwO%gE;j%@Mn=!#l>BTXW#fmoJ8w*KN4!$&O>?*CO>nUR zrVe!{*rNsq_SMVMXVME=EPz=GS5tRxp9yeqb=UbX;a*oF9eZj6H#R78fVRfgu~ikr zNldhfE{{79>jsqcO<^gDBW0`5N8;=oenzLQnsX(yRlSbhix#nsgMOP1`*8r2LC}2*ybH~8F|y|$@I`~Za_EXQ&%G~W*M&` z9AShnTqjL>Y+hijw{bt;W@}p3E38KA^Hug^!=?3Im^kgK{@1!n$N|Cx_V)NAkIx&J zqF{~njL+%^_0<1%xCr|40>nZ1d3nEmS z`(yC;l-_GnTk*nrjd>zaCHb3TdJ1y+k}FJ_Y^GlxNsGQj)<4my5$SG`z7uI{!z@I1?RS=(n9=g6AZ#LNTkQR^B5m zCmOtO1Q+18@YzPQSbW<{1oBHkWfD{=ESJ9q*(Ot~BDw<@s?Mf%jsUH=Xn<0$h3oyLq6z zj#gbE^C>fm1j?-9BNa~>TANAF!f$fE&=*NgRb#sQYH29L(al6H=SF`dBY(}TTnXN* zV2TePk6R$m1Ah5_q5#N+cd;~?%X?bNKd9s;x4OzagGxQa)X&-W6q+7JHe>2{GrSMM zhIb0yDx7<-?mzD}l6ASqdU}!4{nb60%f>*?2dLDDt2d5QQa=x5gyNCn@7)i*o&;Q0 z&ZGYj^*uk%Ff)DT2`2R8#v}|I7cg=9HE}qNDdXn-?1A=-dP33K>!bZo0=Gj7L#~_I z11Q2T(cEPw4{-^q2!;GDCh0FUA)g#}jXq%1w%DY5S%Imch=Hzrfv;s4KGo-`fbNvS zOOHg-m@LhA!%E$j<1EUYQ?SGlFRqu&Z_N5@9cYj3C@{GsWOrCJY``-fWgNeG(73Z+ z-krkh`0Ku})Bua`gcyUw=WN6oP^d=t_t~1iA@t^I1-$}pCJ{TG$|z0?T~Eo0#}v~f zzZ+U3S>O2wiVcbxicWObUVI3ixY$~{!H)Z}dhtHZ_xE*u5>U!%&U;YebF3>LHAFbm z3cdD3+pk~bitSV4(ET##)kh4%|y&n z8jtz(d>s)@zQHojb@DO)fsJ`nSAH9xaZhFE*meB=N7lO%4AM{0woHY`zrxdZ#kmVM zcRbC0QSlVa_WH;|$deB(tS!k^e+dw&g%6i7a!wU+YTYy&r9c?yy^{T-q-M#Mspx8Q zm$Df0xWMf7BOSq(15Dr*M6BYt683S*&_f79z$VDU19f~apJ6y(Q?AOz{w9P>x7WLHED!RdSoWmYcjvOTVO@5(CxcuryLw@S~}9u zEyjBhiHokc#;~B$^$mnKrIyAbYk^(rtdGA*>Ub%*8|tMU z?^2^*dtRb42uqC>ozD`NEI6NF?|mJJU_n#aky+l12b52+?}i@U>UumMT<`!}^mg1O zd5DGiDSD_*hInTUV!R&T8kdyS#nv-aAZ}AIx1@TvU_?|rZ%#@nEUNC0ffrqBx=K=@ zVF|73^1h7%Viz@hmA&V^5Fkx_YSbaNp+lRQdxvQmnl`X4!K~2AS1^RKBzG!h59ew< z;h?MWVwO=~$bBczVs4^TirY$oL8#UaLC15i&jhIz4@_Aay}rlr_|kuL6xVK264MYP z5fw$my`niK2T`d4B!rQJYox=Q#Ln0XF?za!W=J8IZzB46>9*P}t90VfOja4lU;sgd zlTmtFwgUA>Zjd-qR;OZ5UH9GtY1k4n41nwe)>(M3ykCAjf@)gG4ltC3H0dYFta1jl z%GLC7``CKXftT6jU_XoGto@o+9~oN5T6QIIL3aCSwP(mav1VLW>2Q3}hGRx@7T7>{ zMT)El_^+&@{fY1g?P#hDc}U>}Ek=%Sg?Efa#gm;G_af$hk1z`k_UU;!z1M>3=gpDt zmYRKiEt!m?|8wdd{0kLw3Mp{SBs zDZlUX=0VZlq+F5$LPo{$H%`rXeO2sf3;evJQt#*X6`pPyX>s*O{AuWs@|^$0(bn%? zWHAPZK%Fh(ZNfLauCV-NKDlx(y?L^CCqHh;p_1Zw?+4m8`6u5tHT6Fw3+=g*rIn0E z{)3XT_KsDijV$89?$^b8#G5N0!>5SpZgH?=rDB)%*Z3}N8U0XRGx+OcV5{{ z-1(>YuzP*s1KGPKT5{)q-lZQ)31ySHsQoVXwRAuqJNcFR+9TXX8XXMz$1`7`tp9kv zf4|^bSg6~jSDGdh|2_X-NBQsD)cIBSpii*>AG)C*PkPTKLH=~9&w{W2KR^1vM{lUl z0}K&lzBHzRCDO87f9rA?>$9f))A{US+V{`62Hd z##t}L`L1Ydkw$T=8QxGOay=n9xixTd#t!MTz|RoQkg}oM8_q0#`Ak`{n8%!pyhOj`AU2)mO{a& z)&%*s7O!a5@-yf!L4$O9cL=TJB&R0(^+z3sLf0N6u?!ix;-)j#AheurLmD(S*V$2o2oqp2i z@_F#IW3}nOQX2Cq-~fHWu}vrMb|` zI(*D&vq<{~9lcz+fyc&+W%*oR-=ok(vdqYeu(Hmdex_A{`=ci2*Avh;qBs{+lon#R zpgx{jUS(xxcVpnH4X5vx#KO?0U?i{A%9K=r^D7OTOJN>nQ@eIR;A@114$+2N}l;57Fj5sthaqCfnsc<;2MFyh2_TM zXE-Di(LpL2vGS9R-#nkN%p3!{c>C6izj31IfJc zw+sqr`t-(oX@UFhhYBREb4gZKfDU9H6VSYw*;M$WsMW;c44-NBh_6rURmQm*Y&F3@ zcRwdUUGWK+EQBEq)01{w#XPrm$Ob$eqIBDiruW6jl4WM&-mw31mJ>C#m4K5G(Xd_j zj`#5kWI>crjrwVr@dNC484v0eNcvX0;Xs>!o2s8qdW*hYAgMk)3zSCuc97KEVzY6L zLWjnYXky4tW-|-uy7k2it27dAjW=y(jHROP+Q{1aTQ2GP-F;olVy)rO){le-9+Snp5A1 ze?+HlU0Mkw7@h@$_BXif3apA<>5h}NUwm^!gv|Q#LrIf5P4`fn3Ifio3fFOJ;ae<* z3!gdMvF~hJ>DfPMq*L1nN;xreo=)VoAFf3x3+b^7(1buY*X)79WRcGr34d&oO)oUBXXXoPV!<8dlz*JYjKGWCPcwHmr>n=G=&Er4Mr|@zHkG(bG%5$Vuubw~zZd4YDvzt(?&g{ND>m3^fiz%pjA?Gh;xtXY z48%7*i-nH9O8D$vP{bz;k{7jZ)-h(Jcv`@`>n>{zdy8o(#k30oZ!VMswah%kp`~rT z=X_*p_sb8zpL}~!<87h8(R?boop9*C-QySKLd?(mMVA_(S0McMm;IPbX`N?E?b%QM zMkk5}-B({noBMF%vr@DEOyq6gf4f=JCw417euZj>_KHUpsHpsckAv^|RawnBgOG9N>)h~`;W1t=X6IUu*CM{9&8s37 zE`O@2aps1KmI7AJ8FTjOK1A8YT_bX`{$5rjy%}S_lEMsE+$;VMzU!qvWwgBSKl*$79|g*_ zu156f0h^+*bG<(@ui@02!PK)#Z6{==W;GEGQ`d}l0Tif|Ssr8aHj7d^Z`}iuwtEru zFMezwnNx%Jx(qn?-oNe1xHIYTi}r(mbqOQuSc*l9XW6*D*R^eA;rc!L*sM=r4w-LmfD2Q4?1usRma5T*i?txE{2gA?c|BVFLF!UezMFeFtQpVJtIi(3VT7B1hRo`$hkjb z0~VDV1elwf|GuQrVp0#C@5%71yj`+CkercWdL{?|Qjg0$QW_5}KSG0m4|Dri3a>GO zBb(+>W$qk|YRY#EP?>`-Vw}ADAvW!lb>R0?x=o#mgkqEO0Gk3uXuol25n$EL^w6O& zMZi^6oSK;)c*G#;n(2SBB$P8In{tNH9QC|yx@2dXuk~)z@@Ly<%@{4n4mKSn5?^t< zKr+3nh_A%M*C~!UuO>20#7ZovWtG-Y3NQ1ZL(A$x<*5kk9L^IxcTNJak^p4H@ZFoA z_222~FHAo;%~&kCwgFxn&&3)3F|@K8-h!xZX4~4$$U%;1%Bq@l6;{_g2{=OLrTPPR zXkY7#2h!o1+AaA8FsF;GH6tBl*6I`ox~@CPrFf9Qtfe;NNBPL=R>Ch?zB!ZH9$A{Y=u++ymx5FP!361t(y|lZ}{T z)dPV#)#Aca&pOW9ZA;M$Zfh}lXDqbFzTujd-p7{_XQ`lPGoB+S893#MfF17iul9V` zMi*i&H-=m=#BDW$=+-<6;CjEcA}QaA0vhO`c07o{-bqB>F!)9H1jx>L#;ke5`4*Rd2%ntmf)XS z)Y?g$uir_`BWLYF8W(b8 zYN-i`{f3oR>_MrP?fgqX{|8wr$HW>^TX9~#+UyFVQ#g3|^`te0#$Dag)$wzX!3FS% zU{=0LKc9Yb+_}yGz&C7dT@+|rsQEZ_)LQP*2cl5!tWkRs7chUZERwkD`ct`AElWv_>p` z!j=vTQBI)MKM!U$_j!8hEl;+8o0;Xc=U_~*2re|07DL^8en&JI1^Z+K4FDXGVOky zXH-WifwyIiSg`E@O9k_r@q>4TPU1e1tBH!%lwsq^_@c9=NtO4HvZlxazCPNa+D(hS zt8ij~`>5J?PA@sSTp5q2={TbN=xReNpS5dBfPn!+fCqG~9ktIUq>&KgL6(`&(=slx zNSjakih+;?*Z0~txgi$%ju%RJ_W@aD{8E%?g|?165PtpU!G;01&bAWc>pFxe|CU5(E>z^{qxAgy@Ms#~X?>UJI37lzJ^ z>d~H7tFs=MX1+BXEy?1tnFA!QuMzjHwa8DqiljY}x%%j(Hhe>bR8JjOT24@}dcQbA>07~6Ba}2(=c!`yFw!eF~O?|KIw5QC6 zNAu7$aFtOw=9MYSgqRV3j0%!DXx?n0X5h&E^lufi$*OaMKZXUj_?Y4Odi}#W&P3k9 zBGFITGyz&IZ}%Bhpjk5B+hTZE1H;1Ma6YD)Y%<|5)uAbsp?L!kqO_+)506_=555S? zThB*%vDRDgwC>ZTgM;apCLg7(|2gFL5vTz^IA)(8)9B9OmMM}F5F8zPjRzl{ydlFBZ+Te)sF zsWZvbKh7q%hFa|sVqG*GumJ;eJfeNorOcZH8&-AR>a<7=2XF`7st9dO*}@3P8XnE2 z8JGILwRw{hFe8=9VsLq`w9dZF!4&n!vh0%a0g#X#9-O?)IxOQiG(Sb-L6FY7{xAIV z6i3y}5{Ji}cX(&`YjKS8mR6XZQjh6vSDfLz4f2yfBFEWtEU*VP?Y-o5=o@zJc`PB@ zu?LS1n<^aSF~En&jd2}t3=q>j>HGYHp0|Qh4?G88Uu;-QU26BpC=jTV)lygQihG#k zi%$huI>3IXo1rUNO8EDyi>tdVJ+Le~K?B)?*+uL0wXE4PtTxL7IB}fshjaOg$GaY~ z!T^kIL{7@CaFeNY%u?ndMb9T+vK%GaE=#rSM)0n%+tZ?5syrdqv>obOO?1(+h>}QL zpqWnTdM|fqppc~{%bN8*0?s{Tkm%CuK`>63!?Q^j;SUj162wvScw~oNFQOa7qU2|_ z?m|=g0#^S?k%;bWe5a8p2AQS7=YsMIaY03Z$5FK6!YTSV3-K3caU4aZBcfe?ob}h5 z6hZVB{JiNz;#@SSJmS2)aol z6OqpkW6A~@2IRF`bHAH`*M=$0e}C(?uhJf_6HiP#{K&k-zZSSKtui2qsg5ebKbInD z!Q3D*OCXH5h!x)v{E>ZGP1P6{S9mH-MfK0T6<$0?Vd5GNa`E-r>E~80V^|_t;!L=f@1hcW34HB)bD| zb7O#9=>}_o340rAe(QItwp9l`O6^}A`+9wK>)exEzkZWnZ`OodC(anpi9G=uJi$7- zM@{lWMJ|tvkj2aNRu$`|he#f?KpsoW`2$k9cepy}hZ)7)3V&L849oN>kDo{^nf2BW5R*5UGkf7C=v z=0>BS+;RnhYn3?s`@fx1*mZ(}e#qCev)( zKvUlc4*%_*7rPA0fag^Gc#-g})90dzqH4{(;i_V)J39jgqd<1Ll8z#qN_7jr3Kyo@ zOv$(aRY$gxRCrHc2MjdGxA5*NJL&YtQL?Q+6>o2I?V>R*Mx*&94l1|kd z@{XXlWuoaISwZJHx=HauimV)&YeN2(U1{S$cqrC-&GNt2ez|XY3f}f!KaPDG$8)xe zsbBVit(~<7f?3Px)ouwV2KmDR4A`^@v7&PvBk$i0nLgPR2jA-aL4J;hzz&QPS8quv z(r3zb*hy`~$4pd_UODv{tO)IXWFWSGJ007rI7@5k>zo^);Q!(m&hrxi9bc~NP?25- zrJcOdOk{F5qk%AH+%kTf2Q>oda-vG>XV=O0O97};nQ>b1!x|k><(=s(R81n*v8a_V zSv47A0ht}eCn`uNi^$wkwBzEl8ZCzZWL+_9_@gX>u((dQG?b3=D0Yf5SUr$SC=N`8 zyck_fJkdi^r_&q&=#VSErn`@6lfm=lLS_Q8hJV(ZsW=WExsn-Bljb}M`87={0fMys z7oKEdMzhS`o@c*j&=9ybK+Q2YQuJ-s_~_Z#cupgZ&0C%vT8BR5k%4NGhv^|YtEP)Wz_&1$4|9Z7yx?1imm3Oh~mcq2;yJPtuNjSB`{N3h(-?5IYr9m?P z2XtA7fMsq%^-WRwbSJ zCaGnec7OSPL}(iCg#Xg$m4O}ZY>N51$IB)lo z02{T>i4c)nBOCLr6B|1e_To&vOoe|7KG_MT#e_Ko4&hezKHVKW0skgu^mZYwV#qP6 zzC%F;1fvVcT?&d?LVd7t7uwkOhWlEPR~$;~mjlZp3jCGxO$2Sf&CDFSCW^K`K@wCz z*LjfQ`#rQD34MskHT?4#H5m=;(EJqe0yX>3g0;vxTug6b)mGgWi=PF_1!mFn-&!dY zzSkVS%-V^b=GXVGIJpRdbFd$o#VuvSwFf+8}F zO2$LsKVj*&Qmw_1J_-46-s~kOEyRBeXgFwNJpHJLyLJ?&9i+W@sMTpaJXLK2WB{D* z3b`5!H4CtUzK&Y}uiZm}hmJm}+`547+n(wh! zQ-!QN0>H=jHTbA>eAi!We=TB^QN79z5Dg!Arbk~vxS;NTu=}OgP};##*P{NJ>66cm zdd(iuaNkGq&l=rV9BxbX4(AwS#u(%aegu%ln(p6rjt;*w^0Pv9FK_q0^Ib_^CmkfU zH=5a)&)dTNNc`bPcLs_N{g0LNG#sfW1IY}@{9RY_?4XfT9r`};BWs~Ye1Hl)6VZ&{ z<9t+!dMk_on752+VQaU7eev{K_o2x0t~%-4+XgR_1-3jP_o25$__~~`HQ+$TQ|uc? zfN9|3*Dewd6iL8SZS{1BEqNxUJY2v`k=N8!R2;-p)b&bhVJVp_!H|(#J0O#%&;7T= z+ZQXn@egf3PxCDwFz`daY_O;f^Tf!AC_m>Ix?vrJxl?}9y4 z+^_hmht<#Xl8e_rPhpAtDxFNlg&C$-x=m5#t8&t=3#aOD;ru#bbe-eoR&E>L`F8~e z0jBLL&U(t>fxpdo=|gfVhC{>^d+ll<%C0ec@4jxU;l^;`Sfb#CsPkVW~MaB+@*V>L90gY?gn zOYvRJfTMx#q4_`W7Hi}^cP1Xd%?mZ`?KTwxI=X&X$TfoUjRSB=b)_v1mgI*+vaI-% zc;w0y%{e{r3IZYbaU9OIa=p=A9?)6f9}(KbTDteS%-7J*uwP@qUjYiSva>2pI$=-Eiej2+ud>51 z@y#OALLz|5VdvEa-PR=SnQc)=1!yH<($MlR$p9Qp4}B0WtrT(M-VTJ`1ru z*53f#nbWIBe~Zlw`|ZJwZplXCN^Eh4>DntQl4{)H{YW!R$nK{PaRJGu5X(~`taDM5Ze+9W1h32 zVlG7gGrF2A>}QVrcvr!ovs8tw1{?K^Rv-h?pD%i&^F$d@MC`v3{7oxNVNgMOQLJ)|jaj^Q2-=&y*~q6&=_I$28PcQ`kVh;sO&44jIY9aif}PaZV2S@tnuXL*`^KRzJ7DsCAS~nD}NtX7XG7Tp|IUv5jnt?^pRZaMcJ4 zOl95RCkO4G+TiUaTkHc^eYw|-?%Y9O4|)V>Fm|0({v^AP-0jJ8eWUqDg2+j9CMdyf zZM&uU)7z80OD+<3pUfVs+(p>T!HXKpJn(h*pu-fVt*n#!{82Kso+WCfeGua?lc~Eg zdrqp~raTUzK4DSA)upT5d<#*FqUehVgIg5UjDYMn4ElNI;#BV*(%dm_DCC&f#hNf9 zVnO_9tu*`TA5>DsE+u592lIh0)i^UiV^SJwNqyz_3;a(qVM4(DcmlhV-#SJn9J;{q zYAP;zdPIY-+GhE~u1{AtZzz@8?|r=%f24veDhDxxjn)>)W9w}?mz>H+1sDgaX*S(bqBueI@rpL*CW*`A2hK2%;A+%fTRn)|{ z2Ob6tXM3ST-5Trf`W&Pl71heFT#>k%y7Kzho}=!RDB2eWCoUg0_xL(70($JLw4RY( zYnM4$l1a^jXV(s^*wUqbMv+-J{#U3Cz(&(Ta)+i_9#)=>^wow~{cS)?PYU4(-HPIZ z<_mYbGCb8Pw~6)4AMP}s6CX37|M<0{(rFk8MoW^%RGxBE$YiI*+_kZlV?QRJYHD^m zzTL6={}*#_85ULB#eLHuL$`FRfRqvg(kU{ENJ+N}L&$)1OLrp;3Q9V3hjfp0gMcuU zNH@HDxZ=L<`?;Ruc;9dDr#W!ObFXuqvG-oT^u@I zVe0Bt;y(Byg!?uDG=^318L7aVb4mu=qNu~{t_-Rui9>;9am}FV&;7))Kc~NGR?kh3 z8jVSgLuIU$=B0JU_?8J>p?j(cbycTLhS-LitS>h<@*i&5A8Z+wnj?gusqTqU*Wb<=XI6uqY=&a^-4|4Fatkf}<*V5@1sB;0Cb{#LCD(qJTs}<5-ADsFcC@ZlPD9+`k zclsHzaKO;`NXYz>&>Z}wAAeH zg6h57xZ2IRBcM@XkaXb-H-=zfHkxIT21Kd>b98+U?gWXfV_e-5P_Mf{_Ut#dAiOH? zre}UNKcsRvPo_OlC~0fHnh4o1IoA9sG0yaIo$x_PHG$JylRvoWp2N?wyD_Int+lUZ z$j3T}(Hb8)j&7TQ52n55T*$KJXtL{E7c3us-ghGDG!QYwZOx-Gv$MXlg?oM&>f1>I z4n+;B_(^EcvW0Y7?{^cP)Ni6v31;$&<^LtKBx{6*Sr!*gY$}B+ zns5t+w~uJ8|1XygM#yaWPZ9$TsPhAIKx)m#!4#7>Wm5jjAK(adRv5`S^ARRcKc&PN z1^v^?N&h7m#TQ}*1P0nAgD-(TW^tp;tY0I{ZNd3J+=qA#BFXlj#Dy~f9fe`vlrNdr z`uB_b{uCc{a`On@B$>d#^nZ^s)T&kZ-+%jGh5~6nw$n9V(Eq2h52i0Lu6Qf;WZh=; zErKS@%rM0jj0}Uo<8;!0D+TlbA2UrSaD!*TA(8U<*&JsCah-7!I;MY!Z&4+$NVen1 z$$N}{^984|55`_!$AwPjQ2IirOPkEIu0zDg3 z7MF&G2J|GY_E}cN0?wH~*2NUWo2ZQV5Z-*=n<}58kaStK;GQZSVv{wqdgLIaFcIoo zm_VkD`RqWz(T|Y?e2ATmcVc2~oJEf^HVQ$@L43IsKk(LjBSP?`xXxp5qM7;gi#g&I z?H$!g8ev;9oIv4i(mUJLzL9rN%G0mt&6zgLu3LD`P}k!90=mf8m98H6*pVuax>DR9 zSJDXo7Gm*vP|)>`V6`m+d}z>&x+C*?=z2Q=(~42%LPM@->Z6qg(og3uA!b@-u|oh6 zsn`aSG6NcY7(M?pPMk!WNsedJc9;z0zpcbC#kwU&ySzFEaurfKm|LS?{>Q*xxLPbj^Pk?nXKPN^6;IOKIj;4riDi5V81 zjt(@w-HT9RbClj-&f*iw3My*t9GU%@iuL#$nl)th_i%VG9KH(?43j}#q_e}G$P%$8g&pEVuTw`8dgR1#yYDLfQ>fZ;%f5)v~EwiWXyb!V$;A z#mBr(dhe^NI)NX5G$Y-G`Jb6}TqiD%a{bjyGVq;jLfFi#kmr}1<_%EIYvZMtWjHY7 z4)wK2AM+zzWVwh_FrVkUqjlt9W{yYru7_#;(Inx2np~TnxoNVA`_Iw*l~Jb*E2gQL zW_5Uoh8;kZ!M5oYDev8)KS%TGLAFLf|Ci8Fv12aw)2AI`N^TR=3#U?E)!utCWFrfa zVSJaKQ-T7m8yUvPQqSa6uy^g9=ZV|R?2z;%i|gRr%iziTr3_QGcdKol{#y4pHIZpd zGt+f_Mjvx#V`OAgl+iC}9xukJnkad^cOrDab~=3T(Ny7Y9g&cM{5boBA#Z|rhWz}m zya&zl!5dVECZA`{%xsu8ytMa64-FWW^CZJt&OhjNxIgB>$=-*mAiws$*!|YrIcP!H z?6S|4C-~F;e1B8zGDt*0v&>+59O}6C@s!m_mv1~xl<$bvqB;3>PfEp)ib=SM1!T(A z$zejozEXWDRI@XrCu)m|j!~D#HhAo5eP_Z>0d;qy-93%2l_qKA!5RG#>2Ad2XjGRR z1;HiqUF2G*e`rOkqf_Zs|IGYPZ(hl{Q}-pMo@$)k2&EU^b@WOS+dU3lQ|pq)KNT-u zEvv?-2;_|x>o=T6hm5q?LK+*dJQ;n&^G^Z>FN#ema&6|{y_^-bl^OaO$JZ2#K|Ie9 zs~&iteR-BiBhxO}aeQ*T2~apKxactL3uK0$o-dGFcVT;9?+S@I-JLFZH^i+n#6nJ}uj zUZ2;ZlknH5L^c9>Y+Ihcf_2{Xq*iZxoi-jg@CkE2m_Iaa!~Zgp!CMPAi=62+c6hQ1 zx8idOJBvO$xO{bLO*rs0h}S^pmrxUGcPvO%xY-@0qTBHcm1WnG_G(v?_=3M^U4D^r z8*wK(yKG+ST^gU^@G|Q4+*gX_FLj|$ZC zdG=G}+MCiAl-qRCI?t7vW_CUjdUO#eQtf>(Ex;DIYnF4()>I+)Xiah%d(64x z|Jug1z>+{bYQlhRoQW^jh|a%5U~0zY zB$<1o4Zn~`g~^Zt;!$7Xx{yw}ne?WvwyBV$v`P&asZG><47J;Yv5V*^kb$pRnOv`c zPx#sEiJCowLk!uq9ro7)&2Y4Cx6I33*jRzRh`a2cboPBs?5MKKrE9wRlD6qo zkPjS|rUD>>Da)Lu`e8Y}zjo2B$mJdn?wn3ZZe(IA=cP4(#4usZ;5W4n!lcLkpGN{{ z2^5;j)NRBZW$0&Wzgt)9*jkG@+f*l;b?kx4l|gm0A*#+{m}ODC+_~_Ax;ltsm2%EK6(c!C6*p|*@RIAQbt-32mMxc5CzdHkzY}$EflT1VKHUE^mLU*z7 z>oz7(5XbG2U4y}{34f$~L-GV+QH+{-edQTFs7a#=ax7x@O8~Azm%Z;E+igr4Q4um$ zU5cG~?U2OcJ|Tq@5Ir$py1$yL@&35+OeuiW;Ch^3Np0IY<(kbI`x25MCAe{|94LwN zbY7}yk^I?wvq%TQ!cxQtGpuuvq#E8!1~*@zRYBU2E{|*s#p*gJnKypjq8RZzTb`gF zX_8_SLQi_-SxQl8o~lW3ab0+1$&gV3OpV860h;W!Z`H}b)EwF5g*#2om)R!pU!+r< zclwAUA`dObX{pGAoIEjVxu{M&xpg57!(HDkW!Ik0pJeztUAC!J@a7J$IeJ#hJT4-^ z%8Rj8&)VvOMACFl1=32)=un7Yq>P8dMsDDVI;ee?zIyq`I_tOEl3?aFh?PcNs! zU0P3AmUlbjE_=Hf*R7rO^01Zk}hW6 zp{zCWhxa)Cr!2J(Qt9$J5tOOXWl~82#ZBjkZ*~6CAu-O3SG=qPy9Rm93En~;9lB=I z3doa`2Zl$HisN`V*>VG3*Y2S<_$vY1ejtX3ue&|;5n1@bOzETQSTSk`_Q8dw0g>z) zR9goji9FA(ik|i&&HF0`f5Vqltr((G#R;915(f~{`FdbcKWs?;E_hfSXxlXBdb zT+HC66-vMaLaaf!KA!kDz?8?lXlwA2=h-6l0lBvBJTRw-F+d+eZ1U&i@IU%RBRd zb|J5~SaVdT#^$?7&)PGmXtj^3WlfYwN}MHKT54Ord=XitzJL&mGOSAno0S-h5*wyZ zj)GdOIYW=Gy)i9%+%fN7u{(*9zbc`LU3=!DkN!nT@Kw=&X2c(EoWs|end6;$%O{#BW%3AF|W;5$9CAT=WFAH(&MSK^uJ=mh#u}ctJX0{7{ zA%IU$EwJoO9V7XxpDBu`H|5iarL5ArS6BR}rE~A|YZ@6R-TXvLl!?Am4CL6&yf5;Als77M=& z1+p&j()9y~ia%9E*Opnux6uX=SufDbL7wN4sCvPTtD6+C&RWMWTcv@qWa(CAb?q-= zphdhkf6UVj@-q<IwhJBpoE(QMaI@!7WWQj|j`IVS#MgVWLCbdIRh1XCmJzHlGGQNi z^GL-jdqLRqO`U+j;|8|a<(Yhp9Hn*RSlNbRtxqK2PG@dU_jt&bPC%p*hFEZ>4{}%N z?Pwx5Hv!idXm3?%1|Gv;V&QgQ{}z3M3OUIm!>Wj@ccys}({C*-mqGWk<-E=h>^$I7 z0gDTKP6*`1u+8u2mxXo&n`X6<#d)u)rS$&jz$K z3GX$Ig;@A(B(L_77PmsiN;jfM203Z9HaUc1P86qPX{F?r!|`fJ#1yz;TPwa55NJ2r z)w*reQqxHzb)*crVud!gTOM0TX>EwfDM|Iom*Xs@f5@yRuflaGv&?xI91Mz>{2oc% zBZ-$RceXMMk1hLoS3E=G2e&dM z0D|x48lbG@W7t6p{^e+=zc$`J|00p{gwEN~B5v}^>||srpEb&@2k|Gpg=5mE>GIoQUI-T2fFJfQFjDPc6oSOk%Q@1qn*A&U?Ju_t&CE7y9xFH! zf{E&t+yefvgMUlpK2IrhmhEz#x1!+s7%Ma=+TL&atW+{8onhlFMq>L(LXkAxP|bTh zd1CLP@@R}FD|`Nl>EszB6dlD=wBUP~JeLw2Tmtb{PfE4}@o`1zJRO$y>4R98LFr^% zaA3X@35^r4hmJX=g)%roYbdq!3z z^KTRO#_xz@%6tE;OvGOCl8d@3fZ?E%utjYx8bSGng?NV-;x$7JJ-y{(Ym0kZ{MZOO znH)nSXzU*MN@gYPJY}+$Y^8*fE|GyF;f2~IYi@ln^&xY1_eQ#yxNJWT6@l0?(R#i5 zH1nEq;}NbiJJ@=q!$h1%W!5Xr`gY$!n}7C7{nn9E>hcmApShUG5)bAY{L%fMSOMbJ zr}?|_vh&`cUJ0w8a(Y*8dL?;W-;A^7X(G2PCuCT!Sx!aM$66Kudu(L4D)@mv?85V_cxzV(Wb3RT5STF|#uniI5F32`9$TBBp>RrL5J4N{sYcTUO(UN+hA?_jg|6LUdf+8&eG$;Q@At z-gnNCy;KGMh>-a=3Z;CEq}yotnB3uoU_)_H?m#t(A)9o z&Y{v2Sb8!pX)8UEnM-Ryrb@D7Lw#N#`b$R!+HaiW!QJ*2`mb>fyYR@Z!aq2ZR5Qta zg3c|4_dvDhJ-Wk(3{qr!aTMw88uuQt7}~LC%PHRRAH5sa|HUmwTC$tKI7^JCoBSg8 z{*KR*;r0rtgtL~ymd9-kYEQ`FwAA$RFRK&&Ou~p3y{0z}{UQeIWn#MA{x9eucO@SyN&o=K_vY5=!=TklG1Pk#&m+Li(SiM6>{Y$-)5BvIBl~9)E zPfd(I6O)crnWSD~)-yBn@y!MHR1XR?R&&M)zF-RGe~Kedkxh`ISnN!Y6d`F?Bal$7 zOxo1X2`>+gJ;Ti&;gb3m^rNcUa1{qH-6Q3pMGS-)Hmy3#j`}1aUaYMyr1>pWCs_Ts zQn+fxV(mc&;_e4jyM^S`%iq+#xPcDH0=;&IWL<;IFt=muuE7%UZdVn!X2)qlMIO%IM&$g@*ni8X zuEyZ{Kf!@vM*;E9KP0a4<(EKRI*_fnWBK#~gAzBPgluFDviwDGfVrTW+?i?E3<5Obn677j6n=eHRpq@IVJ=lB1>GAcC zYhVN3bWTUR36`VbNPsFL5iFma0JI1Mf6FjjyU`QzFb(hnaXsl#uIM=a(-j5XM6!WI zQk!}BwBUD7^f(oX=GHnMT^|)1(FP1Y^}Zt5jp^eHp=1jp9cBBBi-SXtSa* zx~MXZah44T#zDh)-~bY&MNlpfml4YVdVT<;L#m#o3c;wLlh)CqCB)umjm`4>Qj4uX zazktMMAKwJWdKpjxa8MXtKYhG{9j?qjK0HObVwb4shRa5nWJpUBW_zpwqBk(8W>eC3uJx2k)mIrN@f+pZ+T&!NB|@Y$a5YZbS_yUXpBYYLS)_ zXwjVk=8WQOFr9-G*R8WoS;BuJ40nMRd^d_8sE0DIPWtydIH*uRfK=pU)r~R#$38Tg zSGRBqdJ(UCPqJ`VZ}amf({#U_c}oh`{bv8jede|e7Tx~>72r`m1H^FhSxVAx&g7l3 zPZWTC!pr^9?nq`Cb5Gv-FYK4~1>kF#Ho}yt2!cr-Kj4?lu*slqN_3iOV-t-3;)8%4 zfa*I;t(ElvjjFE&4G*}>F~j}|_0RxJ=8O6Q>$?Tk_h@wbhu8p~wBKh8PJO4rNq^9? zMEp-TT=S#J=6hG+{xWel&hh{Ou~q%MH2+4Fh|G*%&D=eyZo5)=5?14d0RA5?!EM_& z|3lYWq>Tacg>fZAa3U~oYsLsruz5^}{Z85O?f0Oo_ul`}v-|i19c{tK<@$`7R)LL) zo?WhsbNFxL3!}!An}M+Yl9|N?EKhF*`sPzBWZc=N{f?<=QSXH6KhEq$b$szNh+YQA zev|@L``I9NbTMAd{VD#xA-fL&=nx(`r^H?mgYAE@wZnS=TWgzi{r@3b3(tg0{~v5^ z-(MtHFzo(0wE0-rmuw0kUd3j4VJI-f%?^Meq}eJ8*KH8UlKyTRZ$aU^B4`9VOmcT= z4Vw}zo1VEP@+%wvqM7k}puru6ufCC1Cl%?*j3}1Yyp-pD1GWO#g?<~oLZ1^Rr!JvJ zp`pkdG;}Mwe7W0ockOz=w6W~^fTLaNB%2Z#5n0f0{B*HBUhVL**F$$5+GuELG<76* zzpcGLQ}WiHqBhswRGp+gg5JiVDxG1u0aDt3)3mEAx*bvrDubgLFOGHkKX6*V9`_AS zivf0(oTwC2ikqQ}?5@@qSYj;DaN2T2y|u43pER3n?e`g771BKP6kE!?Wj2uaC{>oJ zUG+7p*It1TIjV>0{pepX?ah2Kae6yjzKyYAe7Y1yIG}r1jb#1-+UkGU{x@iIaMTJx z`4jgq(B^a?tGxPI>W*3d)*4fHo6tjk1O&9g3=>v)&Q)(S?fCpYza#hE`+{BUP6g}L z1-sJsfnpO6h%xuIi3m^tD^u@3y=~guA-n1Am5~ZED?k_l6|x+E`@Pb1@l9s?7#hW2 zartE{q#yT zQ}oHehUw!f*3cviRmh;`PF?elA?Gv4XwT14myHv1EWIc&^ez@5gAWC;>^!aN4VFzu z!O}WuB!b47zSijC)aa`6WJKy*Rp9L+Pj^~qEN;zE=;xrC92J^Z*x79?00lHQefZi` zCh2I&VRh-@jZfE@|H0Hg{K3@z#&qEy{$OgiQA0XRDT_Oluzb^<=ElAOi<*Dl&2Rf2k5z{r$D_Dq{a?nHsO;a6-T{>H(n#2KE#c7W@7*l3 ztnUF3Qo(%K^R;0*xPQ04k;f$&=SbF5&hTbBN8{dE7WI#yZFl9g2BSnzJ%;V-Q0U(D z4+groeMc)9(|lAEqkUqDl;<5LUxuojI)EqykDOwPS(*9zzCe_eoK!4d@o-$@ttcn| zN!UGn?bC~DnbkpjNBO2Qts*h!%t@>GM$?6V{RebTC{AOj~Y~qymd0B$O>^im===R-@pKTaea zt<(8LLfZ^n5-35QqE4|}?Wx2mqKBP@o6zHT@*cZgevk5Rt0E6%SK}cYNaI^*1Q_`_ z*es4qISc&?7{dLB(k3&G!$lpe?`WsFi84H;QH7ZyX^*&sK~sXlVWh5?i`~<+Wl6uh zq|-#3wEMYpw4c*`+S$M`(-iEBzF{|YM*Alt<;PQUre8Sh=DWrIW^9$FZ4O^XehvIz z7~8{tGPb|TjWiio5i5SWQEz^sQ4@3C%ftLDq}mRA^Y}WHJ50|m>BRHy@c@%bS@0(| zZQHkx=7g)GQtwV${J0N4M(V<$+s|_c4hF1#9(Vn8%P}t|E2KZ1yj=O-qdw6xb{jPe zyquC18b$7}d}}1Nq_%HsHx(K(A0M#iMfQ05BG!M@iUqsc$EXSrU(T|lG(oHUPHDnsGN?w;CRplJbm~kI0%#i$J z)ZxebM@%%L1MD#6Ks7CnJ}7&(22P3w?HAywrVblDjMruc4Fnwf^K6CJu_}$SYmlBI zENP1hcTk@Mx2mYh+=fCgZNcie(q#?XVQbP>Am7I@WEt;ZwoI`8`mx0ga=!W<)0LUg z*pnnM=fT7{Q!5}Mxp%-+TK}?0N=va>7$?lEta|sifc9t*xfWx*WCL^BiL=3elQ{P{ z-*=d!r#6crG!_l{Y?LE%lKmAJ8HWm&Gj{3Csn9H0X}8ctf!ss`lJ zc?7m8RqGX#OxBZUwNvra#q)SbcDAr7KEpE8iy;=;cgyKznd(-OC#W>MvtVNb zJTU*3bGT!~Xk;QqT1JA@aY_ae?9}~GG z8;wp{xNV4}u!UX-_FiKkA-Ng)(F2e7!UP_aRi29`4qBya5!Kw1pw5_J>is(3hh-r) z)ry(^t?zor*RL%5AFZC{EFY&cHOR#40{ihXdra%S+pozB?TiQ{ub1!39hG>4@K{P4 zjn)Q4@^1l$+(hBA)m;@+x2Jac5AB2*$TVv#JSdF@d4e(;yggdEvKqYYLaCcN=<;n- z^}3#rHmRsSp+l>gYDn<>L`=AI-X|8B?m*d8+cwDrWrnE&O?vuGqqL z^BcSIAM0-x-@I?9ES%-$)SqR+Pd{C%)A2m6+$4fhZ89c8{mQlwjqs*^aB4@uK%J!T z?DGC)Qvy#u(faZ$q3r!GyNeV`GMV_h50F&h*2ke-)Qw_yJT(_;S%rm@;Q8GhXW z1VCX&=i}YjdJBF5kOIR{k`cUw8bX%$o|;J5d@kdA}R+9gi-v|2y6XpOfz@3<@Mu^29+k_Y{%Jf)-aqnXh_SojOlGhC@1^ z%*nG4kiuOorF*g3pT6K?eXBM2v|xl@c5QrFzU39x!0M@K3cES%Igl5S1HM{gaj;gV z!48PD5iv_;wc!k}Cg8nu9EtI4bbY7v&oXG}_VS{`$Wuyj z>%~)K_nMnRhPma_cK<;aVSlyBNhnPK5nJ9m4D@n$-_B%)16q5_!3@eUECl-u-D+S^ ze6l_(Oli{^ixqP<6mBKvM0RF1gqv_DhD>ip2l9hDR>+_Ak*6$|C)9l=br0u*riwx7 z8+C3_Sy^kQxjg`^z%#E6B(uq%Vmo?eMn_t79~`Kt@b=XWj@Ant@y%pL!W`X?|$I-PHFs!#4?u>0vbcCNEJ1oRA_`dC11zBspo5G!km%d@PpIEjSW`u zBw2@36~WY{$ar_L_edSgWyZmJHoN@vAYaiqdF5G101>s`~mBEY<|mUe^a7I9Oe|n5z%+qzjXSA0N+f@lq{Z&s=xmJ-23oAy4llk}mh=*+ajC zWQLe_%46fD7bW8i9bCHSRhN~_iodwzvDwbntlalF$RXL_z50FjMOlHWt>r8Rgx5aggT$7%hVLL2KZieKd;R&DYA zlG9wM218%fNT@HLzA@HjalW&YIC%f$fkR)ybk)bL4{eH;TCsWWFhZ<0`ryT8VOq-a zcV)lG%W`4sc^;c+qDG(yYJDoye;X+GYl9Zjo%Twcl3R}JVOSR{tZ9uQhJHbklH}22 z+&GFQXyv{42!SfS^_g6lDe$!fS+~pumV8uZOm3CFuCAyGRHMrCP#$Str4OYOEO&g- zsV05kG9`Sr5Te%v5IP|`t7rHOdo%f7mkCz@$lH&-3S|0~-HpGiYESf(;$&Y4)=e^) zj5{>u=~@!W6kF_3!bL9%1k5ehkSmNq`aQLmA&z*0`4Es1{=P4{UeJY4SU{O6r1P}V zL)NP5$+AhjTK&(&!tc*xN)m%ECX&4`SscTy4IhrwZ&@*FUT;uz zDNtLdjJmJf#&5?{SMa3j>Sgi%S;CAOl~SEW zL?2yHp1ZEwu1(8+RFkE{rOKg%9{9r8$ZSgaI3+NK1UHZ{uCrsec398kdsocsr%e9B zoVi13US*pH3qe<+jgEO_s}B8L+~%AK4{G(H>^Oe}kU|R2EPu=bt8iZ{&gJkOc8pou+{)(F6pZVPqa*oy%{?>4`^IDJFP){=`ztFevCz&?tNrpgBXw^?bj!SEyP8fJTRej4n#;JP5 zS-ZUvJ1hB+wRz$ivLzMm{)7ztGF>laSPBa#-Q)+m2xO&k!J=Rb$9&oE_HL z4G2$;it@3yGKgfPuL?Y%u32%^6CXSIoKvM&t1YO4giBmJ;wkrGqBz^B%^Eh~rDm^l z-htz$>!oD=-NzIDI^$u*95SLy$IBggkvd{;b~+y~c_;_ZMVzI9Lykn&FuALUwiI_S zs2gh}Z+qL&%NV4(ch^^)>XqEC_~r2XMtq4PCL5bCszpy?ea*_MK-}%$a-Ut743B~L)d8kroDPdY0Xyu%SQ5`i z&fur0K6(iQy|yB<9coOb1xVU3E=7eyNpGRwr>NDY0=Rrm+{31bGbQA~NYK%2`R-B; z5CPY5^i!x=?XpWT2X?$D#CIY-;oy`vcH5Qwe@61 zo|QcvmaQWkZuf{*JxA6pO;vJC5GJ}y6I9ew5N9Q6Z))w2M^FZfRW9P0`$#Bi{t%CW zfk#DA&GZg${wf#DrgPA;gCR_l3V8rHN4)&EJ*VUbP@eq9VzL?%O9sZX$%(f##&>q* zBrg7q)Se6Lcxp-n;FsNGU(d_B$n>MiMEsav5PJyWr;{BF3+cnYg~Z5c>H@kce>1kE zjKDelDfX&snk!hWYN*6>T_XiS*z~$wriX)hdyJI+1aNccTL2jed{wo6CN2oO2&bQ? z1uM)4bcoA!ak{mHEOXtynh#o~ey$4@6*M(SN70KWjz- zY2LvHFjUeSs}2d5ywanTCZM=)V!GT_PkJ`n5Mo!bXA_x5Riej-dVQ%kDC6by= zTG2?f?@3=QM6g=(Gq6|Y??1Qc)09`7YHgnWmTUD=XT@LPRzgmaS)WGD7zbB&ZmF(* zW}a>BTl3cTi%%CtRp+9?7~sine@Nrj?Nh#q)UQi+wR^-8<3r!! z3*i<_MQJ-AhB@KdDm`r4hxNzZ+DYP73JL*gX=y2S0xo?Cy%qS%8NtlY*LGh`iOP5j zlg584_vIdU=AQ12H|tA?Ux$VbR~ulnM?n^ov7)xvsx%8FWR;kNI_{vf2Z%&&+c~gl zCRZ`9wn#Uxc7jwYuE0|s+wX$*2QEQ^_Zx=NP84Qh&Dxa(m5-NF`8&TaaVkF1s8#!I z!_a0R5g8s!ENk?}Irpq0jD1g2{+9uh`9grsHQx(BD}5ijL>Y+!KS9l{g;U9}Cn0^>wgs=@vZFZS@{5JsdCHQEw@&(!XokCAG<( zh)#|Z@m=@MJgo>$3Mq7EckowC>+4@o-4dIu7k}VZGr`9Q?ys44)mhyDNgc#ng6ghE zARIEoR(d-_(~C`Guy@O~$*RWQTWw8FxUz@#N_^iI7T=|(xeRBx?9Z}2;ZJM(p{w4T z=`iE&loAjLp?L2sd@*o9$)=hQJTtSa#p2N&Zn0LIyQWCg;-%j?SMs*j+~P?eb#!^d z3abFJln#HMrIr-&s(T$pc$GwY6l$KNFO0Ll!619JOthoVz#;CON3`6K2?pvY_wVA< zu{vLvT5Yv&POkm(0oGXkxhxVX1)+;czFMwix~TKEAHV&nlP|O#KG+o_5YMF@mRe@Y z*v@^aQV@LFLAn`ep1JwbB`;ijm*tmsI+kG97WtF!QgIS{n{PL2;2)U+iq3+Eg8C=H zipZLfX9@I6x8;`c8J>RyJ>^3~fbm{L0_y>q;B!rmMZ;j0lVK)Nv1td|pM3(&M!O2~z^mW`rGReuo~u zR$q=DODwSekcg)+B@BRMUf?m6EyN}XzXKA|g8+rg$dl)R$HMokf1zM1jH9MY)P`qf z=1X0mlN8+@Zt)=d@2_O@U*!>Xr>^#=hk#!=zAN`LJ5;=Pr@Bv=aP^!L9?IphZw+yw;mXq~;4t(EXXF4Q}^|=m?=JgF@ z+ap$p{3QdOyRDfpUpHsR@JO?%vOuq+h4TE_inG-=(kzeWJ$c`=^iO(G<(pch=aWM! zPbJSAND1cn1O3z_o_<5Ap!k(6k>;h)*2F>^!62%Z0;-2ZC_ETNmuYe-}%lsJ?PJ9rp`{t!Xaj%F$WAA;(Nxj+Pt4hC~LKS#D=#@+K-Zmh~qP)0{TFIbI%lh*g|U;^sV`FLmLQpk7QoTdaP(PvuJ^sq@P7)G1Ac3gMJIa zEQ_h%3HEl*b#Z*Q)HZzOu-}umaW2dBRe+yglm_{jUjn&|Slh~)$thlDLh%vrHQW+v zAb9Vr8AMR6Sz?=d4==&1?}2@#KA=4bm9z|17lnhybnAZ7)Z1#phjN_6g^X_PcV=E< zo3ga~wY2z{0otk4AXcGn`T~uyoIoEpdyF?Hx0`-(;UtzU`~gPf{ze5}9TB-V+2;ZM z0j=KI*sz%=Y0Zi#VG5WN5T<+@2!KdszDI~;bolxn0VHnFN60O?Xgj6oH>Jl-t?NIJ znU@v-+50gbVmgxx!WP#|y#nWqt7X~%q%9Xnq|Eej?|*S-@gMpyOhIErH(Gf0W%AnJ z`Y^h%7w6P>Pe>%O{w9^ahA6lSfJ&>zCD68Sb{&evz9k2OAzP#l&v8*_H2Zo00JY7djoK%H zSm!JC)<1iS#*cUa0zfxsDv*eV`Q+$EYbY0c`(H^TEv9M}z1-{{vP3WnP@*|nwaoqu zA`T}cp7^H`2a&*+jWZ;o0ffH3t0?A)Lb3n+1yGy&28Kc$G1Q|meq-|^#BqSvrq%z8 z%F&lYFVguRLPHX8&FkenoPV%d)X;&j0R9Wo`bzK?^XeBErPo}2L?W_N^3*(>ScLnZ z*t!g0?OZd8Eu=PBpbA_70i%`yN^ADdAK_pCUrdvK_Iu$|>f>tz_^EZko!NF?2UJFl zIf*CyANcHBVg~e)f8HtF%)|fvu71EEutczL*`WQ8foPa&-_S&Y2jq|sUV9+0_X$z5 zL-S&2Eq?muuXK)o(}KRjz`27MxaBr_*bo3A@5E)`AM){SZ3iYJW;UkZEi8urk)tAB zqUJ78e~y;KAJ2DTCLG8Uz>&oj*%_a2n2`|67Pr0s&vA(NM~5JQfH=J#W;p;kpE2Qx zTGRc>&3%1aTWVhK-w4*Elv^^l57wB^pD~?_m)1bybzxI>=Z)3)@!f!$&$jkm=#8Z8 z&t-knWD_$5x|9te2)M-H^f(aJt{u8c%)(%f$HbZ>b;iQ+0P*NnGkn4nM(qAm#PL{Z^( z{PZoIz@>Cx;(Y}Osvba4XFk6FCqb>T-iYm8=9Rc68sF!;m^1V~4}hFaQ<)=w19uPV z8;Uw&xM=d-XXitxFE)434WC;kxU$KY!kr3IT=bk{Sn}kc@<*K3{w4eq|5Ny9^oQ^- zok8i>O*wLltp|rcvGSPgd#st<$AUll4V)=ebwqq2%Ja&h|D$Pd-wx^Z=QFjpz z6L6~EOB|e4-i13i;F#d={qbtv+77iFAIwX!Rc_mK56l!K42pe@x?7x{*KL0s5iv*Q)^!qhx=Hp7Yko!5TX<$ja3?>jpi~ zCvyM7&{@sV0#uQHqhgoP*t0s(ZRUat>%E2Q%(u}xPeV#M3?0#b_?&!;iZf3jpntl< zbj<}XliwqZtJi00&A5cGeH2rbk12!g_%F44mTfUOS1?hr?M=6CZ{85uS?*Oz6p{Vu z-XZg4sC(Mf?9e=sCAVKdx9s3Ft}8Q}sV7Nmy~pr;?U*VVBq zBVj?6>DaVfcG-Y;oGA&sJ)KM^zFGqXQFWO!x*t8S{!IMk=|WUuv)1@eHt0EjC}QTP9y%SNW$pR~Awz|Vib7ASLrf4AJo8`(S0efvngOe;7c(rwFY54rN$ zdhty{I|YgZNqm(nayM?Ox&Ie;WIkSz|BK6>@&uc0Wer~ooHMmkSAA#&i<}&IE_FRS zoj%}Cl$6vaG7Kka?|Ql96O`iffQ5AkaxZJMXGPI%*2cKItte7WNv|N6>*1Z}_rgX^ zhH!BpKqTf>r2W>gvTQy`F#pAKE`B$g@9J5u2rDkAzq`*shp-=lwm~6EVBLYdAVHr_ z#Ivbe&yp~cO6lniH39Vw#W^IC`aDqkrQmqjz~D~#`OBL922nRyezK-?X}bfKo2_BY zocAZeUivr=RU_3sfRKxv3g)HmwB?FVtaU17TrE3khgK@}AtzAk(<5O<$<@#^``OUT z;h?qmZTX(p{CpKYnP_~YR-4oY&iwYc{~QF)y6{z+5=pz+Z!}z+BcvX=`#OqJGO+2-{nd-@ca> z=C{jlGXgl@)tE4tsxK>M-$4G!%hWr4ee5CeY1b=ujnA*cy>cmv?CYt=Mm8s3n}4{Y z0H)0X$ynsYxH=K)j<4)17tup8Outp@#S;4A??dNsuAlWq6uQ=!@!&DLKkn)T9v*=@3Y}%8 z@_4i1boIp#&(bSW6ZwheL%-kqUZc$m)b)N|`MqXn2j1**O#WOuOh&))@9Zq3F1@$g z?R-rJ)?i=%c9)<%XO4>_yIh3~eD^Tlj!ciZ$IWDlGY{*qt3;y6)B8D@Btb<}5Ia8X zc~SD_wNa(Wru{*h=`5eCIT0zxDSo;&u`Pu)p91Q3#TP0!K2gh;JwS!E)OE-E&;gJ&&kBpS2N+H`AB$ZdBnNWwhjqH zm_w+|NbA0ng+P=L{#@l!@b1wQ&u5WeDRO5knk7vsNkxyI(0Uoy6Bi3>gX56ksWyt%I} zPeRK(E5Z=FLa!UP7$S;DL9#&~F0YO$rpUVSXRv9(w@sGg#BR%wlSqNT4RbK?Xwgh^B!b$C87Mhl|vl8=Q1r%^h_Z9E7<)c&L){eP%? z%djZd{$W=H2}M%6TctsXp&O)Bq@-J=yFo&_8TqkTA+OL}C5ZP~k<#b*=a`jxlH`0DkK( zj?J~$W=HK{W4!e>aUikOCZC7dljoA+`oOazAbA~)Y)fjU7v0NgfT-X23mQqyU0@d6 zYC7}T6mgE*8snK+?W;yjro^Z9rZdftW>m1o;S?G2p$$0nbO|A9I~Y~xAtk$)n7~W% zBKzr+T2lkw#JaEgBVrj`<83uxg^=34Kq4UnsWME| z$?GZW*-TU)~xJO@?pY&7?mRi;}D6fQo-y}yF-Dr)?2?k57E%x2s@67n14gqRv z%yvacD(ltB+{JYWWf{Jxzka5gWC&wYGqnj$d31tM7y+dnzg9%#@N@$0nUU}|Cs?^8 zB{M;9Zk4yGJm(HSl=-9o4Kuqw7H zB_y(7U8XI$LS=keC@s(tU-c>IUQBBgZaQSwgCqbCcV|-^v3bU~BCcGa}f`Q^sd0prx z8tXzsDX>=eUN6KkmYK^;JoXRmEufX(LBi?(9&e!0f&V!o;JNSfKwpL1<>%Wid8lMz z4eC>)`z8sGg9c>AZ{S4o4mvzk@l$w%A1(oP>*u59t#^M&=@NrM|Dbj1jq>eu1G9>u z3aPc$FbSv=ZG_J$S^&8ajg)y+Nr_d|WVRV>J#b+DLpoV9TI$s_BVJMx!uPN?hqrEyZ`|0^z=B_Koz9<|7NF_ohZxzh{RrCOcWxO5gwK zNm8lW7#qLd%K=7bf7@Nm^OaUxII-QC>`2ZuLS@%3X=Sj>F2b(h?Dk9UXf6Agi49Q` z&CrWM<}&|~3+6Q_%*^Uf7|U9v?IRw#$7xz5r-cibOJS*B1=z*f-zD=d$8Z<3@iWAG zWw1l{HT6!z%7kza`8uUvH4kewSGKj1QDYlZDOZw7udhkWCr%r#pZwN?t^AzRBv0CMAOKf@!In zq%fk4d!kaM-Q?>P;hdODLS*ZlwXpC z4_L4NmD)NT=sEm^D}v`lU}&lom|9q|YA7)zZPPw1a;Fn9x%a^K!bOr4+q5On>no3R zsb3Jqxk(;o$aoS#_(_;O;U1qgFj%hWS?_<%d;hd4y#?p|9y-F2^oywL| z0YXg1S!MQWvx8e@8XcoDp>ue)8s+l^=9aEX*`+oFjS&2@3qO|E8P0w5yKMw4iVXJ2 zG7jSAZV|Dv(DC5UuYEkQAocFFA5)RkF6o8W91?>?WIQB<+}-ZKO2PcaZA$>REi>nM z?Hh*w=p5mrOhE*TG7iLpjRL8W>NRc0{B0}qsC*7l1`EXKFYDatxX_N`XCZ{&fd(9@ zFMtI}Vc8#8kNB`>bQC_YmV>!fWimBloh$nr9DE!(7AT7$*D8#9!{PmaFq|i*ikx<++W1j#D$UNwzmQ6 z9nmDEWh}_K?MH{gSGymrSh*ypv{SmuwiH4tgT7!b(1a9SUdex`v>W2EBXmF8Gr=-t zXvc@fvDme1R;u+sh$O&@=E76_C|U;Z%RmhH5oP5bBod=)v`?S*$4o__CsV?V zp>N&tW8>6qx4eE}8M4|+@rf}M7?>Ll$hGA9sG?ttTlJT#k9zasA9VVtny?p(m^>;cjzFUO5;gdB(h^~Y~jxM|fhcBsE}?*x5~JPw-B{T|J+tWY8H zwBz+$;ll03H$(5i_kB&7M#K15rV7us1k_Y5t1^1urPX6op3j|eltDyx*Gv%B?C(os zF14;hMT{~v#L>HUM4yXjjrm+7X}zEiuZX2%p)n4pc6rAY&`w}sKWNst7asON!CjeQ zut*XgeOQv}8P*w9ck6ybsgP7=;xdVmBN<9J{hK?V0VnBocKpe zXQBA|s{7;NiNw9J<$qNOS%v%t^3rc zyqQ&xnBVjZT$j{6uHH3?QeN>kA`ObXy4tO35FU)sCbd`9+%A%iA;zm4GB~z zYPpkGR+e;nrFrCqiZ)B0^@)vR0fyAqky!*_iqL5-QFeR-Zp@qiU?s*=DsDA)K>X*nR z*{6OO(_}Q^y%0#E*b=zk!Y015`i4o?CJc&y5DrWMoejxIkvyu)r>3{&i@DaBo{dPh zqj;1{9@4m6xZy9s!-5%OI|K^xh4Ml_bV*GfXKIS5cgVkWw!X@Z6$79;=# zi`xzlvG?=y&!L_dW@!bRq|J^W(ULRZ(6dlMGvp3;);fCx-m7_+GGE1uqXD!j!-#aH z+tyESrOda?uA;(0#WQ>`K^E*C!@8WZQNFY#NHN!2Tp;`rP2L8B`h&)tawvn{eiU$N z&k-Pp6NM5tubv#J;vujY9+UrADWd{B+VY@QusiQJPtAdr=Y4e;w|OTPxmO!xqN|(c z`qSW{13g+h%rrH-AH&t)DH$%f@CA5_&?8oR4~iU9{URpa6Ibt;Rh_~LV7xe&2)6bH zX^(vs@PAU|ob4{3tLnh2LZlWS!7%vGEx`W#IbkStqfx0}(6Ux_)o-v=ef8#odRbC` z-Y(4>{GYXR7LdJ7nHWWSP^cmE?cgT`VIM{x1- z6X^w{>v#A-A@k^a0_Ps<0f2kNfGxMm{ENc$Dal@5+j;=yscEsn{))-qbC7f3*!DXS zpFE!!iip#Rx7F!ALFPL@6PPB@n8!|?P2&F{g1q=MB6_oB9KI%PjlVXh?*2@8)QH7dI|1*?p1VnlOW#L{m;y=LXPjdSf z>jo7_&Y~d-rgJJo@c!-Z0G{ojr1O0n{|^6Rs=`~y$aesu{gU?oA_@i*X*Ry&{VV?_ zM!dsK4m~`@8vFC1t%lp>@BZblg`ajpR6vS}3UmpUkS}KJ(U++0Mt69q|CR0HAXkcL zkc;NXEc&n{ST;85>QkDU_sByvZBHI~-6Z)R1FVH{*@V3;R0cj4uF~1PXA^|Jbw)-< zr~l1tUr<8-4zS;Pjq1O}1t0Z^dfyU?qh8D!!*Ly8=gt+!D>ExyXfxKfe}&%gtStNm zxI9jr@Q%#O>m2?P{NseRvRPeSIC~9QkU+Votd&*+3h_dUW(2pYuZLEWfUj43{Sx3* zLrj^8UzJh*H&M`+MB;NB|4pyGx{&q0{q`vamafz|J1erb>(=9+zgz!`v##6L z@$0e6c&@p_;)b1SKA_n~xT|$bqM7SP1eB@MP;GN61>;3MO#Z~O< zAO0#okzphFQr|h2$bK8Gc7=tAR8>vzDly*oFM4f7-SOpqd;`1XFRlcoUN2nx75B4x zo)s;G1>V8BenDtTE%@5fjU%9b5w6x^*di3TJR9yJjesPW`S83>;#g7Dc9ux{I)x00 zTVb7}tyW>HcYuA}xROn>1bFypYoU$~U+kFt0m;vr?ci`+P+_ddp*sO;@)k%dIrMU;oyX}B{WIT8!0HmJiZC@c2ym=-IkKgLv#9T+(Uad^^ zy!!R(IZZ5kRrZfZKZ)fIhCjOa??e4P^X%uLp1URL-_BNY9m6lQTGUE1cS)h|)NdWZ zi${lfcu+;`PLskMP{^D4?XB_MrdU0HRvK zZNyM|yPybOqp2k_M=WfmAD6aPHOx2SP9Xv)?ITR*Y3>1F*(^ z7)Xl_o+aIB!M!tq^NKA9|6VIDwWIS{%|hzd$IC15?=p3Xi^W07Da(U{iiRZqFyXm| z%bA-7Tj~w#uJ<4szyT0yx_*g;9@pB4$J91cmDVda`dQs@raIxM7>m~77f9uAO zRwO2-h1TLc$mpi<4#{ef)$G(Rxcoc}aV6@@|_AuP$81$R=p> zqPB=DERv=q6>-nHZHm`-9~5`o=WBf=+jpug#ZS5tovcdWc$wmM{e$0H3!M>x<-^!M zK#Wq9C*OTjtZ#|tj8UGW?Ujv3_U<_a=%-iImvE1%e4#dp=6?yIh(_t%H*!7pnF-dzL6%&pzaz^XX6T`e-_c`&kMU3=>HT`r*E?9EK|$Z%@d z9@_Bg9SikZfFB*szp6FxyeidixNy@pQ%~;-aIerdi?k2h(xf_QXlClX{1Bb#}! z^2%kvUd$MS>@|}_2SJ5cT1{apx8OHqj2U7+LBDO>m)k-V@VO_1hi-LFIXt>!_U`ex zp3`Sbc_v7+I}IwerLFp%+EhlR-81^lZRYwjZM+MR{40BZt{{6%OI*%!Ya{E8P+ZQ; zX(Rt_X~Vn} zSKL;erIJ?L90MMoHJQ3OJD)2Q^gvI}cAUUOK&H6e*l#n$ zr9$|!V9P{n2xf-hnz8@I*;J7=69Wlj}m)uPjW4m?7VPGKNG=h#eQ8`nd&0{W(wTAy<#j%6^jpqFQH{T0Q>TEXTvxhsjH{|DtGM;ZHEiw4)CU9tk zEXJe@EI_+#^$#M{Jx8-~_hGpDTQ|=xz0LJg3ra1AIh3;ZE{TiP<8d_)mRWF3F;Pl* zAavg!JQCDUX;#Cx;A050(1_MAT?u1VI#Gdzf1z==bxKNDZhhxGQ~It|PtCAqBy1;! ziDLDcJMLn=*?C_?(kI#d51co5PPCY3pXsyvxIAzTP}+|1?NgC~_D1=JY0cH+y9q+t zBiwtQ)z#^kyt+>h|F zA*xBfeKSDpj;+$4SCE^At*E@mzJ7cr*M7J+Y$}j9MPuuW{ z2ur+Ix1|T6{x4_>({DdKwk}6Izav8}b= zL}Jfltg)3A_vh&36VJM2X-dJ)E9U5UGzImF%ZSSJz6Z&SROw;{2l%)$#%2!TN(dJ3 zO#E-WD!GMCU2jhP_MryRzELt>&{9NjDyx)x&QZ<8oQV_$*K)#K+a)&h(3A3XTgovF zTAz9`E5CC!j-am(?B%R=PPszb2P8C)ZRIpMRxi#}-$~WET`O}TEJf23Bj92&QWay< zyu4{6N%Q!p)O(0FN$4Azl|K@$n0A<^icr@-Wgyf)kR(&Sc1pzPqoWe(+lMVPT@cwC zs-1dsX4f_J1G~{VEy}H0gB)>Rf7K3C+|DdPTJ`2328kWf#nL6_h^EWPXxG-8i!dYo zySKKZ>>$(~AA^KgjN-Gy!qZ*zFIT4o?h3J|RMsJ}DWud&oy%+!a_)zI%CyLq;eb0@0W7Fmi**grh`zBY6pjHH6tA3e>4>PUiBV#p&=TRa{+Gaxp zpOz$gw};s z)rff2)t|C>;!*Q|-MlM+b>y=|8FA#TC-BK0r9wODZRMV~5o@%Uw|?mOGhdmAJ z@IK;GDRaABYYwHUR#N=2tsDBx)Mf*c8+}yxk|joZH02nB^SyZj-NxoTf1eMh=3sRa zWf8&-Hz`r6qYrB|aj5w#Lrnkxw~Z=A=mOUdvaPlnO)*WRNMuJ6rVf=!k$esDbH# zuNTp<^%lg*MHwDnq3_O!X_8=vxrj>QY%59k_&P5&bCD+3GJF#9agD5%zM@v9QhpM@!mCZ0wl`wYl@TPXIv_#E8Ziy8Y3I|B8IKeb3h z_m8!}0rr5{`}ys(4ospQG+qGr)6r160AH{{J|WovOFFFl0g|GkZx|P)ETY%}D5?5XSUXNO-JwrPk|iAyM~c(fj#U zl5lma3^_73;bsULE*{TbPOw~8kZEXDa~pV<-KH*zx@gnN`WTSI1F!(B4OxkvDCF7eV}xren%Nd;;Y>?!jmr*%&@6weTZ-DVop> zbn=x^wp<8l3ew^S2tC-#;T2UP{$2w5iTSB*+fCyI^F2(4$Wm%$7)Gf?b8i zapjF5>Tj7(%}p(szBoIXS;5^`Bh&p{hVDUut1cLnaol0wK+RPyT`~leE8f~_^o$f(6RVlnCar`c=qC~JoL0Wd!p$O z$S?`C;V?7e6VWKgo{VB?i4uKC%~0Q4u+cABdz(C9o?aE(Bc-Jy0XTpVUq4-c&x zHC{v$I0&ZGpoP2`TC8P5P0r+WEa}AXX|+yHH^8Mr*Qebfg0Kud2-eg;oS#xO7c+or ziGez>F?6+!*61Nm|3h{R>`@Gg@|(~}PP?Jb9ADEF=Z9PqnMM@6edf95ZcH<{<&{}c z#CM5wUQHqCe~Xm>j%buL%g3!WBj_m+Z!K`qIiKCef}pLI*3L|>DDkD^ngve2PPYEo zSHs?4{Q&gSJtA!E`V>OJthjPbJVCLJc0?2kpR(mV5FXyUNpM-k{#e@nN;fHXWbt+{ zkw3W!wqh?&(U^(;SJp_>Cp_fh6KZrXP7~Ehrz`uNY*J-S!A1qxGivq9ex7667W{5{ zfNrUr*=!uvF48-T--&E7lws_Z%^}CWZ^PwL0x4hX61NXAGEN$C-(JzPExR+=eP26j zKNIO?XUBhK2#u+%glr}U4@4sQOez>Qc<}SfO7SgmA9Fo$or?3Bwr&`C!WYai>L(Jy zHfMuZ-^3_eRIsuB6!gWZl0N7|wH~D7_G?MlJ7iVD(B{>agqY$=z(V_lj|th z9T@Z&9FO+v&={}c^2bSHyj$#!(9_S+$P#0t599KGzyd<%8FYSdq-b=Rye!}0 zc-T7}$2+tQ&V=H!WyQjH$KO1f!igB$*E{rIU1=1G_TqO9Sd*GJx7WQlDE1h390!-c zxeH$Ha$dc})?(_}H{WReeNXw4?i(5pE1S7>&VrwA19Y!eelp|ix>_Lds623G|a{$i`~mc+n9?C;rwK!=2v9Ow~xGW1kIX zVG$K^Ck4gP^w!ZMZ4id{>TKr~?W=IP`x*Y5O0= zsl^{t^FM-pJd+7Uk5&DtF^i_w>-wfGlXgIfp83VP1D|Dn63qNXdHCU2cT!QBs%77h zwryb#b5q40r=8Ot0GUVVxxi~BpT!9a9KaM9oxQ#3F25Hd(b?*wwLz&)v`EMrfL39? zh8am|8zk7lU7|I#eRm9-Mo(0jd|KQ$oy?P%h)+U)-fA_(PZ4>W)3Gb_gI7}OKq4)H zu;hc_ES8@g;@7l4h=?8z)Vvfm7}(MX8R&8{;*Aavo?9L-CTR9Kh|BdDYdS3{O*r5B z`1Pu0TWEVc$=XjrP`~wZC1a&$fIS{ow#=(dk)r6ppU*kTuUN31!nK z3UcHZ^;fSb7-!h3Dq$sp1U!BsbDQwc31P8Fko>4z)2KidL=P$O%e3L0+7TZVT)Qvk z=+CoApJ$~yY`Qdt?0F5m=FkJ{PR`;8V5a9;rm78=Z=bGEKDCP1H3|ZJO|KI{0{+7Z zwLWalFoAXt9BgO}DF>P_3Tik#F1c0*1NgZ}6iU1ItGHN@D^39pJFKZgSQW)3H-XO| zaPs{fE+(Xz{kzh!Hqx;klf@edob4#hd0oDEKYtiR%$!ijZOipQMg6!Osf-3eqpNi>84Q4h5+5|Nq_eWjw&!V4F1;Q}58nvyZ#rQmrS zGoiU-)gZu!SpEi-IgV_)qD_9zY&ZV)r+;|^|I>kDnrL`e3LiE37zd*0v01VQrlw2E zcX-wDda%wqUP6j^qP}hM;B{yivR-s7p~CDm#X(SX8@uLthSdj6I&C3;olwXHsj3*Q!__ z_ix{Ao4X1}PA`4aqy2lBVIy43{BxC}BO^N+uwLQvw`OaY$ijIsVtI$dVOp38@CW39 zbPd{HgA=Onr(g%tbBSV$zsv~HNs;R53Xtd8&p%e?o>rgF4SbSB+~ zJFZfGYF=W;R6ogq2z4JZjsZjkdGG{mS)JVHM-{-Xxq*1u25PWhs&$XO{w6)Xg-?pa zJ^V!RB`G4^hq9_cgkuvER&fig?B6AVR5m%DBhSTk-4?Jm_!~JQMCK6zn`rgRZ_(>< z>!x|aBb)zjRlW@V#Y8MHRJ%Uyncq{YGiK|znhji{#g=b>%_IM` zQoG8rt>BI2EqMI*zZH*@kCE~y@qRGsQj)-H!fGr({_Svsn()EcmgKZgC4BVgpN?;c zf6=y}TT{g@^M7p982GHt#%Dx4-snF*J%A4sO`>Nqj?7ZY6ySQU_v+LH zYY`MHR#1P3ZvNBq!Bvj^=CAZ8M2av+F5zjnXwW-LO5v$s?!TmR9&9VOt=IG6rn zZ?eDHTT1SoU+nFUZ(sQ(gBXX@r3ew96aMyfDVy63ibn`=*R_^kJmguePm@J--{&-b z*xG&04($o(OFVZ`uTp_|EXv+Oz7&zYwcp(*s$@S6yw z-R?yYAu=Hpf=nzAy+>u6M{Td*5lwp?$g?&+RC>|lx#I}?CRKM&x@bH6%13Q>@i?_) z$x2w$M2FPfB^UQx%!_JQmX%|W%Y)NtA&^0Qdw<`tO=t>5_wvB8tw+M}XnMtHPwV-L zr6;#DsaL%xtmanxWU0rlO&Jyn?rILNtf3{Zo8szE2K4}Rc3 zm8!Ed*+L@zdn)LLKs1=__o9H`NpzE|J0Rgr7g5E21YzWcwBXOFpgUbBn7#O8?O$+y zG&?h=7Rh@e*(io>5vc;r_3jDwOz-3uxlLK-r5UT_5XPJy0@0OV;lE@K8FLR#Yky#rbYOfK@_kX$dFEu_vmJu^MY*loCC*lQ0yTUuV5(&C1~EbHI%hY`$0 zyhq#P*7>Ya;c`A~&FitQ*~A=NKF1oC0-+maMxSJwVi1~R^^1Sap+EN-x22?SaBHL4 zgP*r)bs|X-ur-H(iTC7oGZBemQpB=@du>}-(87(?P{mR&v5I!E?hQMQgY|cOB8i3| z3+S*;Qyov)Yt1dUQaB1$t*?!{!(fH@@T=A4L6Y+Jy+u|tJX4lloH4bdBHl{vf~v2| zawPL$&?gB^woH{6%8ub5Wb>P&;=N4{*Zgt&AC==JZiR!!`_+s4FdzN-dvvCOYTKVW zwi&{~n06!B)mBfmbyJIS6zk2Zj`qV%S1iccO|eDi$4-9bfy6@e=dOF*$aGT-?)%sf z3Ao!z?rFHQVC%-%o{1V}`J6w;fCUr(y>A)1Rvv>L{;yBHk(c{aE~1Ld6N=X^A$M5L zZ*{FJQ@o+Th769o?Z0gtnR1FgJU~mHi%b+8>11tT`4+VoaLw4vO~LNA4GZ*;e@oVL zIMxF7%{c?tnVO~w$sFj*~raOYrd4;3V2;|vP2pel-<5b}0~ z6goAdtAKIGg@W-4>&{ONx=RH-Hm}5c_m|KEANwz@Mvi3nX4SMs;&!yXKYL+PHeS%P zx0GkP4{^s>X16bGfBMP|gU`ue*go3c*qooGVTu`_cJg!8V$W#Z^3{QrgNm8<`v0Jt zf8Oh20p-VFzq(@9|8^NQ5cu2Q=6)&XY86a4>4>7#p?$tTwO(EYZie0(^q&PDI&7;k zN_I>#-Rn8-F*RL2D0TdH&0lMVufe5?qEL5yD%kiva!>&FpHId*rO{dyA>$oKZVm@^ zoUP+TvaKJ|@9HmS&*)Fp<1Tb2qO`3AhsWYf84BRicTgQ4lwY5L>!&weHImCItbbp9 ztk9o*+HY=;Lv>$IZazy!t!IFaa1~rU|DA2}wJ{3qBM@eXJTu&&e6zVx#Dhxa$`^Up zOtGEYv*Q=m>=B6z^1)Mj%Wj9!bdPCVgs-Tu+v!;e9vo{5f4N5-9V{-JfTWCTdD(8< za4zI|Rr@1OwSg7kAbPBA*_SI`=Q{B8Y9l^$<1qPZhhe{ZFqPrO^@;ml9^G8b9`4?` zk=ANY^Tq7lG+ zU<-%Z?APxFLP|KK{&Z`_F7+24S1QG-qZ2jOxeta`%fCuM(7Qe)6f&)=~BAQbRwjxk3mvnFGU$}$Zv}JZBy~ z==r@kcN~y>6<%J-n6~W-f~s*+TV~o7G~IpjBx;u^%2)BeY?N@xx01xGYh~9`48^f^ z_nj%;9;rP@dH6j)J0bdc)|m?My{Gg9y{~=y>a^+Q#gBKv>bqw4-Tb%w z5x6)aAf^0eFYqSwDJC3JQU{o2_={<-l~+B(dAP}8TdMf=X`I3vzSI~h4#}>RuYS_+ z-SwL?(;D8M2Cj>X_mw2d0KF`32gbwV2FrnU9)G;%rQQ;)&06r08e01!`Q;3{hZ+@m z<0dOnM+-}5Qecw(@^uh4pQ?;#&i<;9M9Ql@?;1s+!a)N}PW+*TbhhK-DJ1K6_$2T4 z{MUs79%nc`B=3J=5slGa8Cs_PwqaoI*hHXDp+z3cv12#4W8Xnei>>fmI4odbZ^4~p zvF}eVdFc9VgL_=`xv+s>v@|Y5x&gBv%T2nMX^(K)Ubb!uf^q`Ac1C}oZ?wcOGUdb`#ORHGVPB$-xZLo%AGg=b_k3X{yy7DKZKU>qV8rC1AO`SLouUhM|Wpex3|q%KGu9>Tye(D31231iG@$P z8vXZvQc01XKC~sLOc^gGf6+zGfTT>_=_7ZnUQ_WGoE;qlb>FUJyIF=Vh~a5u1#eBA zIO>b(2@!G(n}rH_->~lXfPh3&IAZ%lw+-YFpyp^~xMyecmf$qHpxGBAlIM>qGOaU{ zD1+qeX)74e@^KP;K_fnE$&wTCc$B9OoR7rC^zLcCK z{AjP~z%&VsEDLt`V|L*6rBB0S>ExHFWVhK2h}a7$zB1d;OV&b#y04=*+3oPbqX%70ni|d5W0cV)*jo;e(f* zngB^wCIhE+z)h-yKzhd&fIp*K>V09HKBJkky5}5d^itO>Htjd8Rgy~DW0qQWg_rK* z-VU~M4z~I~Ly`tUEh0Tbg8>ArjQ%pHzDVH}@90p2S~f`qNN5$}tT=*P=Ry90gEv{?_)E62jm|yZbnY z`J2gL0;!MM;J+HT;FSNukr*a5WF1m*4bzEAq|dE>!bn@Ne0~M8$ea#XPhHV zNTfUZPZG&O2}tB)gdl8)b-OxW4oW5_z!W7@E6IuFB?$FEc2Cuw28)?4NS0}DO*(CmJS^! zqSB@`Pf3riU+yk54?@KP<3XiA-uLmZmJzelsu;Rio?NL^` zjIV3U?F2(6H%S+#ldXbdlbm`(Y3|f~o3SynEPIZ?#Xz|FogIw~rWv<8o&47D4SxE^ z&iEg0$!yWtW}^Omqqz^n!1CyV#k;(6&9##+9Vu7hh+yU1EZ2L4)<%*qPlU#Lh!c;; ztI9d%9S3S>@_Opo2EB8Me(S5%TPWQ4^J-M-1}UkF{o&L^5OFsTL8^H~B8c2Ry>n8O zOtr7Bto%VY@=HKxMiZjY$XxdxGkAXFup2jc!rLNUxIb>Jymhmm!ERb3>F~JSnOjEv zVJ_`E`$9SJQjU1D)O*h+#c`1*LEVVBxP2C!hB&IlNFoHHXzNcFAE0|(2)Ez2h#A{E zHQx6Bybo{x`5bBi3*W@hIIq<;lSbob_VblSW=Dx$N z-o4db8&tB(2`={z@fljAb4JE()Doo+CfpON^hO;M>zk8oEOOL#hgwV^!|Q##*70$- zT=R@$Xj6BR7#y9b4)-sGu2fw~>9~A1WP}2E7SYLIZ&zqVJH}F-BW$s;P6oicf*LNf zElJ{vm_&)!XI9f^@^LK;cC=oRPh36_fGMbUD+>4%dO#-Ov@@gj6$x1q5bKbD7)8p4 z2)e;?&0nF{nSvB=7y7|B88nT|=RW$(u5H+cW8meLkcC6$x8X4y@BX%ghA$^|QI;_N zfQb;MyIy|E%B<9FA1Vf=jntH!5&?8#?o|xH3z6JPFgZ`32ZX3Q!*H9~rp#xl19Ox_#a2 z*0)wd#KKDh7>qxlaAcoXdYLbV_`Ln57VblGLZoQ1Ko<}j+*e;s;o!;l_TF6N^Eltx72?L0*6l;uMn@_h^q>?@ zar+5U1(a1&Nq^kQXw&pi%?vG3j%2TD*W0YvBu7r-Dgp!EqI9251#XUo`~#hH#o6^0rXu2sdU%5fnBGxEPh?7p;VZ=eqV>=9Ehl zB|J9~unu_We{EnQ)wUuE2Gc&`?wPa6>S8%yR-F`SE%piYK@WBNIV|=-qHmysh zlv&i|POfPmzd9Eg%c|S;6?1BB&LC8bm3!dywbVi1#(Apn@Nwk9C~Jd4it4BiQLUfg zRUG4tRB=UYTi@)1=z&1DC%<-G9;oc-jsbG%yt%eoz^r=jt?EU=Mu0@EV5l6@kO*eN z$Am`Dq@p5&ukR$=WL1*b=mQpVcZH32I?P9k@EPCPeA{_gAv@wgVRhEUUeR3RQ6CbN zu4HAfIE?2>+!1vz#MGR~*{X<*JUGXm`jK; z{E)!p+l9MGP84zysL2tixBUq>la(;Sm;*#4%!@;!Wr)*bUP1i(BsvqR&2NWy-Gv@r z#;I-gB%oA>)cS_$2vIVi^H)|86N+yb9zRLH z`JTx-p`JklS?~hUM#nr)mjM|qqrnF#|Fa~*=eOt2>Ni(m_1y+nJQTpzZmrI(3=E*) zvv`C<5!7CG%PKYT#XMz@8HM#|`6OukmVm}D6Gu)_Be_)^etFU9SUmZz^4~ya4tiVx zx8UO+koFECVTdEL(%mb#He+T1wsOa2iU($?JxvWKoHy}&BnuL$njpKNO_rilSSFwE zU;lH#?LCY%(8TQ&neaXeVkpo!;WAt$GU*fPrfm?udX%md15d&RP8|hK`R*P426L4B!cJD5?>t7_;c_9;RLSiPGxnQ}Yp;M6Ge?4wSXeo9> zalDk|7%BHTM(&Uz-@2`J?-J2|#s#{(+qceHGJt0i>KGQg zx?q0fPLT@nV}BzxrFPuqL<#{8gR^T&--aX*EFPDCuow*#3XLq%28WCp=~G=qxf$Bqi( zei$4vfE)nwm^whj$O%%6TPjt{>nbuVFJ5S7hDoiw_)f8;vI^QcGv!+h*k1KLRMCgL zJjPM9+>pOGJ|KyBMNVWGuZBJm{CnlLx_l<6oipG+8@vxxy1W@Rr_~GOFiJ$8H}Ju* z|J6IC#Ik%si6QW|?Wg+6z2jBs9M7&!i5SfCAKG~XajX3XYO(_i^8oV-5m^o>p1@)i zMfo@P6M^c6=nXQ;R~C$UqT$*7_dYEU&F#-3rC^{sx$ zeica|Xcz3c=vx)!FKV&$3HY4`Hb`|5c}gUnqt~le@D_m_8R(Fd@ZU|gp>?=S8M;$8 zrVZ#??sYxzCT&b)rmO}hqx{cvn(HZRUg|X0f3b`uOyK*f@KePUtcLc8 z5YNRo{4eI-0xHU`Z5vimq+3E5K!#F~RJv1?kP?tC0V#n2r9nWtTXF#DkfD*18cG-h z>5v|}yS{5s-}|}W=YIZgeQUk{TJKu3T!Ys&``U5tbD!5f_HmqNrrzJ#0J5ap5|Ez{ zg-KA~|I#K+)18Y-qWLt*{nM)AuW(TB10Hw-DxeM*;hhkcK08}##4t|t1hCS!Z<#sZ z3-L1)N{u4YC#69LBBT|V09K?IPHq&A*V@6Hne%z8+%682L-m$LE zzdU{`FZQQ!X=GL;Kdqw}hMF{nn9Y~c$L<#qzwqjjtHM*S*qv;YDuXnW@j{(p zo{}$)`U{M5rFMF5nJbDW3w*F@KdR-Z;rMVdP2aAR1P+Rk7Th3~RqBKpTSE_|Pu4yu z_J&9bp<)-pG$fbB z0I8EY3bq@E%ia3j|3lkg=5E`H|4@(}C00krxS52zJ1g%L|BKJvJ>QI$8o)-H#rIs2 z2N2h{aF4oAA4ohv z@i$Xxg8PcN<-tFo0gVnts5` zjETHTqRN&B9AzYu_oSaK+`Da)y}EPv;hV>%$U*75UWm>zgLE6+>iGk1m+z3ss-BTI zYE&Ynsy#`(tOv<_4-c#~leJ~0L|pS5AvuGGxtfpJ`!vad)o&{Ww}4qb3iB+BP7c?P zSWE>_m6+xrh6DMu?(wXUZ*f3JKZ?*$k#b}Gln?!cJc2nYZIyb*yTIRW&q{xNSaR;Q zF)K2^u!x^jLmzg7O+?(o#^^{dl5aWIFt zf`ekh0-6LSo0o#Rtj-2yny|y639g-kL^XYyZrryaq!V0r`-Y{)rw{CG3%?0*mMiIL z3$sTocuv(p(0>7!84b0|h*#6H{O;Ou`cD)?5Wuk#lFc5id%&u*8b^3qooZ=Q?Fy@Y zyK;lmVf${WTZ>bvX&<2-a`2Yj&RI*v&8bdKub|+;Vqd!J4ghf3yC`z$^eMFwO{RV7 zdcShWH7lZ_2lNoGA(mfK>z>{e4|U3`+bSgpeI5o<+0K+~E>0I0#KZ`aV| zVMV#u5dd2v^USnx(orwzzNh{n#k-nzcu?aZitTm@m%GNp@O1;4^=)@A&eRK|8@#bR zBc6Lwa`y8NxSE97&@PLjkP+*P*0G+dO*S1EHx|;vqG$@fND)1xXJL(^he5W-a#vw# z&Z`WGCi}cT4FmIQTI`tFVqyKME9TY%#i6OW?Hp^wf*>g}k|qPsX6$}5Oj#ahW%>&w{J>r8$QMSBNk5LGaCliV=9)$DtkImxkw73@-))*u zZYf$qJn)z=3Bw9d=PeRF4lBJt(ulmn1}(l^D9gPRN^`E0+>+l65+yRGHA_kt)u8$W zCkViQaNru7(8V$iFf2JOPz*~7>UbirVcOtk%^wr?NV{w3=yO_<$8SW(!sG9>^K-(C zr(7unfP|p}T7jzhMtKFg<*;kn*B{W@LflC@jfn;9ezu8|fw?;5D!I{qBBfMncjtmX ze!;yev zoK^5}HZ#yUOT3pVnDfkuL@%bD9O$Pfot26ya@f*hVqyGf^5V%mzJLg;`gc407x$mO zL&DruIvEGuK!;CM7y~&dK_jj7kQ>_3ld7HRRv_ytq121NF zfJxBFp&V0c*bC2loiW*DN+NI?U@PSY(W{k3+Vm<>*H%0qAUT_>1b@DQ;%quOu*Ds{ zOzED%5Ik5j$z%%QdNuoi&f*~8nE1vl1Fc7f0AVEeBjG%}aJLmQsHBwQJY{t2+^g*o zUpy2qyA1G^Rj767al9tbhToz1` zCh97~1uq9rC|O_o`Ysu`kKfVV4I~1{X(MQ4*JPmWo4^@*KjqWN?`5_``K zAWkjKOsbDYd7#k*9ZBnj4SOMJB;Pv+(mtWOQM3&MKSkc|IHGvht-!4L9naocrs)zg zQM1&l*h(d55<-W15*&&;|W;MfQ zRqD>OYn|iF-@9OEicHYryz9Dj9Z`CX+e;+@A@?k?=WbdYb^Jkg$wib~M~8*aIX^(| zgz;4^kk13DXZ^WEo7eEHE#+BT+N5*&xNIR3Z9Q~P$4-b%yN?Om@2z#wm*+a_wjpJhNm(vq2PMom%YZbK#vQSv#C>~_=Vg0X7%4c%RGyEb z5ORFnOaSDEks=nCh#6HMnxiHGAGye~4gVepVvz)Rk5sKnVtWAj>UDQ)tY7pXk16E~ zTVK3z4hQQR73~$Gs&3BS#pN3Sk?-hef$UTgNp2U_aPI5MY_Ec&=7kV<;{YJ%8_PsY z&H!&Kxtfo2rYR&RIvQMEtpqU5=GE=j5`7Sf45&SsC2q)k^CCYxEh~m*dkxRsNW%^2 zt{j!w2SuQGE#9=Us;A3|!ZL!Ce1yv;n}p@NJg)A-wW~OwB`pa+rg-dVmR|G3a$;PJ zO$>e__qovEWur|Rrg5rgW?Ex21B(?G1KnFAEuQO8VpFfyzTDD%IWPo}opmFECqkp` z@FG@mpsa$@OWmz~@9fg#Vp7|_v&=+(>64<9nud`O7?U1no`wh4>%qyGAUBdrD|KqD zl<3tTqxydzfI?v%U>6{rCQ4(sf#TI6J&;|Q^630%$At;<&czYXF2|Qt>^%vmxLw;wQ3;+`1Kg?4 zx5{v7Ata<~Jy4Hy#j)=hYEErpw=h6U;qw9bwdDFHZN>f0yx-^`FyqUR^}w+gCG>br z3$|$pIenBcWZkXLVbVn&KWlrvpl$cZY=8^^6attfC*6|BBLmzM#qnm6Zmyt?6y#R6 zQHe_dmn4(5TXuNS_GeiB3KRYcoS{9z)WPOC=+%8bAP^k)ul5b2W=%5d+KYi2)4aDd zi@E9Rn_{5`B#IZfFPYQvwLe5M%oQvYRjK_c;t7Q>-Y92zQAGt?VD7UPL)*EscIaxV z9W#u@K_29!`{M}Uh$bvewQ`xLaNCx*q^!Gq)#IE?P9effX~hA}Z6Vo+1-=eFSfT)^ zav(Nf^3UJ24k^=yaXVoV3drz;`si?SSzNIuu_**1`(`Nw>fXKjiJ4N!>H+Tlilw5( z`CM5-*7HExEn=T)qIY#;WO!uXD9t$9C7}{KEv#B|T1A~+GKXMel0x8&d^8OoNTxdP zwYu*{grOg$o%kq&K@mA(P)cFl9r!f9P}1j)bBxoI#5tIN%fl2iip|Kp<+NT`Y#&O1(8u<(44&+~LL|O5-;B*4!s%z_O}v zS>|XBV(aJNkyorp*qqVaEeSuMb4SwRq0uZd=+G8ilDXiItLtjTl9BsGvdSmqhd3!& zgEGMw_5|F(GmLVa3wmha$3iC(`q)t7R8Eo+KThhYZvm_NgRA+%HNIh|51(}2UTt3~ z@Uc_>5Dqr4EVH+wD6Y~uc7)isN7_ZbVTN6xXPYOfVfuy%Xfvsod>{a5j?!G5W@fzi zsUk(?Z!iPstjah&D=D}zp%xy{wHNX!A3jVj0k`}4dG(=&2P{;vw{<%14*1=BZl^tN zw+w3)1_A--hJ}k`JR&eH+Bo`Q*l^;iKXrjdOaTtf=I&iiry>Qc#A#FOFArj%nKS`b z0KKWBy!0Qy#?K26Qf}rOzm?Fh)X77OT&IaJPQ=*o;ul7LI+p#Ze!gvkW?THQgA$Iv z(@Tb4(`)}dOq5d(kEG=xfCk=s6-*%T`b!L{Hr)6!**6RXW}@eK#3i`|?4;d0aA`n^ z>rDBm-+q>|_rNZNwp8gu&aM8JA<4dh*ixiV)||HMKWwYPG*fW6m?mW64BY0{(uMMD zL$>YO2fpZw&qF3Z0AqcBu5}F0B#LF|n2!s)Swxh2HM;1$cS*t&QObHIOFz2a=Q-akkj@QF+b=O3vC}b<@7rK}zwQ9#T zpSb)G2+f?`USNWJ-#8j9B4QbxS6|52)EkV*H z-r_P(_NTjD`)ReUN<2;}1bAbP+G8%AXT&7JldS9{P1{rUl`r?}5`4RaV4gAEHrKA4 zHQSj7JLFzA`-Z*s2=gG|st=lQ0Xe^E4@=XM9M0fXlb$|a@3BgzEin5bQ_An=^P&OB z6JGh;M*o)oozsRVERjX4f+T>)J5D{{^NINJF`3jDDcbwmvKovYboAWSt$VWBL-+#dxpIFZ9TGsZ+b|aWc0us5NmxJ2Z*&w zE<)U94GL5+eQ7wNHfPdBTmfB&c78U;&VK!Sx*BN;n>m{3&kk0blejj-@9L8}BQ{s5 zy^V-@+D9Lajq;=IxC5%3?UbP~E{puyDN1NdchpRs-bA6X^}ti-VD-4Q3|~d{gI+M1 z8FKKj=f|L#IPw+_1OyN&mQoXE1!T6r zAp-|Y7$woVqd-8G?fW(EvIF1tb%`BIw3tBLp?jv`2jp4X`$?ZMPw~0Tn|am!%n$@= z+<>scM}3If#n_h;0@Qvf-LL&p+^T7oGMkUj7lWYn{w71cd#U@tZXIN@KHZ-XNXj|d zy`Wv3;Mg7F9+etReIBtN$8sWGne`6ae#;FHr<@XC;Q;Jm^)%87I+QG|lMhia)|mz= z`bYU|J(`}aV8;x5slt!rVmo=V%^4arI7Bo31w|i6^bYlnfmEbLswcKG+f{mx<)%HB zZ%FvdKJrG)jONi~fiOTqs&V`BnEXvDs+@>-68<>x{wQR$b7-&=y?zD$iWp4?853T9 z0~+0@r_iFIikad;NN>GL2E;MB=0NbI7e~Ma`Tq7ktz^!{lAw@k%VLw5FG`F~=PKzZ zFC#Ap!tqAB#dX&oCy>cBV28Xik^*s9SNbWlXZ;0z!8dyE6bn?9-0n%{9C6;cX^ifmLH)jUFllY+crEgyR15gnlvtt>6 z>Yep*Vrhqqp4-jo^cUEGg1I4YJ`e!t#XEBIJJ4t;ps4#EKG)=~jXP4H>EcA(ww9-b zQy`Qt_CWAw|4y8Wgz_PQt*crxcepoja-GS2)W6^(km8aKqI+A?b7 zvvuR!IAr7bcnOZgQjX|p;=7g1G@{@axZqsb=lD1{eCT{8j{4K~u_TD^v*=toRR&}x z*Vl#}an$Z)N!Ym41I3?M>E0^-RXm^~Oru?-mS)|HNUS$05}&OWaa&Tl#QA#Wb$eIW zGY)QyqThb(l*bU za8ba;6!>b#o#L@Y@zvHcWD*d{MNx%@V1`b*0P*yc;PeLCIVua|E*GR4o0jzPwc0c< zndv5)e}#;iyg~u4W9BT-#ZCA_1P193f6*c%Ecy@SgDd5kk%4VA|AHWSFB)FSby}oO zbHx87HlPLlqM)J1=)bGcTK-BR>Lql|`5I0+imUdJ7b+>CY=HLPP{3>C=2+;}vQOqG z?SI5axio zksJdfWtl5i_Mc$JFXRaoR@}4Ht?obx2ntlG34&;^gxnktXRsUmZ2zLIrsJS4hIKU& znp~4r`2Qk7f^N<#V75YUf7V0?0Ks3`LAe;QO$_?~62Juz&PhPecEIM+@ZzgylUE=B zV*W>tChbizjB9AR%>Z0F@h~OmpCnuTIXNt!{J+Dc-ar!36$Qcnm_*bZ2*LlJL=;f2 z{WdwEX&OrpneuF5{wF%+UGM8b%GKLFg;0gH+5mTg!+Qs}&`$z?$rAI<%1i{D@+%{F zNnii#_>Q3nyH`8&>-*e`%x=8q|5tMFZIh<-$m`^`r<{E#0ok96lVeG|qxCRL z9)2ERM`0~8L;^JDt-J4^Hsbhua9RL~W{nM|zE}JL)3knpX}?YjSf$VHrfBG}qs|6Q z{z9dci2(uISf0~-7T?}%(CxOg^J9G%Q~1SPfajL6ATWu2$;}yneVwqA+bTK7;*SIH zk8<_N6UyFIpinQ!+AqKe5PR*u@ktlRV0s*O2;>d|%1`-K{uibmqTi?&klHnY*5hJV z-?y}{@oXo4wp}@z5CKj{9U{O-D*{7+1mRhD0q;EsZy~EdBS{r+{H~C-nxS8?o%6yS z6c7m@Yp2C`uIOl0zp+m$UV!F@!aivM>=T65Nwt65bnT~BIjApVi}+0KG5Sj&mcJqq z(yJ>Gb=b1Ezv|HkTpdd9_7`URi#hol@v^)^yrh32Uho8qE6jG~2GpTNH#!6-CGBF* zY&KsT{vILjgbwu3d=H|=GQawR@(b&+d$*=_UF5(H@+vuJ4F%-*Ce2DsV*BI?JZ7a= zZE^noH5u2m$;6QJkBXTfr^8kKhdYXQldctN44V=rxN~ZTO#ZMTL^q z5XSoPccxCPOS9guTlY)dB~5c>al+F+l8$=lk`y4GM&U&7sxjbsAvZYwu3ta)fKt>n zj#-7&T973yHO6#&MPfa8Z}eHxbN#&C3k6A>6#v%R762*?!>nVmp3cIh6LgS>im1i(2O7&d#ND*CY0KJ7Qkw=#FkaZt`NCiV-a`LeG5b80O z5B{$fW3H57Ga9hYB}MFGcL&9^*CjC+Ebo`O??mOJi2+&qDt1smT!kvq*EkPBLT=+IrX2C&0q z!X#OzATU!{;NxAa4(9K+{XpK&PtJQfbVF1^;INRwp5NG^@x3bcP!WxwZ{JH~@oWgo z1`nT=0oWluY@iSq-gBUWr#qe8eUP1o6%OzsHA}*Z^$pOzZ90Z+e*g6By>`P1FNEom za{C9Bbv5i+(cvuRY}%87k{!6y^7r6b+(yE2>Q5`lE!i@(m&GitC9weH{w!;)&UEro z>HODkMk_PUM*BVmZ6l7iOy<|Qp$#H&ls1hTpS$;Pjo?#~_PB{Q<%!iR5oaD%38Lbi zA6Y(7?T?(#_jf8+<(Ak8u*!YBy%hMb*kKvnt&XrIYthBy(xZvH3|~4NoFjRJLp}wi zf5GNb?>Tndsn{40siTqa*{Q{1iW*na7R<(?7{ZEBPmb{(JiW6|=i_ctS%>&bbg zBq06D4NMW9EtSn9HoZFL>V*m#gu>zN*@|DIv2_1LX;!dr7w)t@yE`i=g*^ND_&1j8 zhV#iF`3A*PBjY%rgsc@~(bT=%nw%AuIoo{9=H97oNV+xE(9xx`Wwv-Ijrp@_i zMyDNEc1nfctV$u_b(OE3XuB`#EIQRHt%~uIU8LO|2fivagxjA~vNlFg>Ati< zcX0Vv2iMWQ^$Ywxu1Z{^KBH1~Vz*`ZtVf6*FmBSU`3~1{^ibLfz@FHx&-v0tR@auI z$sX#6oSHpk)(aYzo_Xj-3W(`#FynQ-BtPfT@2}*MbK1M$gJ#a>29j!^p50GFz`L8{3D2-g050FK{yrtT{h3SrvY=$o!W$eJ*Zj;1 zg)i9H(7oN_nryBen2$0xWLI%>bH zx^~TwR!&M>EmPBdi>+i*;r7C`Sx!&^4h3&usadALQ;))pcK#?x#C|iEED?b-#5s*n zN8fXG^1ViOfHPPM$x3#ZRY6gub9Ol{xcl>2kigf|9DxU2KXCVOC%^TR;X)+QCif1qY_xG95dTHo-Yk#i9a zNPPxb$;#T8rX*@<#cJ*6PZiAV1~Y$}E&%T)rR8^RE}5FvpR^m)Lq=JK+E>#`&s`RF z#g44>bEpI(#J=(f4$EGqS(TK`X$;j`-)TQlI-AX_dN$}JXrn_?Vf~$_hR3N&HO;Sg z+WpdS{Uq~ZZp6=?ULwg|y^qEw_+&wR6w85jmFIv4vN|ug-u~%Zf|BcWZ9*BgknES3 za!(7zgr`B(IGhuPVMPm&SE-r=nS5m7V+}=h!a;sLX^$%_CZ?k2(vv-a6AwNJir zUc+922Wd~JRgv>bA#UKL491)NR@LNI>hu<;y^kRmbX4M*$s~G=m1{=Sa4GMRCGtgq zJPJkIr=xYkTJE66o9_nGf?ZXYBpMG?`8&fH8}Yl{3y zBAsC+U05I+WLC4gI=+jxsxS&rtr87~Es@K25mz|SS6NBq)SuMMd!L+VNiYqH>nqNG zi${A*;$hH{AW!~jRwk0G-z-t;cn)8b>Wn2y+CmGQ6ca>xT*H>Y)fod4jZ*Y5eH0e| zG#h4rygr>HEWiRW!YuR9PeuSu@C)%rV9Fk@5ifg0Sw9Fuv-SVoRw_ z$>SoNzjUAhp-g1C$_%OyO`w6!^m_ML3lSNfoPK*M#NAjvp9E*!GLP3x&qcchgYOtA z_SA9T5g)zgs}_}2=loQffsEHrk=dWs=b=fMmay$%r?UHOY)5ibU0o5O028Y|lUtnd zX)&>EpQxk3Ge(lI2KlhmF77DGzMUo!->rrem(s6qAK49-|49j?Y1@ zI}c`f#x6pvu@8uC$gVZ&Qm^9AJA}VZ3^{_IMlgLG<9VgEv+fjIt*sc8OeJeEY_9#u zLl6FZHn)u(meRky4j)_*6#atfJ6^pa%17<*(S_9# z26`4Dg(M024B*l*TU8_p{mzL~d+Dq)bv6bph@j+ZB-{sAqxw#c9j&aH7e45Z=YtKK z$v>=ThV&}S8ZF2;)O=E`KXHzkd;s3vPknXnc2feTXyY3k*=qu8Ct)t_;gA_Kk76L@ zUJ?1O%-!k4;~d>ZVmcpjA5wU#D04zT?i|BOD7nbY@atj1Y9jjNA-xv%{Rbe71hN;J zr0AJEY`8KWtnyX->V?=*m(P3%1xGzd1J%DW^LcS}k^1qY-9p=Dg&OGR|{M zB*RE~`i$05kGSKbRgIn%7JX<#IJQs!1KvRQuNcW&yJAyos+S;|-93ZWUdtPu#MU&{ zyB~$gUY`aHjk5F>KJNvbL51ozjE%rv4yVEiv-RbOlbm4NdSS`j@Qc@@reU+u-5rj- z_|!E!x>f5FOTMZv0`-N66j|dgI%~YMqip@$t@hcwocD|=&+SX7Iz||mFPWUxCf=6B zY$B#hTBSs8S1efA>Ae_Yd!_f{BXRrL$WWk`s)O0v;s;ti_S*s7l{-#pR6oFaBK&18 zcz2SO)Jv>qz#6(Wxe5!jv0rF&y<~A?n;B<<{rnjri6AlGj^< zhWaamhlg(lyPR#^EY=Qp%kl~`SzZi4NJ zpv31@FcNERx_6Ak0{QP);y7MFGcg4u+nuqR^5vAGHX(Az4uQHQADX04ME?n5WsdW; zo?#b7g_1@L+7E!W>*jya;OW^Y_F$eN+&}&E1!AK^(3&605WhzxV6Q*+(+4$Hn(qo# zADbO?q`8|smXLky{@9owqI z=<1G_s;1Ahz-ddp7@(4lnLM*%N+0Hj1_*Mo0e;{rid0SQ{LYs^#9;R28|2R$KI zOl@_P#lEY9BDwnorQ^jNeXU4grD}ojMw~9E@yY9DCsNb`K}1QAwq$6 zuq5i=Tw;x6*s-b5BE?R^oVm)3VcP9HlX-b4hBA$oN^96ob<&te!5Zf%npZ$81DcK)_ z_9FwS@u9>|z26C&(#xsW3?w7uTAy+FYjZRz@u< z@Hd@O{9O$hWO-yECD`;kym;@P-bX~Be`pQ0!vjhvv9%=`^U(VDXx?bSdnD3KaRVk~ zLiVv3O#AZ({4xa+@C(apDmkIMP|?#ph5P|!tRdM~J#c?Fzp#(2s}5cAk0jtRw2J{z znokmlukkWKUc`i9JYCUYl5y(fO59?0naFQIMB2$4TME6@pkL|YOD^<~5muvENFW*I zv1d(Ot1UWle1=5sPR+}7#Dvu;Grr{+4ousCY*97z&}=w}S4h9LrJinyrT0%Zmh z!k3S*K#qe?7~kdt{Bj9dN(EzQ`Dc`JbN3;$@G5d>bj9*>8Kk@}vifB0W#cr@o%aGM z5`(sbo`c0K5ag!PMP`9;Rmg$mqK61k%g{v}p}-1QJv0;%xxgL%NS(RX+{QKz9b>wr0BxFUloCuQ%BykQNZG)Y*Mtwy?U z-T{e(Z#nY}%t>+hAB>J6&@MXJ1I`I4jf)DZ5OyJ5Ph>ukgo~8+QDlPjL7bdlsRa0; zMt1}j$K#2hF+KHjOge>`+Cfs@FYp?HDcvX4ocSguXrceHV~pC&nQRyGPE7;hXT%oT0!()8h(z98ILJ!xV`q zb!^B~ph<`Va%AaMKXqvkP0MRtBuS55v=H^DK1WqgycEb3$T~H}q8Hi%)==2{n#~3Y z$sz6$i0PsL9JDNwWa*xTGjdadroy*c6m>GXlALirn20q;O9w_=2R+}(L!=7@+i)4C?9cG9=E z->j|ad>TwTy7H0U-x^h>+%s08R{m6&M{E(hVCQJI!#B|;6d26S= zTG44t@Z@OeG%Efo4_4njxk&aq1#I01#B%q}xiyXlYX?6P@W1Q+v0US96C)R4e4N>p z$n8_5W3h{D1$)5cBBGDq#nd>>5(;I{+r`!>YIi2ojCXV1w+A~QO>nxY+L+=aSCboe z?Kd5BB2VZ2!sKJAt1HsHQ ze5UpE>>6{%!Lfw5(=4@x{KK>tJFpFi$tnb=E+aFR^&WV#9X>w3#f~pyAIZOU`vc@T z@ zS0q&pJ0A43$9vgeSLtp{J#$e{G@n7p)SjtOtHZen$ISBL7XXV6hw#57_FSh@kx zDunCxIM|s})KGB9rCZ(Ia6#QE+Al++sN1Dnr*TChXDu!b6W4vmz%vnAFULZjxclY^ zeaFAeKNcQu51i>D#?_|r=F;zHIMgz}8S1DqUv0IpuoLcGpinN=uwA8dAJ$>^e*ArB zgu*D1oUc>|`R?4!_p~HDU105Fe&_toWOJ4ILN+%3s7t*R41VWvb&uvb^VTqdl3okC zQ`Rv>vd7!Gslu);yhaSR{rOyP6;*~heHBNOieZ{ny!W{z%wQKK0)+PV3T)k+vraAdHE!;}tCYLnUOm5wGjx?*sn{Gg>3PjFHI$pd)o7kD#$F`6cw7~uEza*?i;T^ zWO@?_cx0eTWb#!!zxW})h?u$WgPy&fJH0p$Ztact?!`{YSGk>tcGj>}HnpXd7zg>u zw=M_BRk)U>pjYYM5$L$v82JPPB&yu603Ddf)Df~*7YR2f-u16N$-+pPIn>g{*%HPf z;Y46V=U9OHdG)s8p?_ezmL2K)c9~q#wvY1%e&8&VaxDpyFP?;~Vn_%=9EoVm_QXY- zG)?D~fHMF;n)D07zGltMf?i9{$o#B6lF^umTGGUqP~be8FaNm&k`_WBuu*lUXbglT zE=#WE!xx|`B!v3*Y$OM{mv_Wy#kN?aAXJi8q5?FFE4@$Im;^-5MXM_8?RMz_&rdd1lN!s__C zgDJVp_yT!}{3@+{yzen~7#9#rDn8mX0y=BxA+ zI?HTiN~Ce-nnrhBE7NyQtU@GyS+klclQ;Ioi`d8J8Vf%7cn2-XNrzGM1cVlwa<6hB zVdYT6b6?~ACw^2p5!rkFD4qtwZA^~rcF%C;>ZX-u#!Q#EzXh7IDx=KovZ8a#yF;&b4}pC z6uOIZL@x~JV$b1qx00ZbnKmtrz0g8-q`(N!$i1%r%g4KzS{2c*uQljs zb0$rW)`0x-_cG0Z>;F<;swXgSG1%8mOj{g*qndsOQ6zhXq1(WL3RFh_~^hH0^reJ&Kw*A$9HX( zf-65+8~&-;M}uonG+Bi=ts*~jS%AC#vGpLL?PB`b7&Ou(16mRR2Su%J37o&R4PY^R zYjPgfdyG7Z9F81rZmI?<`DS1-8~rbv0qiFeco=uF30aM}D}Ks#Up(GT<%v3f4?0y* zn-_nX*UwkipmSk_RD@u1Bt9U}1GuZ(fAtUWT$!)e0D^qr0~PPe_t$xWJ8Y&htDPM< z-{|865OTi%V^rhp_8&v=W&|44q)bdziqE%#^`9!`FIC49$hY9thPwOBE_K_tFM-j1 z?r-}2{?y6K+XEQ-<+rDH7yTX_>A?4YwiALI7(jK1{e zJByAsY4V@U1j2n^niRpt@jU!bXV-`gei0);{pxo=aL@x2V@rr0Q1=y*l~|g8%-Z_L zG=4wL0D+TSwGR^?4zCNVBSmj-1BmHKJiL$pbj?-MuI7jxfHUEaxuWL5)f5rlBThWA zEBmhj@wytUw;?|R$iIqt0$qeMx4(@C2NqD9b2+t0tnxcJ)fB%wF)7&l)JQBOfbh@k zZbAT;nvM_@IUaLHLL>t4+bTYOtlSK5z%xd@-0+5Z8Hj6`U` zKK}dTK6*P;=?MHUo&aX*5rbv_=5=Sd-fYAP&kN7H10&%BcpS7IAMeE8;WvW%h7yq$!iDujL%m4*C-=wQA2Da+ABJS zkB;)ns0sdOV6U7q%5CFG0O_UCBvEetn=1+L=Dn2iLBAw|zwR3}z6Mogx7m`JFi20r z@s(JrZY%hwRYJ4Tx$l4NDnX5%5-YCK_ixVhL$??`I|@a@gG^H2V$aN4c&fA64Tr5KZ?eEqjU1y;z~Z)Etj9`la#6&xIFfay<^ z*W~>bi2PaHLs&+oZ4gtEW`B$yn$|HGo^{IOmUt|IiEkxZS^(Z=aHE?mt+EnNBC0 zz0U!)02<);$R9oW_eg^SZIumc%Kq`s6J_3=m*nJRz}#m;P7MCnV^CiV{(p&ne)o_q z8~R4@bxt~&|8g^^&O@7%G)q1S4c^v7CR5Yz|GObo;}m`|=XJ(+rUAk#17JP6wrgOJ zz595gm(2Rvc=MkK@evSi+z$KrGr+w`S>r#hTJ*EJa;^7ov+@9U|LSgqWY#sGV79-8 zZ4Zbv6&uIHcf${SuA|}~VC2yLIM}PO1Qj6p5Qt$kHARqP`1NvPEB<@L;`7R2GJDde zn8q38{17K37`3!p+r0j-rlY=Gt)p{KogyjA4^eC7RV?C)Wa8SNdv)utC)xluxIz9E zh?%@E0E_wOP~;>!m+p=^3;CNrF)J?_+F_d)IS`)xjyb(i;jH&Ilw0w`ISGm97%Ne{kCll>J*o&XagXL=oeEPMLZ3pEq| zaT``1$d<447-e@&y` z3nTuyRJO-N;a`&kHBaFnFdtyW2%7)2E-HEwsb}4=zJ-Pwx~un@MWde$X)79j%{~^ZuUuqkFrjDd&WF8GK%O3-~er0@iaEve@2Hf-aevYIP_T>L} zPxJ_F$!dcCuMi9act!tQ`rkvIKb{hK8x4wZ9^J;)`rF%O6Ow{&_5FHg`1P9WHCG|$ zo)0j`K)eD#LX|(Ad<~5g2*5q)Iq8$iiBU70l?005f89$*YV3V;Cx~XI`#IEuv*y=JwHP}&u+qvs`?qeu@WZ3} z-Fe>B90XV?nM)6i|1Y(=29<<|Dq{cT^qRzafKjC{#+Rcq^;HE%v{Q@$TDA&vfB*Lo zdN1_)^n6YbVp$u9nSJRYs(`)V>%;X0Fog56-R{l5w*iTb#^r727!Sb@= zfb!R3jpSQ3Z|^|})G!48G9GeZLny@vaJ@tzBGoZ$U@=1C98G*75Py&ZgszU*z2&w zPRQCSR*&A&vgVvF{AwC~(OE1BQljw6u}DQL!d-J(BeF!;v*56HFSHZ8BNR2?(;uRW z!~o69ui9th{X8vh(EF@YQt_=bC+)swfVYdt*MBc-r4~`M+2k|3bh*{oR#5Dwz;tTl zcw%cMX>=8$e*+wk_|RUZ&zocQVXQdIiUV!?vAaMJGMGd!)RTI9%=p0CAoX^++~JtX zi{boYY!LL!eb;vLPEJ})L)AGCQS~AbpOG9ZurEM_@;xb2PB?lso3FpxR}6Us$CnVH z+SvIIZ3K?w@Y~M^@Exs{LC5$Z$cXCm$xUK-a(PzOIWLhikuqu+%)?NNT}~C~{j)>8 z`=tGg2j^od^9X+l;WY}c@R@PkTr zTWv42bR1eX4=eFyxrTMPWLX0la6*9f6jf}B_hh^-nM~ojU7>V^+F{1B+86tPQ1rq?-LA^^T-pWe9YK7Lr7uS7HI%O7@nAyGTe_#G0~Z_| z{6O^Lt7t2DU68Fo{3RQ)ZHx%7Wfb`-ZWWxPi8;ZC$?{O>$q}4N7V8#}CGLn`duL_Iu_!o&(NH z63PRAXeB^z??f#<1LH}TLn-kXanH&RlB(X-7~Df&!39yj>O))SJmul&LmSI-wdN|Y zRG;?kUA6UaaG4gh=(L!fdpq@To=R|Mb2-P8WpGn&qdjq=f1_LwrzgytA*X~e{Osg1 zcXu>cUu1`+lp}#O^XV6JL5vIK%7?%+RWXYn&{o!ONRK;VZ7xh+vIwzz>}_C;AFW*~ zOp_?_AGmh&rjjbT&lOo{U9NeeQwr@X*ai1p2oEXGxy@#L%IJl;9Im!L9=_eZvAZ)~ zGI75cqhZ|1>9g&Aqa`&9%e1pml2CS~&Vv^kQ=2dCX4G$)Djk@{2o`Rt3%2FOhO4tT zIF6Y_S+8(K+DBN%SEpEU1{)Vt82=bab`DTIyTO$rC-Kscusv;I3i>?717?=GZf{?0yketP-ypa|E5Sn zaJm7XVsyxwh;&F-w-)v7^(7n6zixIunruL3GsRXH|5h%Tt`&b;-HLA+4~<$VmCjP0r>=}#6r`c`#(#(^_jsdRcXrE9f&Sldy? z@3DcU**wvEm)C}Hs(W1&t1sB!w&ZhY--Ydk3o|6>@RaSIC%5ZPLDg~mkEQA^ft4Db zw--dpj#^IrKa4Ib;savMtcYDp>Xp~(%_|zhk9LbJecTH!b>}qYMqg~yDX)3%^OUky zg*zHqKL2noIINxve{J`*05twcZ6m)l<;RI*BF4Bh?B_tGB|GL&#TJpxYCofW{X3d_ z+KZgl(|&2X583!6wWbdem5y_&6(1l8 zs`lT2rK|pDzbs8kmqLM!->6M8nJ+FSFZL$G9f3}ss-TjajEkKmQxB%@`6K8(l{^$C zOx83`^@?+f9d?I}pwY1mT9=)Tr#45r2Z!M8FoWrtLwg#-#8e{vn$cW;(=^ll!juGG z%p$hug@HbjNGXXYL0;yam{6TrDyGvHP~*+&RX7LHi5j(4aI2yUspI7bMCp$Kt#C~a z6UWD`{;Q|7cnk1=S-Ls0z}Re|oozK2xh3Zlvr!6@n zOEG6*;-RW%qp*bAX?#v!g!9{E+mm^=mCjamdB2P>9t$|s?=6X?@=6j5$hp5rarY21 zVqEb%J7N+gPI{~JQm}@3!%}ufvO~7$y)W2Z{>d|ug8(Jr)S~D$7F}LaaV^jL5t7>n zk*r-8kF-c^-%eZGQOy3>`0@}*Hq9uD&EWYp7YcIG=RZV7yA8@wm!-2-x-6S^)3lJ5 zJ&=$UeMKUv;984&I&CA@-*^I@94q55<2?TaboR1Eq za-}jY-Y>yalw-Q$)pn%ln04VX>@{=rV2Dk{8n>sAR!&mG-QF(ZE}Arfp=a{5cqRN; z%{&h>q>xg9K6IKvGRGt#4WGlm_Y2M~a(*Y2UKW|7XL*7wi==LULgSCH8v^q-!=J3_ zOy_X@pT@oes;RAM+bc>D1OcT;CxOtU*HEQ}P!&Xak&Z|YP1>bN2SaZG5fo7bL8Nzs z5I}mbN(~?&y~}@sddvI0-}-)57K;U(bM~1%d(S*G&&)31xzD)!onBWvl_)S*#}=HN zZdJXHY`5~HSgudlttz8G?4QaDB^jy&%IBNz)w&0+#Sp1 z(|b1yVfw=fFr@L!F+GT!@KXf+$SY!_7VXr?Ne&w8`DA*5q$@&Zu6pcJQhUfmUfobl z1N!4$oR~@*gsOK(2^_U$uH21|he@Fv6S5SH`R2&uFdn0GHD(G`MlLEl6QR`5~70JDut02Ms2J~ z!ea?>D}8}sBVjRW*wGd2ep-ry_PqLVS{`c4;zG}3-rNo2?G9KZiq>z~;HJzH;@u4{Ly&dJ7q%V&R zgtbQUN7QmOU75l(TaF9gbd#GMj*ImdcLfnN3K^Ug%hk-YX-K^iu6zVEg$cU8wY;h+B@YQGzqLPlv%15Ihf;P{FX#`6jy^vTpOE!WHQb?^ zVfb6sH19RVinfJA<75Ig!LE-$hJ?aG5~$=$-!=nBKxV=IM|#F`Zko*&a2G>p5iHlyF~ z6aHyMN>u_!PQ@q8TdBtqy@NciD^SGl4I5(Tt{@U!C=9qzLgZqJ{B0Fe?aiO2Nu{Zv5CTe2 zZK_GCDPz_=r0iPAFs+>l79DSoiA)@_1bXS0Yf7oYd}BJ<5ch5;nT-_0tsDZjZ}tlk zoU@SirSt_|aHMr5e&fT;)sidhOS%n`mJZ+d-p~cNIR@_zo|*c(@@Lote*eUhGsn65 z>iAuAQ>Bq)aNwpGrkNT^B7GXYxO1fPrM_> zAu*jFs0o~_-98jHM_8X)Q?Ge_|2iJN;A=$hp5ucqrCz%$B2&CeO%Pwy%Z@p`vr)4g zReD(O;2$sQYJyj7N@cc>8Y#s>3(A;}-^uu!RBP_EC)b+sjHKr~^RU5z^Tb~{qfT^} z9U3jxEud@=>``7e9=AHS(W8v5a%Yp4 zkr6;_yuTt=q$c&?SsLK+zRh0YK$TShmb5kA_(R~p>x-Y)HUdhXswF$>d+AfNGmU-C zQYiR_;HFgpFnX zqYVzKShSKwQF=`dc=}!_#p_X{>yWOmkOq57uZ)BxbCrauu8*H_G3mU3< zQZN4O3RkU*fIC@e_d7Row@%l}0*w{L5^gi;Ly=(}3N?KHbrTdNRC^vAsDj$eR(VT| z(l3AITpy*p)Gq5z%HUp%n!lyHP7Yn3ly<938F^W|VgR(Lg;{XG75fNL2*vOW<`f9i z2dhm0w68udl6f`-?ttWO^+V`IeHZeQOmSgU3B0H8OD0{Xh^_R0>y zo+z(6Z(pvz*-i@gNPhdKXW{Ln7A1yi%S`m>wc9T*m31fTeD_Y(V&Eo5J?|q@UJ_I7 zz%y`nY6j_T9>H5^*}uDS()c8v-H=L=#dv-_n}CsF+xSN|4_*wjAO^v2UoloczG>~@ zzajGkCjAi1p{vZ4&#LT@SY<*y(KZ|>6Ysdd^ij>yY=^@vM81G*4OwB*RU#zA$y6R0 zecUmku|1jj7|@i#jazHRe1M*qP($6RvRJ40o8zAVn@Z!1^mfT?Mdc5q_j0M*dhC;< z*vomg-}3HKEI&|}qmRhGlg|A|$fM%PY5c;s^Hc)0I)p3#~>9|$Pku7}+|%%U^Vw^eb+PJTbGjDX}sDN`^> zxGDN=>Fh@&Qst;ph`yUI6%c?Kivvec3*g&udent=cZR^H{8HfT0o=86$r$?lZt)l0 zG*+=%3~;L2RGw}qJSfsh;I=Q~jr29>lta9MsgOqQ+`vfkY8I_})VJDou)pP4n+QZH z00#x(?MK9wQ8*|FomULtlLc)u*`B3&7EC=b7bUq4M=3Af;zl}eG0xR6g@F*p+-x&i zZUbDwJ+MV)4;#F79zGhGGE0)xr#uN+X_#y3h-f0*3kLNroBA>%qK;i&_WGQDc2-r2 zrT5?7l-wYN&9yfc6i^kyecmdQ%L7bZ1mtnP0 z*IUTy{uDY_^EBr6@WCL`3ORo%cfb)}99BCb^D|1LUEmBtSotjYiMyH7OUTBZNctVT zJ7@}*WuHHh0NND$gsVHWp{6lg2RaQ3cb^D4Cj{H1RKj&AT?^+HX6al()j+naJ&<+wt2 z1{MeqW*r?l+eU_pV;=P*6b$>lb477oVu-9#)=-;eQf zB0HFVDCI>y3VvNEsPX0$7icqJyI>;Ai+Na?p!=74b!}yg6XYiDd}%lo+m9O1E14ru z)HBQ4cyI}bT`B_f3O_nYauFGA*o3VqzS69skGjLLE!uK?&UjO_**5)BNBpG@wRCSu z>+(CSens(7oF4YC)dvzJwt&+yL%Vqr|Kw$&3+jCvn!Ja-59o5u2;=*@Y)=!c-|p%R z#nx5Ml5wxAL>bOGs9p2R=TE$M4XPIGgP80rmiEQ_Qzl7@wdD>-)w9NF1-4}f_>qi(6Gu|Ekjm?WRXxFrA(3)zkW)M!R zq&Uj}Rx#bAx0B%tUC9-+CeNS3%M<}N24ZYl3U;UsN9~=sfC7`e+~N*g;as z&u@Gl^#xEvWDfmS-&8sy<84DtUDaT{`&$%GU$=`XcXIJr!w;Pq@ zZJqeTmZx)Lsh3Dm-Dztv3%$ib zDIacT{ovU?N!LS*{#?dXj90p!UfETGsRd>TLh7idOxAC)x;ei+d$lavjP!O^#ChJN z{A1H#SofM&-AI<<%e}^hhKyr2BY@w`nE<6|%gP$%@nko2+a9)y*YoM1+Z(OqJTj6cz@ZI9EUV2|NOn?#T08F(rYu@K%O*yDsIJ<(mEzJnRRO~y zAYYje^KP9-?HTZGSP|^W(Dtk!>`Cnx#!2yQ+M1rfusy%7O#N@6`i5#sV({R!t~gx? zTIc5%%GJ?ZVRpAkB}s^&^rgXy;Sp;}XuK1q#@qE{F84V3vYivu= zhi|+h^$5=D-KSi}DRKuix8$^yjd7~{OcFR>$&H&TKAqMt`pmBh>G& zr;0oP7dgKu+lzi%L;tEPUww4;^{0Ud#~bTKtA^eC&)tm{_M&b%wCq*-i@K(B2^n+| z%NH1G%TXxRozGk#2?8MD!Wpc96p%87ACLm7>1>+39IdplP!!$zW7X-JQP1mAN7US| z9bNJ+m#azj>J#Rd)X~Y=9wrq&fus1oVkO$+&dF6@RI77NXM=CVRYXqQnF%P3==fS% zf4}>nsTkq*ALhRGdtQyNbdJ_fk(?g0 zaOkZlUh}Y#it{<5`Zc!5)iMn|B`LIP=Z6nBdtO=?d74f%5X;u88oSiEF}(9%{J3*{ z}MQtg}i-vyX{%>O}%*x2#e|!As`Ci9x^a;$(gB;6Pb2%t5 z6Otqv~H4)^CtQ!OEAc{VPfB0HJS1KPzsZlx@>1c+EO9d!#8nwpB0f+T0Y$T zSvRiFTR4t=-!12`b2|4l8&}k zVjy?)r`E+JqXHGI{=9~$Av5I#rLC5uYU`cbPB{;JRFx~M8uocAwTf2Qx2nm>R_wsK zN!OEx3LYt~rNurJgiX)GqF;ej%8+_{eGKCqSpb})4Ai5mY1o(eBo+Ty{Wf;K2QT^& zCk51Ww>+k3`wJJuoeiG`)?RH z<>+g$BcvFsxm4=5<=fe9I~Yr%Uj%ItX8G?VIx>BVDAa!p^jyz5s2%U!t?v<_Xb3(G zcZ(;y@AvIBF9F6*Xw@?6bvX}iz*#}PoY94P>C!ZBSO9uD7!K~h?N+^FI5S+@YXFYR zST#Mk5uEtU8S=+Mm;p^Y&3EMW2B2fG1b?}N^Yt-pT`abYHG$DO{uJCcw4k}y{^YRU zx!T`CR}6p+$TyQJS9%o1UYk)sOj2%qPR)1JNhwc_>D`PEbfsId?pZWa?O5}Q@yrh* z6T?7@-CjN~09acUd`@jCOx0WuK9+Q?m1_)gdhUBHKpncL=IeR=Estn-g#M8sMj=lG zXQ-^cr4rNNXb)T%n;ItoUnw<~)5+&1^xmDu=BJ48A$SsZsA5O&Dj$Us725*i8)^Uw z@k}$@ixbG9m*Y#9*XW!#4E2)bM8Y)d4<;7xaXx5z6FY&#mzjJOUpBTR!j(>~>If=% zoDx&UMIUMPwYUSM=b?-pW#4l0-bvCb5GR)bRB@ldTkhn9>BrqVx0#`sq!+TJ=VXYd zmQ733VZDFQ^D+YB1wCkz9lMv%6y=UhBl7jg)%kw^MVXJgF>8xpOS50si#R(wGps)Q zXOYl!z)Bw4k(i{64U4pfhZ7bGgvSZ}h^@pe5SZl9Y}59dYi?+fIPlw)3QXE9=g0x& z17S8q)Z#|p-i+qN0V1m479wCCRq16d`yzoQk~RIqZy^B!29GWkf$=s0wH&~zCt%`i#J0250WMz znk)6aw*I%+weR>;C{cve(}n1@a8D@izH8It)|z}$?HM7fxBsTK|K^7H*!^)8Mm2|? zDh5iMt_sgjGeb{`H|obn^BA+&bizY8@U2NWmJ)7i89n;2%@RmTRhsVd0yROzt$aM* zU3+31AmCAP1`jyilvo<9K>F+Bz?tpmqc1?BAfVLPHld+(M*bCy@2iPiV~ilP;5IZR_lkI-dF3yRNQN{y%6X=AH8 zC(oyqG7>=b+b7#S(MoDP*K&?qQu{ZdS|^KQKGum`z*|!q^92}kdPHgnkY_fS zPNnw`uG+m7$PuvLC6qfV@e`KIaK+_Rh8|1oyW+D+t^JJtooworx!nb+Zo$q8H8YYgm#iD_jNJ#k^Ut?;H#&-6>6THo@WOXn0 zT={B_i8e>4s7Iz7Fh?2IM63G;wrHiRi&r(!MHuM&63p=(w9BMGIfkCoYo6XtcT5f| z>|Ofyrr$8rexy3Up76Id&w#Jf#3`}POeqFroHXC|lECKmA{qQA>KC7kG~SguoY#54 z$P8Qao7LGTl!z+WJ?`J@iD(P9oc8+C{3S5wnwL|_0JV2?72jwLoxJT8YkRPb$84AA z+Z?j_+%+?ID9s#eI!LzUBY=`ZVvP$}#-3yX?D3}Z|03TfV1$*)ycBffxCs`TrDE^{ z5{O2@cqakWhEAgCp+g$4Wd4)0d zX1{ylj%$I{2t1v*!{SY{2 z)c_f|-?n@~Rguho@xg}$r*x3BOX6fXd!g`zCMm#ddjcq5d$0|q7R8~>+?bxs*Jri# zB)VAeZq4j#hgMnXjOBzL|F3*=hx9jVW?JQ0k~p*l)6Pg+f!uQFDiE6$d_W1OR!Tyb zu_Z%+oFZ76>!EhxbtWUE`oD9EN0kNY_FOiFy{hAaW_m{+S6!z+GGXnG_a+){rRR0{ zGDXJse!YZhXLKvIJF~bQ6S*l&i*;z39CAzixtfGSiy~j!+nv(=Em!h}?clscA{Tv7xbf)b z%_vQo${nl13Ip_7?urlFSB+2VK2kgkEJ}ekf-fVPHn+{?8a{LYS+m5gPZfN?p&uW; zO+v@WAQFEw?MMKNXC{#-;aMXS9{1MF;R=I9TQ~UB%sqfkhzPS-yPVS7x6~5})_g$@ z1=8DT>gQLgLg|-p!|>b?qlnC(wN$8$H>(=_GiDewEvr5c+~Rew~t3V zfXAYZJt)SJA{Lk3fULq3__Qh8OPB#;^-6<|kUMe180FT`RSuA2`5agLy?T9e?qz7onrQ3x#AMRCUIU|l<$W(lhW9+p zo`wdFZMz-*8FA@8ju>Tnc%e?C<5||Knv?&ca2P^<} z5ciRzBLSR*#2+qZKt~bIEnA=%h#EhhSe;&0w@BYg8LSc-fezNdruDa7gLdS>9~$JH zD#u$4QA0QP?5iosxBeu25wC_t&vc6UT3f$Ydm~Rfq|(JR5;R^G>Ck~*3QZjZbt^=< zkL9-y6czN~h>A!_>wnWD{VkgI3A&1jQ8$_$IyXcB5+SFzqmK?;S=@px?Wq_Aa|K(b zxPCy6k*v>@C$t3^$g*gZAAB(euBeJ4hc3zl&w;l%-)P-7Na|C`(C4DNn~#3EnRX*i zSupGdMK0(17#UAG3F7w30WoSW1Xld-3YeyLTK)IDKxkM9|0_t3kBlPsrrJ@vZk;3W zt+^pi(!SJtgFuE}<|W%1&Xmm#i=92-*Xy1%Y^zN1nJ5VJBR{hAx*Yr}UsG&~PwiTJ zm}A-cr%UMlMx{qJ+%%3LHh5k9_nEI|%u#MRN;7tCF`ce6w^ScFM?!Q+<7sd81-$of z5I2S$CR+1X2z62nD{(qh%vj07rHRL@chh`Q^6*1Es;n~~FG;$t+D=mO86h*l2AUZ> zvN_6`Pk^@mvQf%d@9A=Vvdw>R*7^CZ@M|~_#eq|Ft%+JPH*EHBZca|swv%g1%L^Si z$4g|nOH2TJZ8_bVC_XN)a19#4WySFKI%$%-4E!3wc+^ZL0)M}L5{=$(I153vN1m7l zh&};FL0O4`Wevo7k%I=_s{GCd(Rp*%pf{YR6@I*ktl3oK`ukP~0{q;$+cjd78SMCO zJD<$}v-Z`F{&0Wr+=e@{U;CB`zKL@twn#?vyZHhRBhnh@%ZKxE%>R#kZa6&h`*VXP zEx8v-l$1pV>y8F3wIKt;$(X1%&U#^CS+e1mqQP{y`+Ncp1j&8RT-EpQLarcJp?5Y@ zVbiCx45@X3*KW0q80No2Qqn^voX0DSaGV+qrjo~BCT7STy2tJ~%y@L7J$J_ws>pG; zQk3TDK8;=uIQzQKq?nW5(*s5s;7Pwe=JX`$Mpz!H1;pkU--$I4boZVW14vq8tZomZ z%0v^m_TXgz5a1^USfepex0}+?f;ntfe|NdiFDU^c0y@$xwM%$^AG@KX1;`E0*Q zo+-JHjuihz+&wS&vnN881e|8dH?ROFa~dmMgk2=~1yXP&l3%GMa5wn%3A#d}u7>Th zkin0`NHOE);hc8=zsxhPo~BH}Le&U(97#HkcN%Us|F@Vf;Bx^56fC#t-GWu7zR&?> zIk>cpQ-e3{?v2%}2>6vm*YRFWxJT2V|nQg!#O8`d}#TYR{H^ zLV@2y#l?tN`0waq+eyWK-_I`Oj}iYHxk6iJxyFBfmqwktow$bt2?*R#!p3m&4koXj zZ-fY3^{0F|x#3^B2K<1dudlQ5fRW`yxQQACgxVXFhxb!lKXnqQ>G-4gTztJk!0bvp z@OObd&$apIdyiZG2?SSLshlFu+1kRL=Oq+je+9sS!I%T3eJ%{=qsj(+>t%zG2f~>m z8R$gszp86qk?_kCFjldj@7QMNdsXNM@!D^GH!0oEg^f6 zy+2oT#2u{oI;_vASjyS3DE#0b6~r_&g1DXGoFDG8Wj_my+X8C36bT6c?V0(4F!UID zoRng+fcblV#o(X%d?zT#o)~2n7pY<771?-((b6g1ZmMhq-Our7B${fcgf23tKO&`= zg`FG$lTgs|*|)t>_^wz0{2v-Ei*Lh*uuJG19u=|O|tnbX(?Vn`mm+2%^h(N!CZQgLN=S5Eu@XF(aM|pLG0HLXO)xDe&F{+~PcE zHPT|=HH}%bY(K6py!ltC_!*znr+MD5*(s7oW**0T^N26j@5?g34X<){Kq+o%%ubuH z8o;mCcRMDtQ9-E$z%QasYWGv1rI}Wl6)V7D7o!zh65>cZ@U#ZH_MC70jVX7a|G!TS z;1*c*GcWb|Y#hsi=QB&^bFyq<-IbuFslvp22ahN*5d>(B($PYQbq$zmoJ*~=*Qf8U z^~{HKmrC6c(ax?0|8BM6bVi6qC;gZw&LlOq|7BbN;g+N2^uja~(5O-y6Ml;15>uE21MPb`QQk1dcA>+-@SeMzO8)gSgbRBBAjh~K>djX)z*t1l5#e8!|PDU<;Jad z|0=V>IV49}+x5q-TUWt+(3Mfc=zBM}HVdte(Ovh(W;)}fZ=WoAP4Z^@u2;Kk16#q3 zz@4^0E>pLiEJJJUcm|>*yyl3E{D74R)cku?pHE-P$B^$KY`;Xc@h*n>J znl|sUWlE{J{~+396*Yo>d**6XzOyqqQIzx`DE7>jRtVU5IyNwT-opIH#mNT&lMHm@ zIeX#1?F|hvo<9W?&iZaAW@xtYYcKgLM-|)amUh&EzbeROgwaF zjnuIZ?FKlyz!8cv53S?4xPBmI6J>qiNq$QYbL^yZkV@@g@NUWq21Z#z)Dx$C%frhN zkGC8kzpcv!5=3;63=ztcvAQfeg2P9I>DI$L*jMrQhG=ssopUfRImWV3Km)~__VF$^ zVv9K$$P+NAJHy^f*6k70=q*|0*IU?JKnf8&u~Wq@vUD~iw6Syjnn=fM)$i) zRs+Cs6HW+>6HvFeN`%Irtc=J9$b1&HB}HX>f)8F48#NC0F_shjdYPE;AOL*{4QE;U zI9AIve+Lu60nF{a}K z)Gu_VMZ9|~N=dk7&J_Mil2gT6*zus9+@#oyZ!0 z{Auk9#mvXwnvHXELU0bvWwn&(o`4_Gh3!7GkuwpeCDn{b9i5~P$a|$)2_As^X8^c= z4+fC~*ggpc*iw?`OVlq9uqi&s9taY_x|>6Ko(L}W<|@ph0{5H%S4>lJk=gy{>b(R& z)ql4ac-7P-9HuGAvqU#@L|5w9dXqw&Li}9nK}kS?`~T*ar1T!HmiQ~Qi{%@89=?Hp zQ8^EuUBGwy?`{$RjS?W)H}5 zL?~!pE2Q)Lc;0#De*uud@B-u}K{8 zx&Lo0roJk!&b_8C`SEA4tLYH{wz?n9l5U_GaPoS6E(h}me>?jZ@M(Z<1I7fn2S2j~ z-tF1rWmg&z~@NCkB|ko|`0jV?}-7Y&7NXvB+5i zF!g(r$RFow)bjrWQg>UgYikyX{(g=e6D=R7XW|F2;L{MPO8d4 zx3H0O@nUI#vhu_FXT874T|cMB{2NJ;)GEN>{9Q?2kLv*Ts{Vqy#tBFpzls#Mi^}!T9GuBCzxC?RNTR*~ Oe8H786^rG~ga04?r_lxg literal 0 HcmV?d00001 diff --git a/IPSLibrary/docu/Screenshots/IPSShadowing_WFProfileBgnOfDay.png b/IPSLibrary/docu/Screenshots/IPSShadowing_WFProfileBgnOfDay.png new file mode 100644 index 0000000000000000000000000000000000000000..8432a3aa2c318da08a42f24e1c775112534d05c3 GIT binary patch literal 75595 zcmZ^~cQ~7U{5IU)TBQ_IqsDX97Z)zj5HDQ# z=f@RV>Yexsp4-%47d>96Ke~$@9N4mzm|c+LVj`Q#*^G z80UrNm%9P)*_cm1GJLrx@h@%P1r9!%cmLe>nI6-ClG- zPoUF^hJ6}dAI6%Wipw`++{Q4ChHG8p>ivCghVQluIgoB?r;wFRdkwgaUQ+x*LaG4p zkl{NUcmSl$?*4*1C;Yx-gl%@#->1;$pxvr(J&v0XktUiXqQC3dmqySqUg4Vjl8$Uk zfPW4&3KRF_`IEeI7Eb*J&btQgPjt%?lbIII6uyyjGH(xbIbh^FAb(5Z)%OkQw<8wN>oBWg+C%ACNlm=7h$~B$w z+IDkxbVyxUKK(R!SzY>(A!AN0c2j)n#KUqSrD)|E%UEQh6iVr0_%br$nFD~0=D?WYioT4 zXN4PsQbDY+?;;%acLK+1C>rkM@A62uA-7^!&r_juWUVOt=4;vqG!pt*AlLn(c(h1nvA4zPOQ~~B%NDCy>Qk}lDh)2%_gqfb zh>@`{ypM3)>#vg)yLtYLpjl&hADZuBKVO(BVNX74YF0(vKVigNhq01NQ}l+McE$p} z47Hs0{DU_48;%mD#eliYtPL05|FY>`LTF9DK_Ou7$#^J~(v0)))u$GAIr=d22rtkK8F-g>5G92GR9z zcB&1A49C|V_y2l0JMblOb@G%%o^l&FGGPUcl8TQS%y}DE0n5pc{I=%<-WXVnHKF!P zAF~L<8O)lFm4fup$svavC3E7TC&9Cu2(uobt$**?&OLX%GZ4bjYFWY*2i1BuRKFEZ0jWew^#%kHi zlgvG5Qjrvm)7m6ZCR{ZJO@~Qp-F;C%eoVg=HMn89nnJ8S5KpzMP`GWO0O^zuSDCKG zrq%|ni1C_JzRw)wVo|;82e(R!7|uB_0SrfmC+KT17T7C^nhTsNo3MTjjAd_W>1pRX zc$k^VnGL!}UC!|MahviV(-j~zTyN-%FAnEMd@`re0kFpV{`{&ABqW)nZ_hP)IckUZ zi*~+(1?eHiaqsda7$%hPQ+oK3-bF)xij4Xi4)SlzL_+LOC>$2JkS}wVS<1sy;qLd- zhZNy)C9KK;Q{A0tVW=m$;!he}e*IR~O0kw`OBkP2O7yB%rrC|qYo+HnT-lDBA`&HU`+FZ(`+r|Mb> zkg&^=Ntz1^)H)Jwy7eLU(5Ph_D&rhG8%+_M0aG?gPlV~AzDnxOzE?PfOFfhJG^U+8 z$8Iz9Epfys-RbDDKRKLRIFt|4rQK4d@k(evuOS`mSGe~daU>!J+jR_;OzW^>>By#8 z7CV6+UAH^eb`_UobDpw?Kg*Fin5jJ)Ernrx!0+Gje6_o|jVi25=AF;?&0q0SXV;m* z=6Ajrv=<5t#qvnHMRbPvWsrg1dznoh=X!FT`*dnK$d;3<7@u=9R??d|A69Rz8P(3w zJ+Fj&QI*7y})M zfBV5L^Rq68+pjHTw_eRvxe*^TLbt!>-Bl-W@kve$-Fjg4OM+>;3cZt|vSl*=y-(J6 z8W=zi{bNr*_CeWf)ST!Ir&I3IP449&j@9N&#KpZ)ErJLRCznt%x62b#ruRI?&VGk z(-t@KimaKAO2l3dZtpInGi$qz3G{%4w`hk=>fcVtb%0LV_+fvheeO<*o3iwH=kXnu zTW;4;GP+I6V~5cS@ZMah!hGbCF2AGS?$U1McZVggLJHtFG{?T&?lS(Ao>>c+Qrisd|L$Yl;(f}qxdQA00r!J z^{vD3apVtOHft6-H*0}7(%XkVcQ$>CLXKQI2bcG;_;S{nm-juZDcNy5u)+5+BI zt5J^)xj=_F`}-=P_X&-lb52;o+qlOtF07NXWgGuBOz}|TYw6i6x#h@MBgWY;t)KR7 zSV8+*l+U8@YvnkPWfs{XuT(Y}9jLax;WLBw>EvHBBUfVNqMSI3|8|hBAuRe>uFItP z?V=6FQp)VubxgRRqOb#tANeqTmoof zlR?3C>gEh;(sI4^gMLy8{2EWhRoiy%p~57gS`K#*g|s`%hX`TxQ4?Uf~mS{`qS9#JZDr zq7}U2km1)sdoxUzTWnQ$#E22zgsh8@k5_Pbze3dM02EcarOhUMEx)59d0yCwYaRKD z)TSdPj0(k0pMyu9=17MM+ho)yP#&`_!2_f|FQ{vrbj3{0IM$ZVGdqX3F@Fo!8wB*t zJ#!RfU5{B;s`q>Lx=Y1;PHsIyYaC!_`MC2kA<++-`}l33Bg$gH)#2pQQK>OE4K%-f zZxDUgvCyhFEPufP*He1(Km+>5Z(zm{=>@|;1NNQkqBn~)C-lA~>+)7w#>jSOhAO|z z&3I;ybzDv0pv(78`<{GHSIno`+f;iDQQB8k1 z)x6^=i+$J|-z z*FJH?mt*WlHzRv6VcQ+)CmdM$u+Q?hAHw};2(dBYT;*gZu%TCs!-)HkxAI=_Qx=OC z(`RID)$o+o!Hdy6+yM+9y5!?|&h;K>YC%0HUYKicUhLD_5@>4UmM}Q8TTJ-#+fd9X zv~z^H9>ME_*Pn4Cgs~0!P=^E*?EEVQ`dy8;ZA`NB=^tni(k~vZ%PBL}v`drCy&k(~ z)7fJ|aM~h8sNL(3avhiVMpIK+7R7$^GnU3oV^Ov$H$v}FdZ=+vqS(3GA!Enu?t>M+ zN^p*QXVE5`Bz$_LU&B|c{-f4uruNINM@iF5J4Ap){0Zo=cmlQ;&Qd%HMN54`CAgp1Ga*M@X*CFRfwG+g>r5~ z>58xH%~{f}=^fS3$vvcc)rWF)^%^IT%NdaB(`tAB{v2#UiAixNll%u0R)rvNdaAu8 z>UIE5PiyrKDGJ-(A2eQho>)wlJg@`t@mM0F(AAeNP;7KSWZWoD6%#z<9o3?pyr(hm zr#)wx1(LV@^SanM;RQAt4F9jdf>%>G#dM&5TEDTxD=7>CFAcsKXiIBc0qi7mPrB#6 zI0BGXy&hhd*adR9eu%<0Yt3kk0ft`&`QkGR3d6Rl{``JfQEe;7`5nIGGU2fXhqeM|?J}E*=+;A5{L|f_ed_oz0j^hj7Y9w#^Ef5?9 zDS#$SDPh9%+>ASsf>78=?;E9VBFHEa8PLr9%rN?^^cL zOe-QTPtZO-hp$-lYb28Cy8+H)zOQ`R{`Vj?I4)P<)yK(ftol56yc&ES+i@o*( z_w}VT=O>U9T<9IdN1{@_h>oIpky!|j`(QK#_Y1x?UDLeyV$-kYt16k`*i4?2IO~y) z@1sBwxa__VhjBUTplmSK&V(VGiC9&Yb^;P9L7WY`U4YjC2^RSCO8Iy+v(ubX;$Oe} zaL}ffqWsndXTtTsg|xS_8a7u*33a_EyxGUg!On#@WkoaU*&BvU8`3WUAfOqYHtXfL zbs9q6`s(s@L?-L&)Im@7UZ6Q<{E!~sItUp~;cMw?&ih5{n32STI+~r<=ma41F3n)R z5D9|P-*(c~Cj>0rXv>ZFXUvV|t;hB>pcerHn~uhT52CZAcAiLcQ%Lh6EI}lYYT6NjuL1D!4k0k|L=N6d(qZ=0MS>LiEs#5tcyl;-S_R$8436nvzZ7ziTFO97%Ui z4f(K9ucOO;`rYh&-8O2OlMhc9Mb1W~#rFMbip_6%27FTEi4YRNx0K^-QeH=#bm4jk z|Cs6e3fc9(3rhIFDO?_)Ecz`6CzpP1Rcz=9aaYR$dP|`9Rmj(Q9qhJEQy$~LXsJg= z4sUyzOkdfNO;7|vCdrcLj){;Sw3_@Si-fDt{nX7~)^>@VfVJX}(N)BwtGr)$DpAUm z%pY@h-t03!@()&YmA@lWxP|bD)BtFpp&hzvfQ9J$9N_k*mRtP`m>YSHlCjipyoVte zv^1zk8;dY`D|cnRMquNxgek{6w)1|GZGwR-c7jnH@Ppu)qknsgF(X;4=Ca=YJru)9 zPeT#~V{vt)cQgCHNms;L6bxmMbBi)uEG`S;2(7&R*Lk5GJ$@kSeV|vkmr@wxmB(?) zNNinoYMNeisjWpu_eb~Mx(?YAwpuyqgU`TOI1fmD_-a*CrF)0q4qNO7RQ~PvSYz&C z_FuiH0dSkO#(rdT0DLqk7B3*yk>h!KWkzKZv2O06KmT7hbe_GZ;^zrP$%N(ETkmY` zX`Bc;TQ-;5e%NSZl>v1E#&;`UBACMZto*-|+&t9+F_i+Mz}wzvb>IVPO=bH1pa-YR zCG;Y4*=Mzdg9qJEYVZoccoRvqDlT4ieE4qGyWJjaKce8BtEijib^XL7TQ@JU9clBW z9$%H)B$nt^uyaCn7hr_ohj;K>zJ3(GuI-oC;9(aE`sWy4^*I^=4` zm2C94ylb^E#~vx@$k*bHtn0 zCa_SawgpPKBv-It&>KyQ|C^Vleg8qMPU`nz&;;jgQbK9-32y<@22n1EIzg`tSqV8) zH>y_QUGutQE?e`@LI1Pd1|`?)oiZs}=<-Ow{`@=)-2Ut`r6SO)=f%U|a4JxG+J(FG zs4NuUD^_dAe$r3kHNWO8I-*3#&Ax+&&VeX)y;1j3gVD%ew z)vU9wd8iAvS#3{toEY5`enzxLy{XZs%L8WO?Q z&J}#i9B%6`qPvicgX~0+25a~!2%mYaB)P*D&*Un`Y>inocIj31*`@J0&%9*P92LNQ zJEB0!4cD8uWjBIZViLtkkmHnt94yGF4M|V2=?x+!C|%v7gnJ+p7R0FmTY4t+uqAbm zUdC9J16m?;@t{Tbub*@VZv%5RPr9&os)Ik75SH?O{_&b6KQ9B(dvG^feta{w@9mQo z{6=1VKP2;s@B2s%0q1E!c_N(qIHlfEnX~m4vlF)3qa783T4Cf>QbDqVgc~~B7r|(g znuKBEgw=Oc?!%^NRG z3mB}jAP*BOS8v0ejJf%BiEB*Eyz-c2+$mZ*vH6gb z_oA~C`RrPeKG=ZJRpX(QpVB@!g=r!}3#x*o&`CRCNy@5VsaOADBo1?0p~?A9Ka&_+ z&p5|_>^na5@%>-enac4B$ci4?2*3D`SL-ad1^OxbaCe{AJj&4tJ_hVvCJ;%0wHM%VjIL`WeKR{{B96E{y*i@_qP19>CC^BJWQ>RJ1_CmTel>0dPw|ii>e{$NnJdZl`BHz0&jK@u@s_3zgH6^R1&yGpo3giE0yI9nO}1b7)0N^$%^X_V>peZM=B-86 z*@C#Q`}(330zU=_#2IYz@xB@ZJe*Ki9kw4~;r74vAw-FD@3W!vZ{M}ipd3^lt%V*J zCi##)T<((mB@j?#wDY>)*!@60Etr)PkxF_+I6*5Qczm_JyG5YuN?eyNRpcqa^IsR&Q7GwP!x1*nQw_XY_D@ z!+#bIEDe|!rl=f;A+tB$0rWkg0F2rNJ=n}ac++s?(8W|yhoa%l2*E{7RTT%QbMA9 z>|*z@KNa8`u;F^5%ovi;TD;EI0A+GnMBc}aM<$4i*#9k2Y_c>m$5cb-Hc&|#@o)MHxZ?UdJ*wiul1P$238SA>URi8P@Ji};r3np0=#>i0VM-sI*^n86r3KECFrjw^oyPvwg05@BLaEVN(Hu@a-LK-7cT`9qUv#;=jO#1 z)H1y2LU_R5^ll@Yt3)~EN6pbbk7eTggA3OZapsYaIlnfNBvy2S=M9&_Rw9qHA9I6} zg@G>^E}Cer*(+$b(&i2YD)=EG_;z=+I7DE1@u}%EEt*y!WWHcmg~$kmZxheZdY-q_ ziqB53ZJQKAF+#C@=;NCCv%^=tg?pYTQ z6D{7l`U)*48%D-I+&Yv4Ps`amwjEzy^nt6dAG!M8yrFvS(lr^TFxTp3K4fS5b1u*LAY}TPbDH z?IWD;QyPc@xl1yaF)it>VCiW%)yN^5iB|2*$*r#MTQmpgzBLv0!IJ_{b+zETq|3S} z_$XEcL#_yLoD+A)A*g`bHP_-k_{Tofr^r!zkB9eQSp_spYj+D?(rokF1K)jluL20M zw2!G`x7aN4ZhJ^~9nq*E`|rZ$TOFl4nT=v3aNz669OdiBdI~tG)0=w5GBXzuiN(9I z2d~Xy8ecbmNomxY0~mxuvi?ynRcm@Ul64z?MvHOY>Eadx>kg4@M1WhDwfjMZwr8J- zKX=A8iG{eI_j^wR@sqp@ZnPB2_XQPD2Am zoiR<}UL=7@=jvPFc-?t>jT5R7ND&JERZ27EM}ZYYMc;AhGzULhs$sSf&BYBA5dx@2 z$437-3)mpPYlIG6WynmN!qK$v^?5q3oY!846v>T(I)g$QM0~j|Iq{c? zz{-QvB~=V}_J@^2r?kfT0ZjT%eqo}#M5jVX3o|n^7{zaiF#m)-m5iuQ6Jnr(Mm_wlQr()9QJ81t(rjF9Uc2PgX_nA@Gsl-(F0ymx_hFKsZqE1w zEbw&TySe z#!Jt-nT(*qU?Q)Rt#t1SPHI^?e0>qGmlSKp$QbhiMM!ANUW5I4x>P*+241Vz8V(Vn z#s-c%ehtIB{dzX+{GRtB=J&)UlZ?~i7X+qb;XPL8y_ZFwG_yd&V8>F_@=miRMWuM) z-qEb0_8dy!m~BKJJww;ca_)G8w}2qfqwU@yBmZC_h?~l2%7-dx&Oai2(wV02yUCRt zFbci>jd}Gm8RYh-&M?q_suiR7kfELcz4ADMi>Cc*+dby)M{Y?UOYiV})1X2kGUW>Z z|993W8U4`-OHRtK!t}JiS~-MRIV2_=wy7P6Ht`@{fPP&8!LaEbBLI$u7lio5!twK1 zdHf&HO~Ol4&@ZVo>Y8AbU3+YJ*1RoxR$_3@L#66Vw~qV@M)I~|w-a6jKlTqE+Y~7D zfM5K92^n6e5+q5x=el1On4J@|;A41=r0>1p7V5{u=7(j~c^xZ0P9Ise%&G*20*@4R zt3p1^qqG82*%%I~6h5tEOh|L_q8{OoN<1L$z}e)^uTZSAV1BK2E{anFA;OZki?K`@PKoGE?e!vdc4Aj38ep|67b)o$OgFY& zLyeQO=pf_&@KX6ebyF=)U)}_jz*ZaY+9Cj*HX~d4wGXp< zI@Px8>|9-KYgn4hM%D9tQzH3M|82RAZD+B1pR@CK1C=YA@cCcr96!8{5Z>5e&7*+b zDbWh;%3#SW8vOrMH#sK$HU3L}3O%)d=J&z7|9O{Zvj6`flKN4IAcuUvHg z%BrsZ{|U5q9_te(rf}!l8sdS6V}Jzxf>L? z*7z=gz{63(MC;3ItS&#%a28@d8C?0g=LivtHEdJ0>~{)UnF)I6MVTen%v0bM686jB z_&(RMGMkrN_Oa~Za%DowLy_FK|IzgCYGu1YckTM=+AwOO{ zC7(2N-%Z6|K?4%-JPEym2f$;wdVX8b-kP=hdB-~bP;zAOY!37V8cd$~AI(bPa@c8} zT9Q{}1@5n^Ma`OEuVXPJ#N$LMld2&&4@&Q}6F_>q-}=sO>275BKcup31R%Wfz? zaohS`{bMOY2pNK#`~ukc6(93g!c^Ou#WiKHVG(2#4=uknFBr)K@qBim>b*Vv6?R*z_`;8!16F@gTKx5M}lg zRZr!GYy;x5I4^sVREFp9po+Z%+0B3|onp^C=18t7m0RLgLI?`Er2waVM!IHFz2z-$ z5x2ME_xmuaAeRQcKQ|!lBWJy*!qxRDuJGJ|cL!kNlR+7$47=F?^C-#0&gcy)=1%nARrq6}qS10`&{mPb&xBku0T#Iv*P@j7?u*Pv)-Y_IVv01PC;3;IA_!VB(X-tijl2v%)R`Yz&OqqpGro_RD`9ea( z$=67ql_0aP_HIdpH%aDq(QR}&{D|}8;P{AO%t8f{a>898yW!=K=t_ol@-eNf(3s7t zB|%E{>XXH6#*Ir9LTBS37?uVQF&D+UGn07hk$po5s?=Q%9y$okpwZwe+79DhV_x=yC>ZU~*9 zWrE;AP=FtAL8ZC{cB2scIP6jZQBL`6z{&P^X{YT-nCTBt=}$@d(g1eDwd5adgkKeF zJKyCH;2ot42^X76U)Tds%+iopVL7#qO@ic70+Dd}BDLDS|udcS-W< zCF{)I*sHNho@xSi)-y(bD6zkeI&7Kq4iaIrjG;)%(_2c%>;L9b zcF!P?)wbMY#|I8P=aZg|qDEn2Lm_ew8;K4xk|Er@o8ke%qsE6Xr6s9=i zw&*>p9C^3Ds#(yL7n#(&1YGFIg-;DyZ&>R0LcnP?7V-d-9z&zZ;qX$7!rA@pg_6`I z9d5fhmRza#y!E@&gYpS9=rcye;mx0qJNdJ-EA&*gL+4P?Q z+H}oGY;8Lrn-I8}X}_Iht7-Rx7b2jkN@O!hME*ON@YAXC9mtKb&ncv&$N%jP#9M7b3WtE{DanTn=C*_BTfCeEc|azwUzK@)$P8}k2hV* zCPz*`eSIK1J?5RL)`$nHq(PQy;1oKiLNhLKMGfz;&|Y$&pjLvxPJ_)^ywsD~ z=Vh@8ud)TRMoe4zQ6!3QoegN$xHZe;Pf4`ILB|ZWK>sHYO<^o#fyFwl&)7^c*6Hho z-w$)|6#i9i$KcmVa6kAH52wmGrVFj{TgA4A9@lfaKymh#L+mC3e)$ zgGmlQ5^n%xh*gYip1e*9x=rSgqFQ~02XnKP?;15vLDcf*MgA_jff@K$nWi-`PD$F% z+&A+er_mERDY2Jgt=lQE>%QM?pCC^*0t}lj3%NiAt;O$GE)K*uT9wLpskQ@j5c*zR zI)rsqQ5(3^#1Vbk_Ohb$N|;m!@m>A{1ODK%s{{|egO@PMSL~dzK)g1JCFq0 ztX-c6X_Upb5IDCdI4!|FY2X%(kz!?Or`4@9Px=J(mTtJ&+4iwNaUCYS1L3{%` zbKH@Ck4-39PFk7_ge_C)Ut;&TjFysu)+9J8^31xpjq~<8<4D^J%=zqj(d?^Js@_V{ zh4S07eHR|!J;#h+8prj`XHUuTQ$||2zMPCY{p{CWy&q3g|80XP-oo?edmFFszz03f zVn$BUzss9E-TU8EHHVBN&q};~@(5M&ZS)o+Qe4gDbNW~Q;+-wy7v8tvMX_@PoC_2h z3?7eBbswQ9>AIa+*=kbCO7FW~Vaj?$^?jdgDQ%ggH7Y}0Zyma81EzDf^qo<3ScG}J z)t=svzh_<)1f>=Yf8L{n;}8hb331IeKqjf(vH9T&-*(gO;WTfHvu@J}OG5dErZP?F zKrAL~j!EOgha1qqaU8R=cM1Stx)zYi5xxXRkk!c*Q~UoF0MK%y zg5@pI#|Uuuez)JBHqH9`ciS6%szyjnK=r9|#R^{B50;pnKSa%Mv31PHiqthu!tsg9 z-2U`0`!W=Fy>U(023`Gq7FuhTUgzKrVdu!UNHA2%dWZHC^I6~{Xi(iD7X$t&6%qVj z&fy|Tf!|Z#EaL|{`(qb2{G20Vnn#3jD%$JY5mgS!Vx5;z<6a}}lw4M#>-|Io zl_RC#c+X@rR`nEk`D_5gH@0VSUJJzx+@hVmx^BpGzjT`Q))@F6quE19O}~Blu~JT) zz4vUn#9mwA+V~>Uu-ULX_R#?(+2B zAk$3VAm{t4V9GZ^Oao38P`yymSm3h9>dH;|TTD)<&P>=2M*JcE9J%T@)@*|_51j6y zbC^m0<@Uq3g_Ss%a1bT=jOW!c509B{z+kW1h%?=j5qD?xgltugY>=`!p{?@HB^-m(ON!cO(oy$wUD&hT&c1)0 zEf4UhY$HyB2&)NIcxel+a?tPA- zjQ}MexLcU}W>DUHp!d^HZEj;rtH(vBNLXK>MPZyr<37_%Ct5F1b&qyrZV@a3>j5E7 z9MAh5v>cZ(@WBmM)7Y5X_NZu++thwmdoRI#JMFXCXWnFPaKVk+%{k}n_ZsGhv5#g# zf~CTCNtqB;b#`B`gMZ9`?RId(k=3iaEXlUH%qQw|y>`a0@2uK^`fks@qWZGaZ$aI9 z_hqit{K&?68616B9cQ7eOk5~XA$9fpB@wFabTP(flQNWHQy*`c=i~ddxxfyG+PNM= zId<58LNpeAz8r6?J2N+5ym8PM7|-SYI`SJv)!grXZ-d>uVB;+54_o|&UT5aHK*vN^ zPM-RG71Me*vQP2FA6NK;O~^!OLiuIjtl4S62E6YUM;3J6IF*9UQayD#U-*3kv+;hX8j!Wwt)n;(%=YN* z21rFgAI;B(>)=6CJweZ8*Ul1sa?DUriRO`U&!$PUW%>AtXa^?;r# zsejws@xl?6*unx?J$VL8Lp#Ei;8xki&?c4rYU9u3r2u{3oJersmo%Ld?Tpqw@z0X9 z{1){4yH{l8MRzClIEA%(ZOwAflK)sm8Z0-XzjXz`#`$c-*>KB`Pt9e%vx)JFPwTdV z+Xc6nYLgEi@3d-pjCc$+w7@66hHsWu- zgAM|+MvfZu;_7W}IK}8KhwbmQ&uw(eR(zE}@~b z-!bu?n}?b9XRHN}7kiZVxFvP5zxip@n+2)pIy>pGx^l%m{RC9F=fXa6c~?G@BbcYKG!|f@Ci>k|S-e<*vHy^E$7F)rM9+4ko`g ziAp3D^)|0)r+GbsT?!KZenug=V%2Wf_W~b$+C%eq#`@}Je6O;aUN};6nge4J3P$_$ zce>^_w7$i*+p47_E{AN%_yneZMxN1cAVCJoRKGaGwrRUed(8M*F^^J{dJMwUu zDwmj|nY`NmV4=pEhgkQ{Nu`Dz1;0O5uKlf_%5$ZO!6(>7#*L2$YI+$P&K)aW3sfQG zfC(znqfwp@zhF&p@odZ~UR;kYO?nu=y`^o@<1?Pep*Hu676fEK7Pv)l(u@zx`#oOG zMz`U&(?_W1g36`e-`l5%Z9e5bL1~=zi@96~!#I|o0mKoer3VUEei$&( z^f}4zuSUges=>rpt2S*5ZYaYNz>OczUoc!s&D3cUV9d4O;r+0IEZ-O;wWS1cFA6gY zN6r=l^@I;xZa$W}#CPJ}s9{XfpJq6HWUj8f zb;Q3?Ky&Lz^z{{+Vx!j<4OstihHIdOqpIN`7sF#2LMh5aPy}6+chikHM)hPp(fjzw z&lfa1-DAl^lxURLN&r*X9_y_W^dQRSt>bVO#sg>94=hp{56^KAuW;Urh6oY71+?P zp7ChbZrZ*$+t_e59}I(Dc4@ml@k%1|iMe=OXzgK5%6w6A4K|Om1TZ0N2S~V%Qn5)2 zRT<>`h|Z-fakW^aYGki<<5#h0qOyCa2a{~Cr}`S<;guLh^zYwYxZ#QNCccyX<}1p| zr!%9=`}rzxj(B>*5g!;vAkITP?;-U#+%@f|b3RsV+l~P;#Mpt0_&d@r=KH{sb=KL) z6V7ythTIn<>eqg}$x1|2_TK+gw3 z5UVD7{$LI3?5}cURlnymkoQLIJCoiTYHQ5*|Hp$8{1lkjKm>7tg=p!WhDRri>54z? zsZ#NIErB}clN z)Bq2{LuJ5NY?a@~>3?}I3wLRpUUW@{JKi9wnEP6!-+$EFRn!mHX*!#EB)aa%Mzkb^ z%^4fqF|}M7-mt7=A*$Gd4PWiLU-{wSVHHlFycWdua?R#kNoHt_kyA>u>eiznFTYPm zE#jU*Fa@`LgqQ-Hsq~R{>ef^#hsG}(uaUC?EQ#02{l;6r@RCU-f(|b{< z>7r&sAG3&T_Qe#<&!l{k@rnt1QF}D2dNj#ueHqixpQ^R{TxTs?sbnL{DFs(`bG>8u z^LRO`f8qDo^+t7-;q1HGxD@%TYtqdeM)$M#brNl8M4v$v3)qXgiZ-cpPbmAINw!X?V(bz}D^z^Z8wN1ILkBlIyaFwE?`uo`xwuZX(M;^a}?sVCi`$Z4- z&g!!MbN#{6!9D;Altl9_wVx7Dcq|+-a8W0LVVK^M?&x3y(T73@Vy8oOrh5QfKDJST zhCex1T0exNpRC#MG}^PBjNG_KnaNP)aDr6P^_D*Ey)`s}Ra#1!7u5-y{n7~6Z;!Hx zppuJBg8?Z_cK@rT)CVo2@~ACk@yk}BDGRZgH0tN#Z5}x(ZCUeFJ8or4Z>^H#KUH5@ z7O=l+W!uI|G=8X~w

cIDjtG6=sc{c;*B%UCL}V;IBM@J5#NJuueg_n9>Ek?A{` z(_u^ThDYvtk&h`2ejiirH2t{TD{h{|>^s-`(q9l=&Y-VW)cC<8)JdA-CuKdY1$9qw z?83NAjhc2y0gmP2^l$ch>yaP}829;?>itjsPf{Y%j_p$dUW(`LWA8DDIB_cbEgTf# z9RpmaBed`!CIS584jJ2?XYy+M?e5wSYulLSKKPqNnb5Ti_Qz;7oXZU?Zh#nBiPk4# zlQZwI%5xty+>SQPaB}=4>XA8*Y4*o1pKER~dxe1)sm=G7nNN={_4w2$oxm?@a%SsM zBqbq%t~di<`y1#Sva0|dyxldoq+J&KxZBd_u&G<|So@=|toq@CHC1eOeX3mYLVcoI zhD1DmySjqXSx+A}d;7F$9a3L-WbXRh>qSLW-~x|_xUz?j#APK^sMKc{`>e1+#@v=i zN80k%R2c6s>8}G8w6bsH`pO&mQBSh?eC7QM>PyuGv8DsWve~<9Cqy);so5 z1)N`id47_<(e546Kz)PM7>Qt?1bJU;nFAS`g6=meDiZ?eAhAEvlXn8E`VHZ$PY~SSRBqV z?(B6f{N0*9_}`qIHY|sy^6Lw3$tzdA$T$RLmrLCX1pCM~;c(qY1r=ft>{EQf*`ejR zK%d$&@&6#~%j2PZ+x9D=vQ?5TMiiAS*|VzWD3udvVJn5 zd%;1h<@E9k+H-|CrxcY&vdMReLuRwlbZPQd{2xVUdm{T~2>JT&`y~R=)d2#nv1QnX z$C|>Pk**|eC2`&)-c<{VGblectkJ;Iy$n?K))LFy$A_8UN)>kWUa`*ECM6-1Zt6ER zOct1I04bo(wwNx%{S(0ut0Qb!n6Ei|*kH8Ae6Sl`Tf%4l&};lf18~5g_S$!5H^-ws z5Bjf5(0y%)o?!){a@{80#-0O#CO6A?mg%SbJh%76>0d?%-1AMlr>$*R&nvv>(0}+V zPdsPNEUj@)&=e<`bCg*zWUfAN{lnJ1Gj)(XyKaXWd;fc(D{V%1bR4A|Fuj+)N4p)q z1HE-oX=De@mC0n(l7QUE7Fo&dTG;InotV54!O?CPiK|A1n#E+fm=CwW8c!1V#_DMsG8zVdq7*6{fuIg`-gN$ndzp7rgiCehHV~ow# zlUQ}&oZ~6#yKc#DoNYEZ>7MrWL%rC!hLfo2a!RH8&J%AJw#HLt10JfPsYEj}WNDOf zxbJu%g@m$H=zZ2W?(nQ()$#~JDs14%1=bk}2DI=Ghw~^P3H9Wcz1TzihNsk0hO4)z(t)4Z6VPfQ)bcBGioiiC6p42@4`;KA8ZSzC^%=s zd1XZbn(&hNQN$Mj3o;mieB=dyRqx9gm!y1gF>>^%@(uwXLw}QCU%Qb|k6E*%=yRsI zUB><-u{}12R5#1#HJXJ32lqT9CwFfN8a=m!YSq3f?A$}CMw+Kjp^hD;lFWCU~fzI7TY&v%z{SXM^r|y8jiAV zVx=BJ@Fl&*zP6enzPCz^iThfkYj$FGtZvfeC`;mz=+kbQzDd!|pT-qIHFsS%yizya z-gAb9cyqJb>6j+Yd*ACi9k+v-AZ;TG%9R3pvLufmD3mmu1!e1dZ-85b4kYm`cE^VM zjB*nbm;`rvGkM>mLbPJl-5Wxi+$YtD{`XZLJXw95^!XBUHnqSgp6`%O>`aR(E<^Jf zAka@hlBO-%GVjf&+Nq0uM2OW|W4LCIF!!F3&ygHgobK17-B7Ct*IAh;^$|VH)jhp) ziG+LF+1;cmqW#I>I6LoUCofdm(Q+rq-pWmd5%qV~q`sZgxX_t$Q( zpYQTOE6R`F&h&tMc~BW({Z*aOpj;=mf?JQw6`DBgcz`T&slr! zke&BAQ?2FITofWVaHXpB2kXBicmC#q2#Awx7~zgN?qlX+Y~wB65mFW~I_CY0|E|vS z56VaYgZa1ZDpfy7A5R1H#W`@pkt(wH_`e=L81ReZ;&F%}?%96-;{PMtqqvNhuWrbC zagM11XdPZ}gqincWa-x2d#}flre82J_RVMcH{q`4t)EnO2whlP%Z8wGlIE+3s4i zBQpzt*EQ@hZ!NpNM3Am<{z6GwwTP_rV)DfB^67j>YIHKk)#BAx5j+Oms#1Fm4b59b zSS&JwKzv~AhmeiEvP?^IZ_I+r)e&eb@PXzx+_i6;48Sw21PtJ_OI){pvA9N}>TC}{ z+WFljJ(FU5#va}D!zJk{Pq@kxk2`mj?0#dKiv={X3r|H+~zm zDwuR4V6P?S4q~A-bkE*Pt$Ye3ndzK&#Y*86o4;P<`v$P0UWJ}@#=@F`L==EX68Q#` z$d4C&x?DM`Lxah7&73Rk$Qvly}LA=&E;?PljoGf3*WTPQrV%M zdGz<^-vbIrf7&CIHk_Zb)1cqr8+UeoijHc+Z|?D!w--#UxC&mI1cYZ)NJR+ilM^w$ z@Uevy(5LYA8|!ZT?c1SUlcUMQG}2JqHh*SIE9wT%b}5O!%fmpi3rvUudvX&aD1ux!_m#qbK%C;)qhJ`c^K^?dsp( z`&|h)z2xZrauTsscbE{Q+18fUkF8j}691`keT2h9Y;xD41y?|7Tb=%OItipK!l=GJ+^ z?$_-eF>fzKIeOUSAS9}B834iFZ`|wU6|@@@D_1UB6&|+cP9!efrsZ?fWsvAAs%* zH5ZaCdYet#z%8vp^7^x`$8dm?t=aR;;S0bdN*j5rYH!{PgeW$VVD+SSaS_q#^!frACYu;KQeA?f+uu@&QdhN+1P{fjx=H92(jhh&r{RVTTZ!F$ z2xY}dqR7^z!c#yAh?07$baWYE(@T~E@Za0L6+wc$Y4q(+U z;XKWX423J~$)twH>v$)JvCYCP`DW@g-VidzE2Jrtx4jCu({-31Q}LLSWf|{w zB=@>&=||6MSIMbR&!1&C?R7H691H_;_7ZxKTssoHqUC#%!5!)D(}>r`n}Rk&k~GHX zCV#Rd0o*fsDXc;6_qQl1LMrXu2dQzt0H~Qa#Ow8l)|od#j_)%B5mlc2RIMg-oL#qaJCqmlA!oowV>!pL1@*! zNZmg3oB8KEQ$=nGfpe8GVeki)J0Au8gShNzt;bI{FYBJj{7OFu6+s+m95`+n4Y*Ex zD{sK9Qa>}W`t9ET#MZo?z()zClOk@u-@XB`vz$MQM|A|dJ;oeJMn*k2R<0@TEpKJe z5)LoT-eRTD*P8guY0kTjOtY`$H8>cfc%1TCTgVOVcbF-DK3uQ3Jhu_Cj4qv$p^@Nj za4ms<8NmW)N4#rOX%DJB!T2Fp)JC$Wo`P|BF;3%i6a=el|Gs*by;}uQ*Eo1+_=I}s$-b$#?14q{@QDaZT$xk*N(tAQ_)T*58wq<4hFM`wi`L4MB82_lsM&8Y` z?MnG>Qf@17PSsti^b>T;@W_!JV3BZirdq1v+n;{i?P0WIqsXFR#{>KlRF-WAwx@*j z8pHbbT-$i@VX1XlF8Ha%YP;ff;cJ>gLXt{>+8%Xzr_wn8xsILMde=0DhlxG3TrMqOfFr|ib>}J`yth@; zzkf>5Tv-?9!Zc!Lmv^Fo@D(27U+8vLN}N&}Ni}@UrLnfOQM*g%KA=ESVpspob#}n% z#d$SNr+j_KwHhzhxL2X#94(LRe#|EMwPZ(K!K0WXQ%_G>M+4T5>_!e^5eHjNYOiu} z0W$}tWJ0ElPCr(gzgI0x`zfDz(F*5QYWKN4+S4*Vc9p|q02E|?)<0q-Va%TIO+H?O z$2y^5s`=Gt^o^>8EQf>m#I5+N@tY7(}~$=M1vGaDbM zgY)Ems}rx2YqQD*@1BP9TGjy@N@@NQ3)fTw&KgMs2sb7j=)-h~9;Z&@3!?X1JK%3C8w4N!(zx&IR zeup-{-lXbji}iM6jw(N&-rw}KzTaD*_G=hU8g?W<*;vqK;&hv;D38OTfQw&I@{yui z@)fd-4d)iSE5}4BU$;u9TE2I8g0LpoYb?&gvgb|cw z!I;Zp5FG(C9%-vL9CVrpE+IbCH~(2k@x(XthWY6u-H&)-m503p<6Ok<%*-gofv(`) zhanj>*q$8Nk1Z_kRQyWDP_6AXMfsIRb3d{(h{DlA8PT<2t_GnL-refjuO@EeYYHl9 z!!L@HYF1v(byhC`i{wkZ{T+S-HO7(=ez~b986Z!G)Dm~RFiQL*rzY(}!(7EcZ=o{y zHe!$aL9@DVpUCcP#Xbiv=@#K)@>sR0T+_h-GGR#IZaB(PU12ZcYJG5>;0Y@r$t1dw zh52QkgFoRLL--d~Hc67frF0Jo+zyV%48N{-SlCI%wP(O?w6e$& zQN2`6HdSri)(=pgv+F0#uVP<_r&Twl#{@_8XH&@(44}?XzH2)<6igjyDyb`hsAzb) zHQBk8T4a-l2K09uiTBC$dRr$_2i}Xt$?7oi>`k&XIHMor+GQ^5C)9L>CZv^;|N0Ed ztUGIHeX-Ej6Q#oV7TzEwV9f3#+V{GsZep)T>{w`P-roS)g!~b!o-d++DS&^XYV;Ie z?^SQ=RZjE{uu5&&(DYq7{#7L9TKm0!Xiizm=M$G^aI%u;uBir|U0;|R+Qa9?s4aBU2h+Vphn{q{f9FY_|$3+dW=`{wQIVRh3A000jYEQj4Kop3=vUd&;x$V1gYrOb%unbitC6P}ey-CMj z7{4`egfT4y)OucDKdH&HCZcO_zY6cdVK(DvJv^7QM+7?z*>`lOg@QJfHN`&Ljs>2x z+I?v(MY_?WDyy2Sn50PTx>xU25!I*Mk5SKBpkaTEau8$JKM_?b>Dv=3@}4o?7HHfS zW*PuTf8t_m-m%`D1kylKPp?PJE3*M|Z;(R%c`1JXyy!C#g4oCd(jvoRz8fy%KROhsWiG-X% zXsXES>!*kTr4K=yCj0fWPww(&FZ{yEpNq9}I%r*fzGI2u*B#5JL&?=|rnvW_Ck_>Y zvkT0m-Pm1u?UwNa`^uNexKo{g~}iJ9&ATS!V=_hJ98@`)1J(`;Xql z_B54UIr&GEfa+x`kH+|W{xz=+Nvf%13Ts)@Q7DDgUc_!#VaCIgB>HORJ@3Pb@eq`k zRgBgxDSnlPBTk%xKRa+?KQ+e5r~6T``WFKNggb~vPVe3~fy|5{Cd(v*J80J4rvnRQ zU){4(&Z?x_V<~TK>P|iQ#hF>xu80s6Eq@vvnvk`EDySP4Sq%A&5-Xp88)BnP$j(RB zrqc!Vl7%yRRaQRL&kaJz>(TxV=wnnwe!vO^S%>pum`5EaPLWIYIz`7`q^7 zlURW6Ord8dcVtIxSMFE616*jdhq7pDisn>ext6xVJ__L7J>sFGT+ozkZB+v{YR#Q{stGgtpzCws&v$LEzjU-J?M zg`PDAT3wywc^6|Enhesoj+GhEIPw~I7h2NzYo?GEJ-CP`89}1r46~UWN-l@6(&A3L zba3^7ZoXB~9RG;#?8HdD`dKfq*Fp(b1n=`pQ=PwJtP{toF_x7#|un!V7t zNJ2jV8^%92t|+>pHT98#fHg*O&efegvA6+0?B(Ny^J0hQ8oO1e%C1s>u6b>JH-jVn zN%=46yee|eeBiTYO2aAkDt1sZq%fk_N8BOBbaSiD-=(wjoz8}5J!jdPrs{(52K@n#Kc?)qjEkC8Jp-o$y@r*e&0?JLX)B}JqBg&3e#u-Sz)#DXnTh|P)ZDQoF zqi^C%;soN9T`TRU^}5%y!B@~5qugr=H#ScyWM-B!Stf;h)Z*Ohi(ro0gE_Dc867}B z<_KTJ7^mRzK(4bdIto3Wo|r`Og(9V%gabV>$2DBm?HC}%x8Bq&fS;D1{N!%e3NWh_ z14k=H3ty@Sn{Gs8|v@U02^Ysa6}*s|A#OC7X-fZHt34+o~#?||P= zcq%44y-a98Z0byIS8(aK&%kiTzSV2;2M~P9P3)8lfQP$}YdrGmRSP^PPy!+>7yn$I z(s>o#x7#bS0VM@uYe5a@$nzyS{%dEL55X-2wnpEl-Eyl*Oc>E=NN_*Ncv!NKiHzzA zAvxpKRo5nEA0sb-zC%xp7(YmqskJ@oaRd%c+h{nmouK{9gsv^=X8{d>5Zj*}gm7D* z3p!^l>Id1a?UY6ee9^jtm7g&27Sa*u`BiBjAAG*8>6d&lh1b-RGcGKE%Q=K2u{I$UjuYJ9N6?Su~Av@_-zJ6?z)l@uT2@5;B zyHQj9ijNITjP!tY=u16`0kJhGpWjJ2iK&oKXMWu*A0cxw_cPQn?9 zTqB6ejyxn4=CK1!#3tF(jmt5->=BBh@BcG_P6*x7!liZZ{v7UWdz)l7s`1_(lj7*s zRpGD!dX8D2g!3$^CChIPr-%#sRAQ6oUM(0fm;+3ghSJ2PPt*60kE z^WAG1RC^)GP^-6-3dm6QtBlcM1#qFko?m`>kTHyZ;2IxsY7-d4G2GJ=Cvn?P+_isE zs+`E%FcIdvWd*P9O3wf_h$bp#uOq(YLs{n@s#bB|-t22w!vyw=N2DgD>0KdG!Iv1x zGgM2u2O}1l{oE2ryDu!B0~qBs(F=AzAKk}fjx?_r<%;>;Y`uz#-mTrvv8Z)!0U%&m zN=!tbOkckofi5nK3C(~VVI|mFgUi?d~ywsv#u9VQ=AR-M4!YWi(hBH;8uA%s>+hWA%Uy zw1s2O%Sr<+x68kz7V$Y5U$|$dwu-K$)!->dOC_;aOlHDc#DqX9dozi+oho?OA zOsDRNX^&<8`v+nTdfm2TG25OWnw2H(e%gdoM5tLF`<`{>s&G(PhJz2#&=rKSe;iRV zGksk{sp}dt!yf`|#*UQ{F0#=nRJOOzUNq&t>yH|?-QA)Q7OUg-zULo&lWitjluTT1 zWTt|oNPeVZ{g&&swTY|SXF`Jz-;udI+nnB?FkMU#Sa`521yOX6gyE zAST(6RAa*qXm!1m%#qFv2*wUl+IplGoclC6at1PuIX8k*x#Jie9!!d{XB(2FXea1@T#B zM9>M}cYQ8KUMO0`tq)bd=Yfo{mI~pFx#}@<>sF0cE~-t+vFRX+trZI7Q01PfMd{qU zX#ANA1kf%t|3$md(XZWUf*KZr=6#|g{rRkVr< zQ_SL;>#CpCPc$TI9QNg(=$g_esz3~*&xF(FXm;$FnH$OB3UDW>A>jcjaKp ze~h^<1w-D$g9s<7%wC}{^gMao*Srtck+I4?!>hXXV{JwQ_216q4g{Cfr2%_3`L-S8 zSkCINX_1RsGAy{RHSU|OSMhyw!+)19X@{_X^tI1;sEAq@gMk)DehBdv)>;Gg~B{voGvNmXY+1q`L<`6k7UouWrSDzA;5 zpe8PG@-tCQs17lJQ(P+t2Ml94n<;db(No7)tiD_b_UU5m9<+S=1(7H9htTn;Q0UeC z+2nIk#Fk~ezl;6Bf)yE{56k8|s&;$Z$N zk;^dZ*6b*gS2zvV> zIDkUp`GxAj@X+41pFS0J8{L^*YQ-zU@Rp2NsRL$VI;T#3E?3ca8K$L|P@A~njuS9B zLt-Yr^t;uSj}vhAd=&rIM*q8-aTPZE9Eg&HO7k$3A~K)=5N1pe^!D2Artu)UO{haK zl5ptH|59K>Zpf^V{FTT*`&l6B872%=4jsA%Veg*;OWwxv0Z>y@U!%L?s`fZN&e}G z%S_XN%JC{CF7Cw07JIO(@wF)V$Jx)A&#NCLb7suIjkOTw`1*yaie$0WHc>w=3=mh_ z7XVklS?skM51%NSeO8-9bnTD(-6f&`gc_npUY_sS-1ArXB#+5W7wegr?p0l00=h#h z{SX7E#p-MaKrTaX_)3UQ)*k)3V|E-xa-~0M+WI?{z5@5%e4Zi%0`;=|$rh6TG5zk% z;}c=KpW4Pa!!8s6;yh_Q2f&P;P!|cexyHw91j;<%)Hmfx20C7skDhOf_c`%DIp;L0 zaoldo@be2~@TiJ6MxzvxHC?@p-*-)?iXhVF$E61zYg8hpp;BX}e|-wEj~Br1=zU&3 zO0E;wYp)F4)=lSNGyisr$PEN8d~u!i=&a0 zWu>Vq$)4~>8J*ulY{zl5#}joejSkHwTwt0p5YX)Cp)&y;!M{IIX|2TlB>Xq7=#SFA zL?9s70o^mO0VUbw1tkVQD&l!0hzeOBW8_NQ2OAzaX)W^<@4S>0q9W*>BEMhw9(@D+ zhw#MRZTsn~JIhw5_HNFQ$nGN^r5^bpB0wOLMC-U@PS~L$|GI8S^e4R?i)_#KD@h51 z8D8plo2%yA^t#OSEGSGr{)@md#wlzwq~bokWkP_3-P?Z90ExzTDHpX|!z39qXdHcW z+8^a0f@HYHcdv;zpw8!4x6F}XN;lCwLLj>>LIjsA{##~RQDq1kR~L-6)7iQfFWe)h zLXf7A@>=MlGG8z7?;b1G=REn)y8kZ3D`N8bn+4#jELAe2;1?@3C4}GTMN)etEon+$ zSLUFiH~cN-*H#NdCs}6J{BTqJdgKB0VO7hB)wnt8QJ1YlUNxNCb~6N;JIlz}aq1^K zUhY0*C86oKkzc9X9w97o&@}Rx4NPg;Ga=jjeN3idd&9c0{ISmMs#fV4Ae9kX(f|vF z^Xf%gW9f=p1JHL`9O;DLOh!_JV-`ov=rnnSe-0ye82ht#z039T1ri5(aXJr;Anrgq z=~Mo+(h25sA*u3LjW-^S!T@RqLs~eYa!d-dm%*$zQUbf%nUVSjfG;B|Hx&ojqr(-; z!d&b3>F;?iwE-O1?poRb_dnbZ?fiy`lc)tx9tcq3Cxb5UbXiRBD?Xl~3wje`oRQjN zdsSPv^y2k?~Ffq(K@1%Z^1+ogHa8lqXAd|A6vp#&yPkjz*=YVHYl^ncJZ zHm$q6esVeQ@IqKc@3@Hd_zH;QmGw9)lpd!8C**y`0{Z~iX~ju8PO zSvG7gIX&C|QDq4Nn`_jiU629&hXjc~i6|9An-ISn5%6ZsE`rttO;Oiex=ENKqji2UE)&4O76&9VW6hc|3MU;K_h zUc1HiHcO3wxLAeke{)P8v|M;0In_5p@z*DSDCtJXnMENQ7IN0+4d{~m&)QJZS4pBi z!#LRf&{{NMfVs_`Kjvw|Ha*sN18PJZNj6aZm+ncd$pzMot-pH!NVG&ZW7X6Bmn3xS zHVDOC;B}z?|3{k630RYP7nkiFNHZGJ`Cmn=fQGSPCLD4cfbsjrK%aNIGdI`e;@FTz zjXh;@OWpa;j(m_Jx{lqaLf;?^DZs#n^c!FJ3)|C8I4XG!t^ z(`6;N*VO<~6((w8#aE#H;uB^kAN6R@$w3D4-4EUtFmXz2eIO{^1avgpzC)F8&@c%;|M=8XAvj7VGr#GNtp9C4n3PHe75W%v8|NkGxOSOKOea~ zb5zr#Duv(tv#C>>UXk&7c(CmygFRh$ueU&%L8*smp60WSUOS7^gagml z2O?Wzl={HnO;GvAlV(gka-p?CEQ9im0I89EDb2=bP>8cMy?nGxn{(z-UPFnlXT_$| zyUt4~bw|TWq<;icOx}R1ySvDi;6T^XCx6_4f7Y%#*t|~)JwUPPf4rOPygE*AhmZd*dpy19QaDDi zz>Tp+TuhPInMCdUiL0#S3oO7o&CpO!Vg;jbrxD3EQJT5m{B`@2q~nNQvwD(0P=p31 zUCcj-{=G0fNLkTKX*a4%m{S|sWt8ussOis!<8H>MWq26%z{@Ekj@O$Sn=t{vL^Q+v zQC7ORajn{UQ7%lhX5-fu`5bvn-pfv-KG7Aq9mjgq#TI<2Aogqmb09pYcq+-Uvbidc z;kRCx7M=t1Xz(PX&Ipd87+Ga;o|jp}I}63;AxDD!UgWz#;!P#q*uunqdRnu|LYNUt ztOY}F%a+N1@Q$WukqNM~CU-T8M?;biLWQFTH zNg*F$C-QUCnrU;yvDz~G0LH$#eG*Tj|1@rtqDRXo%sIqYNuGiK;H@!4>LfKhwd$n? zcVY~gnLEQTp}WP(FLfOr3lk)(q__A7apN)BfPL1S3fXf0F%m$f^!AvSe;#4^bL-vMb^fbnZV{Rwfp@|KjS0UxzwUR)A5elp?5vn0fcz;WKLT)xlEv*(NqKp< z&Nq`1PK+87U>!ylU6aAKmZb?SAL~{OI>ZghCWlT|RO+ zQm@sX%NMm#vAn3h%z@ModvFpDY<}i+Ya=L;GRczOkgvJW5vSWQ`0>I7u@|FC;=s!G z)w`Po;s)oB$s1V`P-nNYvo|NQ9GxWCU-<}1KC_E%BZ&a?IWryy*Dh5uKM49<=tAUO zXLk_GTsy}ouFmgkoF?L; zm57(zN=4^)CUf*{c`+2~39iXHxG7!bfhNRs1Qf^oN8@563;<)C3YuY3ir&T8dy)a- z64G{^k1_mS+BDi@+?JFtc2(<~9$?@H9()vjMnpJ85{BDETlGiO^=4ty2l?It5-x70 z$F+2Rc%^NIj53!oa7I2pBj#1{R)Oad=*`ST!JbJ;60L`~`}&kYc-L`yBtQtuTq!eK zjy2^_d<7NRQh9^ycp2?}cxVT=`1veji~|yF+fsK%9Ihp5Z|+;_03v$3ty{W+=&MUR zjAgjO$=nB(Vr{M#l*X=1m!_MV;%I7qA((t}26^H*Tv@aXmIoRgLSu}Jn1++u<-D`U zDC2HoO9Kv0S6%NB!iAr>?tSFBkMVH-=;e2boCuHNS^VX;=JfOUS zC=k#SEZ05JtEjkM4xer0G<1|Pyd{JRI*VIpR*gQMD3wJx^nTvilU?<$REBpxvTzZS z?M=I@o@jbU>-^8DDGrR%0ZpNqfn12cGkUpor(})?Ou}?=@6}XlOi}`VKlQb>YQOs< zb9>z!M;9(jEZS+u^sP_jnv|Rhv-gk6od~$PXnH|^hNv{F^4qvd%zF+tB6v|LvG~aW1Ij}(NML%9))>0+rwI#*k!ldH&#o@5-#DkME zr9NJXZk+R{Q3B6Akos{O79;=jwFQu<*VL3gHbdGaXGLPQ8pMPxY)j>w8)PCCOU z6SuGYfi#v97g{5hZ38x#X$H<5_TPC&ru#%JC)~u!R$OU~fYpm~OsCO&3aoqI=(ipf zY-f>LJmOM8Tn_hjrg`t63}$aQ)OK1ymrU=$e_?#6Z@KGiDnUS@dk>CCmUdcR0%ryV zk++)L3 zedzPJBobIH{j2V>i&kk06Y0|%n>Poaim5L?a7w#z+@409Gl;OJ4fFSbL`PlB4QgF~ z19LZ^OC#D=`D&0$BaGu1I?#&GJwpw>=(g`M+VLu#H5zsw@=3vRW3_}3-L0$48x|W znf@T&K%OUigIENbBE6WmS9xB%?IZ;K_mFc1!KPn#c-c44(y$#(r zKzwvfV_pvIyIhe5l3Z*k&HPpWnlgF!diFFu2d*0;nLE%WjWhqHw|pAaWCc_-+Mhiu zA+E7~A^CFN3hq=l*QZOQwXO|;4MhH=?Y{-PGG!+Zpojr^{ZaGC_VU|nPddA<`fKOD z7*hIl9Y`m-9dzCY2hCQ10xh*h5RkLLevYcF156=pH^IlNjA=eSCr$F|(k$1HIfP91 zq!Yb(M_OlPTPGCjP8H!*eQLnS?NfECIC<3udQ$Whsz~wcVAoAB7h&G0@OpdNL~FMv>cd;*xFK*iqCqX{^maX{mg`GDvB3A zBH5jj#%a&gA*nixz1nGY%ZM&mlAVwXaEtFc6n1oDB1&3VZYAhrlZ)h(>CSqP^X>C! zjb+AxRu&oSbRG%AX3u+4AYo2R7Yz&@l(!D-V zhFxcE{vCV%BkA(Q{mZk~@kY-~XWQP*O;!fo$bs(?#zcs}^@X)C%J;k1vRy;Mijr`` zj}ZwjF(%F<@ydsY#mTdAI4}cAl`~tFz4*F5-NBM7n;yN&Q@hQ})!L02`kMI{pRE-= z5a(4n79w}=K`?d&-!8bp7W;^!S+ua^HEXkaijfM>;t7}PoA0orn?KsGXWhrlprWRI zV{iVHaoSs)`|(zg)0K_d@+1j-?TuB4MoVk-#JYZg28#!`zA24X4t)mF+f@R@oW!@Y zMQ$pq(-9=RqQCl>SGLV1-Q*k4F+_m&KzXXTMNADm@+pLcGMT+XnC3^)?62 zt~A^}QCT5N`6=01y*-+?vcJ75db#}k{Q&Pbm{s($n10v(qKOYPNO%ppBHn0GosB02Mo4Hs~F%lzE3*R(AWsg2P zq<-GBY%gfD@^|@N7cJH6%NntV=O~vDHblXC*Uo}Bgq7xaoN%?`BK#N5FtJ>0X&fFW zH@d~IaYRu2`VY$Q-=Ke&NUjrpwwdECD~3$b*agc?@v~tzs=WQ+`>#6S@H6n(p}fvD zlk%p{7Ov4)*ZNFZ{E*EfoQWVS`bN{1iJL>^q$jseKh{5SGHsT8N@nYsd-Tw5}Rj|@hC)(6Lj(Qf_@0^3m zy^lc}rGP)pc2Bv`&gG*YZU}nP%DQ)~J)~7Uo#j|vH+WNVk5@o zB9CYmOrxD;Zj05}pidj4FINYNuMyLo36($t;;o^4wGprHdn>(qyiiS?iTiEO<9kxX z;jB{E>LX&5?h|77<}7!J4gpIuZ1BmH;JKSV<1~lcXuQ;drWu&7k`lXVEWq~5HnVxY z@8~TpRyV-E{GoHjkFhf@wlPi?Ox(KxSGB}6O2bjx(-B9x^hVjHC|g&DH53IK#>ERZ z)rHN>Gy7gS4u!HdyVV5P5G`}Kq+ROg+$S-e%X)uQ>F)`GWY}uluEz0gz0L%04#jiX z)Ynb@5VC(;cxY2b6*$!=N#ycbD!k+g3B`3|uXfGt%FLcDhL3)lA!j8-DjtuLRi#d! z9jeuPZO=5s_~QC%`YlgIo@?;7af)C+#|Z2mOry#CQ)Yd5UwVtRQ-iXS>5IIvsP1+K68zBHH90e3tEKXVak z1Ti=9Gr#qDSB435M)OkE-X$`>K>qP2wu8j;>HWpc0^ZnYPSHixY?kHG2? z@0yw@X$Hz@UN4(yvlPBw7-)#S@WY8 zl6ML`*cw)IXjEi_6s<5`3GxM=YP!m`^VgER7w&Z4CTI{YJ{F&RYw-^eWT4zOi;Mwi zK%NF$4L_mpcbEjL?AMDj2A*kW$YJD_#Ce404^Gj|J;R!|qm0FMWrlZbk)I6>VODZ& zyBhaDH9=wiFO?C-*+R2oQZ>6q<+kA`o0deGM4Z2)&;B}NvT#F+$@VTk88Lbu$$Z%O1KYE9H zi$%o@G<-?H1nwP2x*2-|K*&rfc#C6yX#(FmR|5oCT7><->NA5?`|A(KfGc}fnD6uj z;m3w)j81cf)}02#AJx5-nma{(ni+{vM^A89GV!A1c5C#PO8ZiZOy|rW`^QTWB1_+# z$uD1BJn>9tZN9{69D4L)<&rET_2f$7*o&qKm5v7zhncO?w2~R%UCl0c0aQo#XyiT^ zchs0L=#NS(9?nx9_`RPGg*D?3K;|p)H7nD$h%9!Dvbx`tAyvrjlSKFEgM(E$Zz@M` zr7=e@RwUhD7#5H^^asQGAgqCFPSWXkZ1yLJ;PylfBC&4j(!au^&x_ z$@@LYq(Ip&cyL@qU0A4M?o}%O)%=(C^4#g9aJlauBi~Z8{%dON zPc%Y1#t8Vs|3;kvtm-Rew*74BUlA2)k}&!!H-8`OipxsM z`VAKDFZzCBc87JUU{Cg7)cCK}5~Lc_E;ADJ?>>+phnSb{}@pE}_eIy1VH%yQMo1*J_ptqfN( z+(uuM&_j$3tVU-J&pMr#>W~)04ej~iz9OV>R9Tb}nR~+}D%)@p3VI&TW{w;t0&Mfy z@Y#Va<~pg(cwTu$=fR&D+!X*i;E*M_7n2&g6I0F_52I5?=nB_TvioiJg-0eun@w z_RDq#ra#b6=HN1i=zs%DOQsWM~u? zT<`<@;;u|{WY9?aZ(mo5L)Tmn%n(OLoJWmALWbYTKNPorr*Ut!8^`ZI1S=AT^PMMo zC3;euVbavOsZ&OA2b1^kUlBr4rd+`NsZ6?&lj^<)MhTI*uQ7|eUYcrtf})hnWSHeI zXo{;fPSdP8F4MNyHcTp;!ve{4P9TKLo=*|4`H7G6-{Wc>y2 zktl|o^}cMnjXlkKC@Ul{C78Aj+PDk*&loxt5JR_xQ_3Yq+0-@J>r|(B`Huvj1|ihI zcTPuj-Ci;KE3eKp>UNmtqAJP@np&4A+WCNe{ZEvT5SPP{t1WY&&774$F#*SPKrp>0 z!&`rK?(}Cw3OJ45P$~izto|Q4y3%0NU)5Z9-0w9v9S0*?eA37P1jz^p5*Ap^CZL!- z_1JrBAI8FJiZ1{=D3%EKLJGjb{@G7=x+`oL-I6MelE<9!nqYv8aY!o}pTg{Clw(l) zk#){lD)2;Yr-4Mv6>vPNM#o=a@daE}(kL*t54y zIsyNNeSNE=1627-F!Q(;z*M|QHnzR7uXO7c+>-qI6r+~)_a|>MYq9)WS6P7K8|EJl zfGt1^c-V87U-#$v{i@wrOax47@xODcAGAn!UTpgZ`gNbktuO;8UE;H&nhS^`g9QpL!(yYHA9`z5cVT!mo?~N}|vDHAzF)=M+L?9t6{6kP3^laz$^0x>RB- z={fY0h8*|x^~k?D>=xvr9461gdUfj+k44M{D@hk^=-}3Gyu5b6|WB z+mZkIiguFA*4v4t!NXgpH^fwiZ<;6tzm>8k@s&Lv?wtL~iS}0NFmeaWErVu*|En~F zBJbeBxartAP&$H2oOSr3DIVp2&K5c8nlNgM?u$hIfm1rxTv#U}l4(1_wLb4N;^J=+ zMZu2payPUj0l4%h(mILP=dP?IXmyN=)19P@|8Gc)utUShv$!x-FV~*zD0wZ!Aza@2 z_blPRviXo_jYp4%0;Otx7+yOSAnZ_u8Q7N&p7UNw0v->6!x;Ga2L?vy{|90sApCiq za{QA|Ys9PNLVy3Q5ZoWHz*gL8~i|cQ;pPV()9k|D?W=^XTSumHQqha z*_(X&_W56^62Zy>$O*4wE534O)=?{BzQd8iAXq|f;q#TGIk<*5(dzO z#;hM2>;hHt+Dj{T9=tL0%&p-TofYtrmwOZDyfl* zcVi$zbh{q_CFmss#nyZyu)U{eO1g*NyGPh)?;BAnB=B#MdMtZh^}XV^nSEo-zbxde zN*5w^pa?8LB^TGg|IvWY0l=R_F7Pbyo^2)pSgElH!^O z4rTlOlcKVvM3N;6WsQ(sWvdjDkUd*v-?uSBS+j@iMWM*ZzRrYX>> zN6XvtzTe-~Kh1TGd7kGy=RWJ_d`{Z|440Wzq%vGtbo92~Wm)A{0WzsAsT?1KhuiIq zJO^FAa%1Q5bi6OJ2g6c7)MM1KEa6D+h3h&wirBMQoLqtXi}RG?zxtl>j9E*P5iXWI ze(&m1dATWsRxiyzrbB6=PQ!9Q7lW0J$BLu(u3+2a&DR+^*%&Hy4;$&6ZQ!G?$(} zxy-acO~r?8vAokQWiIxt_4=oqHbK6vYI+5y_e%0~OdWpHav|#Q#`$1K5hvl4NEGNo z6aW3ANq{GyPEO<|YW>I}7gZ`Z#(PoyW_GTDr|m1}8iV3mP&j_SkV2n|8$68cRmb_- zv2fr3)yIbmA?9SJ`zuc63<@6;A|x`C^j=g{3NScfl-ntgu%za+?cy>zSNZbY$jtyy zY_(!1giW$x4ZnW!guKv^2Dsq1cBWsw{OlJONi=ua+*>AeW-8R>Br$D=G&Pz%{8x{xJTxs+-uQGDYu(}0vD{}V7b5F;!~3f(t~F>hjO1C6 z*5u=gvGly!4>ix^ch7dCVC$0ag5 z$P!C|H;QIplBC0#*`HKIo0LG-EwT5yR}?1Fg76lIh$p}m2hZ`Wcw`?6`^$pik5Adn zsm+QC51BD5DnB=FAFb!~*c5xWC#}aZ1d`Jmeov|XY#Hb987a$a=tTCx2)#0`mAcc! zdfea)e{_n11&IPw=VU+``CAP%10W@Ll|##J1gpG6mgHvPK1`CP{&J$I5`FF-!M#yM ztshQ)DG#^ogg0}#Jz?rsFo?#8c`V#47&)OgJ8E(SXMob=y?7Q|8@PC(=FYH_S1<$s zcRRj?mEYqgZtz>QxR^e-Hojsh1$fKm#=y<>^FfgQ3xmwZ_SXzq-hk^q)eUq^t)vU~ zrjR_@pbALG9Fx(XJdGvJ30_BL*NV$V$%;wpBVuL_j{JqqF(i{%(E_Ew?M}>T5q-iQ zkyVMB$i&>#(8R=CR-@U#)?BTrsvLutu9Y573?55u)HU2dmE^@A#pULeB`<`xZBA|! z8c0T#{*2IytIXvhzIQGxw1b)!T%d3ig!tHhKm9 zGz#wGAExB&MtggM3iKW{Ef`o2WMozX+`#^9-bGocYEwX#Zsp9WU`SJAZ}Aa}i!Mig zjU;!3)!qTljSOb9>Ki;s&iD-oKz*ALjXo=RahSdvAon}vFXSsu=!G|SG13+wORjb% zb7_oNl4u?0943hnw-sm&=@62-cjnlE^E z9Kdan1Sm968x;lt7VT3`4KR-Fc!0ayi;AbY1bbDD8-zlD};q^}vXULn0_dKoA_UI~!lYCKBt zkP)K`Ti)P%;B#rKh(|@oWhpi}^|NfLbBR2rwu9ZU>T)=HDvhH|bHi?s_dUFyJD&9n z$tpfwnRNdH_jX#Mt)t@n5^gR;piWBl6ay?GU3R+d7Ny(4ZLwi@RnS|oymvX3J+)}HFLdU!&Jd>!aM1+gZB8sX*f^@g{EILMBO*e>q`9r&*{V1M*;CL~jo4#vhwg zj@%1p7aHV9%|Xr&gKlz^Ex;#DYv$_caP-F{GRH**9=P**#!CM*N-r3dHP9w4+rS8p z9Kfe~<1{CDwNF=w*<80rJ*s0?s+d=*m@R;T5UEAAQb22X``OcqInI9#Vk5x5(b{zy z8#np8PIK4oRqcWG-v!(lVyAS4)>Fe9vaaX8MwVoK?)7V9`7O@&DU{!-qOm?Q_gQ+X z*`CgY&gDngXxp=quLte-V6<=7WQ_EF{1z6)64f&%zGvZ@19R%jO#Bt1Vz zjzWsFSU#SI{fCmj&apsNj&95U^oUmQPoi))>!!35)BsIsDThk zcU>9P=l2|EHWvBwtp`Sf<^pS|{kO~63y+9LdG`(iJo8y4>{!mqgOJbzKNJ=S@QW>3 zO&}y+4WVO%%ZFr#`jqo5c*>je8uDZ|mpTZqS*@AmVy=PP8#YYdXjmE!zIk zvTuPY_-(hYbBoUf@^wlUBT;6peSAU=-6FfHX?tSm!f%JHr!zP)5`vm`f`E@o@dQd0OP*cAh?eoy=#X{I5 zJOYebvujMedqLFa>>{>!fjdIK{DpEjNico|awB)zQs{7)PkB+B_t}u{s&kXg74huA z$VjjM^5t(oA8?eJ?!gKJAXp?hgGJn8Cy0QUyfMirgPharhT%U6V;50baXIEP@g@E( zTnaLE(w?)wnZ3&(CmhaGpi{Wegh&7zIB9fVYB?GU+2&aN)Oe7nQUmRq-iVj#Y$F2t zhz~qh_M06(&;W`KZeK6GS4@rcaRN}@%)8NuQllGCSIvgyzp$08r1P7})uO^8-vF+} z8pR9bBxw?j-7g9m;Ufs-7#$~ADah-7HJStj;xd|M7>xumlFoatum3z6kIjHyH9t1< z|JtB(m(o;zrxw=m#a*lk;H}SYaBu$hv`D!<#Jjh8a8NYkN_UM=1Ora%7COM0rFPjL zpa_3fdTN2LB8+1tG2hspc(J-!zGMFq3-qmOGGW?fzoT7&2#(PoVm&^0{} zog5sm-2%;~2q0mg>=>q>CY7jN%EZi>ohd&MU8E&OP+<2CryqR$cSOc`AGPjO9RG&t zo7Qq;51MQGHYo0Aiv8!tMZm>WWwPT{C*Bz^>y)fL5io17g*A%z4zBjEOJ4b3>j@=O z2)F2SJvB3$bx(m7XiPHoL$J#Jx7g~(2Q@!X^4XcQa2WFwXh4@W0a|IfGuXdu?RRlL z1S%~;*i_D~z=+4&)!kD9<%|fIO zrk!Bu?cXQ_)7`CX>8UdvY82)#pg+$%d+EN;tK!@*|PwwTqONfp?_BP zh|ib==$D$0l{B3d=68|bVQH!O3$pw@I{Csz>a4{bDeK3cy4cNDITvv+;N-9Bv-`Cd z5hNfQRTo#ifs&mcxPCbl%_{7c^(XxJ$C1A6PXeP3E62^IM1|ZL=DEWEocS)AU_DI# zH@^IvYDMsqPH8XE;ZU{^b^Z$Ls;8w>=Yk`!43ZqoE+K1N1(QZ*k~6s9ZC*I zKEDoY3C8ok6=U1DXufz@bFt;W-p?)bJqZKA2M^-WU@uFRYSTuqm^wOBk9+R4F&FJ$ z&-{o|-k2D;xKEgr?f8JYebVbUL6EB(N9!&q5Ab+XFm<0rbY5L1@W9p6P2nuQ8!X*p}Zg{Xn4}{V*guN5>N; zwLZ#|GPqxTxz4Ss2J&|R7`*rs2KW~bG-xO z>FCZF0Vc4%SEbhw0KotslN%>jJFWJdBr!4FW!;= zdBDHx1h~@SSRbBT_g7UMB(sROtR3voO=>{yG|gjsizVs=&r*|9Wn zIvlNqX3vLO!JL&p@0JY|WCZ)d+K6mq%?Sl^)H0O?G28;4{=4zlvF{fnY2`;w?+*ORA7*=*$n(R3WhXXeIc zYRREpr(GSa*by43)pWR%Ei{$1zBY6zlYT#}?~iBn0kq8`8}?5}Dms0Lq|}E4PRT

K!Mn}lt@0-|4-3xa9$jn| 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 literal 0 HcmV?d00001 diff --git a/IPSLibrary/docu/Screenshots/IPSShadowing_WFProfileWeather.png b/IPSLibrary/docu/Screenshots/IPSShadowing_WFProfileWeather.png new file mode 100644 index 0000000000000000000000000000000000000000..b65cf13667b22d641d7b55ced1c5392ceeecf7bd GIT binary patch literal 59506 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 ZiNeM$2M|XzLRJBvJ?8s&<(QJf{{uW=Tvh-8 literal 0 HcmV?d00001 diff --git a/IPSLibrary/docu/Screenshots/IPSShadowing_WFSettings.png b/IPSLibrary/docu/Screenshots/IPSShadowing_WFSettings.png new file mode 100644 index 0000000000000000000000000000000000000000..9b0e20af98985030e782f86759557c82f68ed510 GIT binary patch literal 29050 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 + * Detailansicht eines eines Beschattungselementes + * @image html IPSShadowing_WFDevice.png + * + *@}*/ + + /**@defgroup ipsshadowing_install IPSShadowing Installation + * @ingroup ipsshadowing + * @{ + * + * Script zur kompletten Installation der IPSShadowing Steuerung. + * + * Vor der Installation muß das File IPSShadowing_Configuration.inc.php an die persönlichen + * Bedürfnisse angepasst werden. + * + * @page rquirements_ipsshadowing Installations Voraussetzungen + * - IPS Kernel >= 2.50 + * - IPSModuleManager >= 2.50.2 + * - IPSLogger >= 2.50.1 + * - IPSComponent >= 2.50.1 + * + * @page install_ipsshadowing Installations Schritte + * Folgende Schritte sind zur Installation der IPSShadowing Ansteuerung nötig: + * - Laden des Modules (siehe IPSModuleManager) + * - Konfiguration (Details siehe Konfiguration) + * - Installation (siehe IPSModuleManager) + * + * @file IPSShadowing_Installation.ips.php + * @author Andreas Brauneis + * @version + * Version 2.50.1, 19.03.2012
+ * + */ + + if (!isset($moduleManager)) { + IPSUtils_Include ('IPSModuleManager.class.php', 'IPSLibrary::install::IPSModuleManager'); + + echo 'ModuleManager Variable not set --> Create "default" ModuleManager'; + $moduleManager = new IPSModuleManager('IPSShadowing'); + } + + $moduleManager->VersionHandler()->CheckModuleVersion('IPS','2.50'); + $moduleManager->VersionHandler()->CheckModuleVersion('IPSModuleManager','2.50.2'); + $moduleManager->VersionHandler()->CheckModuleVersion('IPSLogger','2.50.2'); + $moduleManager->VersionHandler()->CheckModuleVersion('IPSComponent','2.50.1'); + $moduleManager->VersionHandler()->CheckModuleVersion('IPSTwilight','2.50.1'); + + IPSUtils_Include ("IPSInstaller.inc.php", "IPSLibrary::install::IPSInstaller"); + IPSUtils_Include ("IPSShadowing.inc.php", "IPSLibrary::app::modules::IPSShadowing"); + IPSUtils_Include ("IPSShadowing_Constants.inc.php", "IPSLibrary::app::modules::IPSShadowing"); + IPSUtils_Include ("IPSShadowing_Configuration.inc.php", "IPSLibrary::config::modules::IPSShadowing"); + + $WFC10_Enabled = $moduleManager->GetConfigValue('Enabled', 'WFC10'); + $WFC10_ConfigId = $moduleManager->GetConfigValueIntDef('ID', 'WFC10', GetWFCIdDefault()); + $WFC10_Path = $moduleManager->GetConfigValue('Path', 'WFC10'); + $WFC10_TabPaneItem = $moduleManager->GetConfigValue('TabPaneItem', 'WFC10'); + $WFC10_TabPaneParent = $moduleManager->GetConfigValue('TabPaneParent', 'WFC10'); + $WFC10_TabPaneName = $moduleManager->GetConfigValue('TabPaneName', 'WFC10'); + $WFC10_TabPaneIcon = $moduleManager->GetConfigValue('TabPaneIcon', 'WFC10'); + $WFC10_TabPaneOrder = $moduleManager->GetConfigValueInt('TabPaneOrder', 'WFC10'); + $WFC10_TabName1 = $moduleManager->GetConfigValue('TabName1', 'WFC10'); + $WFC10_TabIcon1 = $moduleManager->GetConfigValue('TabIcon1', 'WFC10'); + + $Mobile_Enabled = $moduleManager->GetConfigValue('Enabled', 'Mobile'); + $Mobile_Path = $moduleManager->GetConfigValue('Path', 'Mobile'); + $Mobile_PathOrder = $moduleManager->GetConfigValueInt('PathOrder', 'Mobile'); + $Mobile_PathIcon = $moduleManager->GetConfigValue('PathIcon', 'Mobile'); + + // ---------------------------------------------------------------------------------------------------------------------------- + // Program Installation + // ---------------------------------------------------------------------------------------------------------------------------- + $CategoryIdData = $moduleManager->GetModuleCategoryID('data'); + $CategoryIdApp = $moduleManager->GetModuleCategoryID('app'); + + + // Add Scripts + $ScriptIdChangeSettings = IPS_GetScriptIDByName('IPSShadowing_ChangeSettings', $CategoryIdApp); + $ScriptIdAutomaticOn = IPS_GetScriptIDByName('IPSShadowing_AutomaticOn', $CategoryIdApp); + $ScriptIdAutomaticOff = IPS_GetScriptIDByName('IPSShadowing_AutomaticOff', $CategoryIdApp); + $ScriptIdAutomaticReset = IPS_GetScriptIDByName('IPSShadowing_AutomaticReset', $CategoryIdApp); + $ScriptIdRefreshTimer = IPS_GetScriptIDByName('IPSShadowing_RefreshTimer', $CategoryIdApp); + $ScriptIdProgramTimer = IPS_GetScriptIDByName('IPSShadowing_ProgramTimer', $CategoryIdApp); + $ScriptIdResetTimer = IPS_GetScriptIDByName('IPSShadowing_ResetTimer', $CategoryIdApp); + $ScriptIdScenarioCreate = IPS_GetScriptIDByName('IPSShadowing_ScenarioCreate', $CategoryIdApp); + $ScriptIdScenarioDelete = IPS_GetScriptIDByName('IPSShadowing_ScenarioDelete', $CategoryIdApp); + $ScriptIdProfileTempCreate = IPS_GetScriptIDByName('IPSShadowing_ProfileTempCreate', $CategoryIdApp); + $ScriptIdProfileTempDelete = IPS_GetScriptIDByName('IPSShadowing_ProfileTempDelete', $CategoryIdApp); + $ScriptIdProfileSunCreate = IPS_GetScriptIDByName('IPSShadowing_ProfileSunCreate', $CategoryIdApp); + $ScriptIdProfileSunDelete = IPS_GetScriptIDByName('IPSShadowing_ProfileSunDelete', $CategoryIdApp); + $ScriptIdProfileWeatherCreate = IPS_GetScriptIDByName('IPSShadowing_ProfileWeatherCreate', $CategoryIdApp); + $ScriptIdProfileWeatherDelete = IPS_GetScriptIDByName('IPSShadowing_ProfileWeatherDelete', $CategoryIdApp); + $ScriptIdProfileBgnOfDayCreate = IPS_GetScriptIDByName('IPSShadowing_ProfileBgnOfDayCreate', $CategoryIdApp); + $ScriptIdProfileBgnOfDayDelete = IPS_GetScriptIDByName('IPSShadowing_ProfileBgnOfDayDelete', $CategoryIdApp); + $ScriptIdProfileEndOfDayCreate = IPS_GetScriptIDByName('IPSShadowing_ProfileEndOfDayCreate', $CategoryIdApp); + $ScriptIdProfileEndOfDayDelete = IPS_GetScriptIDByName('IPSShadowing_ProfileEndOfDayDelete', $CategoryIdApp); + + CreateTimer_OnceADay ('Reset', $ScriptIdResetTimer, 0, 5); + CreateTimer_CyclicBySeconds ('Refresh', $ScriptIdRefreshTimer, 1, false); + CreateTimer_CyclicByMinutes ('Program', $ScriptIdProgramTimer, 5); + + // Create Circles and Controls + // ---------------------------------------------------------------------------------------------------------------------------- + $IPSShadowing_ProgNigJal = array( + c_ProgramId_Manual => c_Program_Manual, + c_ProgramId_Opened => c_Program_Opened, + c_ProgramId_Dimout => c_Program_Dimout); + $IPSShadowing_ProgDayJal = array( + c_ProgramId_Manual => c_Program_Manual, + c_ProgramId_Opened => c_Program_Opened, + c_ProgramId_OpenedOrShadowing => c_Program_OpenedOrShadowing, + c_ProgramId_Dimout => c_Program_Dimout); + $IPSShadowing_ProgTmpJal = array( + c_ProgramId_Manual => c_Program_Manual, + c_ProgramId_DimoutOrShadowing => c_Program_DimoutOrShadowing, + c_ProgramId_DimoutAndShadowing => c_Program_DimoutAndShadowing, + c_ProgramId_Dimout => c_Program_Dimout); + $IPSShadowing_ProgPreJal = array( + c_ProgramId_Manual => c_Program_Manual, + c_ProgramId_Opened => c_Program_Opened, + c_ProgramId_OpenedDay => c_Program_OpenedDay, + c_ProgramId_OpenedNight => c_Program_OpenedNight); + + $IPSShadowing_ProgNigSht = array( + c_ProgramId_Manual => c_Program_Manual, + c_ProgramId_Opened => c_Program_Opened, + c_ProgramId_75 => c_Program_75, + c_ProgramId_90 => c_Program_90, + c_ProgramId_Closed => c_Program_Closed); + $IPSShadowing_ProgDaySht = array( + c_ProgramId_Manual => c_Program_Manual, + c_ProgramId_Opened => c_Program_Opened, + c_ProgramId_75 => c_Program_75, + c_ProgramId_90 => c_Program_90, + c_ProgramId_Closed => c_Program_Closed); + $IPSShadowing_ProgTmpSht = array( + c_ProgramId_Manual => c_Program_Manual, + c_ProgramId_75 => c_Program_75, + c_ProgramId_90 => c_Program_90, + c_ProgramId_Closed => c_Program_Closed); + $IPSShadowing_ProgPreSht = array( + c_ProgramId_Manual => c_Program_Manual, + c_ProgramId_Opened => c_Program_Opened, + c_ProgramId_OpenedDay => c_Program_OpenedDay, + c_ProgramId_OpenedNight => c_Program_OpenedNight); + + $IPSShadowing_ProgNigMar = array( + c_ProgramId_Manual => c_Program_Manual, + c_ProgramId_MovedIn => c_Program_MovedIn, + c_ProgramId_MovedOut => c_Program_MovedOut); + $IPSShadowing_ProgDayMar = array( + c_ProgramId_Manual => c_Program_Manual, + c_ProgramId_MovedIn => c_Program_MovedIn, + c_ProgramId_MovedOut => c_Program_MovedOut); + $IPSShadowing_ProgTmpMar = array( + c_ProgramId_Manual => c_Program_Manual, + c_ProgramId_MovedOut => c_Program_MovedOut); + $IPSShadowing_ProgPreMar = array( + c_ProgramId_Manual => c_Program_Manual, + c_ProgramId_MovedOutTemp => c_Program_MovedOutTemp); + $IPSShadowing_ProgWeaMar = array( + c_ProgramId_Manual => c_Program_Manual, + c_ProgramId_MovedIn => c_Program_MovedIn); + + $IPSShadowing_Movement = array( + c_MovementId_Opened => c_Movement_Opened, + c_MovementId_Space => c_Movement_Space, + c_MovementId_Down => c_Movement_Down, + c_MovementId_Stop => c_Movement_Stop, + c_MovementId_Up => c_Movement_Up, + ); + $IPSShadowing_MovementJal = $IPSShadowing_Movement; + $IPSShadowing_MovementJal[c_MovementId_Shadowing] = c_Movement_Shadowing; + $IPSShadowing_MovementJal[c_MovementId_Dimout] = c_Movement_Dimout; + + $IPSShadowing_MovementSht = $IPSShadowing_Movement; + $IPSShadowing_MovementSht[c_MovementId_Closed] = c_Movement_Closed; + $IPSShadowing_MovementSht[c_MovementId_90] = c_Movement_90; + $IPSShadowing_MovementSht[c_MovementId_75] = c_Movement_75; + $IPSShadowing_MovementSht[c_MovementId_50] = c_Movement_50; + + $IPSShadowing_MovementMar = array( + c_MovementId_MovedOut => c_Movement_MovedOut, + c_MovementId_75 => c_Movement_75, + c_MovementId_50 => c_Movement_50, + c_MovementId_MovedIn => c_Movement_MovedIn, + c_MovementId_Space => c_Movement_Space, + c_MovementId_MovingOut => c_Movement_MovingOut, + c_MovementId_Stop => c_Movement_Stop, + c_MovementId_MovingIn => c_Movement_MovingIn, + ); + $IPSShadowing_MovementCol = array( + c_MovementId_Stop => -1, + c_MovementId_Down => 0x00FF00, + c_MovementId_Up => 0x00FF00, + c_MovementId_MovingIn => 0x00FF00, + c_MovementId_MovingOut => 0x00FF00, + c_MovementId_Space => 0, + c_MovementId_NoAction => 0xAAAAAA, + c_MovementId_Opened => 0xAAAAAA, + c_MovementId_MovedIn => 0xAAAAAA, + c_MovementId_25 => 0xAAAAAA, + c_MovementId_50 => 0xAAAAAA, + c_MovementId_75 => 0xAAAAAA, + c_MovementId_90 => 0xAAAAAA, + c_MovementId_Shadowing => 0xAAAAAA, + c_MovementId_Dimout => 0xAAAAAA, + c_MovementId_Closed => 0xAAAAAA, + c_MovementId_MovedOut => 0xAAAAAA, + ); + + $IPSShadowing_MovementJal[c_MovementId_Shadowing] = c_Movement_Shadowing; + + CreateProfile_Associations ('IPSShadowing_ProgNigSht', $IPSShadowing_ProgNigSht); + CreateProfile_Associations ('IPSShadowing_ProgDaySht', $IPSShadowing_ProgDaySht); + CreateProfile_Associations ('IPSShadowing_ProgTmpSht', $IPSShadowing_ProgTmpSht); + CreateProfile_Associations ('IPSShadowing_ProgPreSht', $IPSShadowing_ProgPreSht); + CreateProfile_Associations ('IPSShadowing_ProgNigJal', $IPSShadowing_ProgNigJal); + CreateProfile_Associations ('IPSShadowing_ProgDayJal', $IPSShadowing_ProgDayJal); + CreateProfile_Associations ('IPSShadowing_ProgTmpJal', $IPSShadowing_ProgTmpJal); + CreateProfile_Associations ('IPSShadowing_ProgPreJal', $IPSShadowing_ProgPreJal); + CreateProfile_Associations ('IPSShadowing_ProgNigMar', $IPSShadowing_ProgNigMar); + CreateProfile_Associations ('IPSShadowing_ProgDayMar', $IPSShadowing_ProgDayMar); + CreateProfile_Associations ('IPSShadowing_ProgTmpMar', $IPSShadowing_ProgTmpMar); + CreateProfile_Associations ('IPSShadowing_ProgPreMar', $IPSShadowing_ProgPreMar); + CreateProfile_Associations ('IPSShadowing_ProgWeaMar', $IPSShadowing_ProgWeaMar); + + CreateProfile_Associations ('IPSShadowing_MovementJal', $IPSShadowing_MovementJal, "", $IPSShadowing_MovementCol, true); + CreateProfile_Associations ('IPSShadowing_MovementSht', $IPSShadowing_MovementSht, "", $IPSShadowing_MovementCol, true); + CreateProfile_Associations ('IPSShadowing_MovementMar', $IPSShadowing_MovementMar, "", $IPSShadowing_MovementCol, true); + + CreateProfile_Count ('IPSShadowing_Step', 1, 1, 4, null, "", null); + CreateProfile_Count ('IPSShadowing_Priority', 1, 1, 10, null, "", null); + CreateProfile_Count ('IPSShadowing_TempDelta', 1, 1, 5, null, " °C", null); + CreateProfile_Count ('IPSShadowing_Position', 0, 1, 100, null, "%", null); + + CreateProfile_Associations ('IPSShadowing_TempDiffShadowing', array('Aussen >= Innen', '> 1°C', '> 2°C', '> 3°C', 'keine Aktion')); + CreateProfile_Associations ('IPSShadowing_TempDiffClosing', array('Aussen >= Innen', '> 1°C', '> 2°C', '> 3°C', 'keine Aktion')); + CreateProfile_Associations ('IPSShadowing_TempDiffOpening', array('Innen <= Aussen', '< 1°C', '< 2°C', '< 3°C', 'keine Aktion')); + CreateProfile_Count ('IPSShadowing_Brightness', 0, 100, 10000, null, " Lux", null); + + CreateProfile_Count ('IPSShadowing_AzimuthBgn', 0, 5, 360, null, " °", null); + CreateProfile_Count ('IPSShadowing_AzimuthEnd', 0, 5, 360, null, " °", null); + CreateProfile_Count ('IPSShadowing_Elevation', 0, 1, 90, null, " °", null); + CreateProfile_Count ('IPSShadowing_Date', 1, 1, 12, null, "%", null); + + CreateProfile_Associations ('IPSShadowing_TimeMode', array('individuelle Zeit', 'Dämmerung', 'Dämmerung (begrenzt)')); + CreateProfile_Count ('IPSShadowing_TimeOffset', -120, 5, 120, null, " Min", null); + + CreateProfile_Count ('IPSShadowing_Wind', 0, 10, 100, null, " kmh", null); + + CreateProfile_Associations ('IPSShadowing_ProfileBgnOfDay', array()); + CreateProfile_Associations ('IPSShadowing_ProfileEndOfDay', array()); + CreateProfile_Associations ('IPSShadowing_ProfileTemp', array()); + CreateProfile_Associations ('IPSShadowing_ProfileWeather', array()); + CreateProfile_Associations ('IPSShadowing_ProfileSun', array()); + + CreateProfile_Associations ('IPSShadowing_ScenarioSelect', array()); + CreateProfile_Associations ('IPSShadowing_ScenarioActivate', array(0=>'Inaktiv')); + CreateProfile_Associations ('IPSShadowing_ScenarioShutter', array( + c_MovementId_NoAction => c_Movement_NoAction, + c_MovementId_Closed => c_Movement_Closed, + c_MovementId_90 => c_Movement_90, + c_MovementId_75 => c_Movement_75, + c_MovementId_50 => c_Movement_50, + c_MovementId_Opened => c_Movement_Opened, + c_MovementId_Stop => c_Movement_Stop),"", $IPSShadowing_MovementCol, true); + CreateProfile_Associations ('IPSShadowing_ScenarioJalousie', array( + c_MovementId_NoAction => c_Movement_NoAction, + c_MovementId_Shadowing => c_Movement_Shadowing, + c_MovementId_Dimout => c_Movement_Dimout, + c_MovementId_Opened => c_Movement_Opened, + c_MovementId_Stop => c_Movement_Stop),"", $IPSShadowing_MovementCol, true); + CreateProfile_Associations ('IPSShadowing_ScenarioMarquees', array( + c_MovementId_NoAction => c_Movement_NoAction, + c_MovementId_MovedOut => c_Movement_MovedOut, + c_MovementId_75 => c_Movement_75, + c_MovementId_50 => c_Movement_50, + c_MovementId_MovedIn => c_Movement_MovedIn, + c_MovementId_Stop => c_Movement_Stop),"", $IPSShadowing_MovementCol, true); + + // Profile Manager + // ==================================================================================================================================== + $CategoryIdProfiles = CreateCategory('Profiles', $CategoryIdData, 30); + $CategoryIdProfilesTemp = CreateCategory( 'Temp', $CategoryIdProfiles, 10); + $CategoryIdProfilesSun = CreateCategory( 'Sun', $CategoryIdProfiles, 20); + $CategoryIdProfilesWeather = CreateCategory( 'Weather', $CategoryIdProfiles, 30); + $CategoryIdProfilesBgnOfDay = CreateCategory( 'BgnOfDay', $CategoryIdProfiles, 40); + $CategoryIdProfilesEndOfDay = CreateCategory( 'EndOfDay', $CategoryIdProfiles, 50); + + $CategoryIdProfileManager = CreateCategory('ProfileManager', $CategoryIdData, 35); + $ControlIdProfileTempSelect = CreateVariable(c_Control_ProfileTempSelect, 1 /*Integer*/, $CategoryIdProfileManager, 10, 'IPSShadowing_ProfileTemp', $ScriptIdChangeSettings, 0, 'Temperature'); + $ControlIdProfileSunSelect = CreateVariable(c_Control_ProfileSunSelect, 1 /*Integer*/, $CategoryIdProfileManager, 20, 'IPSShadowing_ProfileSun', $ScriptIdChangeSettings, 0, 'Sun'); + $ControlIdProfileWeatherSelect = CreateVariable(c_Control_ProfileWeatherSelect, 1 /*Integer*/, $CategoryIdProfileManager, 30, 'IPSShadowing_ProfileWeather', $ScriptIdChangeSettings, 0, 'Drops'); + $ControlIdProfileBgnOfDaySelect = CreateVariable(c_Control_ProfileBgnOfDaySelect, 1 /*Integer*/, $CategoryIdProfileManager, 40, 'IPSShadowing_ProfileBgnOfDay', $ScriptIdChangeSettings, 0, 'Clock'); + $ControlIdProfileEndOfDaySelect = CreateVariable(c_Control_ProfileEndOfDaySelect, 1 /*Integer*/, $CategoryIdProfileManager, 50, 'IPSShadowing_ProfileEndOfDay', $ScriptIdChangeSettings, 0, 'Clock'); + $CategoryIdProfileTempDisplay = CreateCategory('DisplayTemp', $CategoryIdProfileManager, 100); + $CategoryIdProfileSunDisplay = CreateCategory('DisplaySun', $CategoryIdProfileManager, 110); + $CategoryIdProfileWeatherDisplay = CreateCategory('DisplayWeather', $CategoryIdProfileManager, 120); + $CategoryIdProfileBgnOfDayDisplay = CreateCategory('DisplayBgnOfDay', $CategoryIdProfileManager, 130); + $CategoryIdProfileEndOfDayDisplay = CreateCategory('DisplayEndOfDay', $CategoryIdProfileManager, 140); + $CategoryIdProfileSunGraphs = CreateCategory('GraphsSun', $CategoryIdProfileManager, 200); + $MediaIdAzimuth = CreateMedia ('Sonnenstand', $CategoryIdProfileSunGraphs, IPS_GetKernelDir().'media\\IPSShadowing_Azimuth.gif', false, 1, 'Sun'); + + $profileManager = new IPSShadowing_ProfileManager(); + $profileManager->AssignAllProfileAssociations(); + + $Profiles = IPS_GetChildrenIDs($CategoryIdProfilesTemp); + if (count($Profiles)==0) { + $profileManager->CreateTemp('Standard'); + } + $Profiles = IPS_GetChildrenIDs($CategoryIdProfilesSun); + if (count($Profiles)==0) { + $profileManager->CreateSun('Süden'); + } + $Profiles = IPS_GetChildrenIDs($CategoryIdProfilesWeather); + if (count($Profiles)==0) { + $profileManager->CreateWeather('Standard'); + } + $Profiles = IPS_GetChildrenIDs($CategoryIdProfilesBgnOfDay); + if (count($Profiles)==0) { + $profileManager->CreateBgnOfDay('Dämmerung'); + } + $Profiles = IPS_GetChildrenIDs($CategoryIdProfilesEndOfDay); + if (count($Profiles)==0) { + $profileManager->CreateEndOfDay('Dämmerung'); + } + $profileManager->CorrectDeletedDeviceProfiles(); + + // Scenario Manager + // ==================================================================================================================================== + $CategoryIdScenarios = CreateCategory('Scenarios', $CategoryIdData, 40); + $CategoryIdScenarioManager = CreateCategory('ScenarioManager', $CategoryIdData, 45); + $ControlIdScenarioSelect = CreateVariable(c_Control_ScenarioSelect, 1 /*Integer*/, $CategoryIdScenarioManager, 10, 'IPSShadowing_ScenarioSelect', $ScriptIdChangeSettings, 0, 'Shutter'); + $ControlIdScenarioActivate = CreateVariable(c_Control_ScenarioActivate, 1 /*Integer*/, $CategoryIdScenarioManager, 20, 'IPSShadowing_ScenarioActivate', $ScriptIdChangeSettings, 0, 'Shutter'); + $CategoryIdScenarioDisplay = CreateCategory('Display', $CategoryIdScenarioManager, 20); + + $scenarioManager = new IPSShadowing_ScenarioManager(); + $scenarioManager->AssignAllScenarioAssociations(); + + $ScenarioId = @IPS_GetObjectIDByIdent('Alle Schliessen', $CategoryIdScenarios); + if ($ScenarioId===false) { + $scenarioId = $scenarioManager->Create('Alle Schliessen', c_MovementId_Closed); + $scenario = new IPSShadowing_Scenario($scenarioId); + $scenario->ResetEditMode(); + + } + $ScenarioId = @IPS_GetObjectIDByIdent('Alle Öffnen', $CategoryIdScenarios); + if ($ScenarioId===false) { + $scenarioManager->Create('Alle Öffnen', c_MovementId_Opened); + $scenario = new IPSShadowing_Scenario($scenarioId); + $scenario->ResetEditMode(); + } + + // Settings + // ==================================================================================================================================== + $CategoryIdSettings = CreateCategory('Settings', $CategoryIdData, 30); + $ControlIdMsgPrioTemp = CreateVariable(c_Control_MsgPrioTemp, 1 /*Integer*/, $CategoryIdSettings, 10, 'IPSShadowing_Priority', $ScriptIdChangeSettings, 2); + $ControlIdMsgPrioProg = CreateVariable(c_Control_MsgPrioProg, 1 /*Integer*/, $CategoryIdSettings, 20, 'IPSShadowing_Priority', $ScriptIdChangeSettings, 4); + + // Logging + // ==================================================================================================================================== + $CategoryIdLog = CreateCategory('Log', $CategoryIdData, 40); + $ControlIdLog = CreateVariable('LogMessages', 3 /*String*/, $CategoryIdLog, 10, '~HTMLBox', null, ""); + $ControlIdLogId = CreateVariable('LogId', 1 /*Integer*/, $CategoryIdLog, 20, '', null, 0); + + // Shadowing Devices + // ==================================================================================================================================== + $CategoryIdDevices = CreateCategory('Devices', $CategoryIdData, 20); + $DeviceConfig = get_ShadowingConfiguration(); + $Idx = 10; + foreach ($DeviceConfig as $DeviceName=>$DeviceData) { + $ShadowingType = $DeviceConfig[$DeviceName][c_Property_ShadowingType]; + $DeviceId = CreateCategory($DeviceName, $CategoryIdDevices, $Idx); + + $ControlIdDisplay = CreateVariable(c_Control_Display, 3 /*String*/, $DeviceId, 50, '~String', null, 'Manuell', 'Information'); + $ControlIdStepsToDo = CreateVariable(c_Control_StepsToDo, 3 /*String*/, $DeviceId, 60, '~String', null, ''); + $ControlIdStep = CreateVariable(c_Control_Step, 1 /*Integer*/, $DeviceId, 70, 'IPSShadowing_Step', null, -1); + $ControlIdStartTime = CreateVariable(c_Control_StartTime, 1 /*Integer*/, $DeviceId, 80, '~UnixTimestamp', null, -1); + $ControlIdPosition = CreateVariable(c_Control_Position, 1 /*Integer*/, $DeviceId, 90, 'IPSShadowing_Position', null, 0, 'Intensity'); + $ControlIdManualChange = CreateVariable(c_Control_ManualChange, 0 /*Boolean*/, $DeviceId, 110, '~Switch', $ScriptIdChangeSettings, false, 'Warning'); + $ControlIdTempChange = CreateVariable(c_Control_TempChange, 0 /*Boolean*/, $DeviceId, 120, '~Switch', null , false, 'Warning'); + $ControlIdAutomatic = CreateVariable(c_Control_Automatic , 0 /*Boolean*/, $DeviceId, 130, '~Switch', $ScriptIdChangeSettings, false, 'Power'); + + $ControlIdTempProfile = CreateVariable(c_Control_ProfileTemp, 1 /*Integer*/, $DeviceId, 330, 'IPSShadowing_ProfileTemp', $ScriptIdChangeSettings, 0, 'Temperature'); + $ControlIdSunProfile = CreateVariable(c_Control_ProfileSun, 1 /*Integer*/, $DeviceId, 340, 'IPSShadowing_ProfileSun', $ScriptIdChangeSettings, 0, 'Sun'); + $ControlIdBgnOfDayProfile = CreateVariable(c_Control_ProfileBgnOfDay,1 /*Integer*/, $DeviceId, 350, 'IPSShadowing_ProfileBgnOfDay', $ScriptIdChangeSettings, 0, 'Clock'); + $ControlIdEndOfDayProfile = CreateVariable(c_Control_ProfileEndOfDay,1 /*Integer*/, $DeviceId, 360, 'IPSShadowing_ProfileEndOfDay', $ScriptIdChangeSettings, 0, 'Clock'); + $ControlIdProfileInfo = CreateVariable(c_Control_ProfileInfo, 3 /*String*/, $DeviceId, 380, '~String', null, '', 'Information'); + + if ($ShadowingType==c_ShadowingType_Shutter) { + $ControlIdMovement = CreateVariable(c_Control_Movement, 1 /*Integer*/, $DeviceId, 10, 'IPSShadowing_MovementSht', $ScriptIdChangeSettings, c_MovementId_Stop, 'Shutter'); + $ControlIdProgramNight = CreateVariable(c_Control_ProgramNight, 1 /*Integer*/, $DeviceId, 200, 'IPSShadowing_ProgNigSht', $ScriptIdChangeSettings, c_ProgramId_Manual, 'Bed'); + $ControlIdProgramDay = CreateVariable(c_Control_ProgramDay, 1 /*Integer*/, $DeviceId, 210, 'IPSShadowing_ProgDaySht', $ScriptIdChangeSettings, c_ProgramId_Manual, 'Sun'); + $ControlIdProgramTemp = CreateVariable(c_Control_ProgramTemp, 1 /*Integer*/, $DeviceId, 220, 'IPSShadowing_ProgTmpSht', $ScriptIdChangeSettings, c_ProgramId_Manual, 'Temperature'); + $ControlIdProgramPresent = CreateVariable(c_Control_ProgramPresent, 1 /*Integer*/, $DeviceId, 230, 'IPSShadowing_ProgPreSht', $ScriptIdChangeSettings, c_ProgramId_Manual, 'Motion'); + } elseif ($ShadowingType==c_ShadowingType_Jalousie) { + $ControlIdMovement = CreateVariable(c_Control_Movement, 1 /*Integer*/, $DeviceId, 10, 'IPSShadowing_MovementJal', $ScriptIdChangeSettings, c_MovementId_Stop, 'Shutter'); + $ControlIdProgramNight = CreateVariable(c_Control_ProgramNight, 1 /*Integer*/, $DeviceId, 200, 'IPSShadowing_ProgNigJal', $ScriptIdChangeSettings, c_ProgramId_Manual, 'Bed'); + $ControlIdProgramDay = CreateVariable(c_Control_ProgramDay, 1 /*Integer*/, $DeviceId, 210, 'IPSShadowing_ProgDayJal', $ScriptIdChangeSettings, c_ProgramId_Manual, 'Sun'); + $ControlIdProgramTemp = CreateVariable(c_Control_ProgramTemp, 1 /*Integer*/, $DeviceId, 220, 'IPSShadowing_ProgTmpJal', $ScriptIdChangeSettings, c_ProgramId_Manual, 'Temperature'); + $ControlIdProgramPresent = CreateVariable(c_Control_ProgramPresent, 1 /*Integer*/, $DeviceId, 230, 'IPSShadowing_ProgPreJal', $ScriptIdChangeSettings, c_ProgramId_Manual, 'Motion'); + } elseif ($ShadowingType==c_ShadowingType_Marquees) { + $ControlIdMovement = CreateVariable(c_Control_Movement, 1 /*Integer*/, $DeviceId, 10, 'IPSShadowing_MovementMar', $ScriptIdChangeSettings, c_MovementId_Stop, 'Shutter'); + $ControlIdProgramNight = CreateVariable(c_Control_ProgramNight, 1 /*Integer*/, $DeviceId, 200, 'IPSShadowing_ProgNigMar', $ScriptIdChangeSettings, c_ProgramId_Manual, 'Bed'); + $ControlIdProgramDay = CreateVariable(c_Control_ProgramDay, 1 /*Integer*/, $DeviceId, 210, 'IPSShadowing_ProgDayMar', $ScriptIdChangeSettings, c_ProgramId_Manual, 'Sun'); + $ControlIdProgramTemp = CreateVariable(c_Control_ProgramTemp, 1 /*Integer*/, $DeviceId, 220, 'IPSShadowing_ProgTmpMar', $ScriptIdChangeSettings, c_ProgramId_Manual, 'Temperature'); + $ControlIdProgramWeather = CreateVariable(c_Control_ProgramWeather, 1 /*Integer*/, $DeviceId, 220, 'IPSShadowing_ProgWeaMar', $ScriptIdChangeSettings, c_ProgramId_Manual, 'Drops'); + $ControlIdProgramPresent = CreateVariable(c_Control_ProgramPresent, 1 /*Integer*/, $DeviceId, 230, 'IPSShadowing_ProgPreMar', $ScriptIdChangeSettings, c_ProgramId_Manual, 'Motion'); + $ControlIdWeatherProfile = CreateVariable(c_Control_ProfileWeather, 1 /*Integer*/, $DeviceId, 370, 'IPSShadowing_ProfileWeather', $ScriptIdChangeSettings, 0, 'Drops'); + } else { + throw new Exception('Unknown ShadowingType '.$ShadowingType); + } + $Idx = $Idx + 10; + } + + // ---------------------------------------------------------------------------------------------------------------------------- + // Webfront Definition + // ---------------------------------------------------------------------------------------------------------------------------- + if ($WFC10_Enabled) { + $categoryId_WebFront = CreateCategoryPath($WFC10_Path); + EmptyCategory($categoryId_WebFront); + DeleteWFCItems($WFC10_ConfigId, $WFC10_TabPaneItem); + DeleteWFCItems($WFC10_ConfigId, 'ShadowTP'); + CreateWFCItemTabPane ($WFC10_ConfigId, $WFC10_TabPaneItem, $WFC10_TabPaneParent, $WFC10_TabPaneOrder, $WFC10_TabPaneName, $WFC10_TabPaneIcon); + + // WebFront Overview + $WebFrontOverviewId = CreateCategory('Overview', $categoryId_WebFront, 10); + $WebFrontOverviewTop1 = CreateCategory( 'Top1', $WebFrontOverviewId, 10); + $WebFrontOverviewTop2 = CreateCategory( 'Top2', $WebFrontOverviewId, 20); + $WebFrontOverviewBottom1 = CreateCategory( 'Bottom1', $WebFrontOverviewId, 30); + $WebFrontOverviewBottom2 = CreateCategory( 'Bottom2', $WebFrontOverviewId, 40); + $UniqueId = date('H:i'); + CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem.'_OV', $WFC10_TabPaneItem.'', 10, $WFC10_TabName1, $WFC10_TabIcon1, 0 /*Horizontal*/, 170 /*Hight*/, 1 /*Target=Pane2*/, 1/*UsePixel*/, 'true'); + CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem.'_OVTop', $WFC10_TabPaneItem.'_OV', 10, '', '', 1 /*Vertical*/, 310 /*Width*/, 1 /*Target=Pane2*/, 1/*UsePixel*/, 'true'); + CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem.'_OVBottom', $WFC10_TabPaneItem.'_OV', 20, '', '', 1 /*Vertical*/, 430 /*Width*/, 1 /*Target=Pane2*/, 1/*UsePixel*/, 'true'); + CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem.'_OVTop1'.$UniqueId, $WFC10_TabPaneItem.'_OVTop', 10, 'Top1', '', $WebFrontOverviewTop1 /*BaseId*/, 'false' /*BarBottomVisible*/); + CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem.'_OVTop2'.$UniqueId, $WFC10_TabPaneItem.'_OVTop', 20, 'Top2', '', $WebFrontOverviewTop2 /*BaseId*/, 'false' /*BarBottomVisible*/); + CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem.'_OVBottom1'.$UniqueId,$WFC10_TabPaneItem.'_OVBottom', 10, 'Bottom1', '', $WebFrontOverviewBottom1 /*BaseId*/, 'false' /*BarBottomVisible*/); + CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem.'_OVBottom2'.$UniqueId,$WFC10_TabPaneItem.'_OVBottom', 20, 'Bottom2', '', $WebFrontOverviewBottom2 /*BaseId*/, 'false' /*BarBottomVisible*/); + $Idx = 10; + foreach ($DeviceConfig as $DeviceIdent=>$DeviceData) { + $DeviceId = IPS_GetObjectIDByIdent($DeviceIdent, $CategoryIdDevices); + $DeviceName = $DeviceData[c_Property_Name]; + CreateLink($DeviceName, IPS_GetObjectIDByIdent(c_Control_Movement, $DeviceId), $WebFrontOverviewTop1, $Idx); + CreateLinkByDestination('Status', IPS_GetObjectIDByIdent(c_Control_Display, $DeviceId), $WebFrontOverviewTop2, $Idx); + $Idx = $Idx + 10; + } + CreateLink('Szenarien', $ControlIdScenarioActivate, $WebFrontOverviewBottom1, 10); + CreateLink('Automatic Ein', $ScriptIdAutomaticOn, $WebFrontOverviewBottom2, 10); + CreateLink('Automatic Aus', $ScriptIdAutomaticOff, $WebFrontOverviewBottom2, 20); + CreateLink('Automatic Reset', $ScriptIdAutomaticReset, $WebFrontOverviewBottom2, 30); + + // Shadowing Devices + CreateWFCItemTabPane ($WFC10_ConfigId, $WFC10_TabPaneItem.'_Devices', $WFC10_TabPaneItem, 20, 'Beschattungs Elemente', 'Information'); + $Idx = 10; + foreach ($DeviceConfig as $DeviceIdent=>$DeviceData) { + $DeviceId = IPS_GetObjectIDByIdent($DeviceIdent, $CategoryIdDevices); + $DeviceName = $DeviceData[c_Property_Name]; + + $WebFrontDetailId = CreateCategory($DeviceName, $categoryId_WebFront, 100+$Idx); + $WebFrontDetailTopId = CreateCategory("Top", $WebFrontDetailId, 100+$Idx); + $WebFrontDetailBottomLeftId = CreateCategory("BottomLeft", $WebFrontDetailId, 100+$Idx); + $WebFrontDetailBottomRightId = CreateCategory("BottomRight", $WebFrontDetailId, 100+$Idx); + CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem."_Devices$DeviceName", $WFC10_TabPaneItem.'_Devices', 100+$Idx, $DeviceName, '', 0 /*Horizontal*/, 315 /*Hight*/, 0 /*Target=Pane1*/, 1/*UsePixel*/, 'true'); + CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Devices$DeviceName"."Top".$UniqueId, $WFC10_TabPaneItem."_Devices$DeviceName", 10, '', '', $WebFrontDetailTopId /*BaseId*/, 'false' /*BarBottomVisible*/); + CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem."_Devices$DeviceName"."Bottom", $WFC10_TabPaneItem."_Devices$DeviceName", 20, '', '', 1 /*Vertical*/, 65 /*Width*/, 0 /*Target=Pane1*/, 0/*UsePercentage*/, 'true'); + CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Devices$DeviceName"."BottomLeft".$UniqueId, $WFC10_TabPaneItem."_Devices$DeviceName"."Bottom", 10, '', '', $WebFrontDetailBottomLeftId /*BaseId*/, 'false' /*BarBottomVisible*/); + CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Devices$DeviceName"."BottomRight".$UniqueId,$WFC10_TabPaneItem."_Devices$DeviceName"."Bottom", 10, '', '', $WebFrontDetailBottomRightId /*BaseId*/, 'false' /*BarBottomVisible*/); + + CreateLink('Steuerung', IPS_GetObjectIDByIdent(c_Control_Movement, $DeviceId), $WebFrontDetailTopId, 10); + $ProgramDeviceId = CreateDummyInstance("Programme", $WebFrontDetailTopId, 20); + CreateLink('Programm Nacht', IPS_GetObjectIDByIdent(c_Control_ProgramNight, $DeviceId), $ProgramDeviceId, 10); + CreateLink('Programm Tag', IPS_GetObjectIDByIdent(c_Control_ProgramDay, $DeviceId), $ProgramDeviceId, 20); + CreateLink('Programm Temperatur', IPS_GetObjectIDByIdent(c_Control_ProgramTemp, $DeviceId), $ProgramDeviceId, 30); + CreateLink('Programm Anwesenend', IPS_GetObjectIDByIdent(c_Control_ProgramPresent, $DeviceId), $ProgramDeviceId, 40); + $controlIdProgramWeather = @IPS_GetObjectIDByIdent(c_Control_ProgramWeather, $DeviceId); + if ($controlIdProgramWeather!==false) { + CreateLink('Programm Wetter', $controlIdProgramWeather, $ProgramDeviceId, 35); + } + + CreateLink('Tagesbeginn Profil', IPS_GetObjectIDByIdent(c_Control_ProfileBgnOfDay, $DeviceId), $WebFrontDetailBottomLeftId, 10); + CreateLink('Tagesende Profil', IPS_GetObjectIDByIdent(c_Control_ProfileEndOfDay, $DeviceId), $WebFrontDetailBottomLeftId, 20); + CreateLink('Temperatur Profil', IPS_GetObjectIDByIdent(c_Control_ProfileTemp, $DeviceId), $WebFrontDetailBottomLeftId, 30); + CreateLink('Sonnenstand Profil', IPS_GetObjectIDByIdent(c_Control_ProfileSun, $DeviceId), $WebFrontDetailBottomLeftId, 40); + if ($controlIdProgramWeather!==false) { + CreateLink('Wetter Profil', IPS_GetObjectIDByIdent(c_Control_ProfileWeather, $DeviceId), $WebFrontDetailBottomLeftId, 50); + } + CreateLink('Profil Information', IPS_GetObjectIDByIdent(c_Control_ProfileInfo, $DeviceId), $WebFrontDetailBottomLeftId, 60); + + CreateLink('Automatik', IPS_GetObjectIDByIdent(c_Control_Automatic, $DeviceId), $WebFrontDetailBottomRightId, 10); + CreateLink('Manueller Modus', IPS_GetObjectIDByIdent(c_Control_ManualChange, $DeviceId), $WebFrontDetailBottomRightId, 20); + CreateLink('Temperatur Modus', IPS_GetObjectIDByIdent(c_Control_TempChange, $DeviceId), $WebFrontDetailBottomRightId, 25); + CreateLink('Status', IPS_GetObjectIDByIdent(c_Control_Display, $DeviceId), $WebFrontDetailBottomRightId, 30); + CreateLink('Position', IPS_GetObjectIDByIdent(c_Control_Position, $DeviceId), $WebFrontDetailBottomRightId, 40); + + $Idx = $Idx + 10; + } + + // Scenarien + $WebFrontScenariosId = CreateCategory('Scenarien', $categoryId_WebFront, 30); + $WebFrontScenariosIdTopL = CreateCategory( 'TopLeft', $WebFrontScenariosId, 10); + $WebFrontScenariosIdTopR = CreateCategory( 'TopRight', $WebFrontScenariosId, 20); + $WebFrontScenariosIdBot = CreateCategory( 'Bottom', $WebFrontScenariosId, 30); + CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem."_Scenarios", $WFC10_TabPaneItem, 30, 'Szenarien', 'Script', 0 /*Horizontal*/, 120 /*Hight*/, 0 /*Target=Pane1*/, 1/*UsePixel*/, 'true'); + CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem."_ScenariosTop", $WFC10_TabPaneItem."_Scenarios", 10, '', '', 1 /*Vertical*/, 300/*Width*/, 1 /*Target=Pane2*/, 1/*UsePixel*/, 'true'); + CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_ScenariosBot", $WFC10_TabPaneItem."_Scenarios", 20, '', '', $CategoryIdScenarioDisplay /*BaseId*/, 'false' /*BarBottomVisible*/); + CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_ScenariosTopL",$WFC10_TabPaneItem."_ScenariosTop", 10, '', '', $WebFrontScenariosIdTopL /*BaseId*/, 'false' /*BarBottomVisible*/); + CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_ScenariosTopR",$WFC10_TabPaneItem."_ScenariosTop", 20, '', '', $WebFrontScenariosIdTopR /*BaseId*/, 'false' /*BarBottomVisible*/); + CreateLink('Szenario Auswahl', $ControlIdScenarioSelect, $WebFrontScenariosIdTopL, 10); + CreateLink('Neues Szenario', $ScriptIdScenarioCreate, $WebFrontScenariosIdTopR, 10); + CreateLink('Szenario löschen', $ScriptIdScenarioDelete, $WebFrontScenariosIdTopR, 20); + + // Profiles + $WebFrontProfilesId = CreateCategory('Profiles', $categoryId_WebFront, 40); + $WebFrontProfilesId1 = CreateCategory( 'ProfilesTemp', $WebFrontProfilesId, 10); + $WebFrontProfilesId1TopL = CreateCategory( 'TopLeft', $WebFrontProfilesId1, 10); + $WebFrontProfilesId1TopR = CreateCategory( 'TopRight', $WebFrontProfilesId1, 20); + $WebFrontProfilesId1BotR = CreateCategory( 'BottomRight', $WebFrontProfilesId1, 30); + $WebFrontProfilesId2 = CreateCategory( 'ProfilesSun', $WebFrontProfilesId, 20); + $WebFrontProfilesId2TopL = CreateCategory( 'TopLeft', $WebFrontProfilesId2, 10); + $WebFrontProfilesId2TopR = CreateCategory( 'TopRight', $WebFrontProfilesId2, 20); + $WebFrontProfilesId2Bot = CreateCategory( 'Bottom', $WebFrontProfilesId2, 30); + $WebFrontProfilesId3 = CreateCategory( 'ProfilesWeather', $WebFrontProfilesId, 30); + $WebFrontProfilesId3TopL = CreateCategory( 'TopLeft', $WebFrontProfilesId3, 10); + $WebFrontProfilesId3TopR = CreateCategory( 'TopRight', $WebFrontProfilesId3, 20); + $WebFrontProfilesId3Bot = CreateCategory( 'Bottom', $WebFrontProfilesId3, 30); + $WebFrontProfilesId4 = CreateCategory( 'ProfilesBgnOfDay', $WebFrontProfilesId, 40); + $WebFrontProfilesId4TopL = CreateCategory( 'TopLeft', $WebFrontProfilesId4, 10); + $WebFrontProfilesId4TopR = CreateCategory( 'TopRight', $WebFrontProfilesId4, 20); + $WebFrontProfilesId4BotR = CreateCategory( 'BottomRight', $WebFrontProfilesId4, 30); + $WebFrontProfilesId5 = CreateCategory( 'ProfilesEndOfDay', $WebFrontProfilesId, 50); + $WebFrontProfilesId5TopL = CreateCategory( 'TopLeft', $WebFrontProfilesId5, 10); + $WebFrontProfilesId5TopR = CreateCategory( 'TopRight', $WebFrontProfilesId5, 20); + $WebFrontProfilesId5BotR = CreateCategory( 'BottomRight', $WebFrontProfilesId5, 30); + CreateWFCItemTabPane ($WFC10_ConfigId, $WFC10_TabPaneItem.'_Profiles', $WFC10_TabPaneItem, 40, 'Profile', 'Clock'); + + CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles1", $WFC10_TabPaneItem.'_Profiles', 10, 'Temperatur', 'Temperature', 0 /*Horizontal*/, 120 /*Hight*/, 0 /*Target=Pane1*/, 1/*UsePixel*/, 'true'); + CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles1Top", $WFC10_TabPaneItem."_Profiles1", 10, '', '', 1 /*Vertical*/, 300/*Width*/, 1 /*Target=Pane2*/, 1/*UsePixel*/, 'true'); + CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles1Bot", $WFC10_TabPaneItem."_Profiles1", 20, '', '', $CategoryIdProfileTempDisplay /*BaseId*/, 'false' /*BarBottomVisible*/); + CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles1TopL",$WFC10_TabPaneItem."_Profiles1Top", 10, '', '', $WebFrontProfilesId1TopL /*BaseId*/, 'false' /*BarBottomVisible*/); + CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles1TopR",$WFC10_TabPaneItem."_Profiles1Top", 20, '', '', $WebFrontProfilesId1TopR /*BaseId*/, 'false' /*BarBottomVisible*/); + CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles2", $WFC10_TabPaneItem.'_Profiles', 20, 'Sonnenstand', 'Sun', 0 /*Horizontal*/, 120 /*Hight*/, 0 /*Target=Pane1*/, 1/*UsePixel*/, 'true'); + CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles2Top", $WFC10_TabPaneItem."_Profiles2", 10, '', '', 1 /*Vertical*/, 300/*Width*/, 1 /*Target=Pane2*/, 1/*UsePixel*/, 'true'); + CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles2Bot", $WFC10_TabPaneItem."_Profiles2", 20, '', '', 1 /*Vertical*/, 420/*Width*/, 1 /*Target=Pane2*/, 1/*UsePixel*/, 'true'); + CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles2BotL",$WFC10_TabPaneItem."_Profiles2Bot", 10, '', '', $CategoryIdProfileSunDisplay /*BaseId*/, 'false' /*BarBottomVisible*/); + CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles2BotR",$WFC10_TabPaneItem."_Profiles2Bot", 20, '', '', $CategoryIdProfileSunGraphs /*BaseId*/, 'false' /*BarBottomVisible*/); + CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles2TopL",$WFC10_TabPaneItem."_Profiles2Top", 10, '', '', $WebFrontProfilesId2TopL /*BaseId*/, 'false' /*BarBottomVisible*/); + CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles2TopR",$WFC10_TabPaneItem."_Profiles2Top", 20, '', '', $WebFrontProfilesId2TopR /*BaseId*/, 'false' /*BarBottomVisible*/); + CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles3", $WFC10_TabPaneItem.'_Profiles', 20, 'Wetter', 'Drops', 0 /*Horizontal*/, 120 /*Hight*/, 0 /*Target=Pane1*/, 1/*UsePixel*/, 'true'); + CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles3Top", $WFC10_TabPaneItem."_Profiles3", 10, '', '', 1 /*Vertical*/, 300/*Width*/, 1 /*Target=Pane2*/, 1/*UsePixel*/, 'true'); + CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles3Bot", $WFC10_TabPaneItem."_Profiles3", 20, '', '', $CategoryIdProfileWeatherDisplay /*BaseId*/, 'false' /*BarBottomVisible*/); + CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles3TopL",$WFC10_TabPaneItem."_Profiles3Top", 10, '', '', $WebFrontProfilesId3TopL /*BaseId*/, 'false' /*BarBottomVisible*/); + CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles3TopR",$WFC10_TabPaneItem."_Profiles3Top", 20, '', '', $WebFrontProfilesId3TopR /*BaseId*/, 'false' /*BarBottomVisible*/); + CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles4", $WFC10_TabPaneItem.'_Profiles', 20, 'Tagesbeginn', 'Clock', 0 /*Horizontal*/, 120 /*Hight*/, 0 /*Target=Pane1*/, 1/*UsePixel*/, 'true'); + CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles4Top", $WFC10_TabPaneItem."_Profiles4", 10, '', '', 1 /*Vertical*/, 300/*Width*/, 1 /*Target=Pane2*/, 1/*UsePixel*/, 'true'); + CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles4Bot", $WFC10_TabPaneItem."_Profiles4", 20, '', '', $CategoryIdProfileBgnOfDayDisplay /*BaseId*/, 'false' /*BarBottomVisible*/); + CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles4TopL",$WFC10_TabPaneItem."_Profiles4Top", 10, '', '', $WebFrontProfilesId4TopL /*BaseId*/, 'false' /*BarBottomVisible*/); + CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles4TopR",$WFC10_TabPaneItem."_Profiles4Top", 20, '', '', $WebFrontProfilesId4TopR /*BaseId*/, 'false' /*BarBottomVisible*/); + CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles5", $WFC10_TabPaneItem.'_Profiles', 30, 'Tagesende', 'Clock', 0 /*Horizontal*/, 120 /*Hight*/, 0 /*Target=Pane1*/, 1/*UsePixel*/, 'true'); + CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles5Top", $WFC10_TabPaneItem."_Profiles5", 10, '', '', 1 /*Vertical*/, 300/*Width*/, 1 /*Target=Pane2*/, 1/*UsePixel*/, 'true'); + CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles5Bot", $WFC10_TabPaneItem."_Profiles5", 20, '', '', $CategoryIdProfileEndOfDayDisplay /*BaseId*/, 'false' /*BarBottomVisible*/); + CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles5TopL",$WFC10_TabPaneItem."_Profiles5Top", 10, '', '', $WebFrontProfilesId5TopL /*BaseId*/, 'false' /*BarBottomVisible*/); + CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles5TopR",$WFC10_TabPaneItem."_Profiles5Top", 20, '', '', $WebFrontProfilesId5TopR /*BaseId*/, 'false' /*BarBottomVisible*/); + CreateLink('Profil Auswahl', $ControlIdProfileTempSelect, $WebFrontProfilesId1TopL, 10); + CreateLink('Neues Profil', $ScriptIdProfileTempCreate, $WebFrontProfilesId1TopR, 10); + CreateLink('Profil löschen', $ScriptIdProfileTempDelete, $WebFrontProfilesId1TopR, 20); + CreateLink('Profil Auswahl', $ControlIdProfileSunSelect, $WebFrontProfilesId2TopL, 10); + CreateLink('Neues Profil', $ScriptIdProfileSunCreate, $WebFrontProfilesId2TopR, 10); + CreateLink('Profil löschen', $ScriptIdProfileSunDelete, $WebFrontProfilesId2TopR, 20); + CreateLink('Profil Auswahl', $ControlIdProfileWeatherSelect, $WebFrontProfilesId3TopL, 10); + CreateLink('Neues Profil', $ScriptIdProfileWeatherCreate, $WebFrontProfilesId3TopR, 10); + CreateLink('Profil löschen', $ScriptIdProfileWeatherDelete, $WebFrontProfilesId3TopR, 20); + CreateLink('Profile Auswahl', $ControlIdProfileBgnOfDaySelect, $WebFrontProfilesId4TopL, 10); + CreateLink('Neues Profil', $ScriptIdProfileBgnOfDayCreate, $WebFrontProfilesId4TopR, 10); + CreateLink('Profil löschen', $ScriptIdProfileBgnOfDayDelete, $WebFrontProfilesId4TopR, 20); + CreateLink('Profile Auswahl', $ControlIdProfileEndOfDaySelect, $WebFrontProfilesId5TopL, 10); + CreateLink('Neues Profil', $ScriptIdProfileEndOfDayCreate, $WebFrontProfilesId5TopR, 10); + CreateLink('Profil löschen', $ScriptIdProfileEndOfDayDelete, $WebFrontProfilesId5TopR, 20); + + // Common Settings + $WebFrontSettingId = CreateCategory('Settings', $categoryId_WebFront, 50); + CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem.'_Settings', $WFC10_TabPaneItem, 50, 'Einstellungen', 'Gear', $WebFrontSettingId /*BaseId*/, 'true' /*BarBottomVisible*/); + CreateLink('Msg Prio. Temparatur', IPS_GetObjectIDByIdent(c_Control_MsgPrioTemp, $CategoryIdSettings), $WebFrontSettingId, 60); + CreateLink('Msg Prio. Programm', IPS_GetObjectIDByIdent(c_Control_MsgPrioProg, $CategoryIdSettings), $WebFrontSettingId, 70); + + // Application Logging + $WebFrontLoggingId = CreateCategory('Logging', $categoryId_WebFront, 60); + CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Logging", $WFC10_TabPaneItem, 60, 'Meldungen', 'Window', $WebFrontLoggingId /*BaseId*/, 'false' /*BarBottomVisible*/); + CreateLink('Meldungen', $ControlIdLog, $WebFrontLoggingId, 10); + + ReloadAllWebFronts(); + } + + // ---------------------------------------------------------------------------------------------------------------------------- + // Mobile Definition + // ---------------------------------------------------------------------------------------------------------------------------- + if ($Mobile_Enabled ) { + $MobileId = CreateCategoryPath($Mobile_Path, $Mobile_PathOrder, $Mobile_PathIcon); + EmptyCategory($MobileId); + + $MobileDevicesId = CreateCategory('Beschattungselemente', $MobileId, 10, 'Information'); + $MobileSettingsId = CreateCategory('Einstellungen', $MobileId, 40, 'Gear'); + $MobileLogId = CreateCategory('Meldungen', $MobileId, 50, 'Window'); + + $MobileScenariosId = CreateDummyInstance("Szenarien", $MobileId, 5); + CreateLink('Auswahl', $ControlIdScenarioActivate, $MobileScenariosId, 10); + $Idx = 10; + foreach ($DeviceConfig as $DeviceIdent=>$DeviceData) { + $DeviceId = IPS_GetObjectIDByIdent($DeviceIdent, $CategoryIdDevices); + $DeviceName = $DeviceData[c_Property_Name]; + + // Mobile Overview + CreateLink($DeviceName, IPS_GetObjectIDByIdent(c_Control_Movement, $DeviceId), $MobileId, $Idx); + + // Detailed DeviceData + $MobileDeviceDetailId = CreateCategory($DeviceName, $MobileDevicesId, $Idx); + CreateLink('Bewegung', IPS_GetObjectIDByIdent(c_Control_Movement, $DeviceId), $MobileDeviceDetailId, 10); + CreateLink('Status', IPS_GetObjectIDByIdent(c_Control_Display, $DeviceId), $MobileDeviceDetailId, 20); + CreateLink('Position', IPS_GetObjectIDByIdent(c_Control_Position, $DeviceId), $MobileDeviceDetailId, 30); + $ProgramDeviceId = CreateDummyInstance("Programme", $MobileDeviceDetailId, 1000); + CreateLink('Nacht', IPS_GetObjectIDByIdent(c_Control_ProgramNight, $DeviceId), $ProgramDeviceId, 10); + CreateLink('Tag', IPS_GetObjectIDByIdent(c_Control_ProgramDay, $DeviceId), $ProgramDeviceId, 20); + CreateLink('Temperatur', IPS_GetObjectIDByIdent(c_Control_ProgramTemp, $DeviceId), $ProgramDeviceId, 30); + CreateLink('Anwesenend', IPS_GetObjectIDByIdent(c_Control_ProgramPresent, $DeviceId), $ProgramDeviceId, 40); + $controlIdProgramWeather = @IPS_GetObjectIDByIdent(c_Control_ProgramWeather, $DeviceId); + if ($controlIdProgramWeather!==false) { + CreateLink('Programm Wetter', $controlIdProgramWeather, $ProgramDeviceId, 35); + } + $ProfileDeviceId = CreateDummyInstance("Profile", $MobileDeviceDetailId, 1100); + CreateLink('Temperatur Profil', IPS_GetObjectIDByIdent(c_Control_ProfileTemp, $DeviceId), $ProfileDeviceId, 10); + CreateLink('Sonnenstand Profil', IPS_GetObjectIDByIdent(c_Control_ProfileSun, $DeviceId), $ProfileDeviceId, 20); + if ($controlIdProgramWeather!==false) { + CreateLink('Wetter Profil', IPS_GetObjectIDByIdent(c_Control_ProfileWeather, $DeviceId), $ProfileDeviceId, 30); + } + CreateLink('Tagesbeginn Profil', IPS_GetObjectIDByIdent(c_Control_ProfileBgnOfDay, $DeviceId), $ProfileDeviceId, 40); + CreateLink('Tagesende Profil', IPS_GetObjectIDByIdent(c_Control_ProfileEndOfDay, $DeviceId), $ProfileDeviceId, 50); + CreateLink('Profil Information', IPS_GetObjectIDByIdent(c_Control_ProfileInfo, $DeviceId), $ProfileDeviceId, 60); + $SettingsDeviceId = CreateDummyInstance("Einstellungen", $MobileDeviceDetailId, 1200); + CreateLink('Automatik', IPS_GetObjectIDByIdent(c_Control_Automatic, $DeviceId), $SettingsDeviceId, 10); + CreateLink('Manueller Modus', IPS_GetObjectIDByIdent(c_Control_ManualChange, $DeviceId), $SettingsDeviceId, 20); + CreateLink('Temperatur Modus', IPS_GetObjectIDByIdent(c_Control_TempChange, $DeviceId), $SettingsDeviceId, 25); + CreateLink('Status', IPS_GetObjectIDByIdent(c_Control_Display, $DeviceId), $SettingsDeviceId, 30); + CreateLink('Position', IPS_GetObjectIDByIdent(c_Control_Position, $DeviceId), $SettingsDeviceId, 40); + + $Idx = $Idx + 10; + } + + CreateLink('Automatic Ein', $ScriptIdAutomaticOn, $MobileSettingsId, 10); + CreateLink('Automatic Aus', $ScriptIdAutomaticOff, $MobileSettingsId, 20); + CreateLink('Automatic Reset', $ScriptIdAutomaticReset, $MobileSettingsId, 30); + CreateLink('Msg Prio. Temparatur', $ControlIdMsgPrioTemp, $MobileSettingsId, 100); + CreateLink('Msg Prio. Programm', $ControlIdMsgPrioTemp, $MobileSettingsId, 110); + + $MobileSettingScenarioId = CreateCategory('Szenarien', $MobileSettingsId, 10, 'Script'); + CreateLink('Szenario Auswahl', $ControlIdScenarioSelect, $MobileSettingScenarioId, 10); + CreateLink('Szenario Einstellungen', $CategoryIdScenarioDisplay, $MobileSettingScenarioId, 10); + CreateLink('Neues Szenario', $ScriptIdScenarioCreate, $MobileSettingScenarioId, 20); + CreateLink('Szenario löschen', $ScriptIdScenarioDelete, $MobileSettingScenarioId, 30); + + $MobileSettingProfileId = CreateCategory('Temperatur Profile', $MobileSettingsId, 10, 'Temperature'); + CreateLink('Profil Auswahl', $ControlIdProfileTempSelect, $MobileSettingProfileId, 10); + CreateLink('Profil Einstellungen', $CategoryIdProfileTempDisplay, $MobileSettingProfileId,10); + CreateLink('Neues Profil', $ScriptIdProfileTempCreate, $MobileSettingProfileId, 30); + CreateLink('Profil löschen', $ScriptIdProfileTempDelete, $MobileSettingProfileId, 40); + $MobileSettingProfileId = CreateCategory('Sonnenstand Profile', $MobileSettingsId, 20, 'Sun'); + CreateLink('Profil Auswahl', $ControlIdProfileSunSelect, $MobileSettingProfileId, 10); + CreateLink('Profil Einstellungen', $CategoryIdProfileSunDisplay, $MobileSettingProfileId,10); + //CreateLink('Profil Graph', $CategoryIdProfileSunGraphs, $MobileSettingProfileId,20); + CreateLink('Profil Graph', $MediaIdAzimuth, $MobileSettingProfileId,20); + + CreateLink('Neues Profil', $ScriptIdProfileSunCreate, $MobileSettingProfileId, 30); + CreateLink('Profil löschen', $ScriptIdProfileSunDelete, $MobileSettingProfileId, 40); + $MobileSettingProfileId = CreateCategory('Wetter Profile', $MobileSettingsId, 30, 'Drops'); + CreateLink('Profil Auswahl', $ControlIdProfileWeatherSelect, $MobileSettingProfileId, 10); + CreateLink('Profil Einstellungen', $CategoryIdProfileWeatherDisplay, $MobileSettingProfileId,10); + CreateLink('Neues Profil', $ScriptIdProfileWeatherCreate, $MobileSettingProfileId, 30); + CreateLink('Profil löschen', $ScriptIdProfileWeatherDelete, $MobileSettingProfileId, 40); + $MobileSettingProfileId = CreateCategory('Tagesbeginn Profile',$MobileSettingsId, 40, 'Clock'); + CreateLink('Profile Auswahl', $ControlIdProfileBgnOfDaySelect, $MobileSettingProfileId, 10); + CreateLink('Profil Einstellungen', $CategoryIdProfileBgnOfDayDisplay,$MobileSettingProfileId,10); + CreateLink('Neues Profil', $ScriptIdProfileBgnOfDayCreate, $MobileSettingProfileId, 20); + CreateLink('Profil löschen', $ScriptIdProfileBgnOfDayDelete, $MobileSettingProfileId, 30); + $MobileSettingProfileId = CreateCategory('Tagesende Profile', $MobileSettingsId, 50, 'Clock'); + CreateLink('Profile Auswahl', $ControlIdProfileEndOfDaySelect, $MobileSettingProfileId, 10); + CreateLink('Profil Einstellungen', $CategoryIdProfileEndOfDayDisplay,$MobileSettingProfileId,10); + CreateLink('Neues Profil', $ScriptIdProfileEndOfDayCreate, $MobileSettingProfileId, 20); + CreateLink('Profil löschen', $ScriptIdProfileEndOfDayDelete, $MobileSettingProfileId, 30); + + CreateLink('Meldungen', $ControlIdLog, $MobileLogId, 100); + } + + + + /** @}*/ +?> \ No newline at end of file From 34d04819b7417e432d07ae522c3490dbe4f936a0 Mon Sep 17 00:00:00 2001 From: brownson Date: Thu, 17 May 2012 20:41:31 +0200 Subject: [PATCH 18/77] IPSShadowing - Fixed IPSComponents --- .../IPSComponentShutter_1Wire.class.php | 17 ++++++++++++- .../IPSComponentShutter_Dummy.class.php | 17 ++++++++++++- .../IPSComponentShutter_Enocean.class.php | 25 +++++++++++++++---- .../IPSComponentShutter_FS20.class.php | 25 +++++++++++++++---- .../IPSComponentShutter_Homematic.class.php | 20 ++++++++++++--- ...mponentShutter_IPSShutterControl.class.php | 17 ++++++++++++- .../IPSComponentShutter_LCN.class.php | 17 ++++++++++++- ...IPSComponentShutter_MoellerEaton.class.php | 18 ++++++++++++- .../IPSModuleShutter.class.php | 2 +- .../IPSShadowing_Device.class.php | 4 +-- .../IPSShadowing_ProfileTempCreate.ips.php | 2 +- .../IPSComponent_FileList.ini | 1 + .../IPSShadowing_Installation.ips.php | 9 ++++--- 13 files changed, 148 insertions(+), 26 deletions(-) diff --git a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_1Wire.class.php b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_1Wire.class.php index f5ac4a8..45d6352 100644 --- a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_1Wire.class.php +++ b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_1Wire.class.php @@ -19,7 +19,9 @@ * Version 2.50.1, 31.01.2012
*/ - abstract class IPSComponentShutter_1Wire extends IPSComponentShutter { + IPSUtils_Include ('IPSComponentShutter.class.php', 'IPSLibrary::app::core::IPSComponent::IPSComponentShutter'); + + class IPSComponentShutter_1Wire extends IPSComponentShutter { private $instanceId; @@ -34,6 +36,19 @@ public function __construct($instanceId) { $this->instanceId = IPSUtil_ObjectIDByPath($instanceId); } + /** + * @public + * + * Funktion liefert String IPSComponent Constructor String. + * String kann dazu benützt werden, das Object mit der IPSComponent::CreateObjectByParams + * wieder neu zu erzeugen. + * + * @return string Parameter String des IPSComponent Object + */ + public function GetComponentParams() { + return get_class($this).','.$this->instanceId; + } + /** * @public * diff --git a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_Dummy.class.php b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_Dummy.class.php index 07830e9..52e7f68 100644 --- a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_Dummy.class.php +++ b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_Dummy.class.php @@ -19,7 +19,9 @@ * Version 2.50.1, 31.01.2012
*/ - abstract class IPSComponentShutter_Dummy extends IPSComponentShutter { + IPSUtils_Include ('IPSComponentShutter.class.php', 'IPSLibrary::app::core::IPSComponent::IPSComponentShutter'); + + class IPSComponentShutter_Dummy extends IPSComponentShutter { private $instanceId; @@ -34,6 +36,19 @@ public function __construct($instanceId) { $this->instanceId = IPSUtil_ObjectIDByPath($instanceId); } + /** + * @public + * + * Funktion liefert String IPSComponent Constructor String. + * String kann dazu benützt werden, das Object mit der IPSComponent::CreateObjectByParams + * wieder neu zu erzeugen. + * + * @return string Parameter String des IPSComponent Object + */ + public function GetComponentParams() { + return get_class($this).','.$this->instanceId; + } + /** * @public * diff --git a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_Enocean.class.php b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_Enocean.class.php index 7402154..b4c723e 100644 --- a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_Enocean.class.php +++ b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_Enocean.class.php @@ -19,7 +19,9 @@ * Version 2.50.1, 31.01.2012
*/ - abstract class IPSComponentShutter_Enocean extends IPSComponentShutter { + IPSUtils_Include ('IPSComponentShutter.class.php', 'IPSLibrary::app::core::IPSComponent::IPSComponentShutter'); + + class IPSComponentShutter_Enocean extends IPSComponentShutter { private $instanceId; private $isRunningId; @@ -43,6 +45,19 @@ public function __construct($instanceId) { } } + /** + * @public + * + * Funktion liefert String IPSComponent Constructor String. + * String kann dazu benützt werden, das Object mit der IPSComponent::CreateObjectByParams + * wieder neu zu erzeugen. + * + * @return string Parameter String des IPSComponent Object + */ + public function GetComponentParams() { + return get_class($this).','.$this->instanceId; + } + /** * @public * @@ -65,7 +80,7 @@ public function HandleEvent($variable, $value, IPSModuleShutter $module){ */ public function MoveUp(){ if(!GetValue($this->isRunningId)) { - ENO_SwitchMode($this->InstanceId, true); + ENO_SwitchMode($this->instanceId, true); SetValue($this->isRunningId, true); } } @@ -77,7 +92,7 @@ public function MoveUp(){ */ public function MoveDown(){ if(!GetValue($this->isRunningId)) { - ENO_SwitchMode($this->InstanceId, false); + ENO_SwitchMode($this->instanceId, false); SetValue($this->isRunningId, true); } } @@ -89,8 +104,8 @@ public function MoveDown(){ */ public function Stop() { if(GetValue($this->isRunningId)) { - $value = GetValue(IPS_GetObjectIDByIdent($this->InstanceId, "StatusVariable") - ENO_SwitchMode($this->InstanceId, $value); + $value = GetValue(IPS_GetObjectIDByIdent($this->instanceId, "StatusVariable") + ENO_SwitchMode($this->instanceId, $value); SetValue($this->isRunningId, false); } } diff --git a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_FS20.class.php b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_FS20.class.php index 1c3690a..918c67d 100644 --- a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_FS20.class.php +++ b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_FS20.class.php @@ -19,7 +19,9 @@ * Version 2.50.1, 31.01.2012
*/ - abstract class IPSComponentShutter_FS20 extends IPSComponentShutter { + IPSUtils_Include ('IPSComponentShutter.class.php', 'IPSLibrary::app::core::IPSComponent::IPSComponentShutter'); + + class IPSComponentShutter_FS20 extends IPSComponentShutter { private $instanceId; private $isRunningId; @@ -43,6 +45,19 @@ public function __construct($instanceId) { } } + /** + * @public + * + * Funktion liefert String IPSComponent Constructor String. + * String kann dazu benützt werden, das Object mit der IPSComponent::CreateObjectByParams + * wieder neu zu erzeugen. + * + * @return string Parameter String des IPSComponent Object + */ + public function GetComponentParams() { + return get_class($this).','.$this->instanceId; + } + /** * @public * @@ -65,7 +80,7 @@ public function HandleEvent($variable, $value, IPSModuleShutter $module){ */ public function MoveUp(){ if(!GetValue($this->isRunningId)) { - FS20_SwitchMode($this->InstanceId, true); + FS20_SwitchMode($this->instanceId, true); SetValue($this->isRunningId, true); } } @@ -77,7 +92,7 @@ public function MoveUp(){ */ public function MoveDown(){ if(!GetValue($this->isRunningId)) { - FS20_SwitchMode($this->InstanceId, false); + FS20_SwitchMode($this->instanceId, false); SetValue($this->isRunningId, true); } } @@ -89,8 +104,8 @@ public function MoveDown(){ */ public function Stop() { if(GetValue($this->isRunningId)) { - $value = GetValue(IPS_GetObjectIDByIdent($this->InstanceId, "StatusVariable") - FS20_SwitchMode($this->InstanceId, $value); + $value = GetValue(IPS_GetObjectIDByIdent($this->instanceId, "StatusVariable") + FS20_SwitchMode($this->instanceId, $value); SetValue($this->isRunningId, false); } } diff --git a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_Homematic.class.php b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_Homematic.class.php index 4a6f3f6..7dcb62f 100644 --- a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_Homematic.class.php +++ b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_Homematic.class.php @@ -47,6 +47,20 @@ public function __construct($instanceId) { * @param IPSModuleShutter $module Module Object an das das aufgetretene Event weitergeleitet werden soll */ public function HandleEvent($variable, $value, IPSModuleShutter $module){ + $module->SyncPosition(100-($value*100), $this); + } + + /** + * @public + * + * Funktion liefert String IPSComponent Constructor String. + * String kann dazu benützt werden, das Object mit der IPSComponent::CreateObjectByParams + * wieder neu zu erzeugen. + * + * @return string Parameter String des IPSComponent Object + */ + public function GetComponentParams() { + return get_class($this).','.$this->instanceId; } /** @@ -55,7 +69,7 @@ public function HandleEvent($variable, $value, IPSModuleShutter $module){ * Hinauffahren der Beschattung */ public function MoveUp(){ - HM_WriteValueFloat($this->InstanceId , 'LEVEL', 1); + HM_WriteValueFloat($this->instanceId , 'LEVEL', 1); } /** @@ -64,7 +78,7 @@ public function MoveUp(){ * Hinunterfahren der Beschattung */ public function MoveDown(){ - HM_WriteValueFloat($this->InstanceId , 'LEVEL', 0); + HM_WriteValueFloat($this->instanceId , 'LEVEL', 0); } /** @@ -73,7 +87,7 @@ public function MoveDown(){ * Stop */ public function Stop() { - HM_WriteValueFloat($this->InstanceId , 'STOP', true); + HM_WriteValueBoolean($this->instanceId , 'STOP', true); } } diff --git a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_IPSShutterControl.class.php b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_IPSShutterControl.class.php index 265d96d..1e043f9 100644 --- a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_IPSShutterControl.class.php +++ b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_IPSShutterControl.class.php @@ -19,7 +19,9 @@ * Version 2.50.1, 31.01.2012
*/ - abstract class IPSComponentShutter_IPSShutterControl extends IPSComponentShutter { + IPSUtils_Include ('IPSComponentShutter.class.php', 'IPSLibrary::app::core::IPSComponent::IPSComponentShutter'); + + class IPSComponentShutter_IPSShutterControl extends IPSComponentShutter { private $instanceId; @@ -34,6 +36,19 @@ public function __construct($instanceId) { $this->instanceId = IPSUtil_ObjectIDByPath($instanceId); } + /** + * @public + * + * Funktion liefert String IPSComponent Constructor String. + * String kann dazu benützt werden, das Object mit der IPSComponent::CreateObjectByParams + * wieder neu zu erzeugen. + * + * @return string Parameter String des IPSComponent Object + */ + public function GetComponentParams() { + return get_class($this).','.$this->instanceId; + } + /** * @public * diff --git a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_LCN.class.php b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_LCN.class.php index 23a7b32..6806946 100644 --- a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_LCN.class.php +++ b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_LCN.class.php @@ -19,7 +19,9 @@ * Version 2.50.1, 31.01.2012
*/ - abstract class IPSComponentShutter_LCN extends IPSComponentShutter { + IPSUtils_Include ('IPSComponentShutter.class.php', 'IPSLibrary::app::core::IPSComponent::IPSComponentShutter'); + + class IPSComponentShutter_LCN extends IPSComponentShutter { private $instanceId1; private $instanceId2; @@ -42,6 +44,19 @@ public function __construct($instanceId1, $instanceId2, $directionSwitch=false) $this->unitType = LCN_GetUnit($this->instanceId1); } + /** + * @public + * + * Funktion liefert String IPSComponent Constructor String. + * String kann dazu benützt werden, das Object mit der IPSComponent::CreateObjectByParams + * wieder neu zu erzeugen. + * + * @return string Parameter String des IPSComponent Object + */ + public function GetComponentParams() { + return get_class($this).','.$this->instanceId1.','.$this->instanceId2; + } + /** * @public * diff --git a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_MoellerEaton.class.php b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_MoellerEaton.class.php index 8ef57b3..1a35b72 100644 --- a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_MoellerEaton.class.php +++ b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_MoellerEaton.class.php @@ -19,7 +19,9 @@ * Version 2.50.1, 31.01.2012
*/ - abstract class IPSComponentShutter_MoellerEaton extends IPSComponentShutter { + IPSUtils_Include ('IPSComponentShutter.class.php', 'IPSLibrary::app::core::IPSComponent::IPSComponentShutter'); + + class IPSComponentShutter_MoellerEaton extends IPSComponentShutter { private $instanceId; @@ -34,6 +36,20 @@ public function __construct($instanceId) { $this->instanceId = IPSUtil_ObjectIDByPath($instanceId); } + + /** + * @public + * + * Funktion liefert String IPSComponent Constructor String. + * String kann dazu benützt werden, das Object mit der IPSComponent::CreateObjectByParams + * wieder neu zu erzeugen. + * + * @return string Parameter String des IPSComponent Object + */ + public function GetComponentParams() { + return get_class($this).','.$this->instanceId; + } + /** * @public * diff --git a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSModuleShutter.class.php b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSModuleShutter.class.php index 54420a0..14c6d32 100644 --- a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSModuleShutter.class.php +++ b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSModuleShutter.class.php @@ -29,7 +29,7 @@ abstract class IPSModuleShutter extends IPSModule { * * @param string $position Aktuelle Position der Beschattung (Wertebereich 0-100) */ - abstract public function SyncPosition($position); + abstract public function SyncPosition($position, IPSComponentShutter $component); } diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php index 33d709c..896d802 100644 --- a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php @@ -158,10 +158,10 @@ private function MoveByStatus() { // ---------------------------------------------------------------------------------------------------------------------------- public function MoveByEvent($Level) { - IPSLogger_Dbg(__file__, "Received StateChange from Shutter '".IPS_GetName($DeviceId)."', NewLevel=".round($Level).", CurrentLevel=".$this->GetVariableValue(c_Control_Position)); + IPSLogger_Dbg(__file__, "Received StateChange from Shutter '".IPS_GetName($this->deviceId)."', NewLevel=".round($Level).", CurrentLevel=".$this->GetVariableValue(c_Control_Position)); if ($this->GetVariableValue(c_Control_Position) <> $Level and $this->GetVariableValue(c_Control_StepsToDo)=="") { - IPSLogger_Inf(__file__, "Apply StateChange from Shutter '".IPS_GetName($DeviceId)."', Level=".round($Level)); + IPSLogger_Inf(__file__, "Apply StateChange from Shutter '".IPS_GetName($this->deviceId)."', Level=".round($Level)); $this->SetVariableValue(c_Control_Movement, c_MovementId_Stop); $this->SetVariableValue(c_Control_Position, $Level); if (!$this->GetVariableValue(c_Control_ManualChange) and diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTempCreate.ips.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTempCreate.ips.php index ea00196..fac2bcd 100644 --- a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTempCreate.ips.php +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTempCreate.ips.php @@ -30,7 +30,7 @@ include_once "IPSShadowing.inc.php"; $profileManager = new IPSShadowing_ProfileManager(); - $profileManager->CreateSun('Neues Profil'); + $profileManager->CreateTemp('Neues Profil'); /** @}*/ ?> \ No newline at end of file diff --git a/IPSLibrary/install/DownloadListFiles/IPSComponent_FileList.ini b/IPSLibrary/install/DownloadListFiles/IPSComponent_FileList.ini index 2d718ae..4681aea 100644 --- a/IPSLibrary/install/DownloadListFiles/IPSComponent_FileList.ini +++ b/IPSLibrary/install/DownloadListFiles/IPSComponent_FileList.ini @@ -15,6 +15,7 @@ ScriptFiles[]=IPSComponentPlayer\IPSModulePlayer_NetPlayer.class.php ScriptFiles[]=IPSComponentShutter\IPSComponentShutter.class.php ScriptFiles[]=IPSComponentShutter\IPSComponentShutter_Homematic.class.php +ScriptFiles[]=IPSComponentShutter\IPSComponentShutter_Dummy.class.php ScriptFiles[]=IPSComponentShutter\IPSComponentShutter_1Wire.class.php ScriptFiles[]=IPSComponentShutter\IPSComponentShutter_Enocean.class.php ScriptFiles[]=IPSComponentShutter\IPSComponentShutter_FS20.class.php diff --git a/IPSLibrary/install/InstallationScripts/IPSShadowing_Installation.ips.php b/IPSLibrary/install/InstallationScripts/IPSShadowing_Installation.ips.php index 1f1b978..5dbf1ea 100644 --- a/IPSLibrary/install/InstallationScripts/IPSShadowing_Installation.ips.php +++ b/IPSLibrary/install/InstallationScripts/IPSShadowing_Installation.ips.php @@ -306,6 +306,8 @@ c_MovementId_MovedIn => c_Movement_MovedIn, c_MovementId_Stop => c_Movement_Stop),"", $IPSShadowing_MovementCol, true); + $CategoryIdDevices = CreateCategory('Devices', $CategoryIdData, 20); + // Profile Manager // ==================================================================================================================================== $CategoryIdProfiles = CreateCategory('Profiles', $CategoryIdData, 30); @@ -352,7 +354,6 @@ if (count($Profiles)==0) { $profileManager->CreateEndOfDay('Dämmerung'); } - $profileManager->CorrectDeletedDeviceProfiles(); // Scenario Manager // ==================================================================================================================================== @@ -393,7 +394,6 @@ // Shadowing Devices // ==================================================================================================================================== - $CategoryIdDevices = CreateCategory('Devices', $CategoryIdData, 20); $DeviceConfig = get_ShadowingConfiguration(); $Idx = 10; foreach ($DeviceConfig as $DeviceName=>$DeviceData) { @@ -440,6 +440,7 @@ } $Idx = $Idx + 10; } + $profileManager->CorrectDeletedDeviceProfiles(); // ---------------------------------------------------------------------------------------------------------------------------- // Webfront Definition @@ -458,8 +459,8 @@ $WebFrontOverviewBottom1 = CreateCategory( 'Bottom1', $WebFrontOverviewId, 30); $WebFrontOverviewBottom2 = CreateCategory( 'Bottom2', $WebFrontOverviewId, 40); $UniqueId = date('H:i'); - CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem.'_OV', $WFC10_TabPaneItem.'', 10, $WFC10_TabName1, $WFC10_TabIcon1, 0 /*Horizontal*/, 170 /*Hight*/, 1 /*Target=Pane2*/, 1/*UsePixel*/, 'true'); - CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem.'_OVTop', $WFC10_TabPaneItem.'_OV', 10, '', '', 1 /*Vertical*/, 310 /*Width*/, 1 /*Target=Pane2*/, 1/*UsePixel*/, 'true'); + CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem.'_OV', $WFC10_TabPaneItem.'', 10, $WFC10_TabName1, $WFC10_TabIcon1, 0 /*Horizontal*/, 160 /*Height*/, 1 /*Target=Pane2*/, 1/*UsePixel*/, 'true'); + CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem.'_OVTop', $WFC10_TabPaneItem.'_OV', 10, '', '', 1 /*Vertical*/, 300 /*Width*/, 1 /*Target=Pane2*/, 1/*UsePixel*/, 'true'); CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem.'_OVBottom', $WFC10_TabPaneItem.'_OV', 20, '', '', 1 /*Vertical*/, 430 /*Width*/, 1 /*Target=Pane2*/, 1/*UsePixel*/, 'true'); CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem.'_OVTop1'.$UniqueId, $WFC10_TabPaneItem.'_OVTop', 10, 'Top1', '', $WebFrontOverviewTop1 /*BaseId*/, 'false' /*BarBottomVisible*/); CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem.'_OVTop2'.$UniqueId, $WFC10_TabPaneItem.'_OVTop', 20, 'Top2', '', $WebFrontOverviewTop2 /*BaseId*/, 'false' /*BarBottomVisible*/); From 8cd778a0d00cb5e2b89ec20dcd31173c0f3feb71 Mon Sep 17 00:00:00 2001 From: brownson Date: Fri, 18 May 2012 21:58:11 +0200 Subject: [PATCH 19/77] IPSShadowing - Added Component for EIB --- .../IPSComponentShutter_EIB.class.php | 95 +++++++++++++++++++ .../IPSModuleShutter_IPSShadowing.class.php | 54 +++++++++++ .../IPSShadowing_ScenarioManager.class.php | 4 +- .../IPSComponent_FileList.ini | 2 + 4 files changed, 153 insertions(+), 2 deletions(-) create mode 100644 IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_EIB.class.php create mode 100644 IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSModuleShutter_IPSShadowing.class.php diff --git a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_EIB.class.php b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_EIB.class.php new file mode 100644 index 0000000..d36ec86 --- /dev/null +++ b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_EIB.class.php @@ -0,0 +1,95 @@ + + */ + + IPSUtils_Include ('IPSComponentShutter.class.php', 'IPSLibrary::app::core::IPSComponent::IPSComponentShutter'); + + class IPSComponentShutter_EIB extends IPSComponentShutter { + + private $instanceId; + + /** + * @public + * + * Initialisierung eines IPSComponentShutter_EIB Objektes + * + * @param integer $instanceId InstanceId des EIB Devices + */ + public function __construct($instanceId) { + $this->instanceId = IPSUtil_ObjectIDByPath($instanceId); + } + + /** + * @public + * + * Function um Events zu behandeln, diese Funktion wird vom IPSMessageHandler aufgerufen, um ein aufgetretenes Event + * an das entsprechende Module zu leiten. + * + * @param integer $variable ID der auslösenden Variable + * @param string $value Wert der Variable + * @param IPSModuleShutter $module Module Object an das das aufgetretene Event weitergeleitet werden soll + */ + public function HandleEvent($variable, $value, IPSModuleShutter $module){ + } + + /** + * @public + * + * Funktion liefert String IPSComponent Constructor String. + * String kann dazu benützt werden, das Object mit der IPSComponent::CreateObjectByParams + * wieder neu zu erzeugen. + * + * @return string Parameter String des IPSComponent Object + */ + public function GetComponentParams() { + return get_class($this).','.$this->instanceId; + } + + /** + * @public + * + * Hinauffahren der Beschattung + */ + public function MoveUp(){ + EIB_Move($this->instanceId, 0); //0 = Open, 2 = Stop, 4 = Close + } + + /** + * @public + * + * Hinunterfahren der Beschattung + */ + public function MoveDown(){ + EIB_Move($this->instanceId, 4); //0 = Open, 2 = Stop, 4 = Close + } + + /** + * @public + * + * Stop + */ + public function Stop() { + EIB_Move($this->instanceId, 2); //0 = Open, 2 = Stop, 4 = Close + } + + } + + /** @}*/ +?> \ No newline at end of file diff --git a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSModuleShutter_IPSShadowing.class.php b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSModuleShutter_IPSShadowing.class.php new file mode 100644 index 0000000..c285c54 --- /dev/null +++ b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSModuleShutter_IPSShadowing.class.php @@ -0,0 +1,54 @@ + + */ + + IPSUtils_Include ("IPSShadowing.inc.php", "IPSLibrary::app::modules::IPSShadowing"); + IPSUtils_Include ('IPSModuleShutter.class.php', 'IPSLibrary::app::core::IPSComponent::IPSComponentShutter'); + + class IPSModuleShutter_IPSShadowing extends IPSModuleShutter { + + /** + * @public + * + * Ermöglicht die Synchronisation der aktuellen Position der Beschattung + * + * @param string $position Aktuelle Position der Beschattung (Wertebereich 0-100) + */ + public function SyncPosition($position, IPSComponentShutter $component) { + $deviceConfig = get_ShadowingConfiguration(); + $componentParams = $component->GetComponentParams(); + + foreach ($deviceConfig as $deviceIdent=>$deviceData) { + if ($componentParams==$deviceData[c_Property_Component]) { + $categoryIdDevices = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.modules.IPSShadowing.Devices'); + $deviceId = IPS_GetObjectIDByIdent($deviceIdent, $categoryIdDevices); + + $device = new IPSShadowing_Device($deviceId); + $device->MoveByEvent($position); + } + } + } + + + } + + /** @}*/ +?> \ No newline at end of file diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ScenarioManager.class.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ScenarioManager.class.php index 504629f..4fe060c 100644 --- a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ScenarioManager.class.php +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ScenarioManager.class.php @@ -81,8 +81,8 @@ public function AssignAllScenarioAssociations() { * @param string $name Name des Scenarios * @return IPSShadowing_Scenario das erzeugte IPSShadowing_Scenario Object */ - public function Create($name='Neues Szenario') { - $scenarioId = IPSShadowing_Scenario::Create($name); + public function Create($name='Neues Szenario', $defaultValue=c_MovementId_NoAction) { + $scenarioId = IPSShadowing_Scenario::Create($name, $defaultValue); $this->Select($scenarioId); return $scenarioId; } diff --git a/IPSLibrary/install/DownloadListFiles/IPSComponent_FileList.ini b/IPSLibrary/install/DownloadListFiles/IPSComponent_FileList.ini index 4681aea..209d0bb 100644 --- a/IPSLibrary/install/DownloadListFiles/IPSComponent_FileList.ini +++ b/IPSLibrary/install/DownloadListFiles/IPSComponent_FileList.ini @@ -21,8 +21,10 @@ ScriptFiles[]=IPSComponentShutter\IPSComponentShutter_Enocean.class.php ScriptFiles[]=IPSComponentShutter\IPSComponentShutter_FS20.class.php ScriptFiles[]=IPSComponentShutter\IPSComponentShutter_IPSShutterControl.class.php ScriptFiles[]=IPSComponentShutter\IPSComponentShutter_LCN.class.php +ScriptFiles[]=IPSComponentShutter\IPSComponentShutter_EIB.class.php ScriptFiles[]=IPSComponentShutter\IPSComponentShutter_MoellerEaton.class.php ScriptFiles[]=IPSComponentShutter\IPSModuleShutter.class.php +ScriptFiles[]=IPSComponentShutter\IPSModuleShutter_IPSShadowing.class.php ScriptFiles[]=IPSComponentSwitch\IPSComponentSwitch.class.php ScriptFiles[]=IPSComponentSwitch\IPSComponentSwitch_Homematic.class.php From 849fdda992c462f673e65a4a4127b63edbd7b9ca Mon Sep 17 00:00:00 2001 From: brownson Date: Mon, 21 May 2012 20:53:58 +0200 Subject: [PATCH 20/77] IPSComponent - Added Reverse Support for IPSComponentShutter_Homematic --- .../IPSComponentShutter_Homematic.class.php | 27 ++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_Homematic.class.php b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_Homematic.class.php index 7dcb62f..e561a7b 100644 --- a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_Homematic.class.php +++ b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_Homematic.class.php @@ -24,16 +24,19 @@ class IPSComponentShutter_Homematic extends IPSComponentShutter { private $instanceId; - + private $reverseControl; + /** * @public * * Initialisierung eines IPSComponentShutter_Homematic Objektes * * @param integer $instanceId InstanceId des Homematic Devices + * @param boolean $reverseControl Reverse Ansteuerung des Devices */ - public function __construct($instanceId) { - $this->instanceId = IPSUtil_ObjectIDByPath($instanceId); + public function __construct($instanceId, $reverseControl=false) { + $this->instanceId = IPSUtil_ObjectIDByPath($instanceId); + $this->reverseControl = $reverseControl; } /** @@ -47,7 +50,11 @@ public function __construct($instanceId) { * @param IPSModuleShutter $module Module Object an das das aufgetretene Event weitergeleitet werden soll */ public function HandleEvent($variable, $value, IPSModuleShutter $module){ - $module->SyncPosition(100-($value*100), $this); + if ($this->reverseControl) { + $module->SyncPosition(($value*100), $this); + } else { + $module->SyncPosition(100-($value*100), $this); + } } /** @@ -69,7 +76,11 @@ public function GetComponentParams() { * Hinauffahren der Beschattung */ public function MoveUp(){ - HM_WriteValueFloat($this->instanceId , 'LEVEL', 1); + if ($this->reverseControl) { + HM_WriteValueFloat($this->instanceId , 'LEVEL', 0); + } else { + HM_WriteValueFloat($this->instanceId , 'LEVEL', 1); + } } /** @@ -78,7 +89,11 @@ public function MoveUp(){ * Hinunterfahren der Beschattung */ public function MoveDown(){ - HM_WriteValueFloat($this->instanceId , 'LEVEL', 0); + if ($this->reverseControl) { + HM_WriteValueFloat($this->instanceId , 'LEVEL', 1); + } else { + HM_WriteValueFloat($this->instanceId , 'LEVEL', 0); + } } /** From 0b5a39a835913702a92e493e1ac5fe3b5d66cf05 Mon Sep 17 00:00:00 2001 From: brownson Date: Wed, 23 May 2012 21:16:47 +0200 Subject: [PATCH 21/77] IPSShadowing - Support for Homematic Synchronization --- .../IPSComponentShutter_1Wire.class.php | 25 ++++++++++---- .../IPSShadowing_Installation.ips.php | 33 ++++++++++++++++--- 2 files changed, 48 insertions(+), 10 deletions(-) diff --git a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_1Wire.class.php b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_1Wire.class.php index 45d6352..705f36f 100644 --- a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_1Wire.class.php +++ b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_1Wire.class.php @@ -24,6 +24,7 @@ class IPSComponentShutter_1Wire extends IPSComponentShutter { private $instanceId; + private $reverseControl; /** * @public @@ -31,9 +32,11 @@ class IPSComponentShutter_1Wire extends IPSComponentShutter { * Initialisierung eines IPSComponentShutter_1Wire Objektes * * @param integer $instanceId InstanceId des 1Wire Devices + * @param boolean $reverseControl Reverse Ansteuerung des Devices */ - public function __construct($instanceId) { - $this->instanceId = IPSUtil_ObjectIDByPath($instanceId); + public function __construct($instanceId, $reverseControl=false) { + $this->instanceId = IPSUtil_ObjectIDByPath($instanceId); + $this->reverseControl = $reverseControl; } /** @@ -70,8 +73,13 @@ public function HandleEvent($variable, $value, IPSModuleShutter $module){ * Hinauffahren der Beschattung */ public function MoveUp(){ - @TMEX_F29_SetStrobe($this->instanceId, True); - @TMEX_F29_SetPort((integer)$this->instanceId, (integer)120+128); + if ($this->reverseControl) { + @TMEX_F29_SetStrobe($this->instanceId, True); + @TMEX_F29_SetPort((integer)$this->instanceId, (integer)120); + } else { + @TMEX_F29_SetStrobe($this->instanceId, True); + @TMEX_F29_SetPort((integer)$this->instanceId, (integer)120+128); + } } /** @@ -80,8 +88,13 @@ public function MoveUp(){ * Hinunterfahren der Beschattung */ public function MoveDown(){ - @TMEX_F29_SetStrobe($this->instanceId, True); - @TMEX_F29_SetPort((integer)$this->instanceId, (integer)120); + if ($this->reverseControl) { + @TMEX_F29_SetStrobe($this->instanceId, True); + @TMEX_F29_SetPort((integer)$this->instanceId, (integer)120+128); + } else { + @TMEX_F29_SetStrobe($this->instanceId, True); + @TMEX_F29_SetPort((integer)$this->instanceId, (integer)120); + } } /** diff --git a/IPSLibrary/install/InstallationScripts/IPSShadowing_Installation.ips.php b/IPSLibrary/install/InstallationScripts/IPSShadowing_Installation.ips.php index 5dbf1ea..5a39ac6 100644 --- a/IPSLibrary/install/InstallationScripts/IPSShadowing_Installation.ips.php +++ b/IPSLibrary/install/InstallationScripts/IPSShadowing_Installation.ips.php @@ -14,7 +14,7 @@ * * You should have received a copy of the GNU General Public License * along with the IPSLibrary. If not, see http://www.gnu.org/licenses/gpl.txt. - */ + */ /**@defgroup ipsshadowing_visualization IPSShadowing Visualisierung * @ingroup ipsshadowing @@ -371,7 +371,7 @@ $scenarioId = $scenarioManager->Create('Alle Schliessen', c_MovementId_Closed); $scenario = new IPSShadowing_Scenario($scenarioId); $scenario->ResetEditMode(); - + } $ScenarioId = @IPS_GetObjectIDByIdent('Alle Öffnen', $CategoryIdScenarios); if ($ScenarioId===false) { @@ -442,6 +442,31 @@ } $profileManager->CorrectDeletedDeviceProfiles(); + // Register Events for Device Synchronization + // ------------------------------------------ + IPSUtils_Include ('IPSMessageHandler.class.php', 'IPSLibrary::app::core::IPSMessageHandler'); + $messageHandler = new IPSMessageHandler(); + foreach ($DeviceConfig as $DeviceName=>$DeviceData) { + $component = $DeviceConfig[$DeviceName][c_Property_Component]; + $componentParams = explode(',', $component); + $componentClass = $componentParams[0]; + + // Homematic + if ($componentClass=='IPSComponentShutter_Homematic') { + $instanceId = IPSUtil_ObjectIDByPath($componentParams[1]); + $variableId = @IPS_GetObjectIDByName('LEVEL', $instanceId); + if ($variableId===false) { + $moduleManager->LogHandler()->Log('Variable with Name LEVEL could NOT be found for Homematic Instance='.$instanceId); + } else { + $moduleManager->LogHandler()->Log('Register OnChangeEvent vor Homematic Instance='.$instanceId); + $messageHandler->RegisterOnChangeEvent($variableId, $component, 'IPSModuleShutter_IPSShadowing,'); + } + } else { + $moduleManager->LogHandler()->Log('Found Component '.$componentClass); + } + } + + // ---------------------------------------------------------------------------------------------------------------------------- // Webfront Definition // ---------------------------------------------------------------------------------------------------------------------------- @@ -612,7 +637,7 @@ CreateLink('Msg Prio. Temparatur', IPS_GetObjectIDByIdent(c_Control_MsgPrioTemp, $CategoryIdSettings), $WebFrontSettingId, 60); CreateLink('Msg Prio. Programm', IPS_GetObjectIDByIdent(c_Control_MsgPrioProg, $CategoryIdSettings), $WebFrontSettingId, 70); - // Application Logging + // Application Logging $WebFrontLoggingId = CreateCategory('Logging', $categoryId_WebFront, 60); CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Logging", $WFC10_TabPaneItem, 60, 'Meldungen', 'Window', $WebFrontLoggingId /*BaseId*/, 'false' /*BarBottomVisible*/); CreateLink('Meldungen', $ControlIdLog, $WebFrontLoggingId, 10); @@ -696,7 +721,7 @@ CreateLink('Profil Einstellungen', $CategoryIdProfileSunDisplay, $MobileSettingProfileId,10); //CreateLink('Profil Graph', $CategoryIdProfileSunGraphs, $MobileSettingProfileId,20); CreateLink('Profil Graph', $MediaIdAzimuth, $MobileSettingProfileId,20); - + CreateLink('Neues Profil', $ScriptIdProfileSunCreate, $MobileSettingProfileId, 30); CreateLink('Profil löschen', $ScriptIdProfileSunDelete, $MobileSettingProfileId, 40); $MobileSettingProfileId = CreateCategory('Wetter Profile', $MobileSettingsId, 30, 'Drops'); From dec674a0703a60cecf8dc80fd328d598db2505b9 Mon Sep 17 00:00:00 2001 From: brownson Date: Wed, 23 May 2012 21:32:03 +0200 Subject: [PATCH 22/77] IPSShadowing - Support for Homematic Synchronization --- IPSLibrary/install/DownloadListFiles/IPSShadowing_FileList.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IPSLibrary/install/DownloadListFiles/IPSShadowing_FileList.ini b/IPSLibrary/install/DownloadListFiles/IPSShadowing_FileList.ini index a665f7b..9a50d02 100644 --- a/IPSLibrary/install/DownloadListFiles/IPSShadowing_FileList.ini +++ b/IPSLibrary/install/DownloadListFiles/IPSShadowing_FileList.ini @@ -1,4 +1,4 @@ -Version=2.50.1 +Version=2.50.2 ModuleNamespace=IPSLibrary::app::modules::IPSShadowing [App] From dfe7b4a9eb96627534502cb43906598342a6e23d Mon Sep 17 00:00:00 2001 From: brownson Date: Sat, 26 May 2012 12:43:18 +0200 Subject: [PATCH 23/77] IPSComponent - Added Relaise Support for IPSComponentShutter_EIB --- .../IPSComponentShutter_EIB.class.php | 50 +++++++++++++++---- 1 file changed, 39 insertions(+), 11 deletions(-) diff --git a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_EIB.class.php b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_EIB.class.php index d36ec86..7b24e17 100644 --- a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_EIB.class.php +++ b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_EIB.class.php @@ -23,17 +23,22 @@ class IPSComponentShutter_EIB extends IPSComponentShutter { - private $instanceId; - + private $instanceId1; + private $instanceId2; + private $reverseControl; /** * @public * * Initialisierung eines IPSComponentShutter_EIB Objektes * - * @param integer $instanceId InstanceId des EIB Devices + * @param integer $instanceId1 InstanceId des EIB Devices + * @param integer $instanceId2 InstanceId 2 des EIB Devices (Richtungs Relais für den Fall das normale EIB Switches verwendet werden) + * @param boolean $reverseControl Richtungs Schalter (default=false) */ - public function __construct($instanceId) { - $this->instanceId = IPSUtil_ObjectIDByPath($instanceId); + public function __construct($instanceId1, $instanceId2=null, $reverseControl=false) { + $this->instanceId1 = IPSUtil_ObjectIDByPath($instanceId1); + $this->instanceId2 = IPSUtil_ObjectIDByPath($instanceId2); + $this->reverseControl = IPSUtil_ObjectIDByPath($reverseControl); } /** @@ -59,7 +64,7 @@ public function HandleEvent($variable, $value, IPSModuleShutter $module){ * @return string Parameter String des IPSComponent Object */ public function GetComponentParams() { - return get_class($this).','.$this->instanceId; + return get_class($this).','.$this->instanceId1.','.$this->instanceId2.','.$this->reverseControl; } /** @@ -68,25 +73,48 @@ public function GetComponentParams() { * Hinauffahren der Beschattung */ public function MoveUp(){ - EIB_Move($this->instanceId, 0); //0 = Open, 2 = Stop, 4 = Close + if ($this->instanceId2==null) { + if ($this->reverseControl) { + EIB_Move($this->instanceId1, 4); //0 = Open, 2 = Stop, 4 = Close + } else { + EIB_Move($this->instanceId1, 0); //0 = Open, 2 = Stop, 4 = Close + } + } else { + EIB_Switch($this->instanceId1, true); + EIB_Switch($this->instanceId2, $this->reverseControl); + } } - + /** * @public * * Hinunterfahren der Beschattung */ public function MoveDown(){ - EIB_Move($this->instanceId, 4); //0 = Open, 2 = Stop, 4 = Close + if ($this->instanceId2==null) { + if ($this->reverseControl) { + EIB_Move($this->instanceId1, 0); //0 = Open, 2 = Stop, 4 = Close + } else { + EIB_Move($this->instanceId1, 4); //0 = Open, 2 = Stop, 4 = Close + } + } else { + EIB_Switch($this->instanceId1, true); + EIB_Switch($this->instanceId2, !$this->reverseControl); + } } - + /** * @public * * Stop */ public function Stop() { - EIB_Move($this->instanceId, 2); //0 = Open, 2 = Stop, 4 = Close + if ($this->instanceId2==null) { + EIB_Move($this->instanceId1, 2); //0 = Open, 2 = Stop, 4 = Close + } else { + EIB_Switch($this->instanceId1, false); + EIB_Switch($this->instanceId2, false); + } } } From 9b15e181353d71a08c932f858eae5a4b5a54110f Mon Sep 17 00:00:00 2001 From: Dominik Zeiger Date: Tue, 29 May 2012 16:13:38 +0200 Subject: [PATCH 24/77] IPSEntertainment - Power on room when the very same source is set again --- .../app/modules/Entertainment/Entertainment_Source.inc.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/IPSLibrary/app/modules/Entertainment/Entertainment_Source.inc.php b/IPSLibrary/app/modules/Entertainment/Entertainment_Source.inc.php index 02abe31..d747016 100644 --- a/IPSLibrary/app/modules/Entertainment/Entertainment_Source.inc.php +++ b/IPSLibrary/app/modules/Entertainment/Entertainment_Source.inc.php @@ -108,12 +108,14 @@ function Entertainment_SyncRoomControls($RoomId) { // --------------------------------------------------------------------------------------------------------------------------- function Entertainment_SetSource($SourceId, $Value, $MessageType=c_MessageType_Action) { - if (GetValue($SourceId) <> $Value) { + $RoomId = IPS_GetParent($SourceId); + $IsRoomPoweredOn = IsRoomPoweredOn($RoomId); + if (GetValue($SourceId) <> $Value || !$IsRoomPoweredOn) { $RoomId = IPS_GetParent($SourceId); $SourceName = get_SourceName($RoomId, $Value); IPSLogger_Inf(__file__, 'Set Source "'.$SourceName.'" of Room '.IPS_GetName($RoomId)); SetValue($SourceId, $Value); - if (!IsRoomPoweredOn($RoomId)) { + if (!$IsRoomPoweredOn) { Entertainment_SetRoomPowerByRoomId($RoomId, true, false); } Entertainment_SetDeviceControlByRoomId($RoomId, c_Control_Muting, false); From 996e81b543a960acf9975199dc8521ebbe266112 Mon Sep 17 00:00:00 2001 From: brownson Date: Tue, 29 May 2012 20:08:36 +0200 Subject: [PATCH 25/77] IPSComponent - Fixed IPSComponentShutter_FS20 --- .../IPSComponentShutter/IPSComponentShutter_FS20.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_FS20.class.php b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_FS20.class.php index 918c67d..6456b57 100644 --- a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_FS20.class.php +++ b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_FS20.class.php @@ -104,7 +104,7 @@ public function MoveDown(){ */ public function Stop() { if(GetValue($this->isRunningId)) { - $value = GetValue(IPS_GetObjectIDByIdent($this->instanceId, "StatusVariable") + $value = GetValue(IPS_GetObjectIDByIdent($this->instanceId, "StatusVariable")); FS20_SwitchMode($this->instanceId, $value); SetValue($this->isRunningId, false); } From b105676373dd5d1b9673ba9f8eb6692cc1155a4e Mon Sep 17 00:00:00 2001 From: brownson Date: Tue, 29 May 2012 20:26:35 +0200 Subject: [PATCH 26/77] IPSShadowing - Fixed OpenByTemp --- .../app/modules/IPSShadowing/IPSShadowing_ProfileTemp.class.php | 2 +- .../InstallationScripts/IPSShadowing_Installation.ips.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTemp.class.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTemp.class.php index 70345d8..f1d7c6e 100644 --- a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTemp.class.php +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTemp.class.php @@ -155,7 +155,7 @@ public function OpenByTemp($tempIndoorPath) { $tempIndoor = IPSUtil_ObjectIDByPath($tempIndoorPath); } if ($this->tempDiffOpening >= c_TempDiff_NoAction) { - return false; // No Action + return true; // No Action } //Example: //Indoor-Outdoor >= Diff diff --git a/IPSLibrary/install/InstallationScripts/IPSShadowing_Installation.ips.php b/IPSLibrary/install/InstallationScripts/IPSShadowing_Installation.ips.php index 5a39ac6..2112094 100644 --- a/IPSLibrary/install/InstallationScripts/IPSShadowing_Installation.ips.php +++ b/IPSLibrary/install/InstallationScripts/IPSShadowing_Installation.ips.php @@ -263,7 +263,7 @@ CreateProfile_Associations ('IPSShadowing_TempDiffShadowing', array('Aussen >= Innen', '> 1°C', '> 2°C', '> 3°C', 'keine Aktion')); CreateProfile_Associations ('IPSShadowing_TempDiffClosing', array('Aussen >= Innen', '> 1°C', '> 2°C', '> 3°C', 'keine Aktion')); - CreateProfile_Associations ('IPSShadowing_TempDiffOpening', array('Innen <= Aussen', '< 1°C', '< 2°C', '< 3°C', 'keine Aktion')); + CreateProfile_Associations ('IPSShadowing_TempDiffOpening', array('Innen >= Aussen', '> 1°C', '> 2°C', '> 3°C', 'keine Aktion')); CreateProfile_Count ('IPSShadowing_Brightness', 0, 100, 10000, null, " Lux", null); CreateProfile_Count ('IPSShadowing_AzimuthBgn', 0, 5, 360, null, " °", null); From 87abe5e24bb0fc4bf0cd32f96f012ac66d5a8fae Mon Sep 17 00:00:00 2001 From: brownson Date: Wed, 30 May 2012 20:47:06 +0200 Subject: [PATCH 27/77] IPSComponent - Fixed IPSComponentShutter_FS20,LCN,EIB --- .../IPSComponentShutter/IPSComponentShutter_EIB.class.php | 4 +++- .../IPSComponentShutter/IPSComponentShutter_FS20.class.php | 4 ++-- .../IPSComponentShutter/IPSComponentShutter_LCN.class.php | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_EIB.class.php b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_EIB.class.php index 7b24e17..75df836 100644 --- a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_EIB.class.php +++ b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_EIB.class.php @@ -37,7 +37,9 @@ class IPSComponentShutter_EIB extends IPSComponentShutter { */ public function __construct($instanceId1, $instanceId2=null, $reverseControl=false) { $this->instanceId1 = IPSUtil_ObjectIDByPath($instanceId1); - $this->instanceId2 = IPSUtil_ObjectIDByPath($instanceId2); + if ($this->instanceId2<>null) { + $this->instanceId2 = IPSUtil_ObjectIDByPath($instanceId2); + } $this->reverseControl = IPSUtil_ObjectIDByPath($reverseControl); } diff --git a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_FS20.class.php b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_FS20.class.php index 6456b57..fd2bbe4 100644 --- a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_FS20.class.php +++ b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_FS20.class.php @@ -37,8 +37,8 @@ public function __construct($instanceId) { $this->instanceId = IPSUtil_ObjectIDByPath($instanceId); $this->isRunningId = @IPS_GetObjectIDByIdent('isrunning', $this->instanceId); if($this->isRunningId===false) { - $this->isRunningId = IPS_CreateVariable($this->instanceId); - IPS_SetParent($this->isRunningId, $id); + $this->isRunningId = IPS_CreateVariable(0); + IPS_SetParent($this->isRunningId, $this->instanceId); IPS_SetName($this->isRunningId, 'IsRunning'); IPS_SetIdent($this->isRunningId, 'isrunning'); IPS_SetInfo($this->isRunningId, "This Variable was created by Script IPSComponentShutter_FS20"); diff --git a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_LCN.class.php b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_LCN.class.php index 6806946..1e57431 100644 --- a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_LCN.class.php +++ b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_LCN.class.php @@ -103,7 +103,7 @@ public function MoveDown(){ break; case 2: LCN_SwitchRelay($this->instanceId1, true); - LCN_SwitchRelay($this->instanceId2, $this->directionSwitch); + LCN_SwitchRelay($this->instanceId2, !$this->directionSwitch); break; default: throw new IPSComponentException('Unknown Unittype '.$this->unitType.' for LCN Device with ID='.$this->instanceId1); From cd6f5bc9ad3f64d0e41a720e57dfb97345bc728a Mon Sep 17 00:00:00 2001 From: brownson Date: Thu, 31 May 2012 20:29:22 +0200 Subject: [PATCH 28/77] IPSComponent - Fixed IPSComponentShutter_EIB --- .../IPSComponentShutter/IPSComponentShutter_EIB.class.php | 6 +++--- .../IPSComponentShutter/IPSComponentShutter_FS20.class.php | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_EIB.class.php b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_EIB.class.php index 75df836..0034c0d 100644 --- a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_EIB.class.php +++ b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_EIB.class.php @@ -35,12 +35,12 @@ class IPSComponentShutter_EIB extends IPSComponentShutter { * @param integer $instanceId2 InstanceId 2 des EIB Devices (Richtungs Relais für den Fall das normale EIB Switches verwendet werden) * @param boolean $reverseControl Richtungs Schalter (default=false) */ - public function __construct($instanceId1, $instanceId2=null, $reverseControl=false) { + public function __construct($instanceId1, $instanceId2='', $reverseControl=false) { $this->instanceId1 = IPSUtil_ObjectIDByPath($instanceId1); - if ($this->instanceId2<>null) { + if ($this->instanceId2<>'') { $this->instanceId2 = IPSUtil_ObjectIDByPath($instanceId2); } - $this->reverseControl = IPSUtil_ObjectIDByPath($reverseControl); + $this->reverseControl = $reverseControl; } /** diff --git a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_FS20.class.php b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_FS20.class.php index fd2bbe4..05e3814 100644 --- a/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_FS20.class.php +++ b/IPSLibrary/app/core/IPSComponent/IPSComponentShutter/IPSComponentShutter_FS20.class.php @@ -104,7 +104,7 @@ public function MoveDown(){ */ public function Stop() { if(GetValue($this->isRunningId)) { - $value = GetValue(IPS_GetObjectIDByIdent($this->instanceId, "StatusVariable")); + $value = GetValue(IPS_GetObjectIDByIdent("StatusVariable", $this->instanceId)); FS20_SwitchMode($this->instanceId, $value); SetValue($this->isRunningId, false); } From d488daafeee4cc058cf1522172bf0cd2452967ee Mon Sep 17 00:00:00 2001 From: brownson Date: Mon, 4 Jun 2012 19:49:16 +0200 Subject: [PATCH 29/77] IPSShadowing - Fixed Deletion of Temp-Profiles --- .../modules/IPSShadowing/IPSShadowing_ProfileTempDelete.ips.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTempDelete.ips.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTempDelete.ips.php index 3ba25a1..60d8aab 100644 --- a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTempDelete.ips.php +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTempDelete.ips.php @@ -30,7 +30,7 @@ include_once "IPSShadowing.inc.php"; $profileManager = new IPSShadowing_ProfileManager(); - $profileManager->DeleteSun(); + $profileManager->DeleteTemp(); /** @}*/ From b27f341c1e21b3685a06c5969ca4e4d5015f46cd Mon Sep 17 00:00:00 2001 From: brownson Date: Tue, 5 Jun 2012 21:56:41 +0200 Subject: [PATCH 30/77] IPSShadowing - Fixed Temp Program --- .../IPSShadowing_Device.class.php | 46 +++++---- .../IPSShadowing_ProfileTemp.class.php | 95 ++++++++++--------- 2 files changed, 71 insertions(+), 70 deletions(-) diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php index 896d802..f417235 100644 --- a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php @@ -494,76 +494,74 @@ public function CheckPrograms($profileManager) { $openByTemp = $profileManager->OpenByTemp($profileIdSun, $profileIdTemp, $tempIndoorPath); $activationByWeather = $profileManager->ActivationByWeather($profileIdWeather); - $profileInfo = $profileManager->GetProfileInfo($profileIdBgnOfDay, $profileIdEndOfDay, $profileIdTemp, $tempIndoorPath); - SetValue(IPS_GetObjectIDByIdent(c_Control_ProfileInfo, $this->deviceId), (string)$profileInfo); - - $deviceName = IPSShadowing_GetDeviceName($this->deviceId); - // Automatic Off ... if (!$automaticActive) { - echo "$deviceName -> Automatic Off ... \n"; + $programInfo = 'Automatic Off'; // Activation by Wind/Rain } elseif ($activationByWeather and $programWeather<>c_ProgramId_Manual) { - echo "$deviceName -> ActivationByWeather ... \n"; + $programInfo = 'Wetterprogramm'; $this->MoveByProgram($programWeather, 'Wetterprogramm'); // Manual Change ... } elseif ($changeByUser) { - echo "$deviceName -> ManualChange ... \n"; + $programInfo = 'Manuelle Änderung'; // Custom } elseif (IPSShadowing_ProgramCustom($this->deviceId, $isDay)) { - echo "$deviceName -> ProgramCustom \n"; + $programInfo = 'CustomProgram'; // Action done in Custom Procedure // Present ... } elseif ($profileManager->GetPresent() and $programPresent==c_ProgramId_OpenedDay and $isDay) { - echo "$deviceName -> ProgramByPresent=OpenedDay \n"; + $programInfo = 'Anwesenheit (Tag)'; $this->MoveByProgram($programPresent, 'Anwesenheitsprogramm'); } elseif ($profileManager->GetPresent() and $programPresent==c_ProgramId_OpenedNight and !$isDay) { - echo "$deviceName -> ProgramByPresent=OpenedNight \n"; + $programInfo = 'Anwesenheit (Nacht)'; $this->MoveByProgram($programPresent, 'Anwesenheitsprogramm'); } elseif ($profileManager->GetPresent() and $programPresent==c_ProgramId_Opened) { - echo "$deviceName -> ProgramByPresent=Opened \n"; + $programInfo = 'Anwesenheit'; $this->MoveByProgram($programPresent, 'Anwesenheitsprogramm'); } elseif ($profileManager->GetPresent() and $programPresent==c_ProgramId_MovedOutTemp and $isDay and $closeByTemp) { - echo "$deviceName -> ProgramByPresent=MovedOutTemp \n"; + $programInfo = 'Anwesenheit (Temperatur)'; $this->MoveByProgram($programPresent, 'Anwesenheitsprogramm (Beschattung bei Temp und Anwesenheit)'); - // Temperature + // Temperature/Sun } elseif ($isDay and ($closeByTemp or $shadowingByTemp) and $programTemp<>c_ProgramId_Manual) { - if ($closeByTemp and ($programTemp==c_ProgramId_Closed or $programTemp==c_ProgramId_Dimout or - $programTemp==c_ProgramId_MovedOut or $programTemp==c_ProgramId_90 or $programTemp==c_ProgramId_75)) { - echo "$deviceName -> ProgramByTemperature (Close/Dimout/Moveout) \n"; + if ($closeByTemp) { + $programInfo = 'Temperatur'; $this->MoveByProgram($programTemp, 'Temperaturprogramm', true/*DimoutOption*/, true/*TriggeredByTemp*/); } elseif ($changeByTemp) { - echo "$deviceName -> ProgramByTemperature (ShadowingDoNothing) \n"; + $programInfo = 'Temperatur (Warte Öffnen)'; } elseif ($shadowingByTemp) { - echo "$deviceName -> ProgramByTemperature (Shadowing) \n"; + $programInfo = 'Temperatur (Beschattung)'; $this->MoveByProgram($programTemp, 'Temperaturprogramm (Beschattung)', false/*DimoutOption*/, true/*TriggeredByTemp*/); } else { - echo "$deviceName -> ProgramByTemperature (Else) \n"; + $programInfo = 'Temperatur (Error)'; } // Day } elseif ($isDay) { if (!$openByTemp and $changeByTemp) { - echo "$deviceName -> ProgramByDay (TemperaturDoNothing) \n"; + $programInfo = 'Tag (Warte Öffnen)'; } elseif ($openByTemp and $changeByTemp) { - echo "$deviceName -> ProgramByDay (TemperaturReset) \n"; + $programInfo = 'Tag (Reset)'; SetValue(IPS_GetObjectIDByIdent(c_Control_TempChange, $this->deviceId), false); $this->MoveByProgram($programDay, 'Tagesprogramm (Temperatur Reset)'); } else { - echo "$deviceName -> ProgramByDay \n"; + $programInfo = 'Tagesprogramm'; $this->MoveByProgram($programDay, 'Tagesprogramm'); } // Night } else { - echo "$deviceName -> ProgramByNight \n"; + $programInfo = 'Nachtprogramm'; $this->MoveByProgram($programNight, '"Nachtprogramm"'); } + $profileInfo = $profileManager->GetProfileInfo($profileIdBgnOfDay, $profileIdEndOfDay, $profileIdTemp, $tempIndoorPath); + $deviceName = IPSShadowing_GetDeviceName($this->deviceId); + echo "$deviceName -> $programInfo, $profileInfo \n"; + SetValue(IPS_GetObjectIDByIdent(c_Control_ProfileInfo, $this->deviceId), $programInfo.', '.$profileInfo); } } diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTemp.class.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTemp.class.php index f1d7c6e..fb034bd 100644 --- a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTemp.class.php +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTemp.class.php @@ -47,6 +47,8 @@ class IPSShadowing_ProfileTemp { */ private $activationByTemp; + private $brightnessLevel; + private $brightnessValue; private $tempOutdoor; private $tempIndoor; private $tempDiffShadowing; @@ -72,47 +74,56 @@ public function __construct($instanceId) { * */ private function Init() { + $this->brightnessLevel = GetValue(IPS_GetObjectIDByIdent(c_Control_Brightness, $this->instanceId)); $this->tempDiffShadowing = GetValue(IPS_GetObjectIDByIdent(c_Control_TempDiffShadowing, $this->instanceId)); $this->tempDiffClosing = GetValue(IPS_GetObjectIDByIdent(c_Control_TempDiffClosing, $this->instanceId)); $this->tempDiffOpening = GetValue(IPS_GetObjectIDByIdent(c_Control_TempDiffOpening, $this->instanceId)); - $this->tempIndoor=22; + $this->tempIndoor = null; + $this->tempOutdoor = null; + $this->brightnessValue = null; + $this->activationByTemp = true; if (IPSSHADOWING_TEMPSENSORINDOOR <> '') { - $this->tempIndoor = GetValue(IPSUtil_ObjectIDByPath(IPSSHADOWING_TEMPSENSORINDOOR)); + $this->tempIndoor = round(GetValue(IPSUtil_ObjectIDByPath(IPSSHADOWING_TEMPSENSORINDOOR)),1); } - $this->tempOutdoor=25; if (IPSSHADOWING_TEMPSENSOROUTDOOR <> '') { - $this->tempOutdoor = GetValue(IPSUtil_ObjectIDByPath(IPSSHADOWING_TEMPSENSOROUTDOOR)); + $this->tempOutdoor = round(GetValue(IPSUtil_ObjectIDByPath(IPSSHADOWING_TEMPSENSOROUTDOOR)),1); } - $brightnessLevel = GetValue(IPS_GetObjectIDByIdent(c_Control_Brightness, $this->instanceId)); - - $activationByTemp = true; if (IPSSHADOWING_BRIGHTNESSSENSOR <> '') { - $activationByTemp = ($activationByTemp and GetValue(IPSUtil_ObjectIDByPath(IPSSHADOWING_BRIGHTNESSSENSOR))>=$brightnessLevel); + $this->brightnessValue = round(GetValue(IPSUtil_ObjectIDByPath(IPSSHADOWING_BRIGHTNESSSENSOR)),1); + $this->activationByTemp = ($this->activationByTemp and $this->brightnessValue>=$this->brightnessLevel); } - $this->activationByTemp = $activationByTemp; } - private function GetActivationByTemp($tempIndoorPath, $tempDiff) { + private function GetActivationByTemp($tempIndoorPath, $tempDiff, $reverse=false) { + //Example: + // Aussen >= Innen+Diff + // Outdoor=16,Indoor=22, --> -6 >= 2 -> false + // Outdoor=20,Indoor=22, --> -2 >= 2 -> false + // Outdoor=26,Indoor=22, --> 4 >= 2 -> true $activationByTemp = $this->activationByTemp; - $tempIndoor = $this->tempIndoor; - if ($tempIndoorPath <> '') { - $tempIndoor = IPSUtil_ObjectIDByPath($tempIndoorPath); - } - if (IPSSHADOWING_TEMPSENSORINDOOR <> '' and IPSSHADOWING_TEMPSENSOROUTDOOR <> '') { - $activationByTemp = ($activationByTemp and (($this->tempOutdoor-$tempIndoor) >= $tempDiff - or $this->tempDiffShadowing==c_TempDiff_NoAction)); + $tempIndoor = $this->tempIndoor; + if ($tempDiff<>c_TempDiff_NoAction) { + if ($tempIndoorPath <> '') { + $tempIndoor = round(GetValue(IPSUtil_ObjectIDByPath($tempIndoorPath)),1); + } + if ((IPSSHADOWING_TEMPSENSORINDOOR<>'' or $tempIndoorPath<>'') and IPSSHADOWING_TEMPSENSOROUTDOOR <> '') { + if ($reverse) { + $activationByTemp = ($activationByTemp and (($tempIndoor-$this->tempOutdoor) >= $tempDiff)); + } else { + $activationByTemp = ($activationByTemp and (($this->tempOutdoor-$tempIndoor) >= $tempDiff)); + } + } } return $activationByTemp; } public function UpdateProfileInfo() { - $info = ''; - $tempIndoor = (IPSSHADOWING_TEMPSENSORINDOOR<>'' ? GetValue(IPSUtil_ObjectIDByPath(IPSSHADOWING_TEMPSENSORINDOOR)).'°C' :'"nicht vorhanden"'); - $tempOutdoor = (IPSSHADOWING_TEMPSENSOROUTDOOR<>''? GetValue(IPSUtil_ObjectIDByPath(IPSSHADOWING_TEMPSENSOROUTDOOR)).'°C' :'"nicht vorhanden"'); - $brightness = (IPSSHADOWING_BRIGHTNESSSENSOR<>'' ? GetValue(IPSUtil_ObjectIDByPath(IPSSHADOWING_BRIGHTNESSSENSOR)).' Lux':'"nicht vorhanden"'); + $tempIndoor = (IPSSHADOWING_TEMPSENSORINDOOR<>'' ? $this->tempIndoor.'°C' :'"nicht vorhanden"'); + $tempOutdoor = (IPSSHADOWING_TEMPSENSOROUTDOOR<>''? $this->tempOutdoor.'°C' :'"nicht vorhanden"'); + $brightness = (IPSSHADOWING_BRIGHTNESSSENSOR<>'' ? $this->brightnessValue.' Lux':'"nicht vorhanden"'); $activationByTemp = $this->GetActivationByTemp('', $this->tempDiffShadowing); - $info = ''.($activationByTemp?'Profil aktiv':'Profil inaktiv').' (Innen='.$tempIndoor.', Aussen='.$tempOutdoor.', Helligkeit='.$brightness.')'; - if (GetValue(IPS_GetObjectIDByIdent(c_Control_ProfileInfo, $this->instanceId)) <> $info or true) { + $info = ''.($activationByTemp?'Profil aktiv':'Profil inaktiv').' (Innen='.$tempIndoor.', Aussen='.$tempOutdoor.', Helligkeit='.$brightness.')'; + if (GetValue(IPS_GetObjectIDByIdent(c_Control_ProfileInfo, $this->instanceId)) <> $info) { SetValue(IPS_GetObjectIDByIdent(c_Control_ProfileInfo, $this->instanceId), $info); IPS_SetVariableProfileAssociation('IPSShadowing_ProfileTemp', $this->instanceId, @@ -125,44 +136,31 @@ public function UpdateProfileInfo() { public function GetProfileInfo($tempIndoorPath) { $info = ''; if ($tempIndoorPath <> '') { - $info .= ' Innen='.IPSUtil_ObjectIDByPath($tempIndoorPath).'°'; + $info .= ' Innen='.round(GetValue(IPSUtil_ObjectIDByPath($tempIndoorPath)),1).'°C'; } elseif (IPSSHADOWING_TEMPSENSORINDOOR <> '') { - $info .= ' Innen='.GetValue(IPSUtil_ObjectIDByPath(IPSSHADOWING_TEMPSENSORINDOOR)).'°C'; + $info .= ' Innen='.$this->tempIndoor.'°C'; } if (IPSSHADOWING_TEMPSENSOROUTDOOR <> '') { if ($info<>'') { $info.=', ';} - $info .= ' Aussen='.GetValue(IPSUtil_ObjectIDByPath(IPSSHADOWING_TEMPSENSOROUTDOOR)).'°C'; + $info .= ' Aussen='.$this->tempOutdoor.'°C'; } return $info; } public function ShadowingByTemp($tempIndoorPath) { - return $this->GetActivationByTemp($tempIndoorPath, $this->tempDiffShadowing); + if ($this->tempDiffShadowing==c_TempDiff_NoAction) { + return $this->GetActivationByTemp($tempIndoorPath, $this->tempDiffClosing); + } else { + return $this->GetActivationByTemp($tempIndoorPath, $this->tempDiffShadowing); + } } public function CloseByTemp($tempIndoorPath) { - //Example: - // Aussen >= Innen+Diff - //Outdoor=16,Indoor=22, --> -6 >= 2 -> false - //Outdoor=20,Indoor=22, --> -2 >= 2 -> false - //Outdoor=26,Indoor=22, --> 4 >= 2 -> true return $this->GetActivationByTemp($tempIndoorPath, $this->tempDiffClosing); } public function OpenByTemp($tempIndoorPath) { - $tempIndoor = $this->tempIndoor; - if ($tempIndoorPath <> '') { - $tempIndoor = IPSUtil_ObjectIDByPath($tempIndoorPath); - } - if ($this->tempDiffOpening >= c_TempDiff_NoAction) { - return true; // No Action - } - //Example: - //Indoor-Outdoor >= Diff - //Outdoor=16,Indoor=22, --> 6 >= 0 -> true - //Outdoor=20,Indoor=22, --> 2 >= 2 -> true - //Outdoor=26,Indoor=22, --> -4 >= 2 -> false - return ($tempIndoor - $this->tempOutdoor) >= $this->tempDiffOpening; + return $this->GetActivationByTemp($tempIndoorPath, $this->tempDiffOpening, true); } /** @@ -210,7 +208,12 @@ public function Display($categoryId) { CreateLink('Differenz Beschattung', IPS_GetObjectIDByIdent(c_Control_TempDiffShadowing, $this->instanceId), $instanceId, 10); CreateLink('Differenz Abdunkelung', IPS_GetObjectIDByIdent(c_Control_TempDiffClosing, $this->instanceId), $instanceId, 20); CreateLink('Differenz Öffnen', IPS_GetObjectIDByIdent(c_Control_TempDiffOpening, $this->instanceId), $instanceId, 30); - $instanceId = CreateDummyInstance("Hellingkeits Grenze", $categoryId, 30); + $id = @IPS_GetObjectIdByName("Hellingkeits Grenze", $categoryId); + if ($id!==false) { + EmptyCategory($id); + IPS_DeleteInstance($id); + } + $instanceId = CreateDummyInstance("Helligkeits Grenze", $categoryId, 30); CreateLink('Helligkeit', IPS_GetObjectIDByIdent(c_Control_Brightness, $this->instanceId), $instanceId, 10); CreateLink('Profil Info', IPS_GetObjectIDByIdent(c_Control_ProfileInfo, $this->instanceId), $categoryId, 40); } From a0f49c6a7b25badfe8c5ad5f3ea03b2a34e7a950 Mon Sep 17 00:00:00 2001 From: brownson Date: Tue, 5 Jun 2012 22:38:13 +0200 Subject: [PATCH 31/77] IPSShadowing - Fixed Temp Program --- .../modules/IPSShadowing/IPSShadowing_ProfileManager.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileManager.class.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileManager.class.php index a98ca89..bc51103 100644 --- a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileManager.class.php +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileManager.class.php @@ -204,7 +204,7 @@ public function CloseByTemp($profileIdSun, $profileIdTemp, $tempIndoorPath='') { public function OpenByTemp($profileIdSun, $profileIdTemp, $tempIndoorPath='') { $profileTemp = $this->profilesTemp[$profileIdTemp]; $profileSun = $this->profilesSun[$profileIdSun]; - return ($profileTemp->OpenByTemp($tempIndoorPath) and $profileSun->ActivationBySun()); + return ($profileTemp->OpenByTemp($tempIndoorPath)); } public function ActivationByWeather($profileIdWeather) { From 65f23eb02a7af44e7ce50113cd674fb83862bf81 Mon Sep 17 00:00:00 2001 From: brownson Date: Sun, 10 Jun 2012 11:18:26 +0200 Subject: [PATCH 32/77] IPSShadowing - Fixed finishing of Shadowing --- .../app/modules/IPSShadowing/IPSShadowing_Device.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php index f417235..6455ff7 100644 --- a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php @@ -377,8 +377,8 @@ private function ExecuteNextStep() { $this->SetVariableValue(c_Control_StartTime, time()); } else { IPSLogger_Dbg(__file__, "Finished all Steps for Device '$DeviceName'"); - $this->SetVariableValue(c_Control_StepsToDo, ""); $this->SetVariableValue(c_Control_Step, -1); + $this->SetVariableValue(c_Control_StepsToDo, ""); $this->SetVariableValue(c_Control_StartTime, -1); $this->StartRefreshTimer(false); $this->SetStatus(); From ca9806b9b5c9c738f0529914b8af55d1b0ce12e4 Mon Sep 17 00:00:00 2001 From: brownson Date: Mon, 11 Jun 2012 19:45:15 +0200 Subject: [PATCH 33/77] IPSShadowing - Fixed finishing of Shadowing, Fixed ProfilInfo Devices --- .../modules/IPSShadowing/IPSShadowing_Device.class.php | 8 ++++---- .../IPSShadowing/IPSShadowing_ProfileManager.class.php | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php index 6455ff7..d17149e 100644 --- a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php @@ -387,10 +387,10 @@ private function ExecuteNextStep() { // ---------------------------------------------------------------------------------------------------------------------------- public function Refresh() { - if ($this->GetVariableValue(c_Control_Step) >= 0) { - $NextStepsToDo = Explode('|', $this->GetVariableValue(c_Control_StepsToDo)); - $StepCount = count($NextStepsToDo); - $Step = $this->GetVariableValue(c_Control_Step); + $NextStepsToDo = Explode('|', $this->GetVariableValue(c_Control_StepsToDo)); + $StepCount = count($NextStepsToDo); + $Step = $this->GetVariableValue(c_Control_Step); + if ($StepCount >= ($Step+4) and $Step>=0) { $StartTime = $this->GetVariableValue(c_Control_StartTime); $SecsDone = time()-$StartTime; $SecsToDo = $NextStepsToDo[$Step+1]; diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileManager.class.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileManager.class.php index bc51103..929e557 100644 --- a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileManager.class.php +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileManager.class.php @@ -90,7 +90,7 @@ public function GetProfileInfo($profileIdBgnOfDay, $profileIdEndOfDay, $profileI $profileBgnOfDayInfo = date('H:i', $profileBgnOfDay->GetTime()); $profileEndOfDayInfo = date('H:i', $profileEndOfDay->GetTime()); $profileTemp = $this->GetProfileTemp($profileIdTemp); - $profileTempInfo = $profileTemp->GetProfileInfo($tempIndoorPath=''); + $profileTempInfo = $profileTemp->GetProfileInfo($tempIndoorPath); $info = 'Tag='.$profileBgnOfDayInfo.'-'.$profileEndOfDayInfo.', '.$profileTempInfo; return $info; From 198a1828861de32f3c4d5c2b4df5313ab4d30cfc Mon Sep 17 00:00:00 2001 From: brownson Date: Mon, 11 Jun 2012 20:32:03 +0200 Subject: [PATCH 34/77] IPSShadowing - Fixed Position 90% --- .../app/modules/IPSShadowing/IPSShadowing_Device.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php index d17149e..bf85fc8 100644 --- a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php @@ -319,8 +319,8 @@ private function CalcNextSteps() { $SecNullToPos = $SecTotal*$Position/100; $SecPosTo100 = $SecTotal-$SecNullToPos; if ($ToBeMoved==c_MovementId_90) { - $SecNullToNew = $SecTotal*75/100; - $Position = 75; + $SecNullToNew = $SecTotal*90/100; + $Position = 90; } elseif ($ToBeMoved==c_MovementId_75) { $SecNullToNew = $SecTotal*75/100; $Position = 75; From 72d5d7effd537210952ea7d0e4272ee3df6d35c9 Mon Sep 17 00:00:00 2001 From: brownson Date: Sat, 30 Jun 2012 10:39:59 +0200 Subject: [PATCH 35/77] IPSLogger - Fixed Notification Message --- IPSLibrary/app/core/IPSLogger/IPSLogger.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IPSLibrary/app/core/IPSLogger/IPSLogger.inc.php b/IPSLibrary/app/core/IPSLogger/IPSLogger.inc.php index 10863e6..ae45051 100644 --- a/IPSLibrary/app/core/IPSLogger/IPSLogger.inc.php +++ b/IPSLibrary/app/core/IPSLogger/IPSLogger.inc.php @@ -151,7 +151,7 @@ function IPSLogger_Wrn($LogContext, $LogMessage) { * @param $Priority - Priority of Notificaton Message (0 means high priority, higher values indicates a lower priority) */ function IPSLogger_Not($LogContext, $LogMessage, $Priority=0) { - IPSLogger_Out(c_LogLevel_Information, c_LogType_Information, $LogContext, $LogMessage, $Priority); + IPSLogger_Out(c_LogLevel_Notification, c_LogType_Notification, $LogContext, $LogMessage, $Priority); } // --------------------------------------------------------------------------------------------------------------------------- From 79f31250529a1556d72a3648c08302a601709639 Mon Sep 17 00:00:00 2001 From: brownson Date: Sat, 30 Jun 2012 10:40:56 +0200 Subject: [PATCH 36/77] IPSLogger - Added Prowl --- IPSLibrary/app/core/IPSLogger/ProwlPHP.php | 198 ++++++++++++++++++ .../DownloadListFiles/IPSLogger_FileList.ini | 2 +- 2 files changed, 199 insertions(+), 1 deletion(-) create mode 100644 IPSLibrary/app/core/IPSLogger/ProwlPHP.php diff --git a/IPSLibrary/app/core/IPSLogger/ProwlPHP.php b/IPSLibrary/app/core/IPSLogger/ProwlPHP.php new file mode 100644 index 0000000..62dd206 --- /dev/null +++ b/IPSLibrary/app/core/IPSLogger/ProwlPHP.php @@ -0,0 +1,198 @@ + maxsize] + 'apikey' => 204, // User API Key. + 'providerkey' => 40, // Provider key. + 'priority' => 2, // Range from -2 to 2. + 'application' => 254, // Name of the app. + 'event' => 1024, // Name of the event. + 'description' => 10000, // Description of the event. + ); + + public function __construct($apikey=null, $verify=false, $provkey=null, $proxy=null, $userpwd=null) + { + $curl_info = curl_version(); // Checks for cURL function and SSL version. Thanks Adrian Rollett! + if(!function_exists('curl_exec') || empty($curl_info['ssl_version'])) + { + die($this->getError(10000)); + } + + if(isset($proxy)) + $this->_setProxy($proxy, $userpwd); + + if(isset($apikey) && $verify) + $this->verify($apikey, $provkey); + + $this->_api_key = $apikey; + } + + public function verify($apikey, $provkey) + { + $return = $this->_execute(sprintf($this->_url_verify, $apikey, $provkey)); + return $this->_response($return); + } + + public function push($params, $is_post=false) + { + if($is_post) + $post_params = ''; + + $url = $is_post ? $this->_url_push : $this->_url_push . '?'; + $params = func_get_args(); + + if(isset($this->_api_key) && !isset($params[0]['apikey'])) + $params[0]['apikey'] = $this->_api_key; + + if(isset($this->_prov_key) && !isset($params[0]['providerkey'])) + $params[0]['providerkey'] = $this->_prov_key; + + foreach($params[0] as $k => $v) + { + $v = str_replace("\\n","\n",$v); // Fixes line break issue! Cheers Fr3d! + if(!isset($this->_params[$k])) + { + $this->_return_code = 400; + return false; + } + if(strlen($v) > $this->_params[$k]) + { + $this->_return_code = 10001; + return false; + } + + if($is_post) + $post_params .= $k . '=' . urlencode($v) . '&'; + else + $url .= $k . '=' . urlencode($v) . '&'; + } + + if($is_post) + $params = substr($post_params, 0, strlen($post_params)-1); + else + $url = substr($url, 0, strlen($url)-1); + + $return = $this->_execute($url, $is_post ? true : false, $params); + + return $this->_response($return); + } + + public function getError($code=null) + { + $code = (empty($code)) ? $this->_return_code : $code; + switch($code) + { + case 200: return 'Request Successful.'; break; + case 400: return 'Bad request, the parameters you provided did not validate.'; break; + case 401: return 'The API key given is not valid, and does not correspond to a user.'; break; + case 405: return 'Method not allowed, you attempted to use a non-SSL connection to Prowl.'; break; + case 406: return 'Your IP address has exceeded the API limit.'; break; + case 500: return 'Internal server error, something failed to execute properly on the Prowl side.'; break; + case 10000: return 'cURL library missing vital functions or does not support SSL. cURL w/SSL is required to execute ProwlPHP.'; break; + case 10001: return 'Parameter value exceeds the maximum byte size.'; break; + default: return false; break; + } + } + + public function getRemaining() + { + if(!isset($this->_remaining)) + return false; + + return $this->_remaining; + } + + public function getResetDate() + { + if(!isset($this->_resetdate)) + return false; + + return $this->_resetdate; + } + + private function _execute($url, $is_post=false, $params=null) + { + $this->_obj_curl = curl_init($this->_api_domain . $url); + curl_setopt($this->_obj_curl, CURLOPT_HEADER, 0); + curl_setopt($this->_obj_curl, CURLOPT_USERAGENT, "ProwlPHP/" . $this->_version); + curl_setopt($this->_obj_curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY); + curl_setopt($this->_obj_curl, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($this->_obj_curl, CURLOPT_RETURNTRANSFER, 1); + + if($is_post) + { + curl_setopt($this->_obj_curl, CURLOPT_POST, 1); + curl_setopt($this->_obj_curl, CURLOPT_POSTFIELDS, $params); + } + + if($this->_use_proxy) + { + curl_setopt($this->_obj_curl, CURLOPT_HTTPPROXYTUNNEL, 1); + curl_setopt($this->_obj_curl, CURLOPT_PROXY, $this->_proxy); + curl_setopt($this->_obj_curl, CURLOPT_PROXYUSERPWD, $this->_proxy_userpwd); + } + + $return = curl_exec($this->_obj_curl); + curl_close($this->_obj_curl); + return $return; + } + + private function _response($return) + { + if($return===false) + { + $this->_return_code = 500; + return false; + } + + $response = new SimpleXMLElement($return); + + if(isset($response->success)) + { + $this->_return_code = (int)$response->success['code']; + $this->_remaining = (int)$response->success['remaining']; + $this->_resetdate = (int)$response->success['resetdate']; + } + else + { + $this->_return_code = $response->error['code']; + } + + switch($this->_return_code) + { + case 200: return true; break; + default: return false; break; + } + + unset($response); + } + + private function _setProxy($proxy, $userpwd=null) + { + if(strlen($proxy) > 0) + { + $this->_use_proxy = true; + $this->_proxy = $proxy; + $this->_proxy_userpwd = $userpwd; + } + } +} + +?> diff --git a/IPSLibrary/install/DownloadListFiles/IPSLogger_FileList.ini b/IPSLibrary/install/DownloadListFiles/IPSLogger_FileList.ini index 063623f..3ecf056 100644 --- a/IPSLibrary/install/DownloadListFiles/IPSLogger_FileList.ini +++ b/IPSLibrary/install/DownloadListFiles/IPSLogger_FileList.ini @@ -12,6 +12,7 @@ ScriptFiles[]=IPSLogger_ClearHtmlOut.ips.php ScriptFiles[]=IPSLogger_ClearSingleOut.ips.php ScriptFiles[]=IPSLogger_PurgeLogFiles.ips.php ScriptFiles[]=IPSLogger_SendMail.ips.php +ScriptFiles[]=ProwlPHP.php [Config] DefaultFiles[]=IPSLogger_Configuration.inc.php @@ -24,6 +25,5 @@ DownloadFiles[]=IPSLogger_FileList.ini DefaultFiles[]=IPSLogger.ini ExampleFiles[]= - [WebFront] ScriptFiles[]= From ed0f62d90a003e912b687881f0b376f6f131a26f Mon Sep 17 00:00:00 2001 From: brownson Date: Sat, 30 Jun 2012 10:51:42 +0200 Subject: [PATCH 37/77] IPSShadowing - Adapted Temp Profiles --- .../IPSShadowing_ChangeSettings.ips.php | 9 +- .../IPSShadowing_Constants.inc.php | 40 +++-- .../IPSShadowing_Device.class.php | 49 +++++- .../IPSShadowing/IPSShadowing_Logging.inc.php | 9 +- .../IPSShadowing_ProfileManager.class.php | 4 +- .../IPSShadowing_ProfileTemp.class.php | 144 +++++++++++------- .../IPSShadowing_FileList.ini | 2 +- .../IPSShadowing_Installation.ips.php | 63 ++++++-- 8 files changed, 227 insertions(+), 93 deletions(-) diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ChangeSettings.ips.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ChangeSettings.ips.php index f928b0c..7ffed83 100644 --- a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ChangeSettings.ips.php +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ChangeSettings.ips.php @@ -109,9 +109,12 @@ $profileManager->Rename($controlId, $value); break; - case c_Control_TempDiffShadowing: - case c_Control_TempDiffClosing: - case c_Control_TempDiffOpening: + case c_Control_TempLevelOutShadow: + case c_Control_TempLevelOutClose: + case c_Control_TempLevelOutOpen: + case c_Control_TempLevelInShadow: + case c_Control_TempLevelInClose: + case c_Control_TempLevelInOpen: case c_Control_Brightness: case c_Control_AzimuthBgn: case c_Control_AzimuthEnd: diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Constants.inc.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Constants.inc.php index 2c9c58c..5845020 100644 --- a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Constants.inc.php +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Constants.inc.php @@ -80,6 +80,7 @@ define ("c_Control_Automatic", "Automatic"); define ("c_Control_ManualChange", "ManualChange"); define ("c_Control_TempChange", "TemperatureChange"); + define ("c_Control_TempLastPos", "TemperatureLastPos"); define ("c_Control_ProfileTemp", "ProfileTemp"); define ("c_Control_ProfileSun", "ProfileSun"); define ("c_Control_ProfileWeather", "ProfileWeather"); @@ -88,9 +89,12 @@ define ("c_Control_ProfileInfo", "ProfileInfo"); define ("c_Control_ProfileName", "ProfileName"); - define ("c_Control_TempDiffShadowing", "TempDiffShadowing"); - define ("c_Control_TempDiffClosing", "TempDiffClosing"); - define ("c_Control_TempDiffOpening", "TempDiffOpening"); + define ("c_Control_TempLevelOutShadow", "TempLevelOutShadow"); + define ("c_Control_TempLevelOutClose", "TempLevelOutClose"); + define ("c_Control_TempLevelOutOpen", "TempLevelOutOpen"); + define ("c_Control_TempLevelInShadow", "TempLevelInShadow"); + define ("c_Control_TempLevelInClose", "TempLevelInClose"); + define ("c_Control_TempLevelInOpen", "TempLevelInOpen"); define ("c_Control_Brightness", "Brightness"); define ("c_Control_AzimuthBgn", "AzimuthBgn"); define ("c_Control_AzimuthEnd", "AzimuthEnd"); @@ -127,7 +131,7 @@ define ("c_Control_MsgPrioTemp", "MsgPrioTemp"); define ("c_Control_MsgPrioProg", "MsgPrioProg"); - define ("c_TempDiff_NoAction", 4); + define ("c_TempLevel_Ignore", 100); define ("c_Color_ProfileActive", 0x880000); @@ -141,13 +145,16 @@ define ("c_Program_OpenedDay", "Geöffnet Tag"); define ("c_Program_OpenedNight", "Geöffnet Nacht"); define ("c_Program_Closed", "Geschlossen"); - define ("c_Program_75", "75"); - define ("c_Program_90", "90"); + define ("c_Program_25", "25%"); + define ("c_Program_50", "50%"); + define ("c_Program_75", "75%"); + define ("c_Program_90", "90%"); define ("c_Program_Dimout", "Geschlossen"); define ("c_Program_MovedOut", "Ausgefahren"); define ("c_Program_MovedOutTemp", "Ausgefahren Temperatur"); define ("c_Program_DimoutOrShadowing", "Schatten oder Geschl"); define ("c_Program_DimoutAndShadowing", "Schatten und Geschl."); + define ("c_Program_LastPosition", "LastPosition"); define ("c_ProgramId_Opened", 1); define ("c_ProgramId_MovedIn", 2); @@ -155,15 +162,18 @@ define ("c_ProgramId_OpenedAndShadowing", 4); define ("c_ProgramId_OpenedDay", 5); define ("c_ProgramId_OpenedNight", 6); - define ("c_ProgramId_75", 7); - define ("c_ProgramId_90", 8); - define ("c_ProgramId_Closed", 9); - define ("c_ProgramId_Dimout", 10); - define ("c_ProgramId_DimoutOrShadowing", 11); - define ("c_ProgramId_DimoutAndShadowing", 12); - define ("c_ProgramId_MovedOut", 13); - define ("c_ProgramId_MovedOutTemp", 14); - define ("c_ProgramId_Manual", 15); + define ("c_ProgramId_25", 7); + define ("c_ProgramId_50", 8); + define ("c_ProgramId_75", 9); + define ("c_ProgramId_90", 10); + define ("c_ProgramId_Closed", 11); + define ("c_ProgramId_Dimout", 12); + define ("c_ProgramId_DimoutOrShadowing", 13); + define ("c_ProgramId_DimoutAndShadowing", 14); + define ("c_ProgramId_MovedOut", 15); + define ("c_ProgramId_MovedOutTemp", 16); + define ("c_ProgramId_Manual", 17); + define ("c_ProgramId_LastPosition", 18); define ("c_ShadowingType_Shutter", "Shutter"); define ("c_ShadowingType_Jalousie", "Jolousie"); diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php index bf85fc8..ab4501c 100644 --- a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php @@ -217,6 +217,8 @@ public function MoveByProgram($ProgramId, $logMessage, $DimoutOption=null, $Trig $DoBeMoved = c_MovementId_Shadowing; } break; + case c_ProgramId_LastPosition: + $DoBeMoved = $this->GetVariableValue(c_Control_TempLastPos); default: IPSLogger_Err(__file__, "Unknown Program $Program, DeviceId=".$this->DeviceId); exit; @@ -224,6 +226,7 @@ public function MoveByProgram($ProgramId, $logMessage, $DimoutOption=null, $Trig if ($DoBeMoved<>$MovementStatus) { if ($TriggeredByTemp and !$this->GetVariableValue(c_Control_TempChange)) { $this->SetVariableValue(c_Control_TempChange, true); + $this->SetVariableValue(c_Control_TempLastPos, $this->GetMovementIdByPosition()); } $this->SetVariableValue(c_Control_Movement, $DoBeMoved); $this->MoveByStatus(); @@ -231,6 +234,40 @@ public function MoveByProgram($ProgramId, $logMessage, $DimoutOption=null, $Trig } } + // ---------------------------------------------------------------------------------------------------------------------------- + private function GetMovementIdByPosition() { + $shadowingType = $this->GetPropertyValue(c_Property_ShadowingType); + $currentMovementId = $this->GetVariableValue(c_Control_Movement); + $currentPosition = $this->GetVariableValue(c_Control_TempChange, c_Control_Position); + + if ($currentMovementId<>c_MovementId_Stop) { + $lastPosition = $currentMovementId; + } elseif ($currentPosition<10) { + if ($shadowingType==c_ShadowingType_Marquees) { + $lastPosition = c_MovementId_MovedIn; + } else { + $lastPosition = c_MovementId_Opened; + } + } elseif ($currentPosition<30) { + $lastPosition = c_MovementId_25; + } elseif ($currentPosition<55) { + $lastPosition = c_MovementId_50; + } elseif ($currentPosition<80) { + $lastPosition = c_MovementId_75; + } elseif ($currentPosition<92) { + $lastPosition = c_MovementId_90; + } else { + if ($shadowingType==c_ShadowingType_Marquees) { + $lastPosition = c_MovementId_MovedOut; + } elseif ($shadowingType==c_ShadowingType_Shutter) { + $lastPosition = c_MovementId_Closed; + } else { + $lastPosition = c_MovementId_Shadowing; + } + } + return $lastPosition; + } + // ---------------------------------------------------------------------------------------------------------------------------- public function MoveByControl($Value) { if ($Value==c_MovementId_Space) { @@ -479,9 +516,8 @@ public function CheckPrograms($profileManager) { $changeByTemp = GetValue(IPS_GetObjectIDByIdent(c_Control_TempChange, $this->deviceId)); $changeByUser = GetValue(IPS_GetObjectIDByIdent(c_Control_ManualChange, $this->deviceId)); $automaticActive = GetValue(IPS_GetObjectIDByIdent(c_Control_Automatic, $this->deviceId)); - $tempIndoorPath = $this->GetPropertyValue(c_Property_TempSensorIndoor); - + $controlId = @IPS_GetObjectIDByIdent(c_Control_ProfileWeather, $this->deviceId); if ($controlId!==false) { $profileIdWeather = GetValue($controlId); @@ -545,9 +581,14 @@ public function CheckPrograms($profileManager) { if (!$openByTemp and $changeByTemp) { $programInfo = 'Tag (Warte Öffnen)'; } elseif ($openByTemp and $changeByTemp) { - $programInfo = 'Tag (Reset)'; SetValue(IPS_GetObjectIDByIdent(c_Control_TempChange, $this->deviceId), false); - $this->MoveByProgram($programDay, 'Tagesprogramm (Temperatur Reset)'); + if ($programDay<>c_ProgramId_Manual) { + $programInfo = 'Temperatur Reset (Tag)'; + $this->MoveByProgram($programDay, 'Temperatur Reset (Tag)'); + } else { + $programInfo = 'Temperatur Reset (LastPosition)'; + $this->MoveByProgram(c_ProgramId_LastPosition, 'Temperatur Reset (LastPosition)'); + } } else { $programInfo = 'Tagesprogramm'; $this->MoveByProgram($programDay, 'Tagesprogramm'); diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Logging.inc.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Logging.inc.php index b47cbb0..0cd4341 100644 --- a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Logging.inc.php +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Logging.inc.php @@ -37,6 +37,10 @@ function IPSShadowing_GetMessageByMovement($deviceId) { $Message = "Abdunkelung"; } elseif ($ToBeMoved==c_MovementId_Closed) { $Message = "Geschlossen"; + } elseif ($ToBeMoved==c_MovementId_25) { + $Message = "25%"; + } elseif ($ToBeMoved==c_MovementId_50) { + $Message = "50%"; } elseif ($ToBeMoved==c_MovementId_75) { $Message = "75%"; } elseif ($ToBeMoved==c_MovementId_90) { @@ -74,11 +78,14 @@ function IPSShadowing_GetProgramName($ProgramId) { c_ProgramId_Closed => c_Program_Closed, c_ProgramId_90 => c_Program_90, c_ProgramId_75 => c_Program_75, + c_ProgramId_50 => c_Program_50, + c_ProgramId_25 => c_Program_25, c_ProgramId_MovedOut => c_Program_MovedOut, c_ProgramId_MovedOutTemp => c_Program_MovedOutTemp, c_ProgramId_Dimout => c_Program_Dimout, c_ProgramId_DimoutOrShadowing => c_Program_DimoutOrShadowing, - c_ProgramId_DimoutAndShadowing => c_Program_DimoutAndShadowing + c_ProgramId_DimoutAndShadowing => c_Program_DimoutAndShadowing, + c_ProgramId_LastPosition => c_Program_LastPosition ); return $ProgramList[$ProgramId]; diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileManager.class.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileManager.class.php index 929e557..98f9aaa 100644 --- a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileManager.class.php +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileManager.class.php @@ -264,8 +264,8 @@ public function SelectEndOfDay($profileId) { SetValue(IPS_GetObjectIDByIdent(c_Control_ProfileEndOfDaySelect, $this->instanceId), $profileId); } - public function CreateTemp($profileName='Neues Profile', $tempDiffShadowing=0, $tempDiffClose=1, $tempDiffOpening=1, $brightness=6000) { - $profileId = IPSShadowing_ProfileTemp::Create($profileName, $tempDiffShadowing, $tempDiffClose, $tempDiffOpening, $brightness); + public function CreateTemp($profileName='Neues Profile') { + $profileId = IPSShadowing_ProfileTemp::Create($profileName); $this->SelectTemp($profileId); } public function CreateSun($profileName='Neues Profile', $anzimutBgn=120, $anzimutEnd=240, $elevation=25) { diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTemp.class.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTemp.class.php index fb034bd..4936498 100644 --- a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTemp.class.php +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_ProfileTemp.class.php @@ -43,17 +43,19 @@ class IPSShadowing_ProfileTemp { /** * @private - * Aktivierung bei Sonnenstand und Helligkeit + * Aktivierung durch Helligkeit aktiv */ - private $activationByTemp; - + private $activationByBrigthness; private $brightnessLevel; private $brightnessValue; private $tempOutdoor; private $tempIndoor; - private $tempDiffShadowing; - private $tempDiffClosing; - private $tempDiffOpening; + private $tempLevelOutShadow; + private $tempLevelOutClose; + private $tempLevelOutOpen; + private $tempLevelInShadow; + private $tempLevelInClose; + private $tempLevelInOpen; /** * @public @@ -74,14 +76,17 @@ public function __construct($instanceId) { * */ private function Init() { - $this->brightnessLevel = GetValue(IPS_GetObjectIDByIdent(c_Control_Brightness, $this->instanceId)); - $this->tempDiffShadowing = GetValue(IPS_GetObjectIDByIdent(c_Control_TempDiffShadowing, $this->instanceId)); - $this->tempDiffClosing = GetValue(IPS_GetObjectIDByIdent(c_Control_TempDiffClosing, $this->instanceId)); - $this->tempDiffOpening = GetValue(IPS_GetObjectIDByIdent(c_Control_TempDiffOpening, $this->instanceId)); - $this->tempIndoor = null; - $this->tempOutdoor = null; - $this->brightnessValue = null; - $this->activationByTemp = true; + $this->brightnessLevel = GetValue(IPS_GetObjectIDByIdent(c_Control_Brightness, $this->instanceId)); + $this->brightnessValue = null; + $this->tempLevelOutShadow = GetValue(IPS_GetObjectIDByIdent(c_Control_TempLevelOutShadow, $this->instanceId)); + $this->tempLevelOutClose = GetValue(IPS_GetObjectIDByIdent(c_Control_TempLevelOutClose, $this->instanceId)); + $this->tempLevelOutOpen = GetValue(IPS_GetObjectIDByIdent(c_Control_TempLevelOutOpen, $this->instanceId)); + $this->tempLevelInShadow = GetValue(IPS_GetObjectIDByIdent(c_Control_TempLevelInShadow, $this->instanceId)); + $this->tempLevelInClose = GetValue(IPS_GetObjectIDByIdent(c_Control_TempLevelInClose, $this->instanceId)); + $this->tempLevelInOpen = GetValue(IPS_GetObjectIDByIdent(c_Control_TempLevelInOpen, $this->instanceId)); + $this->tempIndoor = null; + $this->tempOutdoor = null; + $this->activationByBrigthness = true; if (IPSSHADOWING_TEMPSENSORINDOOR <> '') { $this->tempIndoor = round(GetValue(IPSUtil_ObjectIDByPath(IPSSHADOWING_TEMPSENSORINDOOR)),1); } @@ -90,38 +95,15 @@ private function Init() { } if (IPSSHADOWING_BRIGHTNESSSENSOR <> '') { $this->brightnessValue = round(GetValue(IPSUtil_ObjectIDByPath(IPSSHADOWING_BRIGHTNESSSENSOR)),1); - $this->activationByTemp = ($this->activationByTemp and $this->brightnessValue>=$this->brightnessLevel); - } - } - - private function GetActivationByTemp($tempIndoorPath, $tempDiff, $reverse=false) { - //Example: - // Aussen >= Innen+Diff - // Outdoor=16,Indoor=22, --> -6 >= 2 -> false - // Outdoor=20,Indoor=22, --> -2 >= 2 -> false - // Outdoor=26,Indoor=22, --> 4 >= 2 -> true - $activationByTemp = $this->activationByTemp; - $tempIndoor = $this->tempIndoor; - if ($tempDiff<>c_TempDiff_NoAction) { - if ($tempIndoorPath <> '') { - $tempIndoor = round(GetValue(IPSUtil_ObjectIDByPath($tempIndoorPath)),1); - } - if ((IPSSHADOWING_TEMPSENSORINDOOR<>'' or $tempIndoorPath<>'') and IPSSHADOWING_TEMPSENSOROUTDOOR <> '') { - if ($reverse) { - $activationByTemp = ($activationByTemp and (($tempIndoor-$this->tempOutdoor) >= $tempDiff)); - } else { - $activationByTemp = ($activationByTemp and (($this->tempOutdoor-$tempIndoor) >= $tempDiff)); - } - } + $this->activationByBrigthness = ($this->brightnessValue>=$this->brightnessLevel); } - return $activationByTemp; } public function UpdateProfileInfo() { $tempIndoor = (IPSSHADOWING_TEMPSENSORINDOOR<>'' ? $this->tempIndoor.'°C' :'"nicht vorhanden"'); $tempOutdoor = (IPSSHADOWING_TEMPSENSOROUTDOOR<>''? $this->tempOutdoor.'°C' :'"nicht vorhanden"'); $brightness = (IPSSHADOWING_BRIGHTNESSSENSOR<>'' ? $this->brightnessValue.' Lux':'"nicht vorhanden"'); - $activationByTemp = $this->GetActivationByTemp('', $this->tempDiffShadowing); + $activationByTemp = $this->CloseByTemp(''); $info = ''.($activationByTemp?'Profil aktiv':'Profil inaktiv').' (Innen='.$tempIndoor.', Aussen='.$tempOutdoor.', Helligkeit='.$brightness.')'; if (GetValue(IPS_GetObjectIDByIdent(c_Control_ProfileInfo, $this->instanceId)) <> $info) { SetValue(IPS_GetObjectIDByIdent(c_Control_ProfileInfo, $this->instanceId), $info); @@ -147,20 +129,57 @@ public function GetProfileInfo($tempIndoorPath) { return $info; } + private function GetActivationByIndoorTemp($tempIndoorPath, $tempLevel, $reverse=false) { + $activationByTemp = true; + if ($tempLevel<>c_TempLevel_Ignore) { + if (IPSSHADOWING_TEMPSENSORINDOOR<>'' or $tempIndoorPath<>'') { + $tempIndoor = $this->tempIndoor; + if ($tempIndoorPath <> '') { + $tempIndoor = round(GetValue(IPSUtil_ObjectIDByPath($tempIndoorPath)),1); + } + if ($reverse) { + $activationByTemp = ($tempIndoor <= $tempLevel); + } else { + $activationByTemp = ($tempIndoor >= $tempLevel); + } + } + } + return $activationByTemp; + } + + private function GetActivationByOutdoorTemp($tempLevel, $reverse=false) { + $activationByTemp = true; + if ($tempLevel<>c_TempLevel_Ignore) { + if (IPSSHADOWING_TEMPSENSOROUTDOOR) { + if ($reverse) { + $activationByTemp = ($this->tempOutdoor <= $tempLevel); + } else { + $activationByTemp = ($this->tempOutdoor >= $tempLevel); + } + } + } + return $activationByTemp; + } + public function ShadowingByTemp($tempIndoorPath) { - if ($this->tempDiffShadowing==c_TempDiff_NoAction) { - return $this->GetActivationByTemp($tempIndoorPath, $this->tempDiffClosing); + if ($this->tempLevelOutShadow==c_TempLevel_Ignore and $this->tempLevelInShadow==c_TempLevel_Ignore) { + return false; } else { - return $this->GetActivationByTemp($tempIndoorPath, $this->tempDiffShadowing); + return ($this->activationByBrigthness and + $this->GetActivationByOutdoorTemp($this->tempLevelOutShadow) and + $this->GetActivationByIndoorTemp($tempIndoorPath, $this->tempLevelInShadow)); } } public function CloseByTemp($tempIndoorPath) { - return $this->GetActivationByTemp($tempIndoorPath, $this->tempDiffClosing); + return ($this->activationByBrigthness and + $this->GetActivationByOutdoorTemp($this->tempLevelOutClose) and + $this->GetActivationByIndoorTemp($tempIndoorPath, $this->tempLevelInClose)); } public function OpenByTemp($tempIndoorPath) { - return $this->GetActivationByTemp($tempIndoorPath, $this->tempDiffOpening, true); + return ($this->GetActivationByOutdoorTemp($this->tempLevelOutOpen, true) and + $this->GetActivationByIndoorTemp($tempIndoorPath, $this->tempLevelInOpen, true)); } /** @@ -169,12 +188,17 @@ public function OpenByTemp($tempIndoorPath) { * Neues Profile generieren * * @param string $profileName Name des Profiles - * @param integer $tempDiffShadowing Temperatur Differenz für Beschattung - * @param integer $tempDiffClose Temperatur Differenz für Abdunkelung - * @param integer $tempDiffOpening Temperatur Differenz für Öffnen + * @param integer $tempLevelOutShadow Temperatur Grenze Aussen für Beschattung + * @param integer $tempLevelInShadow Temperatur Grenze Innen für Beschattung + * @param integer $tempLevelOutClose Temperatur Grenze Aussen für Abdunkelung + * @param integer $tempLevelInClose Temperatur Grenze Innen für Abdunkelung + * @param integer $tempLevelOutOpen Temperatur Grenze Aussen für Öffnen + * @param integer $tempLevelInOpen Temperatur Grenze Innen für Öffnen * @param integer $brightness Helligkeit */ - public static function Create($profileName, $tempDiffShadowing=0, $tempDiffClose=1, $tempDiffOpening=1, $brightness=0) { + public static function Create($profileName, $tempLevelOutShadow=c_TempLevel_Ignore, $tempLevelOutClose=c_TempLevel_Ignore, + $tempLevelOutOpen=c_TempLevel_Ignore, $tempLevelInShadow=c_TempLevel_Ignore, $tempLevelInClose=c_TempLevel_Ignore, + $tempLevelInOpen=c_TempLevel_Ignore, $brightness=0) { IPSUtils_Include ('IPSInstaller.inc.php', 'IPSLibrary::install::IPSInstaller'); $ScriptIdChangeSettings = IPSUtil_ObjectIDByPath('Program.IPSLibrary.app.modules.IPSShadowing.IPSShadowing_ChangeSettings'); @@ -182,12 +206,15 @@ public static function Create($profileName, $tempDiffShadowing=0, $tempDiffClose $profileIdx = count(IPS_GetChildrenIds($categoryIdprofiles)) + 10; $profileId = CreateCategory ($profileName, $categoryIdprofiles, $profileIdx); IPS_SetIdent($profileId, (string)$profileId); - CreateVariable(c_Control_ProfileName, 3 /*String*/, $profileId, 0, '~String', $ScriptIdChangeSettings, $profileName, 'Title'); - CreateVariable(c_Control_TempDiffShadowing, 1 /*Integer*/, $profileId, 10, 'IPSShadowing_TempDiffShadowing', $ScriptIdChangeSettings, $tempDiffShadowing, 'Temperature'); - CreateVariable(c_Control_TempDiffClosing, 1 /*Integer*/, $profileId, 20, 'IPSShadowing_TempDiffClosing', $ScriptIdChangeSettings, $tempDiffClose, 'Temperature'); - CreateVariable(c_Control_TempDiffOpening, 1 /*Integer*/, $profileId, 20, 'IPSShadowing_TempDiffOpening', $ScriptIdChangeSettings, $tempDiffOpening, 'Temperature'); - CreateVariable(c_Control_Brightness, 1 /*Integer*/, $profileId, 30, 'IPSShadowing_Brightness', $ScriptIdChangeSettings, $brightness, 'Sun'); - CreateVariable(c_Control_ProfileInfo, 3 /*String*/, $profileId, 40, '~String', null, '', 'Information'); + CreateVariable(c_Control_ProfileName, 3 /*String*/, $profileId, 0, '~String', $ScriptIdChangeSettings, $profileName, 'Title'); + CreateVariable(c_Control_TempLevelOutShadow, 1 /*Integer*/, $profileId, 10, 'IPSShadowing_TempLevelOutShadow', $ScriptIdChangeSettings, $tempLevelOutShadow, 'Temperature'); + CreateVariable(c_Control_TempLevelInShadow, 1 /*Integer*/, $profileId, 20, 'IPSShadowing_TempLevelInShadow', $ScriptIdChangeSettings, $tempLevelInShadow, 'Temperature'); + CreateVariable(c_Control_TempLevelOutClose, 1 /*Integer*/, $profileId, 30, 'IPSShadowing_TempLevelOutClose', $ScriptIdChangeSettings, $tempLevelOutClose, 'Temperature'); + CreateVariable(c_Control_TempLevelInClose, 1 /*Integer*/, $profileId, 40, 'IPSShadowing_TempLevelInClose', $ScriptIdChangeSettings, $tempLevelInClose, 'Temperature'); + CreateVariable(c_Control_TempLevelOutOpen, 1 /*Integer*/, $profileId, 50, 'IPSShadowing_TempLevelOutOpen', $ScriptIdChangeSettings, $tempLevelOutOpen, 'Temperature'); + CreateVariable(c_Control_TempLevelInOpen, 1 /*Integer*/, $profileId, 60, 'IPSShadowing_TempLevelInOpen', $ScriptIdChangeSettings, $tempLevelInOpen, 'Temperature'); + CreateVariable(c_Control_Brightness, 1 /*Integer*/, $profileId, 70, 'IPSShadowing_Brightness', $ScriptIdChangeSettings, $brightness, 'Sun'); + CreateVariable(c_Control_ProfileInfo, 3 /*String*/, $profileId, 80, '~String', null, '', 'Information'); IPS_SetVariableProfileAssociation('IPSShadowing_ProfileTemp', $profileId, $profileName, "", -1); @@ -205,9 +232,12 @@ public function Display($categoryId) { IPSUtils_Include ('IPSInstaller.inc.php', 'IPSLibrary::install::IPSInstaller'); CreateLink('Profil Name', IPS_GetObjectIDByIdent(c_Control_ProfileName, $this->instanceId), $categoryId, 10); $instanceId = CreateDummyInstance("Temperatur Grenzen", $categoryId, 20); - CreateLink('Differenz Beschattung', IPS_GetObjectIDByIdent(c_Control_TempDiffShadowing, $this->instanceId), $instanceId, 10); - CreateLink('Differenz Abdunkelung', IPS_GetObjectIDByIdent(c_Control_TempDiffClosing, $this->instanceId), $instanceId, 20); - CreateLink('Differenz Öffnen', IPS_GetObjectIDByIdent(c_Control_TempDiffOpening, $this->instanceId), $instanceId, 30); + CreateLink('Beschattung Aussen', IPS_GetObjectIDByIdent(c_Control_TempLevelOutShadow, $this->instanceId), $instanceId, 10); + CreateLink('Beschattung Innen', IPS_GetObjectIDByIdent(c_Control_TempLevelInShadow, $this->instanceId), $instanceId, 20); + CreateLink('Schliessen Aussen', IPS_GetObjectIDByIdent(c_Control_TempLevelOutClose, $this->instanceId), $instanceId, 30); + CreateLink('Schliessen Innen', IPS_GetObjectIDByIdent(c_Control_TempLevelInClose, $this->instanceId), $instanceId, 40); + CreateLink('Öffnen Aussen', IPS_GetObjectIDByIdent(c_Control_TempLevelOutOpen, $this->instanceId), $instanceId, 50); + CreateLink('Öffnen Innen', IPS_GetObjectIDByIdent(c_Control_TempLevelInOpen, $this->instanceId), $instanceId, 60); $id = @IPS_GetObjectIdByName("Hellingkeits Grenze", $categoryId); if ($id!==false) { EmptyCategory($id); diff --git a/IPSLibrary/install/DownloadListFiles/IPSShadowing_FileList.ini b/IPSLibrary/install/DownloadListFiles/IPSShadowing_FileList.ini index 9a50d02..4a448ad 100644 --- a/IPSLibrary/install/DownloadListFiles/IPSShadowing_FileList.ini +++ b/IPSLibrary/install/DownloadListFiles/IPSShadowing_FileList.ini @@ -1,4 +1,4 @@ -Version=2.50.2 +Version=2.50.3 ModuleNamespace=IPSLibrary::app::modules::IPSShadowing [App] diff --git a/IPSLibrary/install/InstallationScripts/IPSShadowing_Installation.ips.php b/IPSLibrary/install/InstallationScripts/IPSShadowing_Installation.ips.php index 2112094..491aab2 100644 --- a/IPSLibrary/install/InstallationScripts/IPSShadowing_Installation.ips.php +++ b/IPSLibrary/install/InstallationScripts/IPSShadowing_Installation.ips.php @@ -151,17 +151,23 @@ $IPSShadowing_ProgNigSht = array( c_ProgramId_Manual => c_Program_Manual, c_ProgramId_Opened => c_Program_Opened, + c_ProgramId_25 => c_Program_25, + c_ProgramId_50 => c_Program_50, c_ProgramId_75 => c_Program_75, c_ProgramId_90 => c_Program_90, c_ProgramId_Closed => c_Program_Closed); $IPSShadowing_ProgDaySht = array( c_ProgramId_Manual => c_Program_Manual, c_ProgramId_Opened => c_Program_Opened, + c_ProgramId_25 => c_Program_25, + c_ProgramId_50 => c_Program_50, c_ProgramId_75 => c_Program_75, c_ProgramId_90 => c_Program_90, c_ProgramId_Closed => c_Program_Closed); $IPSShadowing_ProgTmpSht = array( c_ProgramId_Manual => c_Program_Manual, + c_ProgramId_25 => c_Program_25, + c_ProgramId_50 => c_Program_50, c_ProgramId_75 => c_Program_75, c_ProgramId_90 => c_Program_90, c_ProgramId_Closed => c_Program_Closed); @@ -178,12 +184,19 @@ $IPSShadowing_ProgDayMar = array( c_ProgramId_Manual => c_Program_Manual, c_ProgramId_MovedIn => c_Program_MovedIn, + c_ProgramId_50 => c_Program_50, + c_ProgramId_75 => c_Program_75, c_ProgramId_MovedOut => c_Program_MovedOut); $IPSShadowing_ProgTmpMar = array( c_ProgramId_Manual => c_Program_Manual, + c_ProgramId_50 => c_Program_50, + c_ProgramId_75 => c_Program_75, c_ProgramId_MovedOut => c_Program_MovedOut); $IPSShadowing_ProgPreMar = array( c_ProgramId_Manual => c_Program_Manual, + c_ProgramId_50 => c_Program_50, + c_ProgramId_75 => c_Program_75, + c_ProgramId_MovedOut => c_Program_MovedOut, c_ProgramId_MovedOutTemp => c_Program_MovedOutTemp); $IPSShadowing_ProgWeaMar = array( c_ProgramId_Manual => c_Program_Manual, @@ -261,10 +274,13 @@ CreateProfile_Count ('IPSShadowing_TempDelta', 1, 1, 5, null, " °C", null); CreateProfile_Count ('IPSShadowing_Position', 0, 1, 100, null, "%", null); - CreateProfile_Associations ('IPSShadowing_TempDiffShadowing', array('Aussen >= Innen', '> 1°C', '> 2°C', '> 3°C', 'keine Aktion')); - CreateProfile_Associations ('IPSShadowing_TempDiffClosing', array('Aussen >= Innen', '> 1°C', '> 2°C', '> 3°C', 'keine Aktion')); - CreateProfile_Associations ('IPSShadowing_TempDiffOpening', array('Innen >= Aussen', '> 1°C', '> 2°C', '> 3°C', 'keine Aktion')); - CreateProfile_Count ('IPSShadowing_Brightness', 0, 100, 10000, null, " Lux", null); + CreateProfile_Associations ('IPSShadowing_TempLevelOutShadow', array(22=>'Aussen >= 22°C', 23=>'>= 23°C', 24=>'>= 24°C', 25=>'>= 25°C', 26=>'>= 26°C', c_TempLevel_Ignore=>'Ignorieren')); + CreateProfile_Associations ('IPSShadowing_TempLevelInShadow', array(22=>'Innen >= 22°C', 23=>'>= 23°C', 24=>'>= 24°C', 25=>'>= 25°C', 26=>'>= 26°C', c_TempLevel_Ignore=>'Ignorieren')); + CreateProfile_Associations ('IPSShadowing_TempLevelOutClose', array(22=>'Aussen >= 22°C', 23=>'>= 23°C', 24=>'>= 24°C', 25=>'>= 25°C', 26=>'>= 26°C', c_TempLevel_Ignore=>'Ignorieren')); + CreateProfile_Associations ('IPSShadowing_TempLevelInClose', array(22=>'Innen >= 22°C', 23=>'>= 23°C', 24=>'>= 24°C', 25=>'>= 25°C', 26=>'>= 26°C', c_TempLevel_Ignore=>'Ignorieren')); + CreateProfile_Associations ('IPSShadowing_TempLevelOutOpen', array(22=>'Aussen <= 22°C', 23=>'<= 23°C', 24=>'<= 24°C', 25=>'<= 25°C', 26=>'<= 26°C', c_TempLevel_Ignore=>'Ignorieren')); + CreateProfile_Associations ('IPSShadowing_TempLevelInOpen', array(22=>'Innen <= 22°C', 23=>'<= 23°C', 24=>'<= 24°C', 25=>'<= 25°C', 26=>'<= 26°C', c_TempLevel_Ignore=>'Ignorieren')); + CreateProfile_Count ('IPSShadowing_Brightness', 0, 500, 50000, null, " Lux", null); CreateProfile_Count ('IPSShadowing_AzimuthBgn', 0, 5, 360, null, " °", null); CreateProfile_Count ('IPSShadowing_AzimuthEnd', 0, 5, 360, null, " °", null); @@ -308,6 +324,8 @@ $CategoryIdDevices = CreateCategory('Devices', $CategoryIdData, 20); + + // Profile Manager // ==================================================================================================================================== $CategoryIdProfiles = CreateCategory('Profiles', $CategoryIdData, 30); @@ -354,6 +372,30 @@ if (count($Profiles)==0) { $profileManager->CreateEndOfDay('Dämmerung'); } + //++Migration v2.50.2 --> 2.50.3 + $categoryIdTempProfiles = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.modules.IPSShadowing.Profiles.Temp'); + $categoryIdListTempProfiles = IPS_GetChildrenIDs($categoryIdTempProfiles); + foreach ($categoryIdListTempProfiles as $categoryIdTempProfile) { + CreateVariable(c_Control_TempLevelOutShadow, 1 /*Integer*/, $categoryIdTempProfile, 10, 'IPSShadowing_TempLevelOutShadow', $ScriptIdChangeSettings, c_TempLevel_Ignore, 'Temperature'); + CreateVariable(c_Control_TempLevelInShadow, 1 /*Integer*/, $categoryIdTempProfile, 20, 'IPSShadowing_TempLevelInShadow', $ScriptIdChangeSettings, c_TempLevel_Ignore, 'Temperature'); + CreateVariable(c_Control_TempLevelOutClose, 1 /*Integer*/, $categoryIdTempProfile, 30, 'IPSShadowing_TempLevelOutClose', $ScriptIdChangeSettings, c_TempLevel_Ignore, 'Temperature'); + CreateVariable(c_Control_TempLevelInClose, 1 /*Integer*/, $categoryIdTempProfile, 40, 'IPSShadowing_TempLevelInClose', $ScriptIdChangeSettings, c_TempLevel_Ignore, 'Temperature'); + CreateVariable(c_Control_TempLevelOutOpen, 1 /*Integer*/, $categoryIdTempProfile, 50, 'IPSShadowing_TempLevelOutOpen', $ScriptIdChangeSettings, c_TempLevel_Ignore, 'Temperature'); + CreateVariable(c_Control_TempLevelInOpen, 1 /*Integer*/, $categoryIdTempProfile, 60, 'IPSShadowing_TempLevelInOpen', $ScriptIdChangeSettings, c_TempLevel_Ignore, 'Temperature'); + $variableId = @IPS_GetObjectIDByName('TempDiffClosing', $categoryIdTempProfile); if ($variableId!==false) { IPS_DeleteVariable($variableId); } + $variableId = @IPS_GetObjectIDByName('TempDiffShadowing', $categoryIdTempProfile); if ($variableId!==false) { IPS_DeleteVariable($variableId); } + $variableId = @IPS_GetObjectIDByName('TempDiffOpening', $categoryIdTempProfile); if ($variableId!==false) { IPS_DeleteVariable($variableId); } + } + $profileId = GetValue($ControlIdProfileTempSelect); + $profile = new IPSShadowing_ProfileTemp($profileId); + $profile->Display($CategoryIdProfileTempDisplay); + $linkId = @IPS_GetObjectIDByName('Differenz Beschattung', $CategoryIdProfileTempDisplay); if ($linkId!==false) { IPS_DeleteLink($linkId); } + $linkId = @IPS_GetObjectIDByName('Differenz Abdunkelung', $CategoryIdProfileTempDisplay); if ($linkId!==false) { IPS_DeleteLink($linkId); } + $linkId = @IPS_GetObjectIDByName('Differenz Öffnen', $CategoryIdProfileTempDisplay); if ($linkId!==false) { IPS_DeleteLink($linkId); } + @IPS_DeleteVariableProfile('IPSShadowing_TempDiffShadowing'); + @IPS_DeleteVariableProfile('IPSShadowing_TempDiffClosing'); + @IPS_DeleteVariableProfile('IPSShadowing_TempDiffOpening'); + //--Migration v2.50.2 --> 2.50.3 // Scenario Manager // ==================================================================================================================================== @@ -407,6 +449,7 @@ $ControlIdPosition = CreateVariable(c_Control_Position, 1 /*Integer*/, $DeviceId, 90, 'IPSShadowing_Position', null, 0, 'Intensity'); $ControlIdManualChange = CreateVariable(c_Control_ManualChange, 0 /*Boolean*/, $DeviceId, 110, '~Switch', $ScriptIdChangeSettings, false, 'Warning'); $ControlIdTempChange = CreateVariable(c_Control_TempChange, 0 /*Boolean*/, $DeviceId, 120, '~Switch', null , false, 'Warning'); + $ControlIdTempLastPos = CreateVariable(c_Control_TempLastPos, 1 /*Integer*/, $DeviceId, 125, '', null , false, 'Information'); $ControlIdAutomatic = CreateVariable(c_Control_Automatic , 0 /*Boolean*/, $DeviceId, 130, '~Switch', $ScriptIdChangeSettings, false, 'Power'); $ControlIdTempProfile = CreateVariable(c_Control_ProfileTemp, 1 /*Integer*/, $DeviceId, 330, 'IPSShadowing_ProfileTemp', $ScriptIdChangeSettings, 0, 'Temperature'); @@ -555,7 +598,7 @@ $WebFrontScenariosIdTopL = CreateCategory( 'TopLeft', $WebFrontScenariosId, 10); $WebFrontScenariosIdTopR = CreateCategory( 'TopRight', $WebFrontScenariosId, 20); $WebFrontScenariosIdBot = CreateCategory( 'Bottom', $WebFrontScenariosId, 30); - CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem."_Scenarios", $WFC10_TabPaneItem, 30, 'Szenarien', 'Script', 0 /*Horizontal*/, 120 /*Hight*/, 0 /*Target=Pane1*/, 1/*UsePixel*/, 'true'); + CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem."_Scenarios", $WFC10_TabPaneItem, 30, 'Szenarien', 'Script', 0 /*Horizontal*/, 106 /*Hight*/, 0 /*Target=Pane1*/, 1/*UsePixel*/, 'true'); CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem."_ScenariosTop", $WFC10_TabPaneItem."_Scenarios", 10, '', '', 1 /*Vertical*/, 300/*Width*/, 1 /*Target=Pane2*/, 1/*UsePixel*/, 'true'); CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_ScenariosBot", $WFC10_TabPaneItem."_Scenarios", 20, '', '', $CategoryIdScenarioDisplay /*BaseId*/, 'false' /*BarBottomVisible*/); CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_ScenariosTopL",$WFC10_TabPaneItem."_ScenariosTop", 10, '', '', $WebFrontScenariosIdTopL /*BaseId*/, 'false' /*BarBottomVisible*/); @@ -588,29 +631,29 @@ $WebFrontProfilesId5BotR = CreateCategory( 'BottomRight', $WebFrontProfilesId5, 30); CreateWFCItemTabPane ($WFC10_ConfigId, $WFC10_TabPaneItem.'_Profiles', $WFC10_TabPaneItem, 40, 'Profile', 'Clock'); - CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles1", $WFC10_TabPaneItem.'_Profiles', 10, 'Temperatur', 'Temperature', 0 /*Horizontal*/, 120 /*Hight*/, 0 /*Target=Pane1*/, 1/*UsePixel*/, 'true'); + CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles1", $WFC10_TabPaneItem.'_Profiles', 10, 'Temperatur', 'Temperature', 0 /*Horizontal*/, 106 /*Hight*/, 0 /*Target=Pane1*/, 1/*UsePixel*/, 'true'); CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles1Top", $WFC10_TabPaneItem."_Profiles1", 10, '', '', 1 /*Vertical*/, 300/*Width*/, 1 /*Target=Pane2*/, 1/*UsePixel*/, 'true'); CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles1Bot", $WFC10_TabPaneItem."_Profiles1", 20, '', '', $CategoryIdProfileTempDisplay /*BaseId*/, 'false' /*BarBottomVisible*/); CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles1TopL",$WFC10_TabPaneItem."_Profiles1Top", 10, '', '', $WebFrontProfilesId1TopL /*BaseId*/, 'false' /*BarBottomVisible*/); CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles1TopR",$WFC10_TabPaneItem."_Profiles1Top", 20, '', '', $WebFrontProfilesId1TopR /*BaseId*/, 'false' /*BarBottomVisible*/); - CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles2", $WFC10_TabPaneItem.'_Profiles', 20, 'Sonnenstand', 'Sun', 0 /*Horizontal*/, 120 /*Hight*/, 0 /*Target=Pane1*/, 1/*UsePixel*/, 'true'); + CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles2", $WFC10_TabPaneItem.'_Profiles', 20, 'Sonnenstand', 'Sun', 0 /*Horizontal*/, 106 /*Hight*/, 0 /*Target=Pane1*/, 1/*UsePixel*/, 'true'); CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles2Top", $WFC10_TabPaneItem."_Profiles2", 10, '', '', 1 /*Vertical*/, 300/*Width*/, 1 /*Target=Pane2*/, 1/*UsePixel*/, 'true'); CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles2Bot", $WFC10_TabPaneItem."_Profiles2", 20, '', '', 1 /*Vertical*/, 420/*Width*/, 1 /*Target=Pane2*/, 1/*UsePixel*/, 'true'); CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles2BotL",$WFC10_TabPaneItem."_Profiles2Bot", 10, '', '', $CategoryIdProfileSunDisplay /*BaseId*/, 'false' /*BarBottomVisible*/); CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles2BotR",$WFC10_TabPaneItem."_Profiles2Bot", 20, '', '', $CategoryIdProfileSunGraphs /*BaseId*/, 'false' /*BarBottomVisible*/); CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles2TopL",$WFC10_TabPaneItem."_Profiles2Top", 10, '', '', $WebFrontProfilesId2TopL /*BaseId*/, 'false' /*BarBottomVisible*/); CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles2TopR",$WFC10_TabPaneItem."_Profiles2Top", 20, '', '', $WebFrontProfilesId2TopR /*BaseId*/, 'false' /*BarBottomVisible*/); - CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles3", $WFC10_TabPaneItem.'_Profiles', 20, 'Wetter', 'Drops', 0 /*Horizontal*/, 120 /*Hight*/, 0 /*Target=Pane1*/, 1/*UsePixel*/, 'true'); + CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles3", $WFC10_TabPaneItem.'_Profiles', 20, 'Wetter', 'Drops', 0 /*Horizontal*/, 106 /*Hight*/, 0 /*Target=Pane1*/, 1/*UsePixel*/, 'true'); CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles3Top", $WFC10_TabPaneItem."_Profiles3", 10, '', '', 1 /*Vertical*/, 300/*Width*/, 1 /*Target=Pane2*/, 1/*UsePixel*/, 'true'); CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles3Bot", $WFC10_TabPaneItem."_Profiles3", 20, '', '', $CategoryIdProfileWeatherDisplay /*BaseId*/, 'false' /*BarBottomVisible*/); CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles3TopL",$WFC10_TabPaneItem."_Profiles3Top", 10, '', '', $WebFrontProfilesId3TopL /*BaseId*/, 'false' /*BarBottomVisible*/); CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles3TopR",$WFC10_TabPaneItem."_Profiles3Top", 20, '', '', $WebFrontProfilesId3TopR /*BaseId*/, 'false' /*BarBottomVisible*/); - CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles4", $WFC10_TabPaneItem.'_Profiles', 20, 'Tagesbeginn', 'Clock', 0 /*Horizontal*/, 120 /*Hight*/, 0 /*Target=Pane1*/, 1/*UsePixel*/, 'true'); + CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles4", $WFC10_TabPaneItem.'_Profiles', 20, 'Tagesbeginn', 'Clock', 0 /*Horizontal*/, 106 /*Hight*/, 0 /*Target=Pane1*/, 1/*UsePixel*/, 'true'); CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles4Top", $WFC10_TabPaneItem."_Profiles4", 10, '', '', 1 /*Vertical*/, 300/*Width*/, 1 /*Target=Pane2*/, 1/*UsePixel*/, 'true'); CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles4Bot", $WFC10_TabPaneItem."_Profiles4", 20, '', '', $CategoryIdProfileBgnOfDayDisplay /*BaseId*/, 'false' /*BarBottomVisible*/); CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles4TopL",$WFC10_TabPaneItem."_Profiles4Top", 10, '', '', $WebFrontProfilesId4TopL /*BaseId*/, 'false' /*BarBottomVisible*/); CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles4TopR",$WFC10_TabPaneItem."_Profiles4Top", 20, '', '', $WebFrontProfilesId4TopR /*BaseId*/, 'false' /*BarBottomVisible*/); - CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles5", $WFC10_TabPaneItem.'_Profiles', 30, 'Tagesende', 'Clock', 0 /*Horizontal*/, 120 /*Hight*/, 0 /*Target=Pane1*/, 1/*UsePixel*/, 'true'); + CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles5", $WFC10_TabPaneItem.'_Profiles', 30, 'Tagesende', 'Clock', 0 /*Horizontal*/, 106 /*Hight*/, 0 /*Target=Pane1*/, 1/*UsePixel*/, 'true'); CreateWFCItemSplitPane ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles5Top", $WFC10_TabPaneItem."_Profiles5", 10, '', '', 1 /*Vertical*/, 300/*Width*/, 1 /*Target=Pane2*/, 1/*UsePixel*/, 'true'); CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles5Bot", $WFC10_TabPaneItem."_Profiles5", 20, '', '', $CategoryIdProfileEndOfDayDisplay /*BaseId*/, 'false' /*BarBottomVisible*/); CreateWFCItemCategory ($WFC10_ConfigId, $WFC10_TabPaneItem."_Profiles5TopL",$WFC10_TabPaneItem."_Profiles5Top", 10, '', '', $WebFrontProfilesId5TopL /*BaseId*/, 'false' /*BarBottomVisible*/); From c26b837b59be3cdc84b073d3c8bd88285849f3dc Mon Sep 17 00:00:00 2001 From: brownson Date: Sat, 30 Jun 2012 19:02:42 +0200 Subject: [PATCH 38/77] IPSLogger - Fixed Handling of "Fatal Errors" in PHPErrorHandler --- .../core/IPSLogger/IPSLogger_PhpErrorHandler.inc.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/IPSLibrary/app/core/IPSLogger/IPSLogger_PhpErrorHandler.inc.php b/IPSLibrary/app/core/IPSLogger/IPSLogger_PhpErrorHandler.inc.php index 548a4bd..34ae55c 100644 --- a/IPSLibrary/app/core/IPSLogger/IPSLogger_PhpErrorHandler.inc.php +++ b/IPSLibrary/app/core/IPSLogger/IPSLogger_PhpErrorHandler.inc.php @@ -28,27 +28,32 @@ function IPSLogger_PhpErrorHandler ($ErrType, $ErrMsg, $FileName, $LineNum, $Var require_once "IPSLogger.inc.php"; $ErrorDetails = c_lf." Error in Script ".$FileName." on Line ".$LineNum; + $FatalError = false; switch ($ErrType) { case E_ERROR: IPSLogger_Err("PHP", 'Error: '.$ErrMsg.$ErrorDetails); + $FatalError = true; break; case E_WARNING: IPSLogger_Err("PHP", 'Warning: '.$ErrMsg.$ErrorDetails); break; case E_PARSE: IPSLogger_Err("PHP", 'Parsing Error: '.$ErrMsg.$ErrorDetails); + $FatalError = true; break; case E_NOTICE: IPSLogger_Err("PHP", 'Notice: '.$ErrMsg.$ErrorDetails); break; case E_CORE_ERROR: IPSLogger_Err("PHP", 'Core Error: '.$ErrMsg.$ErrorDetails); + $FatalError = true; break; case E_CORE_WARNING: IPSLogger_Err("PHP", 'Core Warning: '.$ErrMsg.$ErrorDetails); break; case E_COMPILE_ERROR: IPSLogger_Err("PHP", 'Compile Error: '.$ErrMsg.$ErrorDetails); + $FatalError = true; break; case E_COMPILE_WARNING: IPSLogger_Err("PHP", 'Compile Warning: '.$ErrMsg.$ErrorDetails); @@ -67,12 +72,16 @@ function IPSLogger_PhpErrorHandler ($ErrType, $ErrMsg, $FileName, $LineNum, $Var break; default: IPSLogger_Err("PHP", 'Unknown Error: '.$ErrMsg.$ErrorDetails); + $FatalError = true; break; } - // Abort Processing + // Abort Processing during "Abort Flag" if (array_key_exists('ABORT_ON_ERROR', $_IPS) and $_IPS['ABORT_ON_ERROR']) { exit('Abort Processing during Error: '.$ErrMsg.$ErrorDetails); + // Abort Processing during "FATAL Error" + } elseif ($FatalError) { + exit('Abort Processing during Fatal-Error: '.$ErrMsg.$ErrorDetails); } else { return false; } From f89a4fc6d1874cb4b54bbfdf612452a584aa62a4 Mon Sep 17 00:00:00 2001 From: brownson Date: Sun, 1 Jul 2012 12:21:07 +0200 Subject: [PATCH 39/77] IPSShadowing - Corrected LastPos --- .../app/modules/IPSShadowing/IPSShadowing_Device.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php index ab4501c..e68acd5 100644 --- a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php @@ -238,7 +238,7 @@ public function MoveByProgram($ProgramId, $logMessage, $DimoutOption=null, $Trig private function GetMovementIdByPosition() { $shadowingType = $this->GetPropertyValue(c_Property_ShadowingType); $currentMovementId = $this->GetVariableValue(c_Control_Movement); - $currentPosition = $this->GetVariableValue(c_Control_TempChange, c_Control_Position); + $currentPosition = $this->GetVariableValue(c_Control_Position); if ($currentMovementId<>c_MovementId_Stop) { $lastPosition = $currentMovementId; From 1f68bf91f7038f98de2fb8585c6a58e23f445462 Mon Sep 17 00:00:00 2001 From: brownson Date: Sun, 1 Jul 2012 22:19:56 +0200 Subject: [PATCH 40/77] IPSShadowing - Corrected LastPos --- .../modules/IPSShadowing/IPSShadowing_Device.class.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php index e68acd5..159454d 100644 --- a/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php +++ b/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php @@ -204,6 +204,12 @@ public function MoveByProgram($ProgramId, $logMessage, $DimoutOption=null, $Trig case c_ProgramId_75: $DoBeMoved = c_MovementId_75; break; + case c_ProgramId_50: + $DoBeMoved = c_MovementId_50; + break; + case c_ProgramId_25: + $DoBeMoved = c_MovementId_25; + break; case c_ProgramId_Dimout: $DoBeMoved = c_MovementId_Dimout; break; @@ -219,8 +225,9 @@ public function MoveByProgram($ProgramId, $logMessage, $DimoutOption=null, $Trig break; case c_ProgramId_LastPosition: $DoBeMoved = $this->GetVariableValue(c_Control_TempLastPos); + break; default: - IPSLogger_Err(__file__, "Unknown Program $Program, DeviceId=".$this->DeviceId); + IPSLogger_Err(__file__, "Unknown ProgramId $ProgramId, DeviceId=".$this->DeviceId); exit; } if ($DoBeMoved<>$MovementStatus) { From 284fd83f791a8626668e98bcff4fa296856c148e Mon Sep 17 00:00:00 2001 From: brownson Date: Tue, 3 Jul 2012 19:58:13 +0200 Subject: [PATCH 41/77] IPSShadowing - Fixed Installation --- .../IPSShadowing_Installation.ips.php | 61 ++++++++++--------- 1 file changed, 32 insertions(+), 29 deletions(-) diff --git a/IPSLibrary/install/InstallationScripts/IPSShadowing_Installation.ips.php b/IPSLibrary/install/InstallationScripts/IPSShadowing_Installation.ips.php index 491aab2..7ccae15 100644 --- a/IPSLibrary/install/InstallationScripts/IPSShadowing_Installation.ips.php +++ b/IPSLibrary/install/InstallationScripts/IPSShadowing_Installation.ips.php @@ -122,10 +122,6 @@ $ScriptIdProfileEndOfDayCreate = IPS_GetScriptIDByName('IPSShadowing_ProfileEndOfDayCreate', $CategoryIdApp); $ScriptIdProfileEndOfDayDelete = IPS_GetScriptIDByName('IPSShadowing_ProfileEndOfDayDelete', $CategoryIdApp); - CreateTimer_OnceADay ('Reset', $ScriptIdResetTimer, 0, 5); - CreateTimer_CyclicBySeconds ('Refresh', $ScriptIdRefreshTimer, 1, false); - CreateTimer_CyclicByMinutes ('Program', $ScriptIdProgramTimer, 5); - // Create Circles and Controls // ---------------------------------------------------------------------------------------------------------------------------- $IPSShadowing_ProgNigJal = array( @@ -349,6 +345,33 @@ $CategoryIdProfileSunGraphs = CreateCategory('GraphsSun', $CategoryIdProfileManager, 200); $MediaIdAzimuth = CreateMedia ('Sonnenstand', $CategoryIdProfileSunGraphs, IPS_GetKernelDir().'media\\IPSShadowing_Azimuth.gif', false, 1, 'Sun'); + //++Migration v2.50.2 --> 2.50.3 + $categoryIdTempProfiles = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.modules.IPSShadowing.Profiles.Temp'); + $categoryIdListTempProfiles = IPS_GetChildrenIDs($categoryIdTempProfiles); + foreach ($categoryIdListTempProfiles as $categoryIdTempProfile) { + CreateVariable(c_Control_TempLevelOutShadow, 1 /*Integer*/, $categoryIdTempProfile, 10, 'IPSShadowing_TempLevelOutShadow', $ScriptIdChangeSettings, c_TempLevel_Ignore, 'Temperature'); + CreateVariable(c_Control_TempLevelInShadow, 1 /*Integer*/, $categoryIdTempProfile, 20, 'IPSShadowing_TempLevelInShadow', $ScriptIdChangeSettings, c_TempLevel_Ignore, 'Temperature'); + CreateVariable(c_Control_TempLevelOutClose, 1 /*Integer*/, $categoryIdTempProfile, 30, 'IPSShadowing_TempLevelOutClose', $ScriptIdChangeSettings, c_TempLevel_Ignore, 'Temperature'); + CreateVariable(c_Control_TempLevelInClose, 1 /*Integer*/, $categoryIdTempProfile, 40, 'IPSShadowing_TempLevelInClose', $ScriptIdChangeSettings, c_TempLevel_Ignore, 'Temperature'); + CreateVariable(c_Control_TempLevelOutOpen, 1 /*Integer*/, $categoryIdTempProfile, 50, 'IPSShadowing_TempLevelOutOpen', $ScriptIdChangeSettings, c_TempLevel_Ignore, 'Temperature'); + CreateVariable(c_Control_TempLevelInOpen, 1 /*Integer*/, $categoryIdTempProfile, 60, 'IPSShadowing_TempLevelInOpen', $ScriptIdChangeSettings, c_TempLevel_Ignore, 'Temperature'); + $variableId = @IPS_GetObjectIDByName('TempDiffClosing', $categoryIdTempProfile); if ($variableId!==false) { IPS_DeleteVariable($variableId); } + $variableId = @IPS_GetObjectIDByName('TempDiffShadowing', $categoryIdTempProfile); if ($variableId!==false) { IPS_DeleteVariable($variableId); } + $variableId = @IPS_GetObjectIDByName('TempDiffOpening', $categoryIdTempProfile); if ($variableId!==false) { IPS_DeleteVariable($variableId); } + } + $linkId = @IPS_GetObjectIDByName('Differenz Beschattung', $CategoryIdProfileTempDisplay); if ($linkId!==false) { IPS_DeleteLink($linkId); } + $linkId = @IPS_GetObjectIDByName('Differenz Abdunkelung', $CategoryIdProfileTempDisplay); if ($linkId!==false) { IPS_DeleteLink($linkId); } + $linkId = @IPS_GetObjectIDByName('Differenz Öffnen', $CategoryIdProfileTempDisplay); if ($linkId!==false) { IPS_DeleteLink($linkId); } + @IPS_DeleteVariableProfile('IPSShadowing_TempDiffShadowing'); + @IPS_DeleteVariableProfile('IPSShadowing_TempDiffClosing'); + @IPS_DeleteVariableProfile('IPSShadowing_TempDiffOpening'); + $profileId = GetValue($ControlIdProfileTempSelect); + if ($profileId<>0) { + $profile = new IPSShadowing_ProfileTemp($profileId); + $profile->Display($CategoryIdProfileTempDisplay); + } + //--Migration v2.50.2 --> 2.50.3 + $profileManager = new IPSShadowing_ProfileManager(); $profileManager->AssignAllProfileAssociations(); @@ -372,31 +395,6 @@ if (count($Profiles)==0) { $profileManager->CreateEndOfDay('Dämmerung'); } - //++Migration v2.50.2 --> 2.50.3 - $categoryIdTempProfiles = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.modules.IPSShadowing.Profiles.Temp'); - $categoryIdListTempProfiles = IPS_GetChildrenIDs($categoryIdTempProfiles); - foreach ($categoryIdListTempProfiles as $categoryIdTempProfile) { - CreateVariable(c_Control_TempLevelOutShadow, 1 /*Integer*/, $categoryIdTempProfile, 10, 'IPSShadowing_TempLevelOutShadow', $ScriptIdChangeSettings, c_TempLevel_Ignore, 'Temperature'); - CreateVariable(c_Control_TempLevelInShadow, 1 /*Integer*/, $categoryIdTempProfile, 20, 'IPSShadowing_TempLevelInShadow', $ScriptIdChangeSettings, c_TempLevel_Ignore, 'Temperature'); - CreateVariable(c_Control_TempLevelOutClose, 1 /*Integer*/, $categoryIdTempProfile, 30, 'IPSShadowing_TempLevelOutClose', $ScriptIdChangeSettings, c_TempLevel_Ignore, 'Temperature'); - CreateVariable(c_Control_TempLevelInClose, 1 /*Integer*/, $categoryIdTempProfile, 40, 'IPSShadowing_TempLevelInClose', $ScriptIdChangeSettings, c_TempLevel_Ignore, 'Temperature'); - CreateVariable(c_Control_TempLevelOutOpen, 1 /*Integer*/, $categoryIdTempProfile, 50, 'IPSShadowing_TempLevelOutOpen', $ScriptIdChangeSettings, c_TempLevel_Ignore, 'Temperature'); - CreateVariable(c_Control_TempLevelInOpen, 1 /*Integer*/, $categoryIdTempProfile, 60, 'IPSShadowing_TempLevelInOpen', $ScriptIdChangeSettings, c_TempLevel_Ignore, 'Temperature'); - $variableId = @IPS_GetObjectIDByName('TempDiffClosing', $categoryIdTempProfile); if ($variableId!==false) { IPS_DeleteVariable($variableId); } - $variableId = @IPS_GetObjectIDByName('TempDiffShadowing', $categoryIdTempProfile); if ($variableId!==false) { IPS_DeleteVariable($variableId); } - $variableId = @IPS_GetObjectIDByName('TempDiffOpening', $categoryIdTempProfile); if ($variableId!==false) { IPS_DeleteVariable($variableId); } - } - $profileId = GetValue($ControlIdProfileTempSelect); - $profile = new IPSShadowing_ProfileTemp($profileId); - $profile->Display($CategoryIdProfileTempDisplay); - $linkId = @IPS_GetObjectIDByName('Differenz Beschattung', $CategoryIdProfileTempDisplay); if ($linkId!==false) { IPS_DeleteLink($linkId); } - $linkId = @IPS_GetObjectIDByName('Differenz Abdunkelung', $CategoryIdProfileTempDisplay); if ($linkId!==false) { IPS_DeleteLink($linkId); } - $linkId = @IPS_GetObjectIDByName('Differenz Öffnen', $CategoryIdProfileTempDisplay); if ($linkId!==false) { IPS_DeleteLink($linkId); } - @IPS_DeleteVariableProfile('IPSShadowing_TempDiffShadowing'); - @IPS_DeleteVariableProfile('IPSShadowing_TempDiffClosing'); - @IPS_DeleteVariableProfile('IPSShadowing_TempDiffOpening'); - //--Migration v2.50.2 --> 2.50.3 - // Scenario Manager // ==================================================================================================================================== $CategoryIdScenarios = CreateCategory('Scenarios', $CategoryIdData, 40); @@ -483,6 +481,8 @@ } $Idx = $Idx + 10; } + $profileManager = new IPSShadowing_ProfileManager(); + $profileManager->AssignAllProfileAssociations(); $profileManager->CorrectDeletedDeviceProfiles(); // Register Events for Device Synchronization @@ -509,6 +509,9 @@ } } + CreateTimer_OnceADay ('Reset', $ScriptIdResetTimer, 0, 5); + CreateTimer_CyclicBySeconds ('Refresh', $ScriptIdRefreshTimer, 1, false); + CreateTimer_CyclicByMinutes ('Program', $ScriptIdProgramTimer, 5); // ---------------------------------------------------------------------------------------------------------------------------- // Webfront Definition From 1badfd0939a944a3a012d1959f02f991619724c9 Mon Sep 17 00:00:00 2001 From: brownson Date: Wed, 18 Jul 2012 20:33:30 +0200 Subject: [PATCH 42/77] IPSWeatherForcastAT - Correct Extract of Forcast Text --- .../IPSWeatherForcastAT/IPSWeatherForcastAT_Refresh.ips.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IPSLibrary/app/modules/Weather/IPSWeatherForcastAT/IPSWeatherForcastAT_Refresh.ips.php b/IPSLibrary/app/modules/Weather/IPSWeatherForcastAT/IPSWeatherForcastAT_Refresh.ips.php index 191991b..5c57f7f 100644 --- a/IPSLibrary/app/modules/Weather/IPSWeatherForcastAT/IPSWeatherForcastAT_Refresh.ips.php +++ b/IPSLibrary/app/modules/Weather/IPSWeatherForcastAT/IPSWeatherForcastAT_Refresh.ips.php @@ -94,7 +94,7 @@ // Wetter für Niederösterreich von ORF auslesen $lHTML=file_get_contents(IPSWEATHERFAT_ORF_URL); - $forcast = ExtractData($lHTML, '
', '

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 literal 0 HcmV?d00001 diff --git a/IPSLibrary/docu/Screenshots/IPSShadowing_WFProfileSun.png b/IPSLibrary/docu/Screenshots/IPSShadowing_WFProfileSun.png new file mode 100644 index 0000000000000000000000000000000000000000..00705473c8dbf83390f98f6d28f2ea5e41802d15 GIT binary patch literal 120107 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