From 1395d168be33d185b4732817cebfca14677d5143 Mon Sep 17 00:00:00 2001 From: uwekaditz <55511593+uwekaditz@users.noreply.github.com> Date: Sun, 8 Dec 2019 16:20:16 +0100 Subject: [PATCH 01/14] [P092] New PlugIn to decode the DL-Bus The DL-Bus is used in heating control units e.g. sold by Technische Alternative (www.ta.co.at). The idea for this plug-in is based on Martin Kropf's project UVR31_RF24 (https://github.com/martinkropf/UVR31_RF24) The plug-in is tested and workis fine for the ESR21 device. The plug-in should be also able to decode the information from the UVR31, UVR1611 and UVR 61-3 devices but not tested yet. The selected input needs a voltage divider as follows because the DL-Bus runs on 12 volts. --- src/ESPEasy.ino | 2 +- src/_P092_DLbus.ino | 1180 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1181 insertions(+), 1 deletion(-) create mode 100644 src/_P092_DLbus.ino diff --git a/src/ESPEasy.ino b/src/ESPEasy.ino index af35f205e..64df9d2fb 100644 --- a/src/ESPEasy.ino +++ b/src/ESPEasy.ino @@ -81,7 +81,7 @@ // BMP280 I2C Barometric Pressure sensor // SHT1X temperature/humidity sensors // Ser2Net server - +// DL-Bus (Technische Alternative) // Define globals before plugin sets to allow a personal override of the selected plugins #include "ESPEasy-Globals.h" diff --git a/src/_P092_DLbus.ino b/src/_P092_DLbus.ino new file mode 100644 index 000000000..12fa61379 --- /dev/null +++ b/src/_P092_DLbus.ino @@ -0,0 +1,1180 @@ +#ifdef USES_P092 + +//####################################################################################################### +//########################### Plugin 092: DL-bus from Technische Alternative ############################ +//####################################################################################################### + +/**************************************************\ + This plug-in reads and decodes the DL-Bus. + The DL-Bus is used in heating control units e.g. sold by Technische Alternative (www.ta.co.at). + + The idea for this plug-in is based on Martin Kropf's project UVR31_RF24 (https://github.com/martinkropf/UVR31_RF24) + + The plug-in is tested and workis fine for the ESR21 device. + The plug-in should be also able to decode the information from the + UVR31, UVR1611 and UVR 61-3 devices. + + The selected input needs a voltage divider as follows because the DL-Bus runs on 12 volts. + DLbus@12V - 8k6 - input@3.3V - 3k3 - ground +\**************************************************/ + +#define PLUGIN_092 +#define PLUGIN_ID_092 92 +//#define PLUGIN_092_DEBUG // additional debug messages in the log +#define PLUGIN_NAME_092 "Heating - DL-Bus (Technische Alternative)" +#define PLUGIN_VALUENAME1_092 "Value" + +#define P092_DLbus_OptionCount 8 +#define P092_DLbus_ValueCount 1 +#define P092_DLbus_DeviceCount 5 + +void P092_Pin_changed() ICACHE_RAM_ATTR; +volatile byte P092_DLB_Pin; +volatile boolean P092_receiving = false; // receiving flag +boolean P092_init = false; +boolean P092_ReceivedOK = false; +unsigned long P092_LastReceived = 0; +byte P092_MaxIdx[P092_DLbus_OptionCount]; +int P092_ValueType[P092_DLbus_ValueCount]; +int P092_ValueIdx[P092_DLbus_ValueCount]; +struct DataStruct +{ + byte DataBytes; + byte DeviceByte0; + byte DeviceByte1; + byte DeviceBytes; + byte DontCareBytes; + byte TimeStampBytes; + byte MaxSensors; + byte MaxExtSensors; + byte OutputBytes; + byte SpeedBytes; + byte AnalogBytes; + byte VolumeBytes; + byte MaxHeatMeters; + byte CurrentHmBytes; + byte MWhBytes; + + uint16_t MinPulseWidth; + uint16_t MaxPulseWidth; + uint16_t MinDoublePulseWidth; + uint16_t MaxDoublePulseWidth; + byte IdxSensor; + byte IdxExtSensor; + byte IdxOutput; + byte IdxDrehzahl; + byte IdxAnalog; + byte IdxHmRegister; + byte IdxVolume; + byte IdxHeatMeter1; + byte IdxkWh1; + byte IdxMWh1; + byte IdxHeatMeter2; + byte IdxkWh2; + byte IdxMWh2; + byte IdxHeatMeter3; + byte IdxkWh3; + byte IdxMWh3; + byte IdxCRC; +} DataSettings; + +typedef struct { + byte Idx; + byte mode; + float value; +} data_t; +data_t ReadData; + +int P092_OptionTypes[P092_DLbus_OptionCount] = { + // Index der Variablen + 0, //F("None") + 1, //F("Sensor") + 2, //F("Ext. sensor") + 3, //F("Digital output") + 4, //F("Speed step") + 5, //F("Analog output") + 6, //F("Heat power (kW)") + 7 //F("Heat meter (MWh)") +}; + +int P092_OptionValueDecimals[P092_DLbus_OptionCount] = { + // Dezimalstellen der Variablen + 0, //F("None") + 1, //[0,1°C] F("Sensor") + 1, //[0,1°C] F("Ext. sensor") + 0, // F("Digital output") + 0, // F("Speed step") + 1, //[0,1V] F("Analog output") + 1, //[0,1kW] F("Heat power (kW)") Attention: UVR1611 in 0,01kW + 4 //[0,0001MWh] F("Heat meter (MWh)") +}; + +// decoding the manchester code +// pulse width @ 488hz: 1000ms/488 = 2,048ms = 2048µs +// 2048µs / 2 = 1024µs (2 pulses for one bit) +// pulse width @ 50hz: 1000ms/50 = 20ms = 20000µs +// 20000µs / 2 = 10000µs (2 pulses for one bit) +#define P092_pulse_width_488 1024 // µs +#define P092_pulse_width_50 10000 // µs + +// % tolerance for variances at the pulse width +#define P092_percentage_variance 10 +// 1001 or 0110 are two sequential pulses without transition +#define P092_double_pulse_width_488 (P092_pulse_width_488 * 2) +#define P092_double_pulse_width_50 (P092_pulse_width_50 * 2) + +// calculating the tolerance limits for variances +#define P092_min_width_488 (P092_pulse_width_488 - (P092_pulse_width_488 * P092_percentage_variance / 100)) +#define P092_max_width_488 (P092_pulse_width_488 + (P092_pulse_width_488 * P092_percentage_variance / 100)) +#define P092_double_min_width_488 (P092_double_pulse_width_488 - (P092_pulse_width_488 * P092_percentage_variance / 100)) +#define P092_double_max_width_488 (P092_double_pulse_width_488 + (P092_pulse_width_488 * P092_percentage_variance / 100)) +#define P092_min_width_50 (P092_pulse_width_50 - (P092_pulse_width_50 * P092_percentage_variance / 100)) +#define P092_max_width_50 (P092_pulse_width_50 + (P092_pulse_width_50 * P092_percentage_variance / 100)) +#define P092_double_min_width_50 (P092_double_pulse_width_50 - (P092_pulse_width_50 * P092_percentage_variance / 100)) +#define P092_double_max_width_50 (P092_double_pulse_width_50 + (P092_pulse_width_50 * P092_percentage_variance / 100)) + +boolean Plugin_092(byte function, struct EventStruct *event, String& string) +{ + boolean success = false; + int OptionIdx, CurIdx; + const String plugin_092_Values[P092_DLbus_ValueCount] = { + F("p092_Value") + }; + const String plugin_092_Indizes[P092_DLbus_ValueCount] = { + F("p092_Idx") + }; + + + switch (function) + { + case PLUGIN_DEVICE_ADD: + { + Device[++deviceCount].Number = PLUGIN_ID_092; + Device[deviceCount].Type = DEVICE_TYPE_SINGLE; + Device[deviceCount].VType = SENSOR_TYPE_SINGLE; + Device[deviceCount].Ports = 0; + Device[deviceCount].PullUpOption = false; + Device[deviceCount].InverseLogicOption = false; + Device[deviceCount].FormulaOption = false; + Device[deviceCount].ValueCount = P092_DLbus_ValueCount; + Device[deviceCount].SendDataOption = true; + Device[deviceCount].TimerOption = true; + Device[deviceCount].GlobalSyncOption = true; + Device[deviceCount].DecimalsOnly = true; + break; + } + + case PLUGIN_GET_DEVICENAME: + { + string = F(PLUGIN_NAME_092); + break; + } + + case PLUGIN_GET_DEVICEVALUENAMES: + { + strcpy_P(ExtraTaskSettings.TaskDeviceValueNames[0], PSTR(PLUGIN_VALUENAME1_092)); + break; + } + + case PLUGIN_WEBFORM_LOAD: + { + const String plugin_092_ValueNames[P092_DLbus_ValueCount] = { + F(PLUGIN_VALUENAME1_092) + }; + const String Options[P092_DLbus_OptionCount] = { + F("None"), + F("Sensor"), + F("Ext. sensor"), + F("Digital output"), + F("Speed step"), + F("Analog output"), + F("Heat power (kW)"), + F("Heat meter (MWh)") + }; + const String Devices[P092_DLbus_DeviceCount] = { F("ESR21"), F("UVR31"), F("UVR1611"), F("UVR 61-3 (bis V8.2)"), F("UVR 61-3 (ab V8.3)") }; + int DevTypes[P092_DLbus_DeviceCount] = { 21, 31, 1611, 6132, 6133 }; + + addFormSelector(F("DL-Bus Type"), F("p092_dlbtype"), P092_DLbus_DeviceCount, Devices, DevTypes, NULL, PCONFIG(0), true ); + + // Calculation of the max indices for each sensor type + switch (PCONFIG(0)) { + case 21: //ESR21 + P092_MaxIdx[0] = 0; // None + P092_MaxIdx[1] = 3; // Sensor + P092_MaxIdx[2] = 6; // Ext. sensor + P092_MaxIdx[3] = 1; // Digital output + P092_MaxIdx[4] = 1; // Speed step + P092_MaxIdx[5] = 1; // Analog output + P092_MaxIdx[6] = 1; // Heat power (kW) + P092_MaxIdx[7] = 1; // Heat meter (MWh) + break; + case 31: //UVR31 + P092_MaxIdx[0] = 0; // None + P092_MaxIdx[1] = 3; // Sensor + P092_MaxIdx[2] = 0; // Ext. sensor + P092_MaxIdx[3] = 1; // Digital output + P092_MaxIdx[4] = 0; // Speed step + P092_MaxIdx[5] = 0; // Analog output + P092_MaxIdx[6] = 0; // Heat power (kW) + P092_MaxIdx[7] = 0; // Heat meter (MWh) + break; + case 1611: //UVR1611 + P092_MaxIdx[0] = 0; // None + P092_MaxIdx[1] = 16; // Sensor + P092_MaxIdx[2] = 0; // Ext. sensor + P092_MaxIdx[3] = 13; // Digital output + P092_MaxIdx[4] = 4; // Speed step + P092_MaxIdx[5] = 0; // Analog output + P092_MaxIdx[6] = 2; // Heat power (kW) + P092_MaxIdx[7] = 2; // Heat meter (MWh) + break; + case 6132: //UVR 61-3 (bis V8.2) + P092_MaxIdx[0] = 0; // None + P092_MaxIdx[1] = 6; // Sensor + P092_MaxIdx[2] = 0; // Ext. sensor + P092_MaxIdx[3] = 8; // Digital output + P092_MaxIdx[4] = 1; // Speed step + P092_MaxIdx[5] = 1; // Analog output + P092_MaxIdx[6] = 1; // Heat power (kW) + P092_MaxIdx[7] = 1; // Heat meter (MWh) + break; + case 6133: //UVR 61-3 (ab V8.3) + P092_MaxIdx[0] = 0; // None + P092_MaxIdx[1] = 6; // Sensor + P092_MaxIdx[2] = 9; // Ext. sensor + P092_MaxIdx[3] = 3; // Digital output + P092_MaxIdx[4] = 1; // Speed step + P092_MaxIdx[5] = 2; // Analog output + P092_MaxIdx[6] = 3; // Heat power (kW) + P092_MaxIdx[7] = 3; // Heat meter (MWh) + break; + } + + addFormSubHeader(F("Inputs")); + + for (int i = 0; i < P092_DLbus_ValueCount; i++) { + P092_ValueType[i] = PCONFIG(i + 1) >> 8; + P092_ValueIdx[i] = PCONFIG(i + 1) & 0x00FF; + + addFormSelector(plugin_092_ValueNames[i], plugin_092_Values[i], P092_DLbus_OptionCount, Options, P092_OptionTypes, NULL, P092_ValueType[i], true); + if (P092_MaxIdx[P092_ValueType[i]] > 1) { + CurIdx = P092_ValueIdx[i]; + if (CurIdx < 1) { + CurIdx = 1; + } + if (CurIdx > P092_MaxIdx[P092_ValueType[i]]) { + CurIdx = P092_MaxIdx[P092_ValueType[i]]; + } + addHtml(F(" Index: ")); + addNumericBox(plugin_092_Indizes[i], CurIdx, 1, P092_MaxIdx[P092_ValueType[i]]); + } + } + + UserVar[event->BaseVarIndex] = NAN; + + success = true; + break; + } + + case PLUGIN_WEBFORM_SAVE: + { + PCONFIG(0) = getFormItemInt(F("p092_dlbtype")); + Plugin_092_SetIndices(PCONFIG(0)); + + for (int i = 0; i < P092_DLbus_ValueCount; i++) { + OptionIdx = getFormItemInt(plugin_092_Values[i]); + CurIdx = getFormItemInt(plugin_092_Indizes[i]); + if (CurIdx < 1) { + CurIdx = 1; + } + PCONFIG(i + 1) = (OptionIdx << 8) + CurIdx; + ExtraTaskSettings.TaskDeviceValueDecimals[event->BaseVarIndex + i] = P092_OptionValueDecimals[OptionIdx]; + } + +#ifdef PLUGIN_092_DEBUG + if (loglevelActiveFor(LOG_LEVEL_INFO)) { + P092_DLB_Pin = CONFIG_PIN1; + + String log = F("PLUGIN_WEBFORM_SAVE :"); + log += F(" DLB_Pin:"); + log += P092_DLB_Pin; + log += F(" MinPulseWidth:"); + log += DataSettings.MinPulseWidth; + log += F(" MaxPulseWidth:"); + log += DataSettings.MaxPulseWidth; + log += F(" MinDoublePulseWidth:"); + log += DataSettings.MinDoublePulseWidth; + log += F(" MaxDoublePulseWidth:"); + log += DataSettings.MaxDoublePulseWidth; + log += F(" IdxSensor:"); + log += DataSettings.IdxSensor; + log += F(" IdxExtSensor:"); + log += DataSettings.IdxExtSensor; + log += F(" IdxOutput:"); + log += DataSettings.IdxOutput; + if (DataSettings.SpeedBytes > 0) { + log += F(" IdxDrehzahl:"); + log += DataSettings.IdxDrehzahl; + } + if (DataSettings.AnalogBytes > 0) { + log += F(" IdxAnalog:"); + log += DataSettings.IdxAnalog; + } + if (DataSettings.MaxHeatMeters > 0) { + log += F(" IdxHmRegister:"); + log += DataSettings.IdxHmRegister; + } + if (DataSettings.VolumeBytes > 0) { + log += F(" IdxVolume:"); + log += DataSettings.IdxVolume; + } + if (DataSettings.MaxHeatMeters > 0) { + log += F(" IdxHM1:"); + log += DataSettings.IdxHeatMeter1; + log += F(" IdxkWh1:"); + log += DataSettings.IdxkWh1; + log += F(" IdxMWh1:"); + log += DataSettings.IdxMWh1; + } + if (DataSettings.MaxHeatMeters > 1) { + log += F(" IdxHM2:"); + log += DataSettings.IdxHeatMeter2; + log += F(" IdxkWh2:"); + log += DataSettings.IdxkWh2; + log += F(" IdxMWh2:"); + log += DataSettings.IdxMWh2; + } + if (DataSettings.MaxHeatMeters > 2) { + log += F(" IdxHM3:"); + log += DataSettings.IdxHeatMeter3; + log += F(" IdxkWh3:"); + log += DataSettings.IdxkWh3; + log += F(" IdxMWh3:"); + log += DataSettings.IdxMWh3; + } + log += F(" IdxCRC:"); + log += DataSettings.IdxCRC; + addLog(LOG_LEVEL_INFO, log); + } +#endif // PLUGIN_092_DEBUG + UserVar[event->BaseVarIndex] = NAN; + success = true; + break; + } + + case PLUGIN_INIT: + { + if (P092_init) { + addLog(LOG_LEVEL_ERROR, F("P092_init -> Already done!")); + return true; + } + P092_init = true; + addLog(LOG_LEVEL_ERROR, F("P092_init: attachInterrupt")); + P092_DLB_Pin = CONFIG_PIN1; + pinMode(P092_DLB_Pin, INPUT_PULLUP); + P092_receiving = false; + // on a CHANGE on the data pin P092_Pin_changed is called + attachInterrupt(digitalPinToInterrupt(P092_DLB_Pin), P092_Pin_changed, CHANGE); + UserVar[event->BaseVarIndex] = NAN; + success = true; + break; + } + + case PLUGIN_READ: + { + addLog(LOG_LEVEL_ERROR, F("PLUGIN_092_READ")); + if (P092_DLB_Pin != CONFIG_PIN1) { + String log = F("## Error DL-Bus: Device Pin setting not correct!"); + log += F(" DLB_Pin:"); + log += P092_DLB_Pin; + log += F(" Setting:"); + log += CONFIG_PIN1; + addLog(LOG_LEVEL_ERROR, log); + return false; + } + if (WiFi.status() != WL_CONNECTED) { + addLog(LOG_LEVEL_ERROR, F("## Error DL-Bus: WiFi not connected!")); + return false; + } + if (P092_receiving) { + addLog(LOG_LEVEL_ERROR, F("## Error DL-Bus: Still P092_receiving!")); + return false; + } + if (P092_init == false) { + addLog(LOG_LEVEL_ERROR, F("## Error DL-Bus: Not initialized!")); + return false; + } + Plugin_092_SetIndices(PCONFIG(0)); + + if ((P092_ReceivedOK == false) || ((millis()-P092_LastReceived)>(Settings.TaskDeviceTimer[event->TaskIndex] * 1000/2))) { + success = Plugin_092_Receiving(); + if (success) + success = P092_Processing(); + if (success) + success = P092_CheckCRC(); + if (success) + P092_LastReceived = millis(); + P092_ReceivedOK = success; + } + else + success = true; + if (success) + { + for (int i = 0; i < P092_DLbus_ValueCount; i++) { + OptionIdx = PCONFIG(i + 1) >> 8; + CurIdx = PCONFIG(i + 1) & 0x00FF; + if (P092_GetData(OptionIdx, CurIdx)) { + UserVar[event->BaseVarIndex + i] = ReadData.value; + } + else { + addLog(LOG_LEVEL_ERROR, F("Error: No reading!")); + } + } + } + else + addLog(LOG_LEVEL_ERROR, F("## Error DL-Bus: No reading!")); + break; + } + } + return success; +} + +void Plugin_092_SetIndices(int DeviceIndex) { + // Set the indices for the DL bus packet + switch (DeviceIndex) { + case 21: //ESR21 + DataSettings.DataBytes = 31; + DataSettings.MinPulseWidth = P092_min_width_488; + DataSettings.MaxPulseWidth = P092_max_width_488; + DataSettings.MinDoublePulseWidth = P092_double_min_width_488; + DataSettings.MaxDoublePulseWidth = P092_double_max_width_488; + + DataSettings.DeviceByte0 = 0x70; + DataSettings.DeviceByte1 = 0x8F; + DataSettings.DeviceBytes = 2; + DataSettings.DontCareBytes = 0; + DataSettings.TimeStampBytes = 0; + DataSettings.MaxSensors = 3; + DataSettings.MaxExtSensors = 6; + DataSettings.OutputBytes = 1; + DataSettings.SpeedBytes = 1; + DataSettings.AnalogBytes = 1; + DataSettings.VolumeBytes = 0; + DataSettings.MaxHeatMeters = 1; + DataSettings.CurrentHmBytes = 2; + DataSettings.MWhBytes = 2; + DataSettings.IdxCRC = 30; + + P092_OptionValueDecimals[6] = 1; //[0,1kW] F("Heat power (kW)") + break; + case 31: //UVR31 + DataSettings.DataBytes = 8; + DataSettings.MinPulseWidth = P092_min_width_50; + DataSettings.MaxPulseWidth = P092_max_width_50; + DataSettings.MinDoublePulseWidth = P092_double_min_width_50; + DataSettings.MaxDoublePulseWidth = P092_double_max_width_50; + + DataSettings.DeviceByte0 = 0x30; + DataSettings.DeviceByte1 = 0; + DataSettings.DeviceBytes = 1; + DataSettings.DontCareBytes = 0; + DataSettings.TimeStampBytes = 0; + DataSettings.MaxSensors = 3; + DataSettings.MaxExtSensors = 0; + DataSettings.OutputBytes = 1; + DataSettings.SpeedBytes = 0; + DataSettings.AnalogBytes = 0; + DataSettings.VolumeBytes = 0; + DataSettings.MaxHeatMeters = 0; + DataSettings.CurrentHmBytes = 0; + DataSettings.MWhBytes = 0; + DataSettings.IdxCRC = 0; + break; + case 1611: //UVR1611 + DataSettings.DataBytes = 64; + DataSettings.MinPulseWidth = P092_min_width_488; + DataSettings.MaxPulseWidth = P092_max_width_488; + DataSettings.MinDoublePulseWidth = P092_double_min_width_488; + DataSettings.MaxDoublePulseWidth = P092_double_max_width_488; + + DataSettings.DeviceByte0 = 0x80; + DataSettings.DeviceByte1 = 0x7F; + DataSettings.DeviceBytes = 2; + DataSettings.DontCareBytes = 1; + DataSettings.TimeStampBytes = 5; + DataSettings.MaxSensors = 16; + DataSettings.MaxExtSensors = 0; + DataSettings.OutputBytes = 2; + DataSettings.SpeedBytes = 4; + DataSettings.AnalogBytes = 0; + DataSettings.VolumeBytes = 0; + DataSettings.MaxHeatMeters = 2; + DataSettings.CurrentHmBytes = 4; + DataSettings.MWhBytes = 2; + DataSettings.IdxCRC = 63; + + P092_OptionValueDecimals[6] = 2; //[0,01kW] F("Heat power (kW)") + break; + case 6132: //UVR 61-3 (up to V8.2) + DataSettings.DataBytes = 35; + DataSettings.MinPulseWidth = P092_min_width_488; + DataSettings.MaxPulseWidth = P092_max_width_488; + DataSettings.MinDoublePulseWidth = P092_double_min_width_488; + DataSettings.MaxDoublePulseWidth = P092_double_max_width_488; + + DataSettings.DeviceByte0 = 0x90; + DataSettings.DeviceByte1 = 0x6F; + DataSettings.DeviceBytes = 2; + DataSettings.DontCareBytes = 1; + DataSettings.TimeStampBytes = 5; + DataSettings.MaxSensors = 6; + DataSettings.MaxExtSensors = 0; + DataSettings.OutputBytes = 1; + DataSettings.SpeedBytes = 1; + DataSettings.AnalogBytes = 1; + DataSettings.VolumeBytes = 2; + DataSettings.MaxHeatMeters = 1; + DataSettings.CurrentHmBytes = 2; + DataSettings.MWhBytes = 4; + DataSettings.IdxCRC = 34; + + P092_OptionValueDecimals[6] = 1; //[0,1kW] F("Heat power (kW)") + break; + case 6133: //UVR 61-3 (from V8.3) + DataSettings.DataBytes = 62; + DataSettings.MinPulseWidth = P092_min_width_488; + DataSettings.MaxPulseWidth = P092_max_width_488; + DataSettings.MinDoublePulseWidth = P092_double_min_width_488; + DataSettings.MaxDoublePulseWidth = P092_double_max_width_488; + + DataSettings.DeviceByte0 = 0x90; + DataSettings.DeviceByte1 = 0x9F; + DataSettings.DeviceBytes = 2; + DataSettings.DontCareBytes = 1; + DataSettings.TimeStampBytes = 5; + DataSettings.MaxSensors = 6; + DataSettings.MaxExtSensors = 9; + DataSettings.OutputBytes = 1; + DataSettings.SpeedBytes = 1; + DataSettings.AnalogBytes = 2; + DataSettings.VolumeBytes = 0; + DataSettings.MaxHeatMeters = 3; + DataSettings.CurrentHmBytes = 2; + DataSettings.MWhBytes = 2; + DataSettings.IdxCRC = 61; + + P092_OptionValueDecimals[6] = 1; //[0,1kW] F("Heat power (kW)") + break; + } + DataSettings.IdxSensor = DataSettings.DeviceBytes + DataSettings.DontCareBytes + DataSettings.TimeStampBytes; + DataSettings.IdxExtSensor = DataSettings.IdxSensor + 2 * DataSettings.MaxSensors; + DataSettings.IdxOutput = DataSettings.IdxExtSensor + 2 * DataSettings.MaxExtSensors; + DataSettings.IdxDrehzahl = DataSettings.IdxOutput + DataSettings.OutputBytes; + DataSettings.IdxAnalog = DataSettings.IdxDrehzahl + DataSettings.SpeedBytes; + DataSettings.IdxHmRegister = DataSettings.IdxAnalog + DataSettings.AnalogBytes; + DataSettings.IdxVolume = DataSettings.IdxHmRegister + 1; + DataSettings.IdxHeatMeter1 = DataSettings.IdxVolume + DataSettings.VolumeBytes; + DataSettings.IdxkWh1 = DataSettings.IdxHeatMeter1 + DataSettings.CurrentHmBytes; + DataSettings.IdxMWh1 = DataSettings.IdxkWh1 + 2; + DataSettings.IdxHeatMeter2 = DataSettings.IdxMWh1 + DataSettings.MWhBytes; + DataSettings.IdxkWh2 = DataSettings.IdxHeatMeter2 + DataSettings.CurrentHmBytes; + DataSettings.IdxMWh2 = DataSettings.IdxkWh2 + 2; + DataSettings.IdxHeatMeter3 = DataSettings.IdxMWh2 + DataSettings.MWhBytes; + DataSettings.IdxkWh3 = DataSettings.IdxHeatMeter3 + DataSettings.CurrentHmBytes; + DataSettings.IdxMWh3 = DataSettings.IdxkWh3 + 2; +} +/*********************************************************************************************\ + DLBus subs to get values from the P092_receiving bitstream +\*********************************************************************************************/ +// one data frame has data bytes + SYNC, e.g. 64 * (8+1+1) + 16 = 656 +// 656 * 2 = 1312 (twice as much as a data frame is saved +// so there's one complete data frame + +#define MaxDataBytes 64 +#define AdditionalRecBytes 2 +#define MaxDataBits (((MaxDataBytes + AdditionalRecBytes) * (8 + 1 + 1) + 16) * 4) +volatile byte BitStream[MaxDataBits]; // received bit stream +volatile int pulse_count; // number of received pulses +volatile int pulse_number; // max naumber of the received pulses +volatile unsigned long last_bit_change = 0; // remember the last transition +volatile word MinPulseWidth, MaxPulseWidth, MinDoublePulseWidth, MaxDoublePulseWidth; +volatile unsigned long TimeInMicros; // current time in µs +volatile unsigned long time_diff; // time difference to previous pulse in µs + +byte ByteStream[MaxDataBits / 8 + 1]; // every bit gets sorted into a bitmap +int bit_number; // bit size of the data frame + +byte WrongTimeCnt; +word WrongTimings[5][6]; + +int start_bit; // first bit of data frame + +// sensor types +#define UNUSED 0b000 +#define DIGITAL 0b001 +#define TEMP 0b010 +#define VOLUME_FLOW 0b011 +#define RAYS 0b110 +#define ROOM 0b111 + +// room sensor modes +#define AUTO 0b00 +#define NORMAL 0b01 +#define LOWER 0b10 +#define STANDBY 0b11 + +// Flags for pulse width +#define flgSingleWidth 0x02 +#define flgDoubleWidth 0x04 + +// Types for guessing +#define GuessTrueAndDouble 0x01 +#define GuessFalseAndDouble 0x02 +#define GuessTrueAndSingle 0x03 +#define GuessFalseAndSingle 0x04 + +// heat meter +int power_index, kwh_index, mwh_index; + +/****************\ + DLBus P092_receiving +\****************/ + +boolean Plugin_092_Receiving(void) { + byte rawval, val; + int i; + noInterrupts (); // make sure we don't get interrupted before we are ready + pulse_count = 0; + pulse_number = (((DataSettings.DataBytes + AdditionalRecBytes) * (8 + 1 + 1) + 16) * 4); + MinPulseWidth = DataSettings.MinPulseWidth; + MaxPulseWidth = DataSettings.MaxPulseWidth; + MinDoublePulseWidth = DataSettings.MinDoublePulseWidth; + MaxDoublePulseWidth = DataSettings.MaxDoublePulseWidth; + addLog(LOG_LEVEL_INFO, F("P092_receiving ...")); + P092_receiving = true; + interrupts (); // interrupts allowed now, next instruction WILL be executed + unsigned long start=millis(); + while ((millis()-start)<100) { + // wait 100 ms + yield(); + } + if (pulse_count == 0) { + // nothing received + P092_receiving = false; + addLog(LOG_LEVEL_ERROR, F("Error: Nothing received! No DL bus connected!")); + return false; + } + while (P092_receiving) { + // wait for end of P092_receiving + yield(); + } + addLog(LOG_LEVEL_INFO, F("Receive stopped.")); + + WrongTimeCnt = 0; + pulse_count = 0; + for (i = 0; i <= pulse_number; i++) { + // store BitStream into ByteStream + rawval = BitStream[i]; + if ((rawval & 0xF0) != 0) { + // wrong time_diff + if ((pulse_count > 0) && (WrongTimeCnt < 5)) { + WrongTimings[WrongTimeCnt][0] = i; + WrongTimings[WrongTimeCnt][1] = pulse_count; + WrongTimings[WrongTimeCnt][2] = bit_number; + WrongTimings[WrongTimeCnt][3] = rawval; + if ((rawval==0x80) && (BitStream[i-1]==0x05)) { + // Add two additional short pulses + P092_process_bit(0); + P092_process_bit(1); + WrongTimings[WrongTimeCnt][4] = flgSingleWidth; + WrongTimings[WrongTimeCnt][5] = flgSingleWidth+1; + } + else { + WrongTimings[WrongTimeCnt][4] = 0xff; + WrongTimings[WrongTimeCnt][5] = 0xff; + } + WrongTimeCnt++; + } + } + else { + val = rawval & 0x01; + if ((rawval & flgDoubleWidth) == flgDoubleWidth) { + // double pulse width + P092_process_bit(!val); + P092_process_bit(val); + } + else { + // single pulse width + P092_process_bit(val); + } + } + } + addLog(LOG_LEVEL_INFO, F("BitStream copied.")); + +#ifdef PLUGIN_092_DEBUG + if (WrongTimeCnt > 0) { + if (loglevelActiveFor(LOG_LEVEL_INFO)) { + String log = F("Wrong Timings: "); + addLog(LOG_LEVEL_INFO, log); + for (i = 0; i < WrongTimeCnt; i++) { + log = i + 1; + log += F(": PulseCount:"); + log += WrongTimings[i][1]; + log += F(": BitCount:"); + log += WrongTimings[i][2]; + log += F(" Value:0x"); + log += String(WrongTimings[i][3], HEX); + log += F(" ValueBefore:0x"); + log += String(BitStream[WrongTimings[i][0] - 1], HEX); + log += F(" ValueAfter:0x"); + log += String(BitStream[WrongTimings[i][0] + 1], HEX); + if (WrongTimings[i][4]!=0xff) { + log += F(" Added:0x"); + log += String(WrongTimings[i][4], HEX); + } + if (WrongTimings[i][5]!=0xff) { + log += F(" Added:0x"); + log += String(WrongTimings[i][5], HEX); + } + addLog(LOG_LEVEL_INFO, log); + } + } + } +#endif // PLUGIN_092_DEBUG + return true; +} + +/*****************\ + DLBus interrupt +\*****************/ + +void P092_Pin_changed(void) { + TimeInMicros = micros(); + time_diff = TimeInMicros - last_bit_change; + last_bit_change = TimeInMicros; + if (P092_receiving) { + byte val = digitalRead(P092_DLB_Pin); // read state + // check pulse width + if (time_diff >= 2*MinDoublePulseWidth) val |= 0x80; // longer then 2x double pulse width + else if (time_diff > MaxDoublePulseWidth) val |= 0x40; // longer then double pulse width + else if (time_diff >= MinDoublePulseWidth) val |= flgDoubleWidth; // double pulse width + else if (time_diff > MaxPulseWidth) val |= 0x20; // between double and single pulse width + else if (time_diff < MinPulseWidth) val |= 0x10; // shorter then single pulse width + else val |= flgSingleWidth; // single pulse width + BitStream[pulse_count] = val; // set bit + pulse_count++; + P092_receiving = (pulse_count < pulse_number); // stop P092_receiving when data frame is complete + } +} + +/*****************\ + DLBus processing +\*****************/ + +void P092_process_bit(byte b) { + // ignore first pulse + pulse_count++; + if (pulse_count % 2) + return; + bit_number = (pulse_count / 2); + if (b) + ByteStream[bit_number / 8] |= (1 << (bit_number % 8)); // set bit + else + ByteStream[bit_number / 8] &= ~(1 << (bit_number % 8)); // clear bit +} + +boolean P092_Processing(void) { +boolean inverted = false; +String log; + addLog(LOG_LEVEL_INFO, F("Processing...")); + start_bit = P092_Analyze(); // find the data frame's beginning + // inverted signal? + while (start_bit == -1) { + if (inverted) { + return false; + } + addLog(LOG_LEVEL_INFO, F("Invert bit stream...")); + P092_Invert(); // invert again + inverted = true; + start_bit = P092_Analyze(); + if (start_bit == -1) { + addLog(LOG_LEVEL_ERROR, F("Error: No data frame available!")); + return false; + } + if ((bit_number-start_bit)<(pulse_number/4)) { + // no complete data frame available + if (loglevelActiveFor(LOG_LEVEL_INFO)) { + addLog(LOG_LEVEL_INFO, F("Start bit too close to end of stream!")); + log = F("# Required bits: "); + log += pulse_number/4; + log += F(" StartBit: "); + log += start_bit; + log += F(" / EndBit: "); + log += bit_number; + addLog(LOG_LEVEL_INFO, log); + } + start_bit = -1; + } + } + if (loglevelActiveFor(LOG_LEVEL_INFO)) { + log = F("StartBit: "); + log += start_bit; + log += F(" / EndBit: "); + log += bit_number; + addLog(LOG_LEVEL_INFO, log); + } + P092_Trim(); // remove start and stop bits + if (P092_CheckDevice()) // check connected device + return true; + else { + addLog(LOG_LEVEL_ERROR, F("Error: Device not found!")); + return false; + } +} + +int P092_Analyze() { + byte sync=0; + // find SYNC (16 * sequential 1) + for (int i = 0; i < bit_number; i++) { + if (P092_ReadBit(i)) + sync++; + else + sync = 0; + if (sync == 16) { + // finde erste 0 // find first 0 + while (P092_ReadBit(i) == 1) + i++; + return i; // beginning of data frame + } + } + // no data frame available. check signal? + return -1; +} +void P092_Invert() { + for (int i = 0; i < bit_number; i++) + P092_WriteBit(i, P092_ReadBit(i) ? 0 : 1); // invert every bit +} +byte P092_ReadBit(int pos) { + int row = pos / 8; // detect position in bitmap + int col = pos % 8; + return (((ByteStream[row]) >> (col)) & 0x01); // return bit +} +void P092_WriteBit(int pos, byte set) { + int row = pos / 8; // detect position in bitmap + int col = pos % 8; + if (set) + ByteStream[row] |= 1 << col; // set bit + else + ByteStream[row] &= ~(1 << col); // clear bit +} +void P092_Trim() { + for (int i = start_bit, bit = 0; i < bit_number; i++) { + int offset = i - start_bit; + // ignore start and stop bits: + // start bits: 0 10 20 30, also x % 10 == 0 + // stop bits: 9 19 29 39, also (x+1) % 10 == 0 + if (offset % 10 && (offset + 1) % 10) { + P092_WriteBit(bit, P092_ReadBit(i)); + bit++; + } + } +} + +/****************\ + DLBus get data +\****************/ + +boolean P092_CheckDevice() { + // Data frame of a device? + if (ByteStream[0] == DataSettings.DeviceByte0) { + if ((DataSettings.DeviceBytes == 1) || (ByteStream[1] == DataSettings.DeviceByte1)) + return true; + } + if (loglevelActiveFor(LOG_LEVEL_INFO)) { + String log = F("# Received DeviceByte(s): 0x"); + log += String(ByteStream[0], HEX); + if (DataSettings.DeviceBytes > 1) + log += String(ByteStream[1], HEX); + log += F(" Requested: 0x"); + log += String(DataSettings.DeviceByte0, HEX); + if (DataSettings.DeviceBytes > 1) + log += String(DataSettings.DeviceByte1, HEX); + addLog(LOG_LEVEL_INFO, log); + } + return false; +} + +boolean P092_CheckCRC() { + // CRC check sum + if (DataSettings.IdxCRC == 0) + return true; + addLog(LOG_LEVEL_INFO, F("Check CRC...")); + word dataSum = 0; + for (int i = 0; i < DataSettings.IdxCRC; i++) + dataSum = dataSum + ByteStream[i]; + dataSum = dataSum & 0xff; + if (dataSum == ByteStream[DataSettings.IdxCRC]) + return true; + if (loglevelActiveFor(LOG_LEVEL_INFO)) { + String log = F("# Calculated CRC: 0x"); + log += String(dataSum, HEX); + log += F(" Received: 0x"); + log += String(ByteStream[DataSettings.IdxCRC], HEX); + addLog(LOG_LEVEL_INFO, log); + } + return false; +} + +boolean P092_GetData(int OptionIdx, int CurIdx) { + String log; + boolean result = false; + switch (OptionIdx) { + case 1: //F("Sensor") + log = F("Get Sensor"); + log += CurIdx; + if (CurIdx > DataSettings.MaxSensors) { + result=false; + break; + } + ReadData.Idx = DataSettings.IdxSensor; + result = P092_fetch_sensor(CurIdx); + break; + case 2: //F("Sensor") + log = F("Get ExtSensor"); + log += CurIdx; + if (CurIdx > DataSettings.MaxExtSensors) { + result=false; + break; + } + ReadData.Idx = DataSettings.IdxExtSensor; + result = P092_fetch_sensor(CurIdx); + break; + case 3: //F("Digital output") + log = F("Get DigitalOutput"); + log += CurIdx; + if (CurIdx > (8 * DataSettings.OutputBytes)) { + result=false; + break; + } + result = P092_fetch_output(CurIdx); + break; + case 4: //F("Speed step") + log = F("Get SpeedStep"); + log += CurIdx; + if (CurIdx > DataSettings.SpeedBytes) { + result=false; + break; + } + result = P092_fetch_speed(CurIdx); + break; + case 5: //F("Analog output") + log = F("Get AnalogOutput"); + log += CurIdx; + if (CurIdx > DataSettings.AnalogBytes) { + result=false; + break; + } + result = P092_fetch_analog(CurIdx); + break; + case 6: //F("Heat power (kW)") + log = F("Get HeatPower"); + log += CurIdx; + if (CurIdx > DataSettings.MaxHeatMeters) { + result=false; + break; + } + result = P092_fetch_heatpower(CurIdx); + break; + case 7: //F("Heat meter (MWh)" + log = F("Get HeatMeter"); + log += CurIdx; + if (CurIdx > DataSettings.MaxHeatMeters) { + result=false; + break; + } + result = P092_fetch_heatmeter(CurIdx); + break; + } + if (loglevelActiveFor(LOG_LEVEL_INFO)) { + log += F(": "); + if (result) { + log += String(ReadData.value, 1); + } + else { + log += F("nan"); + } + addLog(LOG_LEVEL_INFO, log); + } + return result; +} + +boolean P092_fetch_sensor(int number) { + float value; + ReadData.mode = -1; + number = ReadData.Idx + (number - 1) * 2; + int sensorvalue = (ByteStream[number + 1] << 8) | ByteStream[number]; + if (sensorvalue == 0) { + return false; + } + byte sensortype = (sensorvalue & 0x7000) >> 12; + if (!(sensorvalue & 0x8000)) { // sign positive + sensorvalue &= 0xfff; + // calculations for different sensor types + switch (sensortype) { + case DIGITAL: + value = false; + break; + case TEMP: + value = sensorvalue * 0.1; + break; + case RAYS: + value = sensorvalue; + break; + case VOLUME_FLOW: + value = sensorvalue * 4; + break; + case ROOM: + ReadData.mode = (sensorvalue & 0x600) >> 9; + value = (sensorvalue & 0x1ff) * 0.1; + break; + default: + return false; + } + } + else { // sign negative + sensorvalue |= 0xf000; + // calculations for different sensor types + switch (sensortype) { + case DIGITAL: + value = true; + break; + case TEMP: + value = (sensorvalue - 65536) * 0.1; + break; + case RAYS: + value = sensorvalue - 65536; + break; + case VOLUME_FLOW: + value = (sensorvalue - 65536) * 4; + break; + case ROOM: + ReadData.mode = (sensorvalue & 0x600) >> 9; + value = ((sensorvalue & 0x1ff) - 65536) * 0.1; + break; + default: + return false; + } + } + ReadData.value = value; + return true; +} + +boolean P092_fetch_output(int number) { + int outputs; + + if (DataSettings.OutputBytes > 1) + outputs = (ByteStream[DataSettings.IdxOutput + 1] << 8) | ByteStream[DataSettings.IdxOutput]; + else + outputs = ByteStream[DataSettings.IdxOutput]; + ReadData.value = (!!(outputs & (1 << (number - 1)))); + return true; +} + +boolean P092_fetch_speed(int number) { + byte speedbyte; + + speedbyte = ByteStream[DataSettings.IdxDrehzahl + (number - 1)]; + if ((speedbyte & 0x80) == 0x80) + return false; + ReadData.value = (speedbyte & 0x1f); + return true; +} + +boolean P092_fetch_analog(int number) { + byte analogbyte; + + analogbyte = ByteStream[DataSettings.IdxAnalog + (number - 1)]; + if ((analogbyte & 0x80) == 0x80) + return false; + ReadData.value = (analogbyte * 0.1); + return true; +} + +boolean P092_CheckHmRegister(int number) { + switch (number) { + case 1: + if ((ByteStream[DataSettings.IdxHmRegister] & 0x1) != 0x01) + return false; + power_index = DataSettings.IdxHeatMeter1; + kwh_index = DataSettings.IdxkWh1; + mwh_index = DataSettings.IdxMWh1; + break; + case 2: + if ((ByteStream[DataSettings.IdxHmRegister] & 0x2) != 0x02) + return false; + power_index = DataSettings.IdxHeatMeter2; + kwh_index = DataSettings.IdxkWh2; + mwh_index = DataSettings.IdxMWh2; + break; + case 3: + if ((ByteStream[DataSettings.IdxHmRegister] & 0x4) != 0x04) + return false; + power_index = DataSettings.IdxHeatMeter3; + kwh_index = DataSettings.IdxkWh3; + mwh_index = DataSettings.IdxMWh3; + break; + default: + return false; + } + return true; +} + +boolean P092_fetch_heatpower(int number) { + // current power + int high; + + if (P092_CheckHmRegister(number) == false) + return false; + byte b1 = ByteStream[power_index]; + byte b2 = ByteStream[power_index + 1]; + if (DataSettings.CurrentHmBytes > 2) { + byte b3 = ByteStream[power_index + 2]; + byte b4 = ByteStream[power_index + 3]; + high = 65536 * b4 + 256 * b3 + b2; + int low = (b1 * 10) / 256; + if (!(b4 & 0x80)) // sign positive + ReadData.value = (10 * high + low) / 100; + else // sign negative + ReadData.value = (10 * (high - 65536) - low) / 100; + } + else { + high = (b2 << 8) | b1; + if ((b2 & 0x80) == 0) // sign positive + ReadData.value = high / 10; + else // sign negative + ReadData.value = (high - 65536) / 10; + } + return true; +} + +boolean P092_fetch_heatmeter(int number) { + // heat meter + int heat_meter; + float heat_meter_mwh; + + if (P092_CheckHmRegister(number) == false) + return false; + heat_meter = (ByteStream[kwh_index + 1] << 8) | ByteStream[kwh_index]; + heat_meter_mwh = (heat_meter * 0.1) / 1000; // in MWh + if (heat_meter_mwh > 1.0) { + // in kWh + heat_meter = heat_meter_mwh; + heat_meter_mwh -= heat_meter; + } + // MWh + heat_meter = (ByteStream[mwh_index + 1] << 8) | ByteStream[mwh_index]; + ReadData.value = heat_meter_mwh + heat_meter; + return true; +} + +#endif // USES_P092 From 8859de6fd038d23fc973bd07c1b82a97980e4533 Mon Sep 17 00:00:00 2001 From: uwekaditz <55511593+uwekaditz@users.noreply.github.com> Date: Sun, 8 Dec 2019 20:16:02 +0100 Subject: [PATCH 02/14] [P092] New PlugIn to decode the DL-Bus Added to PLUGIN_SET_STABLE Basic documentation added --- docs/source/Plugin/P092.rst | 45 +++++++++++++++++++++++++++++++++++++ src/define_plugin_sets.h | 1 + 2 files changed, 46 insertions(+) create mode 100644 docs/source/Plugin/P092.rst diff --git a/docs/source/Plugin/P092.rst b/docs/source/Plugin/P092.rst new file mode 100644 index 000000000..7b21072e3 --- /dev/null +++ b/docs/source/Plugin/P092.rst @@ -0,0 +1,45 @@ +.. include:: ../Plugin/_plugin_substitutions_p03x.repl +.. _P092_page: + +|P092_typename| +================================================== + +|P092_shortinfo| + +Plugin details +-------------- + +Type: |P092_type| + +Name: |P092_name| + +Status: |P092_status| + +GitHub: |P092_github|_ + +Maintainer: |P092_maintainer| + +Used libraries: |P092_usedlibraries| + +Supported hardware +------------------ + +|P092_usedby| + +.. Events +.. ~~~~~~ + +.. .. include:: P92_events.repl + +Change log +---------- + +.. versionadded:: 1.0 + ... + + |added| + Initial release version. + + + + diff --git a/src/define_plugin_sets.h b/src/define_plugin_sets.h index 2a5aef991..a2209aec1 100644 --- a/src/define_plugin_sets.h +++ b/src/define_plugin_sets.h @@ -723,6 +723,7 @@ To create/register a plugin, you have to : #define USES_P063 // TTP229_KeyPad #define USES_P073 // 7DG #define USES_P079 // Wemos Motoshield + #define USES_P092 // DL-Bus #endif From 54b7099aaae751051e3813a125e463cc908660f0 Mon Sep 17 00:00:00 2001 From: uwekaditz <55511593+uwekaditz@users.noreply.github.com> Date: Sun, 8 Dec 2019 22:30:50 +0100 Subject: [PATCH 03/14] Update _P092_DLbus.ino --- src/_P092_DLbus.ino | 356 ++++++++++++++++++++++---------------------- 1 file changed, 178 insertions(+), 178 deletions(-) diff --git a/src/_P092_DLbus.ino b/src/_P092_DLbus.ino index 12fa61379..24834595f 100644 --- a/src/_P092_DLbus.ino +++ b/src/_P092_DLbus.ino @@ -29,59 +29,59 @@ #define P092_DLbus_DeviceCount 5 void P092_Pin_changed() ICACHE_RAM_ATTR; -volatile byte P092_DLB_Pin; +volatile uint8_t P092_DLB_Pin; volatile boolean P092_receiving = false; // receiving flag boolean P092_init = false; boolean P092_ReceivedOK = false; -unsigned long P092_LastReceived = 0; -byte P092_MaxIdx[P092_DLbus_OptionCount]; +uint32_t P092_LastReceived = 0; +uint8_t P092_MaxIdx[P092_DLbus_OptionCount]; int P092_ValueType[P092_DLbus_ValueCount]; int P092_ValueIdx[P092_DLbus_ValueCount]; struct DataStruct { - byte DataBytes; - byte DeviceByte0; - byte DeviceByte1; - byte DeviceBytes; - byte DontCareBytes; - byte TimeStampBytes; - byte MaxSensors; - byte MaxExtSensors; - byte OutputBytes; - byte SpeedBytes; - byte AnalogBytes; - byte VolumeBytes; - byte MaxHeatMeters; - byte CurrentHmBytes; - byte MWhBytes; + uint8_t Datauint8_ts; + uint8_t Deviceuint8_t0; + uint8_t Deviceuint8_t1; + uint8_t Deviceuint8_ts; + uint8_t DontCareuint8_ts; + uint8_t TimeStampuint8_ts; + uint8_t MaxSensors; + uint8_t MaxExtSensors; + uint8_t Outputuint8_ts; + uint8_t Speeduint8_ts; + uint8_t Analoguint8_ts; + uint8_t Volumeuint8_ts; + uint8_t MaxHeatMeters; + uint8_t CurrentHmuint8_ts; + uint8_t MWhuint8_ts; uint16_t MinPulseWidth; uint16_t MaxPulseWidth; uint16_t MinDoublePulseWidth; uint16_t MaxDoublePulseWidth; - byte IdxSensor; - byte IdxExtSensor; - byte IdxOutput; - byte IdxDrehzahl; - byte IdxAnalog; - byte IdxHmRegister; - byte IdxVolume; - byte IdxHeatMeter1; - byte IdxkWh1; - byte IdxMWh1; - byte IdxHeatMeter2; - byte IdxkWh2; - byte IdxMWh2; - byte IdxHeatMeter3; - byte IdxkWh3; - byte IdxMWh3; - byte IdxCRC; + uint8_t IdxSensor; + uint8_t IdxExtSensor; + uint8_t IdxOutput; + uint8_t IdxDrehzahl; + uint8_t IdxAnalog; + uint8_t IdxHmRegister; + uint8_t IdxVolume; + uint8_t IdxHeatMeter1; + uint8_t IdxkWh1; + uint8_t IdxMWh1; + uint8_t IdxHeatMeter2; + uint8_t IdxkWh2; + uint8_t IdxMWh2; + uint8_t IdxHeatMeter3; + uint8_t IdxkWh3; + uint8_t IdxMWh3; + uint8_t IdxCRC; } DataSettings; typedef struct { - byte Idx; - byte mode; - float value; + uint8_t Idx; + uint8_t mode; + float value; } data_t; data_t ReadData; @@ -133,7 +133,7 @@ int P092_OptionValueDecimals[P092_DLbus_OptionCount] = { #define P092_double_min_width_50 (P092_double_pulse_width_50 - (P092_pulse_width_50 * P092_percentage_variance / 100)) #define P092_double_max_width_50 (P092_double_pulse_width_50 + (P092_pulse_width_50 * P092_percentage_variance / 100)) -boolean Plugin_092(byte function, struct EventStruct *event, String& string) +boolean Plugin_092(uint8_t function, struct EventStruct *event, String& string) { boolean success = false; int OptionIdx, CurIdx; @@ -312,11 +312,11 @@ boolean Plugin_092(byte function, struct EventStruct *event, String& string) log += DataSettings.IdxExtSensor; log += F(" IdxOutput:"); log += DataSettings.IdxOutput; - if (DataSettings.SpeedBytes > 0) { + if (DataSettings.Speeduint8_ts > 0) { log += F(" IdxDrehzahl:"); log += DataSettings.IdxDrehzahl; } - if (DataSettings.AnalogBytes > 0) { + if (DataSettings.Analoguint8_ts > 0) { log += F(" IdxAnalog:"); log += DataSettings.IdxAnalog; } @@ -324,7 +324,7 @@ boolean Plugin_092(byte function, struct EventStruct *event, String& string) log += F(" IdxHmRegister:"); log += DataSettings.IdxHmRegister; } - if (DataSettings.VolumeBytes > 0) { + if (DataSettings.Volumeuint8_ts > 0) { log += F(" IdxVolume:"); log += DataSettings.IdxVolume; } @@ -443,169 +443,169 @@ void Plugin_092_SetIndices(int DeviceIndex) { // Set the indices for the DL bus packet switch (DeviceIndex) { case 21: //ESR21 - DataSettings.DataBytes = 31; + DataSettings.Datauint8_ts = 31; DataSettings.MinPulseWidth = P092_min_width_488; DataSettings.MaxPulseWidth = P092_max_width_488; DataSettings.MinDoublePulseWidth = P092_double_min_width_488; DataSettings.MaxDoublePulseWidth = P092_double_max_width_488; - DataSettings.DeviceByte0 = 0x70; - DataSettings.DeviceByte1 = 0x8F; - DataSettings.DeviceBytes = 2; - DataSettings.DontCareBytes = 0; - DataSettings.TimeStampBytes = 0; + DataSettings.Deviceuint8_t0 = 0x70; + DataSettings.Deviceuint8_t1 = 0x8F; + DataSettings.Deviceuint8_ts = 2; + DataSettings.DontCareuint8_ts = 0; + DataSettings.TimeStampuint8_ts = 0; DataSettings.MaxSensors = 3; DataSettings.MaxExtSensors = 6; - DataSettings.OutputBytes = 1; - DataSettings.SpeedBytes = 1; - DataSettings.AnalogBytes = 1; - DataSettings.VolumeBytes = 0; + DataSettings.Outputuint8_ts = 1; + DataSettings.Speeduint8_ts = 1; + DataSettings.Analoguint8_ts = 1; + DataSettings.Volumeuint8_ts = 0; DataSettings.MaxHeatMeters = 1; - DataSettings.CurrentHmBytes = 2; - DataSettings.MWhBytes = 2; + DataSettings.CurrentHmuint8_ts = 2; + DataSettings.MWhuint8_ts = 2; DataSettings.IdxCRC = 30; P092_OptionValueDecimals[6] = 1; //[0,1kW] F("Heat power (kW)") break; case 31: //UVR31 - DataSettings.DataBytes = 8; + DataSettings.Datauint8_ts = 8; DataSettings.MinPulseWidth = P092_min_width_50; DataSettings.MaxPulseWidth = P092_max_width_50; DataSettings.MinDoublePulseWidth = P092_double_min_width_50; DataSettings.MaxDoublePulseWidth = P092_double_max_width_50; - DataSettings.DeviceByte0 = 0x30; - DataSettings.DeviceByte1 = 0; - DataSettings.DeviceBytes = 1; - DataSettings.DontCareBytes = 0; - DataSettings.TimeStampBytes = 0; + DataSettings.Deviceuint8_t0 = 0x30; + DataSettings.Deviceuint8_t1 = 0; + DataSettings.Deviceuint8_ts = 1; + DataSettings.DontCareuint8_ts = 0; + DataSettings.TimeStampuint8_ts = 0; DataSettings.MaxSensors = 3; DataSettings.MaxExtSensors = 0; - DataSettings.OutputBytes = 1; - DataSettings.SpeedBytes = 0; - DataSettings.AnalogBytes = 0; - DataSettings.VolumeBytes = 0; + DataSettings.Outputuint8_ts = 1; + DataSettings.Speeduint8_ts = 0; + DataSettings.Analoguint8_ts = 0; + DataSettings.Volumeuint8_ts = 0; DataSettings.MaxHeatMeters = 0; - DataSettings.CurrentHmBytes = 0; - DataSettings.MWhBytes = 0; + DataSettings.CurrentHmuint8_ts = 0; + DataSettings.MWhuint8_ts = 0; DataSettings.IdxCRC = 0; break; case 1611: //UVR1611 - DataSettings.DataBytes = 64; + DataSettings.Datauint8_ts = 64; DataSettings.MinPulseWidth = P092_min_width_488; DataSettings.MaxPulseWidth = P092_max_width_488; DataSettings.MinDoublePulseWidth = P092_double_min_width_488; DataSettings.MaxDoublePulseWidth = P092_double_max_width_488; - DataSettings.DeviceByte0 = 0x80; - DataSettings.DeviceByte1 = 0x7F; - DataSettings.DeviceBytes = 2; - DataSettings.DontCareBytes = 1; - DataSettings.TimeStampBytes = 5; + DataSettings.Deviceuint8_t0 = 0x80; + DataSettings.Deviceuint8_t1 = 0x7F; + DataSettings.Deviceuint8_ts = 2; + DataSettings.DontCareuint8_ts = 1; + DataSettings.TimeStampuint8_ts = 5; DataSettings.MaxSensors = 16; DataSettings.MaxExtSensors = 0; - DataSettings.OutputBytes = 2; - DataSettings.SpeedBytes = 4; - DataSettings.AnalogBytes = 0; - DataSettings.VolumeBytes = 0; + DataSettings.Outputuint8_ts = 2; + DataSettings.Speeduint8_ts = 4; + DataSettings.Analoguint8_ts = 0; + DataSettings.Volumeuint8_ts = 0; DataSettings.MaxHeatMeters = 2; - DataSettings.CurrentHmBytes = 4; - DataSettings.MWhBytes = 2; + DataSettings.CurrentHmuint8_ts = 4; + DataSettings.MWhuint8_ts = 2; DataSettings.IdxCRC = 63; P092_OptionValueDecimals[6] = 2; //[0,01kW] F("Heat power (kW)") break; case 6132: //UVR 61-3 (up to V8.2) - DataSettings.DataBytes = 35; + DataSettings.Datauint8_ts = 35; DataSettings.MinPulseWidth = P092_min_width_488; DataSettings.MaxPulseWidth = P092_max_width_488; DataSettings.MinDoublePulseWidth = P092_double_min_width_488; DataSettings.MaxDoublePulseWidth = P092_double_max_width_488; - DataSettings.DeviceByte0 = 0x90; - DataSettings.DeviceByte1 = 0x6F; - DataSettings.DeviceBytes = 2; - DataSettings.DontCareBytes = 1; - DataSettings.TimeStampBytes = 5; + DataSettings.Deviceuint8_t0 = 0x90; + DataSettings.Deviceuint8_t1 = 0x6F; + DataSettings.Deviceuint8_ts = 2; + DataSettings.DontCareuint8_ts = 1; + DataSettings.TimeStampuint8_ts = 5; DataSettings.MaxSensors = 6; DataSettings.MaxExtSensors = 0; - DataSettings.OutputBytes = 1; - DataSettings.SpeedBytes = 1; - DataSettings.AnalogBytes = 1; - DataSettings.VolumeBytes = 2; + DataSettings.Outputuint8_ts = 1; + DataSettings.Speeduint8_ts = 1; + DataSettings.Analoguint8_ts = 1; + DataSettings.Volumeuint8_ts = 2; DataSettings.MaxHeatMeters = 1; - DataSettings.CurrentHmBytes = 2; - DataSettings.MWhBytes = 4; + DataSettings.CurrentHmuint8_ts = 2; + DataSettings.MWhuint8_ts = 4; DataSettings.IdxCRC = 34; P092_OptionValueDecimals[6] = 1; //[0,1kW] F("Heat power (kW)") break; case 6133: //UVR 61-3 (from V8.3) - DataSettings.DataBytes = 62; + DataSettings.Datauint8_ts = 62; DataSettings.MinPulseWidth = P092_min_width_488; DataSettings.MaxPulseWidth = P092_max_width_488; DataSettings.MinDoublePulseWidth = P092_double_min_width_488; DataSettings.MaxDoublePulseWidth = P092_double_max_width_488; - DataSettings.DeviceByte0 = 0x90; - DataSettings.DeviceByte1 = 0x9F; - DataSettings.DeviceBytes = 2; - DataSettings.DontCareBytes = 1; - DataSettings.TimeStampBytes = 5; + DataSettings.Deviceuint8_t0 = 0x90; + DataSettings.Deviceuint8_t1 = 0x9F; + DataSettings.Deviceuint8_ts = 2; + DataSettings.DontCareuint8_ts = 1; + DataSettings.TimeStampuint8_ts = 5; DataSettings.MaxSensors = 6; DataSettings.MaxExtSensors = 9; - DataSettings.OutputBytes = 1; - DataSettings.SpeedBytes = 1; - DataSettings.AnalogBytes = 2; - DataSettings.VolumeBytes = 0; + DataSettings.Outputuint8_ts = 1; + DataSettings.Speeduint8_ts = 1; + DataSettings.Analoguint8_ts = 2; + DataSettings.Volumeuint8_ts = 0; DataSettings.MaxHeatMeters = 3; - DataSettings.CurrentHmBytes = 2; - DataSettings.MWhBytes = 2; + DataSettings.CurrentHmuint8_ts = 2; + DataSettings.MWhuint8_ts = 2; DataSettings.IdxCRC = 61; P092_OptionValueDecimals[6] = 1; //[0,1kW] F("Heat power (kW)") break; } - DataSettings.IdxSensor = DataSettings.DeviceBytes + DataSettings.DontCareBytes + DataSettings.TimeStampBytes; + DataSettings.IdxSensor = DataSettings.Deviceuint8_ts + DataSettings.DontCareuint8_ts + DataSettings.TimeStampuint8_ts; DataSettings.IdxExtSensor = DataSettings.IdxSensor + 2 * DataSettings.MaxSensors; DataSettings.IdxOutput = DataSettings.IdxExtSensor + 2 * DataSettings.MaxExtSensors; - DataSettings.IdxDrehzahl = DataSettings.IdxOutput + DataSettings.OutputBytes; - DataSettings.IdxAnalog = DataSettings.IdxDrehzahl + DataSettings.SpeedBytes; - DataSettings.IdxHmRegister = DataSettings.IdxAnalog + DataSettings.AnalogBytes; + DataSettings.IdxDrehzahl = DataSettings.IdxOutput + DataSettings.Outputuint8_ts; + DataSettings.IdxAnalog = DataSettings.IdxDrehzahl + DataSettings.Speeduint8_ts; + DataSettings.IdxHmRegister = DataSettings.IdxAnalog + DataSettings.Analoguint8_ts; DataSettings.IdxVolume = DataSettings.IdxHmRegister + 1; - DataSettings.IdxHeatMeter1 = DataSettings.IdxVolume + DataSettings.VolumeBytes; - DataSettings.IdxkWh1 = DataSettings.IdxHeatMeter1 + DataSettings.CurrentHmBytes; + DataSettings.IdxHeatMeter1 = DataSettings.IdxVolume + DataSettings.Volumeuint8_ts; + DataSettings.IdxkWh1 = DataSettings.IdxHeatMeter1 + DataSettings.CurrentHmuint8_ts; DataSettings.IdxMWh1 = DataSettings.IdxkWh1 + 2; - DataSettings.IdxHeatMeter2 = DataSettings.IdxMWh1 + DataSettings.MWhBytes; - DataSettings.IdxkWh2 = DataSettings.IdxHeatMeter2 + DataSettings.CurrentHmBytes; + DataSettings.IdxHeatMeter2 = DataSettings.IdxMWh1 + DataSettings.MWhuint8_ts; + DataSettings.IdxkWh2 = DataSettings.IdxHeatMeter2 + DataSettings.CurrentHmuint8_ts; DataSettings.IdxMWh2 = DataSettings.IdxkWh2 + 2; - DataSettings.IdxHeatMeter3 = DataSettings.IdxMWh2 + DataSettings.MWhBytes; - DataSettings.IdxkWh3 = DataSettings.IdxHeatMeter3 + DataSettings.CurrentHmBytes; + DataSettings.IdxHeatMeter3 = DataSettings.IdxMWh2 + DataSettings.MWhuint8_ts; + DataSettings.IdxkWh3 = DataSettings.IdxHeatMeter3 + DataSettings.CurrentHmuint8_ts; DataSettings.IdxMWh3 = DataSettings.IdxkWh3 + 2; } /*********************************************************************************************\ DLBus subs to get values from the P092_receiving bitstream \*********************************************************************************************/ -// one data frame has data bytes + SYNC, e.g. 64 * (8+1+1) + 16 = 656 +// one data frame has data uint8_ts + SYNC, e.g. 64 * (8+1+1) + 16 = 656 // 656 * 2 = 1312 (twice as much as a data frame is saved // so there's one complete data frame -#define MaxDataBytes 64 -#define AdditionalRecBytes 2 -#define MaxDataBits (((MaxDataBytes + AdditionalRecBytes) * (8 + 1 + 1) + 16) * 4) -volatile byte BitStream[MaxDataBits]; // received bit stream +#define MaxDatauint8_ts 64 +#define AdditionalRecuint8_ts 2 +#define MaxDataBits (((MaxDatauint8_ts + AdditionalRecuint8_ts) * (8 + 1 + 1) + 16) * 4) +volatile uint8_t BitStream[MaxDataBits]; // received bit stream volatile int pulse_count; // number of received pulses volatile int pulse_number; // max naumber of the received pulses -volatile unsigned long last_bit_change = 0; // remember the last transition -volatile word MinPulseWidth, MaxPulseWidth, MinDoublePulseWidth, MaxDoublePulseWidth; -volatile unsigned long TimeInMicros; // current time in µs -volatile unsigned long time_diff; // time difference to previous pulse in µs +volatile uint32_t last_bit_change = 0; // remember the last transition +volatile uint16_t MinPulseWidth, MaxPulseWidth, MinDoublePulseWidth, MaxDoublePulseWidth; +volatile uint32_t TimeInMicros; // current time in µs +volatile uint32_t time_diff; // time difference to previous pulse in µs -byte ByteStream[MaxDataBits / 8 + 1]; // every bit gets sorted into a bitmap +uint8_t uint8_tStream[MaxDataBits / 8 + 1]; // every bit gets sorted into a bitmap int bit_number; // bit size of the data frame -byte WrongTimeCnt; -word WrongTimings[5][6]; +uint8_t WrongTimeCnt; +uint16_t WrongTimings[5][6]; int start_bit; // first bit of data frame @@ -641,11 +641,11 @@ int power_index, kwh_index, mwh_index; \****************/ boolean Plugin_092_Receiving(void) { - byte rawval, val; + uint8_t rawval, val; int i; noInterrupts (); // make sure we don't get interrupted before we are ready pulse_count = 0; - pulse_number = (((DataSettings.DataBytes + AdditionalRecBytes) * (8 + 1 + 1) + 16) * 4); + pulse_number = (((DataSettings.Datauint8_ts + AdditionalRecuint8_ts) * (8 + 1 + 1) + 16) * 4); MinPulseWidth = DataSettings.MinPulseWidth; MaxPulseWidth = DataSettings.MaxPulseWidth; MinDoublePulseWidth = DataSettings.MinDoublePulseWidth; @@ -653,7 +653,7 @@ boolean Plugin_092_Receiving(void) { addLog(LOG_LEVEL_INFO, F("P092_receiving ...")); P092_receiving = true; interrupts (); // interrupts allowed now, next instruction WILL be executed - unsigned long start=millis(); + uint32_t start=millis(); while ((millis()-start)<100) { // wait 100 ms yield(); @@ -673,7 +673,7 @@ boolean Plugin_092_Receiving(void) { WrongTimeCnt = 0; pulse_count = 0; for (i = 0; i <= pulse_number; i++) { - // store BitStream into ByteStream + // store BitStream into uint8_tStream rawval = BitStream[i]; if ((rawval & 0xF0) != 0) { // wrong time_diff @@ -753,7 +753,7 @@ void P092_Pin_changed(void) { time_diff = TimeInMicros - last_bit_change; last_bit_change = TimeInMicros; if (P092_receiving) { - byte val = digitalRead(P092_DLB_Pin); // read state + uint8_t val = digitalRead(P092_DLB_Pin); // read state // check pulse width if (time_diff >= 2*MinDoublePulseWidth) val |= 0x80; // longer then 2x double pulse width else if (time_diff > MaxDoublePulseWidth) val |= 0x40; // longer then double pulse width @@ -771,16 +771,16 @@ void P092_Pin_changed(void) { DLBus processing \*****************/ -void P092_process_bit(byte b) { +void P092_process_bit(uint8_t b) { // ignore first pulse pulse_count++; if (pulse_count % 2) return; bit_number = (pulse_count / 2); if (b) - ByteStream[bit_number / 8] |= (1 << (bit_number % 8)); // set bit + uint8_tStream[bit_number / 8] |= (1 << (bit_number % 8)); // set bit else - ByteStream[bit_number / 8] &= ~(1 << (bit_number % 8)); // clear bit + uint8_tStream[bit_number / 8] &= ~(1 << (bit_number % 8)); // clear bit } boolean P092_Processing(void) { @@ -833,7 +833,7 @@ String log; } int P092_Analyze() { - byte sync=0; + uint8_t sync=0; // find SYNC (16 * sequential 1) for (int i = 0; i < bit_number; i++) { if (P092_ReadBit(i)) @@ -854,18 +854,18 @@ void P092_Invert() { for (int i = 0; i < bit_number; i++) P092_WriteBit(i, P092_ReadBit(i) ? 0 : 1); // invert every bit } -byte P092_ReadBit(int pos) { +uint8_t P092_ReadBit(int pos) { int row = pos / 8; // detect position in bitmap int col = pos % 8; - return (((ByteStream[row]) >> (col)) & 0x01); // return bit + return (((uint8_tStream[row]) >> (col)) & 0x01); // return bit } -void P092_WriteBit(int pos, byte set) { +void P092_WriteBit(int pos, uint8_t set) { int row = pos / 8; // detect position in bitmap int col = pos % 8; if (set) - ByteStream[row] |= 1 << col; // set bit + uint8_tStream[row] |= 1 << col; // set bit else - ByteStream[row] &= ~(1 << col); // clear bit + uint8_tStream[row] &= ~(1 << col); // clear bit } void P092_Trim() { for (int i = start_bit, bit = 0; i < bit_number; i++) { @@ -886,19 +886,19 @@ void P092_Trim() { boolean P092_CheckDevice() { // Data frame of a device? - if (ByteStream[0] == DataSettings.DeviceByte0) { - if ((DataSettings.DeviceBytes == 1) || (ByteStream[1] == DataSettings.DeviceByte1)) + if (uint8_tStream[0] == DataSettings.Deviceuint8_t0) { + if ((DataSettings.Deviceuint8_ts == 1) || (uint8_tStream[1] == DataSettings.Deviceuint8_t1)) return true; } if (loglevelActiveFor(LOG_LEVEL_INFO)) { - String log = F("# Received DeviceByte(s): 0x"); - log += String(ByteStream[0], HEX); - if (DataSettings.DeviceBytes > 1) - log += String(ByteStream[1], HEX); + String log = F("# Received Deviceuint8_t(s): 0x"); + log += String(uint8_tStream[0], HEX); + if (DataSettings.Deviceuint8_ts > 1) + log += String(uint8_tStream[1], HEX); log += F(" Requested: 0x"); - log += String(DataSettings.DeviceByte0, HEX); - if (DataSettings.DeviceBytes > 1) - log += String(DataSettings.DeviceByte1, HEX); + log += String(DataSettings.Deviceuint8_t0, HEX); + if (DataSettings.Deviceuint8_ts > 1) + log += String(DataSettings.Deviceuint8_t1, HEX); addLog(LOG_LEVEL_INFO, log); } return false; @@ -909,17 +909,17 @@ boolean P092_CheckCRC() { if (DataSettings.IdxCRC == 0) return true; addLog(LOG_LEVEL_INFO, F("Check CRC...")); - word dataSum = 0; + uint16_t dataSum = 0; for (int i = 0; i < DataSettings.IdxCRC; i++) - dataSum = dataSum + ByteStream[i]; + dataSum = dataSum + uint8_tStream[i]; dataSum = dataSum & 0xff; - if (dataSum == ByteStream[DataSettings.IdxCRC]) + if (dataSum == uint8_tStream[DataSettings.IdxCRC]) return true; if (loglevelActiveFor(LOG_LEVEL_INFO)) { String log = F("# Calculated CRC: 0x"); log += String(dataSum, HEX); log += F(" Received: 0x"); - log += String(ByteStream[DataSettings.IdxCRC], HEX); + log += String(uint8_tStream[DataSettings.IdxCRC], HEX); addLog(LOG_LEVEL_INFO, log); } return false; @@ -952,7 +952,7 @@ boolean P092_GetData(int OptionIdx, int CurIdx) { case 3: //F("Digital output") log = F("Get DigitalOutput"); log += CurIdx; - if (CurIdx > (8 * DataSettings.OutputBytes)) { + if (CurIdx > (8 * DataSettings.Outputuint8_ts)) { result=false; break; } @@ -961,7 +961,7 @@ boolean P092_GetData(int OptionIdx, int CurIdx) { case 4: //F("Speed step") log = F("Get SpeedStep"); log += CurIdx; - if (CurIdx > DataSettings.SpeedBytes) { + if (CurIdx > DataSettings.Speeduint8_ts) { result=false; break; } @@ -970,7 +970,7 @@ boolean P092_GetData(int OptionIdx, int CurIdx) { case 5: //F("Analog output") log = F("Get AnalogOutput"); log += CurIdx; - if (CurIdx > DataSettings.AnalogBytes) { + if (CurIdx > DataSettings.Analoguint8_ts) { result=false; break; } @@ -1012,11 +1012,11 @@ boolean P092_fetch_sensor(int number) { float value; ReadData.mode = -1; number = ReadData.Idx + (number - 1) * 2; - int sensorvalue = (ByteStream[number + 1] << 8) | ByteStream[number]; + int sensorvalue = (uint8_tStream[number + 1] << 8) | uint8_tStream[number]; if (sensorvalue == 0) { return false; } - byte sensortype = (sensorvalue & 0x7000) >> 12; + uint8_t sensortype = (sensorvalue & 0x7000) >> 12; if (!(sensorvalue & 0x8000)) { // sign positive sensorvalue &= 0xfff; // calculations for different sensor types @@ -1072,52 +1072,52 @@ boolean P092_fetch_sensor(int number) { boolean P092_fetch_output(int number) { int outputs; - if (DataSettings.OutputBytes > 1) - outputs = (ByteStream[DataSettings.IdxOutput + 1] << 8) | ByteStream[DataSettings.IdxOutput]; + if (DataSettings.Outputuint8_ts > 1) + outputs = (uint8_tStream[DataSettings.IdxOutput + 1] << 8) | uint8_tStream[DataSettings.IdxOutput]; else - outputs = ByteStream[DataSettings.IdxOutput]; + outputs = uint8_tStream[DataSettings.IdxOutput]; ReadData.value = (!!(outputs & (1 << (number - 1)))); return true; } boolean P092_fetch_speed(int number) { - byte speedbyte; + uint8_t speeduint8_t; - speedbyte = ByteStream[DataSettings.IdxDrehzahl + (number - 1)]; - if ((speedbyte & 0x80) == 0x80) + speeduint8_t = uint8_tStream[DataSettings.IdxDrehzahl + (number - 1)]; + if ((speeduint8_t & 0x80) == 0x80) return false; - ReadData.value = (speedbyte & 0x1f); + ReadData.value = (speeduint8_t & 0x1f); return true; } boolean P092_fetch_analog(int number) { - byte analogbyte; + uint8_t analoguint8_t; - analogbyte = ByteStream[DataSettings.IdxAnalog + (number - 1)]; - if ((analogbyte & 0x80) == 0x80) + analoguint8_t = uint8_tStream[DataSettings.IdxAnalog + (number - 1)]; + if ((analoguint8_t & 0x80) == 0x80) return false; - ReadData.value = (analogbyte * 0.1); + ReadData.value = (analoguint8_t * 0.1); return true; } boolean P092_CheckHmRegister(int number) { switch (number) { case 1: - if ((ByteStream[DataSettings.IdxHmRegister] & 0x1) != 0x01) + if ((uint8_tStream[DataSettings.IdxHmRegister] & 0x1) != 0x01) return false; power_index = DataSettings.IdxHeatMeter1; kwh_index = DataSettings.IdxkWh1; mwh_index = DataSettings.IdxMWh1; break; case 2: - if ((ByteStream[DataSettings.IdxHmRegister] & 0x2) != 0x02) + if ((uint8_tStream[DataSettings.IdxHmRegister] & 0x2) != 0x02) return false; power_index = DataSettings.IdxHeatMeter2; kwh_index = DataSettings.IdxkWh2; mwh_index = DataSettings.IdxMWh2; break; case 3: - if ((ByteStream[DataSettings.IdxHmRegister] & 0x4) != 0x04) + if ((uint8_tStream[DataSettings.IdxHmRegister] & 0x4) != 0x04) return false; power_index = DataSettings.IdxHeatMeter3; kwh_index = DataSettings.IdxkWh3; @@ -1131,15 +1131,15 @@ boolean P092_CheckHmRegister(int number) { boolean P092_fetch_heatpower(int number) { // current power - int high; + int32_t high; if (P092_CheckHmRegister(number) == false) return false; - byte b1 = ByteStream[power_index]; - byte b2 = ByteStream[power_index + 1]; - if (DataSettings.CurrentHmBytes > 2) { - byte b3 = ByteStream[power_index + 2]; - byte b4 = ByteStream[power_index + 3]; + uint8_t b1 = uint8_tStream[power_index]; + uint8_t b2 = uint8_tStream[power_index + 1]; + if (DataSettings.CurrentHmuint8_ts > 2) { + uint8_t b3 = uint8_tStream[power_index + 2]; + uint8_t b4 = uint8_tStream[power_index + 3]; high = 65536 * b4 + 256 * b3 + b2; int low = (b1 * 10) / 256; if (!(b4 & 0x80)) // sign positive @@ -1164,7 +1164,7 @@ boolean P092_fetch_heatmeter(int number) { if (P092_CheckHmRegister(number) == false) return false; - heat_meter = (ByteStream[kwh_index + 1] << 8) | ByteStream[kwh_index]; + heat_meter = (uint8_tStream[kwh_index + 1] << 8) | uint8_tStream[kwh_index]; heat_meter_mwh = (heat_meter * 0.1) / 1000; // in MWh if (heat_meter_mwh > 1.0) { // in kWh @@ -1172,7 +1172,7 @@ boolean P092_fetch_heatmeter(int number) { heat_meter_mwh -= heat_meter; } // MWh - heat_meter = (ByteStream[mwh_index + 1] << 8) | ByteStream[mwh_index]; + heat_meter = (uint8_tStream[mwh_index + 1] << 8) | uint8_tStream[mwh_index]; ReadData.value = heat_meter_mwh + heat_meter; return true; } From db1bb1aa07328305c9bc15e81b3e5cef5421d4fd Mon Sep 17 00:00:00 2001 From: uwekaditz <55511593+uwekaditz@users.noreply.github.com> Date: Sat, 14 Dec 2019 21:00:34 +0100 Subject: [PATCH 04/14] Update _P092_DLbus.ino Removed all commits I merged in the mega branch --- src/_P092_DLbus.ino | 803 +++++++++++++++++++++++--------------------- 1 file changed, 421 insertions(+), 382 deletions(-) diff --git a/src/_P092_DLbus.ino b/src/_P092_DLbus.ino index 24834595f..9ebcb99e0 100644 --- a/src/_P092_DLbus.ino +++ b/src/_P092_DLbus.ino @@ -29,36 +29,37 @@ #define P092_DLbus_DeviceCount 5 void P092_Pin_changed() ICACHE_RAM_ATTR; -volatile uint8_t P092_DLB_Pin; +volatile uint8_t P092_DLB_Pin = 0xFF; volatile boolean P092_receiving = false; // receiving flag +uint8_t P092_Last_DLB_Pin; boolean P092_init = false; boolean P092_ReceivedOK = false; uint32_t P092_LastReceived = 0; uint8_t P092_MaxIdx[P092_DLbus_OptionCount]; int P092_ValueType[P092_DLbus_ValueCount]; int P092_ValueIdx[P092_DLbus_ValueCount]; -struct DataStruct +struct _P092_DataStruct { - uint8_t Datauint8_ts; - uint8_t Deviceuint8_t0; - uint8_t Deviceuint8_t1; - uint8_t Deviceuint8_ts; - uint8_t DontCareuint8_ts; - uint8_t TimeStampuint8_ts; + uint8_t DataBytes; + uint8_t DeviceByte0; + uint8_t DeviceByte1; + uint8_t DeviceBytes; + uint8_t DontCareBytes; + uint8_t TimeStampBytes; uint8_t MaxSensors; uint8_t MaxExtSensors; - uint8_t Outputuint8_ts; - uint8_t Speeduint8_ts; - uint8_t Analoguint8_ts; - uint8_t Volumeuint8_ts; + uint8_t OutputBytes; + uint8_t SpeedBytes; + uint8_t AnalogBytes; + uint8_t VolumeBytes; uint8_t MaxHeatMeters; - uint8_t CurrentHmuint8_ts; - uint8_t MWhuint8_ts; + uint8_t CurrentHmBytes; + uint8_t MWhBytes; - uint16_t MinPulseWidth; - uint16_t MaxPulseWidth; - uint16_t MinDoublePulseWidth; - uint16_t MaxDoublePulseWidth; + uint16_t DLbus_MinPulseWidth; + uint16_t DLbus_MaxPulseWidth; + uint16_t DLbus_MinDoublePulseWidth; + uint16_t DLbus_MaxDoublePulseWidth; uint8_t IdxSensor; uint8_t IdxExtSensor; uint8_t IdxOutput; @@ -76,14 +77,14 @@ struct DataStruct uint8_t IdxkWh3; uint8_t IdxMWh3; uint8_t IdxCRC; -} DataSettings; +} P092_DataSettings; typedef struct { uint8_t Idx; uint8_t mode; float value; -} data_t; -data_t ReadData; +} sP092_ReadData; +sP092_ReadData P092_ReadData; int P092_OptionTypes[P092_DLbus_OptionCount] = { // Index der Variablen @@ -137,6 +138,7 @@ boolean Plugin_092(uint8_t function, struct EventStruct *event, String& string) { boolean success = false; int OptionIdx, CurIdx; + const String plugin_092_Values[P092_DLbus_ValueCount] = { F("p092_Value") }; @@ -178,6 +180,8 @@ boolean Plugin_092(uint8_t function, struct EventStruct *event, String& string) case PLUGIN_WEBFORM_LOAD: { + P092_Last_DLB_Pin = CONFIG_PIN1; + const String plugin_092_ValueNames[P092_DLbus_ValueCount] = { F(PLUGIN_VALUENAME1_092) }; @@ -291,6 +295,16 @@ boolean Plugin_092(uint8_t function, struct EventStruct *event, String& string) ExtraTaskSettings.TaskDeviceValueDecimals[event->BaseVarIndex + i] = P092_OptionValueDecimals[OptionIdx]; } + if (P092_Last_DLB_Pin != CONFIG_PIN1) { + // pin number is changed -> run a new init + P092_init = false; + if (P092_DLB_Pin != 0xFF) { + // interrupt was already attached to P092_DLB_Pin + detachInterrupt(digitalPinToInterrupt(P092_DLB_Pin)); + addLog(LOG_LEVEL_INFO, F("P092_save: detachInterrupt")); + } + } + #ifdef PLUGIN_092_DEBUG if (loglevelActiveFor(LOG_LEVEL_INFO)) { P092_DLB_Pin = CONFIG_PIN1; @@ -298,62 +312,62 @@ boolean Plugin_092(uint8_t function, struct EventStruct *event, String& string) String log = F("PLUGIN_WEBFORM_SAVE :"); log += F(" DLB_Pin:"); log += P092_DLB_Pin; - log += F(" MinPulseWidth:"); - log += DataSettings.MinPulseWidth; - log += F(" MaxPulseWidth:"); - log += DataSettings.MaxPulseWidth; - log += F(" MinDoublePulseWidth:"); - log += DataSettings.MinDoublePulseWidth; - log += F(" MaxDoublePulseWidth:"); - log += DataSettings.MaxDoublePulseWidth; + log += F(" DLbus_MinPulseWidth:"); + log += P092_DataSettings.DLbus_MinPulseWidth; + log += F(" DLbus_MaxPulseWidth:"); + log += P092_DataSettings.DLbus_MaxPulseWidth; + log += F(" DLbus_MinDoublePulseWidth:"); + log += P092_DataSettings.DLbus_MinDoublePulseWidth; + log += F(" DLbus_MaxDoublePulseWidth:"); + log += P092_DataSettings.DLbus_MaxDoublePulseWidth; log += F(" IdxSensor:"); - log += DataSettings.IdxSensor; + log += P092_DataSettings.IdxSensor; log += F(" IdxExtSensor:"); - log += DataSettings.IdxExtSensor; + log += P092_DataSettings.IdxExtSensor; log += F(" IdxOutput:"); - log += DataSettings.IdxOutput; - if (DataSettings.Speeduint8_ts > 0) { + log += P092_DataSettings.IdxOutput; + if (P092_DataSettings.SpeedBytes > 0) { log += F(" IdxDrehzahl:"); - log += DataSettings.IdxDrehzahl; + log += P092_DataSettings.IdxDrehzahl; } - if (DataSettings.Analoguint8_ts > 0) { + if (P092_DataSettings.AnalogBytes > 0) { log += F(" IdxAnalog:"); - log += DataSettings.IdxAnalog; + log += P092_DataSettings.IdxAnalog; } - if (DataSettings.MaxHeatMeters > 0) { + if (P092_DataSettings.MaxHeatMeters > 0) { log += F(" IdxHmRegister:"); - log += DataSettings.IdxHmRegister; + log += P092_DataSettings.IdxHmRegister; } - if (DataSettings.Volumeuint8_ts > 0) { + if (P092_DataSettings.VolumeBytes > 0) { log += F(" IdxVolume:"); - log += DataSettings.IdxVolume; + log += P092_DataSettings.IdxVolume; } - if (DataSettings.MaxHeatMeters > 0) { + if (P092_DataSettings.MaxHeatMeters > 0) { log += F(" IdxHM1:"); - log += DataSettings.IdxHeatMeter1; + log += P092_DataSettings.IdxHeatMeter1; log += F(" IdxkWh1:"); - log += DataSettings.IdxkWh1; + log += P092_DataSettings.IdxkWh1; log += F(" IdxMWh1:"); - log += DataSettings.IdxMWh1; + log += P092_DataSettings.IdxMWh1; } - if (DataSettings.MaxHeatMeters > 1) { + if (P092_DataSettings.MaxHeatMeters > 1) { log += F(" IdxHM2:"); - log += DataSettings.IdxHeatMeter2; + log += P092_DataSettings.IdxHeatMeter2; log += F(" IdxkWh2:"); - log += DataSettings.IdxkWh2; + log += P092_DataSettings.IdxkWh2; log += F(" IdxMWh2:"); - log += DataSettings.IdxMWh2; + log += P092_DataSettings.IdxMWh2; } - if (DataSettings.MaxHeatMeters > 2) { + if (P092_DataSettings.MaxHeatMeters > 2) { log += F(" IdxHM3:"); - log += DataSettings.IdxHeatMeter3; + log += P092_DataSettings.IdxHeatMeter3; log += F(" IdxkWh3:"); - log += DataSettings.IdxkWh3; + log += P092_DataSettings.IdxkWh3; log += F(" IdxMWh3:"); - log += DataSettings.IdxMWh3; + log += P092_DataSettings.IdxMWh3; } log += F(" IdxCRC:"); - log += DataSettings.IdxCRC; + log += P092_DataSettings.IdxCRC; addLog(LOG_LEVEL_INFO, log); } #endif // PLUGIN_092_DEBUG @@ -369,7 +383,7 @@ boolean Plugin_092(uint8_t function, struct EventStruct *event, String& string) return true; } P092_init = true; - addLog(LOG_LEVEL_ERROR, F("P092_init: attachInterrupt")); + addLog(LOG_LEVEL_INFO, F("P092_init: attachInterrupt")); P092_DLB_Pin = CONFIG_PIN1; pinMode(P092_DLB_Pin, INPUT_PULLUP); P092_receiving = false; @@ -397,7 +411,7 @@ boolean Plugin_092(uint8_t function, struct EventStruct *event, String& string) return false; } if (P092_receiving) { - addLog(LOG_LEVEL_ERROR, F("## Error DL-Bus: Still P092_receiving!")); + addLog(LOG_LEVEL_ERROR, F("## Error DL-Bus: Still receiving bits!")); return false; } if (P092_init == false) { @@ -406,7 +420,7 @@ boolean Plugin_092(uint8_t function, struct EventStruct *event, String& string) } Plugin_092_SetIndices(PCONFIG(0)); - if ((P092_ReceivedOK == false) || ((millis()-P092_LastReceived)>(Settings.TaskDeviceTimer[event->TaskIndex] * 1000/2))) { + if ((P092_ReceivedOK == false) || (timePassedSince(P092_LastReceived)>(static_cast(Settings.TaskDeviceTimer[event->TaskIndex] * 1000/2)))) { success = Plugin_092_Receiving(); if (success) success = P092_Processing(); @@ -424,15 +438,15 @@ boolean Plugin_092(uint8_t function, struct EventStruct *event, String& string) OptionIdx = PCONFIG(i + 1) >> 8; CurIdx = PCONFIG(i + 1) & 0x00FF; if (P092_GetData(OptionIdx, CurIdx)) { - UserVar[event->BaseVarIndex + i] = ReadData.value; + UserVar[event->BaseVarIndex + i] = P092_ReadData.value; } else { - addLog(LOG_LEVEL_ERROR, F("Error: No reading!")); + addLog(LOG_LEVEL_ERROR, F("Error: No readings!")); } } } else - addLog(LOG_LEVEL_ERROR, F("## Error DL-Bus: No reading!")); + addLog(LOG_LEVEL_ERROR, F("## Error DL-Bus: No readings!")); break; } } @@ -443,198 +457,203 @@ void Plugin_092_SetIndices(int DeviceIndex) { // Set the indices for the DL bus packet switch (DeviceIndex) { case 21: //ESR21 - DataSettings.Datauint8_ts = 31; - DataSettings.MinPulseWidth = P092_min_width_488; - DataSettings.MaxPulseWidth = P092_max_width_488; - DataSettings.MinDoublePulseWidth = P092_double_min_width_488; - DataSettings.MaxDoublePulseWidth = P092_double_max_width_488; + P092_DataSettings.DataBytes = 31; + P092_DataSettings.DLbus_MinPulseWidth = P092_min_width_488; + P092_DataSettings.DLbus_MaxPulseWidth = P092_max_width_488; + P092_DataSettings.DLbus_MinDoublePulseWidth = P092_double_min_width_488; + P092_DataSettings.DLbus_MaxDoublePulseWidth = P092_double_max_width_488; - DataSettings.Deviceuint8_t0 = 0x70; - DataSettings.Deviceuint8_t1 = 0x8F; - DataSettings.Deviceuint8_ts = 2; - DataSettings.DontCareuint8_ts = 0; - DataSettings.TimeStampuint8_ts = 0; - DataSettings.MaxSensors = 3; - DataSettings.MaxExtSensors = 6; - DataSettings.Outputuint8_ts = 1; - DataSettings.Speeduint8_ts = 1; - DataSettings.Analoguint8_ts = 1; - DataSettings.Volumeuint8_ts = 0; - DataSettings.MaxHeatMeters = 1; - DataSettings.CurrentHmuint8_ts = 2; - DataSettings.MWhuint8_ts = 2; - DataSettings.IdxCRC = 30; + P092_DataSettings.DeviceByte0 = 0x70; + P092_DataSettings.DeviceByte1 = 0x8F; + P092_DataSettings.DeviceBytes = 2; + P092_DataSettings.DontCareBytes = 0; + P092_DataSettings.TimeStampBytes = 0; + P092_DataSettings.MaxSensors = 3; + P092_DataSettings.MaxExtSensors = 6; + P092_DataSettings.OutputBytes = 1; + P092_DataSettings.SpeedBytes = 1; + P092_DataSettings.AnalogBytes = 1; + P092_DataSettings.VolumeBytes = 0; + P092_DataSettings.MaxHeatMeters = 1; + P092_DataSettings.CurrentHmBytes = 2; + P092_DataSettings.MWhBytes = 2; + P092_DataSettings.IdxCRC = 30; P092_OptionValueDecimals[6] = 1; //[0,1kW] F("Heat power (kW)") break; case 31: //UVR31 - DataSettings.Datauint8_ts = 8; - DataSettings.MinPulseWidth = P092_min_width_50; - DataSettings.MaxPulseWidth = P092_max_width_50; - DataSettings.MinDoublePulseWidth = P092_double_min_width_50; - DataSettings.MaxDoublePulseWidth = P092_double_max_width_50; + P092_DataSettings.DataBytes = 8; + P092_DataSettings.DLbus_MinPulseWidth = P092_min_width_50; + P092_DataSettings.DLbus_MaxPulseWidth = P092_max_width_50; + P092_DataSettings.DLbus_MinDoublePulseWidth = P092_double_min_width_50; + P092_DataSettings.DLbus_MaxDoublePulseWidth = P092_double_max_width_50; - DataSettings.Deviceuint8_t0 = 0x30; - DataSettings.Deviceuint8_t1 = 0; - DataSettings.Deviceuint8_ts = 1; - DataSettings.DontCareuint8_ts = 0; - DataSettings.TimeStampuint8_ts = 0; - DataSettings.MaxSensors = 3; - DataSettings.MaxExtSensors = 0; - DataSettings.Outputuint8_ts = 1; - DataSettings.Speeduint8_ts = 0; - DataSettings.Analoguint8_ts = 0; - DataSettings.Volumeuint8_ts = 0; - DataSettings.MaxHeatMeters = 0; - DataSettings.CurrentHmuint8_ts = 0; - DataSettings.MWhuint8_ts = 0; - DataSettings.IdxCRC = 0; + P092_DataSettings.DeviceByte0 = 0x30; + P092_DataSettings.DeviceByte1 = 0; + P092_DataSettings.DeviceBytes = 1; + P092_DataSettings.DontCareBytes = 0; + P092_DataSettings.TimeStampBytes = 0; + P092_DataSettings.MaxSensors = 3; + P092_DataSettings.MaxExtSensors = 0; + P092_DataSettings.OutputBytes = 1; + P092_DataSettings.SpeedBytes = 0; + P092_DataSettings.AnalogBytes = 0; + P092_DataSettings.VolumeBytes = 0; + P092_DataSettings.MaxHeatMeters = 0; + P092_DataSettings.CurrentHmBytes = 0; + P092_DataSettings.MWhBytes = 0; + P092_DataSettings.IdxCRC = 0; break; case 1611: //UVR1611 - DataSettings.Datauint8_ts = 64; - DataSettings.MinPulseWidth = P092_min_width_488; - DataSettings.MaxPulseWidth = P092_max_width_488; - DataSettings.MinDoublePulseWidth = P092_double_min_width_488; - DataSettings.MaxDoublePulseWidth = P092_double_max_width_488; + P092_DataSettings.DataBytes = 64; + P092_DataSettings.DLbus_MinPulseWidth = P092_min_width_488; + P092_DataSettings.DLbus_MaxPulseWidth = P092_max_width_488; + P092_DataSettings.DLbus_MinDoublePulseWidth = P092_double_min_width_488; + P092_DataSettings.DLbus_MaxDoublePulseWidth = P092_double_max_width_488; - DataSettings.Deviceuint8_t0 = 0x80; - DataSettings.Deviceuint8_t1 = 0x7F; - DataSettings.Deviceuint8_ts = 2; - DataSettings.DontCareuint8_ts = 1; - DataSettings.TimeStampuint8_ts = 5; - DataSettings.MaxSensors = 16; - DataSettings.MaxExtSensors = 0; - DataSettings.Outputuint8_ts = 2; - DataSettings.Speeduint8_ts = 4; - DataSettings.Analoguint8_ts = 0; - DataSettings.Volumeuint8_ts = 0; - DataSettings.MaxHeatMeters = 2; - DataSettings.CurrentHmuint8_ts = 4; - DataSettings.MWhuint8_ts = 2; - DataSettings.IdxCRC = 63; + P092_DataSettings.DeviceByte0 = 0x80; + P092_DataSettings.DeviceByte1 = 0x7F; + P092_DataSettings.DeviceBytes = 2; + P092_DataSettings.DontCareBytes = 1; + P092_DataSettings.TimeStampBytes = 5; + P092_DataSettings.MaxSensors = 16; + P092_DataSettings.MaxExtSensors = 0; + P092_DataSettings.OutputBytes = 2; + P092_DataSettings.SpeedBytes = 4; + P092_DataSettings.AnalogBytes = 0; + P092_DataSettings.VolumeBytes = 0; + P092_DataSettings.MaxHeatMeters = 2; + P092_DataSettings.CurrentHmBytes = 4; + P092_DataSettings.MWhBytes = 2; + P092_DataSettings.IdxCRC = 63; P092_OptionValueDecimals[6] = 2; //[0,01kW] F("Heat power (kW)") break; case 6132: //UVR 61-3 (up to V8.2) - DataSettings.Datauint8_ts = 35; - DataSettings.MinPulseWidth = P092_min_width_488; - DataSettings.MaxPulseWidth = P092_max_width_488; - DataSettings.MinDoublePulseWidth = P092_double_min_width_488; - DataSettings.MaxDoublePulseWidth = P092_double_max_width_488; + P092_DataSettings.DataBytes = 35; + P092_DataSettings.DLbus_MinPulseWidth = P092_min_width_488; + P092_DataSettings.DLbus_MaxPulseWidth = P092_max_width_488; + P092_DataSettings.DLbus_MinDoublePulseWidth = P092_double_min_width_488; + P092_DataSettings.DLbus_MaxDoublePulseWidth = P092_double_max_width_488; - DataSettings.Deviceuint8_t0 = 0x90; - DataSettings.Deviceuint8_t1 = 0x6F; - DataSettings.Deviceuint8_ts = 2; - DataSettings.DontCareuint8_ts = 1; - DataSettings.TimeStampuint8_ts = 5; - DataSettings.MaxSensors = 6; - DataSettings.MaxExtSensors = 0; - DataSettings.Outputuint8_ts = 1; - DataSettings.Speeduint8_ts = 1; - DataSettings.Analoguint8_ts = 1; - DataSettings.Volumeuint8_ts = 2; - DataSettings.MaxHeatMeters = 1; - DataSettings.CurrentHmuint8_ts = 2; - DataSettings.MWhuint8_ts = 4; - DataSettings.IdxCRC = 34; + P092_DataSettings.DeviceByte0 = 0x90; + P092_DataSettings.DeviceByte1 = 0x6F; + P092_DataSettings.DeviceBytes = 2; + P092_DataSettings.DontCareBytes = 1; + P092_DataSettings.TimeStampBytes = 5; + P092_DataSettings.MaxSensors = 6; + P092_DataSettings.MaxExtSensors = 0; + P092_DataSettings.OutputBytes = 1; + P092_DataSettings.SpeedBytes = 1; + P092_DataSettings.AnalogBytes = 1; + P092_DataSettings.VolumeBytes = 2; + P092_DataSettings.MaxHeatMeters = 1; + P092_DataSettings.CurrentHmBytes = 2; + P092_DataSettings.MWhBytes = 4; + P092_DataSettings.IdxCRC = 34; P092_OptionValueDecimals[6] = 1; //[0,1kW] F("Heat power (kW)") break; case 6133: //UVR 61-3 (from V8.3) - DataSettings.Datauint8_ts = 62; - DataSettings.MinPulseWidth = P092_min_width_488; - DataSettings.MaxPulseWidth = P092_max_width_488; - DataSettings.MinDoublePulseWidth = P092_double_min_width_488; - DataSettings.MaxDoublePulseWidth = P092_double_max_width_488; + P092_DataSettings.DataBytes = 62; + P092_DataSettings.DLbus_MinPulseWidth = P092_min_width_488; + P092_DataSettings.DLbus_MaxPulseWidth = P092_max_width_488; + P092_DataSettings.DLbus_MinDoublePulseWidth = P092_double_min_width_488; + P092_DataSettings.DLbus_MaxDoublePulseWidth = P092_double_max_width_488; - DataSettings.Deviceuint8_t0 = 0x90; - DataSettings.Deviceuint8_t1 = 0x9F; - DataSettings.Deviceuint8_ts = 2; - DataSettings.DontCareuint8_ts = 1; - DataSettings.TimeStampuint8_ts = 5; - DataSettings.MaxSensors = 6; - DataSettings.MaxExtSensors = 9; - DataSettings.Outputuint8_ts = 1; - DataSettings.Speeduint8_ts = 1; - DataSettings.Analoguint8_ts = 2; - DataSettings.Volumeuint8_ts = 0; - DataSettings.MaxHeatMeters = 3; - DataSettings.CurrentHmuint8_ts = 2; - DataSettings.MWhuint8_ts = 2; - DataSettings.IdxCRC = 61; + P092_DataSettings.DeviceByte0 = 0x90; + P092_DataSettings.DeviceByte1 = 0x9F; + P092_DataSettings.DeviceBytes = 2; + P092_DataSettings.DontCareBytes = 1; + P092_DataSettings.TimeStampBytes = 5; + P092_DataSettings.MaxSensors = 6; + P092_DataSettings.MaxExtSensors = 9; + P092_DataSettings.OutputBytes = 1; + P092_DataSettings.SpeedBytes = 1; + P092_DataSettings.AnalogBytes = 2; + P092_DataSettings.VolumeBytes = 0; + P092_DataSettings.MaxHeatMeters = 3; + P092_DataSettings.CurrentHmBytes = 2; + P092_DataSettings.MWhBytes = 2; + P092_DataSettings.IdxCRC = 61; P092_OptionValueDecimals[6] = 1; //[0,1kW] F("Heat power (kW)") break; } - DataSettings.IdxSensor = DataSettings.Deviceuint8_ts + DataSettings.DontCareuint8_ts + DataSettings.TimeStampuint8_ts; - DataSettings.IdxExtSensor = DataSettings.IdxSensor + 2 * DataSettings.MaxSensors; - DataSettings.IdxOutput = DataSettings.IdxExtSensor + 2 * DataSettings.MaxExtSensors; - DataSettings.IdxDrehzahl = DataSettings.IdxOutput + DataSettings.Outputuint8_ts; - DataSettings.IdxAnalog = DataSettings.IdxDrehzahl + DataSettings.Speeduint8_ts; - DataSettings.IdxHmRegister = DataSettings.IdxAnalog + DataSettings.Analoguint8_ts; - DataSettings.IdxVolume = DataSettings.IdxHmRegister + 1; - DataSettings.IdxHeatMeter1 = DataSettings.IdxVolume + DataSettings.Volumeuint8_ts; - DataSettings.IdxkWh1 = DataSettings.IdxHeatMeter1 + DataSettings.CurrentHmuint8_ts; - DataSettings.IdxMWh1 = DataSettings.IdxkWh1 + 2; - DataSettings.IdxHeatMeter2 = DataSettings.IdxMWh1 + DataSettings.MWhuint8_ts; - DataSettings.IdxkWh2 = DataSettings.IdxHeatMeter2 + DataSettings.CurrentHmuint8_ts; - DataSettings.IdxMWh2 = DataSettings.IdxkWh2 + 2; - DataSettings.IdxHeatMeter3 = DataSettings.IdxMWh2 + DataSettings.MWhuint8_ts; - DataSettings.IdxkWh3 = DataSettings.IdxHeatMeter3 + DataSettings.CurrentHmuint8_ts; - DataSettings.IdxMWh3 = DataSettings.IdxkWh3 + 2; + P092_DataSettings.IdxSensor = P092_DataSettings.DeviceBytes + P092_DataSettings.DontCareBytes + P092_DataSettings.TimeStampBytes; + P092_DataSettings.IdxExtSensor = P092_DataSettings.IdxSensor + 2 * P092_DataSettings.MaxSensors; + P092_DataSettings.IdxOutput = P092_DataSettings.IdxExtSensor + 2 * P092_DataSettings.MaxExtSensors; + P092_DataSettings.IdxDrehzahl = P092_DataSettings.IdxOutput + P092_DataSettings.OutputBytes; + P092_DataSettings.IdxAnalog = P092_DataSettings.IdxDrehzahl + P092_DataSettings.SpeedBytes; + P092_DataSettings.IdxHmRegister = P092_DataSettings.IdxAnalog + P092_DataSettings.AnalogBytes; + P092_DataSettings.IdxVolume = P092_DataSettings.IdxHmRegister + 1; + P092_DataSettings.IdxHeatMeter1 = P092_DataSettings.IdxVolume + P092_DataSettings.VolumeBytes; + P092_DataSettings.IdxkWh1 = P092_DataSettings.IdxHeatMeter1 + P092_DataSettings.CurrentHmBytes; + P092_DataSettings.IdxMWh1 = P092_DataSettings.IdxkWh1 + 2; + P092_DataSettings.IdxHeatMeter2 = P092_DataSettings.IdxMWh1 + P092_DataSettings.MWhBytes; + P092_DataSettings.IdxkWh2 = P092_DataSettings.IdxHeatMeter2 + P092_DataSettings.CurrentHmBytes; + P092_DataSettings.IdxMWh2 = P092_DataSettings.IdxkWh2 + 2; + P092_DataSettings.IdxHeatMeter3 = P092_DataSettings.IdxMWh2 + P092_DataSettings.MWhBytes; + P092_DataSettings.IdxkWh3 = P092_DataSettings.IdxHeatMeter3 + P092_DataSettings.CurrentHmBytes; + P092_DataSettings.IdxMWh3 = P092_DataSettings.IdxkWh3 + 2; } /*********************************************************************************************\ DLBus subs to get values from the P092_receiving bitstream \*********************************************************************************************/ -// one data frame has data uint8_ts + SYNC, e.g. 64 * (8+1+1) + 16 = 656 +// one data frame has data bytes + SYNC, e.g. 64 * (8+1+1) + 16 = 656 // 656 * 2 = 1312 (twice as much as a data frame is saved // so there's one complete data frame -#define MaxDatauint8_ts 64 -#define AdditionalRecuint8_ts 2 -#define MaxDataBits (((MaxDatauint8_ts + AdditionalRecuint8_ts) * (8 + 1 + 1) + 16) * 4) -volatile uint8_t BitStream[MaxDataBits]; // received bit stream -volatile int pulse_count; // number of received pulses -volatile int pulse_number; // max naumber of the received pulses -volatile uint32_t last_bit_change = 0; // remember the last transition -volatile uint16_t MinPulseWidth, MaxPulseWidth, MinDoublePulseWidth, MaxDoublePulseWidth; -volatile uint32_t TimeInMicros; // current time in µs -volatile uint32_t time_diff; // time difference to previous pulse in µs +#define DLbus_MaxDataBytes 64 +#define DLbus_AdditionalRecBytes 2 +#define DLbus_MaxDataBits (((DLbus_MaxDataBytes + DLbus_AdditionalRecBytes) * (8 + 1 + 1) + 16) * 3) // ((64+2) * (8+1+1) + 16) * 3 = 2028 bytes -uint8_t uint8_tStream[MaxDataBits / 8 + 1]; // every bit gets sorted into a bitmap -int bit_number; // bit size of the data frame +// variables used in interrupt function +volatile uint8_t DLbus_BitStream[DLbus_MaxDataBits]; // received bit stream (each bit is extended to uint8_t, containing the timing flags) +volatile int DLbus_pulse_count; // number of received pulses +volatile int DLbus_pulse_number; // max naumber of the received pulses +volatile uint32_t DLbus_last_bit_change = 0; // remember the last transition +volatile uint16_t DLbus_MinPulseWidth, DLbus_MaxPulseWidth, DLbus_MinDoublePulseWidth, DLbus_MaxDoublePulseWidth; -uint8_t WrongTimeCnt; -uint16_t WrongTimings[5][6]; +uint8_t DLbus_ByteStream[DLbus_MaxDataBits / 8 + 1]; // every bit gets sorted into a bitmap +int DLbus_bit_number; // bit size of the data frame -int start_bit; // first bit of data frame +uint8_t DLbus_WrongTimeCnt; +uint16_t DLbus_WrongTimings[5][6]; + +int DLbus_start_bit; // first bit of data frame // sensor types -#define UNUSED 0b000 -#define DIGITAL 0b001 -#define TEMP 0b010 -#define VOLUME_FLOW 0b011 -#define RAYS 0b110 -#define ROOM 0b111 +#define DLbus_UNUSED 0b000 +#define DLbus_Sensor_DIGITAL 0b001 +#define DLbus_Sensor_TEMP 0b010 +#define DLbus_Sensor_VOLUME_FLOW 0b011 +#define DLbus_Sensor_RAYS 0b110 +#define DLbus_Sensor_ROOM 0b111 // room sensor modes -#define AUTO 0b00 -#define NORMAL 0b01 -#define LOWER 0b10 -#define STANDBY 0b11 +#define DLbus_RSM_AUTO 0b00 +#define DLbus_RSM_NORMAL 0b01 +#define DLbus_RSM_LOWER 0b10 +#define DLbus_RSM_STANDBY 0b11 -// Flags for pulse width -#define flgSingleWidth 0x02 -#define flgDoubleWidth 0x04 - -// Types for guessing -#define GuessTrueAndDouble 0x01 -#define GuessFalseAndDouble 0x02 -#define GuessTrueAndSingle 0x03 -#define GuessFalseAndSingle 0x04 +// Flags for pulse width (bit 0 is the content!) +#define DLbus_FlagSingleWidth 0x02 +#define DLbus_FlagDoubleWidth 0x04 +#define DLbus_FlagShorterThanSingleWidth 0x10 +#define DLbus_FlagBetweenDoubleSingleWidth 0x20 +#define DLbus_FlagLongerThanDoubleWidth 0x40 +#define DLbus_FlagLongerThanTwiceDoubleWidth 0x80 +#define DLbus_FlagsWrongTiming (DLbus_FlagLongerThanTwiceDoubleWidth | DLbus_FlagLongerThanDoubleWidth | DLbus_FlagBetweenDoubleSingleWidth | DLbus_FlagShorterThanSingleWidth) // heat meter -int power_index, kwh_index, mwh_index; +typedef struct { + uint8_t IndexIsValid; + int32_t power_index; + int32_t kwh_index; + int32_t mwh_index; +} sDLbus_HMindex; +sDLbus_HMindex P092_CheckHmRegister(int number); /****************\ DLBus P092_receiving @@ -644,21 +663,21 @@ boolean Plugin_092_Receiving(void) { uint8_t rawval, val; int i; noInterrupts (); // make sure we don't get interrupted before we are ready - pulse_count = 0; - pulse_number = (((DataSettings.Datauint8_ts + AdditionalRecuint8_ts) * (8 + 1 + 1) + 16) * 4); - MinPulseWidth = DataSettings.MinPulseWidth; - MaxPulseWidth = DataSettings.MaxPulseWidth; - MinDoublePulseWidth = DataSettings.MinDoublePulseWidth; - MaxDoublePulseWidth = DataSettings.MaxDoublePulseWidth; - addLog(LOG_LEVEL_INFO, F("P092_receiving ...")); + DLbus_pulse_count = 0; + DLbus_pulse_number = (((P092_DataSettings.DataBytes + DLbus_AdditionalRecBytes) * (8 + 1 + 1) + 16) * 3); + DLbus_MinPulseWidth = P092_DataSettings.DLbus_MinPulseWidth; + DLbus_MaxPulseWidth = P092_DataSettings.DLbus_MaxPulseWidth; + DLbus_MinDoublePulseWidth = P092_DataSettings.DLbus_MinDoublePulseWidth; + DLbus_MaxDoublePulseWidth = P092_DataSettings.DLbus_MaxDoublePulseWidth; P092_receiving = true; interrupts (); // interrupts allowed now, next instruction WILL be executed uint32_t start=millis(); - while ((millis()-start)<100) { - // wait 100 ms + addLog(LOG_LEVEL_INFO, F("P092_receiving ...")); + while ((timePassedSince(start)<100) && (DLbus_pulse_count == 0)) { + // wait for first pulse received (timeout 100ms) yield(); } - if (pulse_count == 0) { + if (DLbus_pulse_count == 0) { // nothing received P092_receiving = false; addLog(LOG_LEVEL_ERROR, F("Error: Nothing received! No DL bus connected!")); @@ -666,39 +685,44 @@ boolean Plugin_092_Receiving(void) { } while (P092_receiving) { // wait for end of P092_receiving + // loop time depends on the device (bytes in protocol and clock frequency) + // ESR21: (((31 + 2) * (8 + 1 + 1) + 16) * 3) = 1038 bits @ 488Hz = 2,13s + // UVR31: ((( 8 + 2) * (8 + 1 + 1) + 16) * 3) = 348 bits @ 50Hz = 6,96s + // UVR1611: (((64 + 2) * (8 + 1 + 1) + 16) * 3) = 2028 bits @ 488Hz = 4,16s + // UVR 61-3: (((62 + 2) * (8 + 1 + 1) + 16) * 3) = 2028 bits @ 488Hz = 4,03s yield(); } addLog(LOG_LEVEL_INFO, F("Receive stopped.")); - WrongTimeCnt = 0; - pulse_count = 0; - for (i = 0; i <= pulse_number; i++) { - // store BitStream into uint8_tStream - rawval = BitStream[i]; - if ((rawval & 0xF0) != 0) { - // wrong time_diff - if ((pulse_count > 0) && (WrongTimeCnt < 5)) { - WrongTimings[WrongTimeCnt][0] = i; - WrongTimings[WrongTimeCnt][1] = pulse_count; - WrongTimings[WrongTimeCnt][2] = bit_number; - WrongTimings[WrongTimeCnt][3] = rawval; - if ((rawval==0x80) && (BitStream[i-1]==0x05)) { - // Add two additional short pulses + DLbus_WrongTimeCnt = 0; + DLbus_pulse_count = 0; + for (i = 0; i <= DLbus_pulse_number; i++) { + // store DLbus_BitStream into DLbus_ByteStream + rawval = DLbus_BitStream[i]; + if (rawval & DLbus_FlagsWrongTiming) { + // wrong DLbus_time_diff + if ((DLbus_pulse_count > 0) && (DLbus_WrongTimeCnt < 5)) { + DLbus_WrongTimings[DLbus_WrongTimeCnt][0] = i; + DLbus_WrongTimings[DLbus_WrongTimeCnt][1] = DLbus_pulse_count; + DLbus_WrongTimings[DLbus_WrongTimeCnt][2] = DLbus_bit_number; + DLbus_WrongTimings[DLbus_WrongTimeCnt][3] = rawval; + if ((rawval == DLbus_FlagLongerThanTwiceDoubleWidth) && (DLbus_BitStream[i-1] == (DLbus_FlagDoubleWidth | 0x01))) { + // Add two additional short pulses (low and high), previous bit is High and contains DLbus_FlagDoubleWidth P092_process_bit(0); P092_process_bit(1); - WrongTimings[WrongTimeCnt][4] = flgSingleWidth; - WrongTimings[WrongTimeCnt][5] = flgSingleWidth+1; + DLbus_WrongTimings[DLbus_WrongTimeCnt][4] = DLbus_FlagSingleWidth; + DLbus_WrongTimings[DLbus_WrongTimeCnt][5] = DLbus_FlagSingleWidth+1; } else { - WrongTimings[WrongTimeCnt][4] = 0xff; - WrongTimings[WrongTimeCnt][5] = 0xff; + DLbus_WrongTimings[DLbus_WrongTimeCnt][4] = 0xff; + DLbus_WrongTimings[DLbus_WrongTimeCnt][5] = 0xff; } - WrongTimeCnt++; + DLbus_WrongTimeCnt++; } } else { val = rawval & 0x01; - if ((rawval & flgDoubleWidth) == flgDoubleWidth) { + if ((rawval & DLbus_FlagDoubleWidth) == DLbus_FlagDoubleWidth) { // double pulse width P092_process_bit(!val); P092_process_bit(val); @@ -709,32 +733,32 @@ boolean Plugin_092_Receiving(void) { } } } - addLog(LOG_LEVEL_INFO, F("BitStream copied.")); + addLog(LOG_LEVEL_INFO, F("DLbus_BitStream copied.")); #ifdef PLUGIN_092_DEBUG - if (WrongTimeCnt > 0) { + if (DLbus_WrongTimeCnt > 0) { if (loglevelActiveFor(LOG_LEVEL_INFO)) { String log = F("Wrong Timings: "); addLog(LOG_LEVEL_INFO, log); - for (i = 0; i < WrongTimeCnt; i++) { + for (i = 0; i < DLbus_WrongTimeCnt; i++) { log = i + 1; log += F(": PulseCount:"); - log += WrongTimings[i][1]; + log += DLbus_WrongTimings[i][1]; log += F(": BitCount:"); - log += WrongTimings[i][2]; + log += DLbus_WrongTimings[i][2]; log += F(" Value:0x"); - log += String(WrongTimings[i][3], HEX); + log += String(DLbus_WrongTimings[i][3], HEX); log += F(" ValueBefore:0x"); - log += String(BitStream[WrongTimings[i][0] - 1], HEX); + log += String(DLbus_BitStream[DLbus_WrongTimings[i][0] - 1], HEX); log += F(" ValueAfter:0x"); - log += String(BitStream[WrongTimings[i][0] + 1], HEX); - if (WrongTimings[i][4]!=0xff) { + log += String(DLbus_BitStream[DLbus_WrongTimings[i][0] + 1], HEX); + if (DLbus_WrongTimings[i][4]!=0xff) { log += F(" Added:0x"); - log += String(WrongTimings[i][4], HEX); + log += String(DLbus_WrongTimings[i][4], HEX); } - if (WrongTimings[i][5]!=0xff) { + if (DLbus_WrongTimings[i][5]!=0xff) { log += F(" Added:0x"); - log += String(WrongTimings[i][5], HEX); + log += String(DLbus_WrongTimings[i][5], HEX); } addLog(LOG_LEVEL_INFO, log); } @@ -749,21 +773,20 @@ boolean Plugin_092_Receiving(void) { \*****************/ void P092_Pin_changed(void) { - TimeInMicros = micros(); - time_diff = TimeInMicros - last_bit_change; - last_bit_change = TimeInMicros; + uint32_t DLbus_time_diff = usecPassedSince(DLbus_last_bit_change); // time difference to previous pulse in µs + DLbus_last_bit_change = micros(); // save last pin change time if (P092_receiving) { - uint8_t val = digitalRead(P092_DLB_Pin); // read state + uint8_t val = digitalRead(P092_DLB_Pin); // read state // check pulse width - if (time_diff >= 2*MinDoublePulseWidth) val |= 0x80; // longer then 2x double pulse width - else if (time_diff > MaxDoublePulseWidth) val |= 0x40; // longer then double pulse width - else if (time_diff >= MinDoublePulseWidth) val |= flgDoubleWidth; // double pulse width - else if (time_diff > MaxPulseWidth) val |= 0x20; // between double and single pulse width - else if (time_diff < MinPulseWidth) val |= 0x10; // shorter then single pulse width - else val |= flgSingleWidth; // single pulse width - BitStream[pulse_count] = val; // set bit - pulse_count++; - P092_receiving = (pulse_count < pulse_number); // stop P092_receiving when data frame is complete + if (DLbus_time_diff >= 2*DLbus_MinDoublePulseWidth) val |= DLbus_FlagLongerThanTwiceDoubleWidth; // longer then 2x double pulse width + else if (DLbus_time_diff > DLbus_MaxDoublePulseWidth) val |= DLbus_FlagLongerThanDoubleWidth; // longer then double pulse width + else if (DLbus_time_diff >= DLbus_MinDoublePulseWidth) val |= DLbus_FlagDoubleWidth; // double pulse width + else if (DLbus_time_diff > DLbus_MaxPulseWidth) val |= DLbus_FlagBetweenDoubleSingleWidth; // between double and single pulse width + else if (DLbus_time_diff < DLbus_MinPulseWidth) val |= DLbus_FlagShorterThanSingleWidth; // shorter then single pulse width + else val |= DLbus_FlagSingleWidth; // single pulse width + DLbus_BitStream[DLbus_pulse_count] = val; // set bit + DLbus_pulse_count++; + P092_receiving = (DLbus_pulse_count < DLbus_pulse_number); // stop P092_receiving when data frame is complete } } @@ -773,54 +796,54 @@ void P092_Pin_changed(void) { void P092_process_bit(uint8_t b) { // ignore first pulse - pulse_count++; - if (pulse_count % 2) + DLbus_pulse_count++; + if (DLbus_pulse_count % 2) return; - bit_number = (pulse_count / 2); + DLbus_bit_number = (DLbus_pulse_count / 2); if (b) - uint8_tStream[bit_number / 8] |= (1 << (bit_number % 8)); // set bit + DLbus_ByteStream[DLbus_bit_number / 8] |= (1 << (DLbus_bit_number % 8)); // set bit else - uint8_tStream[bit_number / 8] &= ~(1 << (bit_number % 8)); // clear bit + DLbus_ByteStream[DLbus_bit_number / 8] &= ~(1 << (DLbus_bit_number % 8)); // clear bit } boolean P092_Processing(void) { boolean inverted = false; String log; addLog(LOG_LEVEL_INFO, F("Processing...")); - start_bit = P092_Analyze(); // find the data frame's beginning + DLbus_start_bit = P092_Analyze(); // find the data frame's beginning // inverted signal? - while (start_bit == -1) { + while (DLbus_start_bit == -1) { if (inverted) { return false; } addLog(LOG_LEVEL_INFO, F("Invert bit stream...")); P092_Invert(); // invert again inverted = true; - start_bit = P092_Analyze(); - if (start_bit == -1) { + DLbus_start_bit = P092_Analyze(); + if (DLbus_start_bit == -1) { addLog(LOG_LEVEL_ERROR, F("Error: No data frame available!")); return false; } - if ((bit_number-start_bit)<(pulse_number/4)) { + if ((DLbus_bit_number-DLbus_start_bit)<(DLbus_pulse_number/4)) { // no complete data frame available if (loglevelActiveFor(LOG_LEVEL_INFO)) { addLog(LOG_LEVEL_INFO, F("Start bit too close to end of stream!")); log = F("# Required bits: "); - log += pulse_number/4; + log += DLbus_pulse_number/4; log += F(" StartBit: "); - log += start_bit; + log += DLbus_start_bit; log += F(" / EndBit: "); - log += bit_number; + log += DLbus_bit_number; addLog(LOG_LEVEL_INFO, log); } - start_bit = -1; + DLbus_start_bit = -1; } } if (loglevelActiveFor(LOG_LEVEL_INFO)) { log = F("StartBit: "); - log += start_bit; + log += DLbus_start_bit; log += F(" / EndBit: "); - log += bit_number; + log += DLbus_bit_number; addLog(LOG_LEVEL_INFO, log); } P092_Trim(); // remove start and stop bits @@ -835,7 +858,7 @@ String log; int P092_Analyze() { uint8_t sync=0; // find SYNC (16 * sequential 1) - for (int i = 0; i < bit_number; i++) { + for (int i = 0; i < DLbus_bit_number; i++) { if (P092_ReadBit(i)) sync++; else @@ -851,25 +874,25 @@ int P092_Analyze() { return -1; } void P092_Invert() { - for (int i = 0; i < bit_number; i++) + for (int i = 0; i < DLbus_bit_number; i++) P092_WriteBit(i, P092_ReadBit(i) ? 0 : 1); // invert every bit } uint8_t P092_ReadBit(int pos) { int row = pos / 8; // detect position in bitmap int col = pos % 8; - return (((uint8_tStream[row]) >> (col)) & 0x01); // return bit + return (((DLbus_ByteStream[row]) >> (col)) & 0x01); // return bit } void P092_WriteBit(int pos, uint8_t set) { int row = pos / 8; // detect position in bitmap int col = pos % 8; if (set) - uint8_tStream[row] |= 1 << col; // set bit + DLbus_ByteStream[row] |= 1 << col; // set bit else - uint8_tStream[row] &= ~(1 << col); // clear bit + DLbus_ByteStream[row] &= ~(1 << col); // clear bit } void P092_Trim() { - for (int i = start_bit, bit = 0; i < bit_number; i++) { - int offset = i - start_bit; + for (int i = DLbus_start_bit, bit = 0; i < DLbus_bit_number; i++) { + int offset = i - DLbus_start_bit; // ignore start and stop bits: // start bits: 0 10 20 30, also x % 10 == 0 // stop bits: 9 19 29 39, also (x+1) % 10 == 0 @@ -886,19 +909,19 @@ void P092_Trim() { boolean P092_CheckDevice() { // Data frame of a device? - if (uint8_tStream[0] == DataSettings.Deviceuint8_t0) { - if ((DataSettings.Deviceuint8_ts == 1) || (uint8_tStream[1] == DataSettings.Deviceuint8_t1)) + if (DLbus_ByteStream[0] == P092_DataSettings.DeviceByte0) { + if ((P092_DataSettings.DeviceBytes == 1) || (DLbus_ByteStream[1] == P092_DataSettings.DeviceByte1)) return true; } if (loglevelActiveFor(LOG_LEVEL_INFO)) { - String log = F("# Received Deviceuint8_t(s): 0x"); - log += String(uint8_tStream[0], HEX); - if (DataSettings.Deviceuint8_ts > 1) - log += String(uint8_tStream[1], HEX); + String log = F("# Received DeviceByte(s): 0x"); + log += String(DLbus_ByteStream[0], HEX); + if (P092_DataSettings.DeviceBytes > 1) + log += String(DLbus_ByteStream[1], HEX); log += F(" Requested: 0x"); - log += String(DataSettings.Deviceuint8_t0, HEX); - if (DataSettings.Deviceuint8_ts > 1) - log += String(DataSettings.Deviceuint8_t1, HEX); + log += String(P092_DataSettings.DeviceByte0, HEX); + if (P092_DataSettings.DeviceBytes > 1) + log += String(P092_DataSettings.DeviceByte1, HEX); addLog(LOG_LEVEL_INFO, log); } return false; @@ -906,20 +929,20 @@ boolean P092_CheckDevice() { boolean P092_CheckCRC() { // CRC check sum - if (DataSettings.IdxCRC == 0) + if (P092_DataSettings.IdxCRC == 0) return true; addLog(LOG_LEVEL_INFO, F("Check CRC...")); uint16_t dataSum = 0; - for (int i = 0; i < DataSettings.IdxCRC; i++) - dataSum = dataSum + uint8_tStream[i]; + for (int i = 0; i < P092_DataSettings.IdxCRC; i++) + dataSum = dataSum + DLbus_ByteStream[i]; dataSum = dataSum & 0xff; - if (dataSum == uint8_tStream[DataSettings.IdxCRC]) + if (dataSum == DLbus_ByteStream[P092_DataSettings.IdxCRC]) return true; if (loglevelActiveFor(LOG_LEVEL_INFO)) { String log = F("# Calculated CRC: 0x"); log += String(dataSum, HEX); log += F(" Received: 0x"); - log += String(uint8_tStream[DataSettings.IdxCRC], HEX); + log += String(DLbus_ByteStream[P092_DataSettings.IdxCRC], HEX); addLog(LOG_LEVEL_INFO, log); } return false; @@ -932,27 +955,27 @@ boolean P092_GetData(int OptionIdx, int CurIdx) { case 1: //F("Sensor") log = F("Get Sensor"); log += CurIdx; - if (CurIdx > DataSettings.MaxSensors) { + if (CurIdx > P092_DataSettings.MaxSensors) { result=false; break; } - ReadData.Idx = DataSettings.IdxSensor; + P092_ReadData.Idx = P092_DataSettings.IdxSensor; result = P092_fetch_sensor(CurIdx); break; case 2: //F("Sensor") log = F("Get ExtSensor"); log += CurIdx; - if (CurIdx > DataSettings.MaxExtSensors) { + if (CurIdx > P092_DataSettings.MaxExtSensors) { result=false; break; } - ReadData.Idx = DataSettings.IdxExtSensor; + P092_ReadData.Idx = P092_DataSettings.IdxExtSensor; result = P092_fetch_sensor(CurIdx); break; case 3: //F("Digital output") log = F("Get DigitalOutput"); log += CurIdx; - if (CurIdx > (8 * DataSettings.Outputuint8_ts)) { + if (CurIdx > (8 * P092_DataSettings.OutputBytes)) { result=false; break; } @@ -961,7 +984,7 @@ boolean P092_GetData(int OptionIdx, int CurIdx) { case 4: //F("Speed step") log = F("Get SpeedStep"); log += CurIdx; - if (CurIdx > DataSettings.Speeduint8_ts) { + if (CurIdx > P092_DataSettings.SpeedBytes) { result=false; break; } @@ -970,7 +993,7 @@ boolean P092_GetData(int OptionIdx, int CurIdx) { case 5: //F("Analog output") log = F("Get AnalogOutput"); log += CurIdx; - if (CurIdx > DataSettings.Analoguint8_ts) { + if (CurIdx > P092_DataSettings.AnalogBytes) { result=false; break; } @@ -979,7 +1002,7 @@ boolean P092_GetData(int OptionIdx, int CurIdx) { case 6: //F("Heat power (kW)") log = F("Get HeatPower"); log += CurIdx; - if (CurIdx > DataSettings.MaxHeatMeters) { + if (CurIdx > P092_DataSettings.MaxHeatMeters) { result=false; break; } @@ -988,7 +1011,7 @@ boolean P092_GetData(int OptionIdx, int CurIdx) { case 7: //F("Heat meter (MWh)" log = F("Get HeatMeter"); log += CurIdx; - if (CurIdx > DataSettings.MaxHeatMeters) { + if (CurIdx > P092_DataSettings.MaxHeatMeters) { result=false; break; } @@ -998,7 +1021,7 @@ boolean P092_GetData(int OptionIdx, int CurIdx) { if (loglevelActiveFor(LOG_LEVEL_INFO)) { log += F(": "); if (result) { - log += String(ReadData.value, 1); + log += String(P092_ReadData.value, 1); } else { log += F("nan"); @@ -1010,9 +1033,9 @@ boolean P092_GetData(int OptionIdx, int CurIdx) { boolean P092_fetch_sensor(int number) { float value; - ReadData.mode = -1; - number = ReadData.Idx + (number - 1) * 2; - int sensorvalue = (uint8_tStream[number + 1] << 8) | uint8_tStream[number]; + P092_ReadData.mode = -1; + number = P092_ReadData.Idx + (number - 1) * 2; + int32_t sensorvalue = (DLbus_ByteStream[number + 1] << 8) | DLbus_ByteStream[number]; if (sensorvalue == 0) { return false; } @@ -1021,20 +1044,20 @@ boolean P092_fetch_sensor(int number) { sensorvalue &= 0xfff; // calculations for different sensor types switch (sensortype) { - case DIGITAL: + case DLbus_Sensor_DIGITAL: value = false; break; - case TEMP: + case DLbus_Sensor_TEMP: value = sensorvalue * 0.1; break; - case RAYS: + case DLbus_Sensor_RAYS: value = sensorvalue; break; - case VOLUME_FLOW: + case DLbus_Sensor_VOLUME_FLOW: value = sensorvalue * 4; break; - case ROOM: - ReadData.mode = (sensorvalue & 0x600) >> 9; + case DLbus_Sensor_ROOM: + P092_ReadData.mode = (sensorvalue & 0x600) >> 9; value = (sensorvalue & 0x1ff) * 0.1; break; default: @@ -1045,126 +1068,142 @@ boolean P092_fetch_sensor(int number) { sensorvalue |= 0xf000; // calculations for different sensor types switch (sensortype) { - case DIGITAL: + case DLbus_Sensor_DIGITAL: value = true; break; - case TEMP: - value = (sensorvalue - 65536) * 0.1; + case DLbus_Sensor_TEMP: + value = (sensorvalue - 0x10000) * 0.1; break; - case RAYS: - value = sensorvalue - 65536; + case DLbus_Sensor_RAYS: + value = sensorvalue - 0x10000; break; - case VOLUME_FLOW: - value = (sensorvalue - 65536) * 4; + case DLbus_Sensor_VOLUME_FLOW: + value = (sensorvalue - 0x10000) * 4; break; - case ROOM: - ReadData.mode = (sensorvalue & 0x600) >> 9; - value = ((sensorvalue & 0x1ff) - 65536) * 0.1; + case DLbus_Sensor_ROOM: + P092_ReadData.mode = (sensorvalue & 0x600) >> 9; + value = ((sensorvalue & 0x1ff) - 0x10000) * 0.1; break; default: return false; } } - ReadData.value = value; + P092_ReadData.value = value; return true; } boolean P092_fetch_output(int number) { - int outputs; + int32_t outputs; - if (DataSettings.Outputuint8_ts > 1) - outputs = (uint8_tStream[DataSettings.IdxOutput + 1] << 8) | uint8_tStream[DataSettings.IdxOutput]; + if (P092_DataSettings.OutputBytes > 1) + outputs = (DLbus_ByteStream[P092_DataSettings.IdxOutput + 1] << 8) | DLbus_ByteStream[P092_DataSettings.IdxOutput]; else - outputs = uint8_tStream[DataSettings.IdxOutput]; - ReadData.value = (!!(outputs & (1 << (number - 1)))); + outputs = DLbus_ByteStream[P092_DataSettings.IdxOutput]; + if (outputs & (1 << (number - 1))) + P092_ReadData.value = 1; + else + P092_ReadData.value = 0; return true; } boolean P092_fetch_speed(int number) { - uint8_t speeduint8_t; + uint8_t speedbyte; - speeduint8_t = uint8_tStream[DataSettings.IdxDrehzahl + (number - 1)]; - if ((speeduint8_t & 0x80) == 0x80) + if ((P092_DataSettings.IdxDrehzahl + (number - 1)) >= P092_DataSettings.IdxAnalog) { + // wrong index for speed, overlapping next index (IdxAnalog) return false; - ReadData.value = (speeduint8_t & 0x1f); + } + speedbyte = DLbus_ByteStream[P092_DataSettings.IdxDrehzahl + (number - 1)]; + if (speedbyte & 0x80) + return false; + P092_ReadData.value = (speedbyte & 0x1f); return true; } boolean P092_fetch_analog(int number) { - uint8_t analoguint8_t; + uint8_t analogbyte; - analoguint8_t = uint8_tStream[DataSettings.IdxAnalog + (number - 1)]; - if ((analoguint8_t & 0x80) == 0x80) + if ((P092_DataSettings.IdxAnalog + (number - 1)) >= P092_DataSettings.IdxHmRegister) { + // wrong index for analog, overlapping next index (IdxHmRegister) return false; - ReadData.value = (analoguint8_t * 0.1); + } + analogbyte = DLbus_ByteStream[P092_DataSettings.IdxAnalog + (number - 1)]; + if (analogbyte & 0x80) + return false; + P092_ReadData.value = (analogbyte * 0.1); return true; } -boolean P092_CheckHmRegister(int number) { +sDLbus_HMindex P092_CheckHmRegister(int number) { +sDLbus_HMindex result; + + result.IndexIsValid = 0; switch (number) { case 1: - if ((uint8_tStream[DataSettings.IdxHmRegister] & 0x1) != 0x01) - return false; - power_index = DataSettings.IdxHeatMeter1; - kwh_index = DataSettings.IdxkWh1; - mwh_index = DataSettings.IdxMWh1; + if ((DLbus_ByteStream[P092_DataSettings.IdxHmRegister] & 0x1) == 0) + return result; + result.power_index = P092_DataSettings.IdxHeatMeter1; + result.kwh_index = P092_DataSettings.IdxkWh1; + result.mwh_index = P092_DataSettings.IdxMWh1; break; case 2: - if ((uint8_tStream[DataSettings.IdxHmRegister] & 0x2) != 0x02) - return false; - power_index = DataSettings.IdxHeatMeter2; - kwh_index = DataSettings.IdxkWh2; - mwh_index = DataSettings.IdxMWh2; + if ((DLbus_ByteStream[P092_DataSettings.IdxHmRegister] & 0x2) == 0) + return result; + result.power_index = P092_DataSettings.IdxHeatMeter2; + result.kwh_index = P092_DataSettings.IdxkWh2; + result.mwh_index = P092_DataSettings.IdxMWh2; break; case 3: - if ((uint8_tStream[DataSettings.IdxHmRegister] & 0x4) != 0x04) - return false; - power_index = DataSettings.IdxHeatMeter3; - kwh_index = DataSettings.IdxkWh3; - mwh_index = DataSettings.IdxMWh3; + if ((DLbus_ByteStream[P092_DataSettings.IdxHmRegister] & 0x4) == 0) + return result; + result.power_index = P092_DataSettings.IdxHeatMeter3; + result.kwh_index = P092_DataSettings.IdxkWh3; + result.mwh_index = P092_DataSettings.IdxMWh3; break; default: - return false; + return result; } - return true; + result.IndexIsValid = 1; + return result; } boolean P092_fetch_heatpower(int number) { // current power int32_t high; - - if (P092_CheckHmRegister(number) == false) + sDLbus_HMindex HMindex = P092_CheckHmRegister(number); + if (HMindex.IndexIsValid == 0) return false; - uint8_t b1 = uint8_tStream[power_index]; - uint8_t b2 = uint8_tStream[power_index + 1]; - if (DataSettings.CurrentHmuint8_ts > 2) { - uint8_t b3 = uint8_tStream[power_index + 2]; - uint8_t b4 = uint8_tStream[power_index + 3]; - high = 65536 * b4 + 256 * b3 + b2; - int low = (b1 * 10) / 256; + uint8_t b1 = DLbus_ByteStream[HMindex.power_index]; + uint8_t b2 = DLbus_ByteStream[HMindex.power_index + 1]; + if (P092_DataSettings.CurrentHmBytes > 2) { + uint8_t b3 = DLbus_ByteStream[HMindex.power_index + 2]; + uint8_t b4 = DLbus_ByteStream[HMindex.power_index + 3]; + high = 0x10000 * b4 + 0x100 * b3 + b2; + int low = (b1 * 10) / 0x100; if (!(b4 & 0x80)) // sign positive - ReadData.value = (10 * high + low) / 100; + P092_ReadData.value = (10 * high + low) / 100; else // sign negative - ReadData.value = (10 * (high - 65536) - low) / 100; + P092_ReadData.value = (10 * (high - 0x10000) - low) / 100; } else { high = (b2 << 8) | b1; if ((b2 & 0x80) == 0) // sign positive - ReadData.value = high / 10; + P092_ReadData.value = high / 10; else // sign negative - ReadData.value = (high - 65536) / 10; + P092_ReadData.value = (high - 0x10000) / 10; } return true; } boolean P092_fetch_heatmeter(int number) { // heat meter - int heat_meter; + int32_t heat_meter; float heat_meter_mwh; - if (P092_CheckHmRegister(number) == false) + sDLbus_HMindex HMindex = P092_CheckHmRegister(number); + if (HMindex.IndexIsValid == 0) return false; - heat_meter = (uint8_tStream[kwh_index + 1] << 8) | uint8_tStream[kwh_index]; + heat_meter = (DLbus_ByteStream[HMindex.kwh_index + 1] << 8) | DLbus_ByteStream[HMindex.kwh_index]; heat_meter_mwh = (heat_meter * 0.1) / 1000; // in MWh if (heat_meter_mwh > 1.0) { // in kWh @@ -1172,8 +1211,8 @@ boolean P092_fetch_heatmeter(int number) { heat_meter_mwh -= heat_meter; } // MWh - heat_meter = (uint8_tStream[mwh_index + 1] << 8) | uint8_tStream[mwh_index]; - ReadData.value = heat_meter_mwh + heat_meter; + heat_meter = (DLbus_ByteStream[HMindex.mwh_index + 1] << 8) | DLbus_ByteStream[HMindex.mwh_index]; + P092_ReadData.value = heat_meter_mwh + heat_meter; return true; } From f8003c7be3fe28d10098ec958a6f4b798ea0c83d Mon Sep 17 00:00:00 2001 From: uwekaditz <55511593+uwekaditz@users.noreply.github.com> Date: Sat, 14 Dec 2019 22:49:57 +0100 Subject: [PATCH 05/14] [P092] Timing optimized Removed the while (P092_receiving) loop. Starting of the receiving and processing of the received bit stream iare now done in the PLUGIN_ONCE_A_SECOND call PLUGIN_READ call just uses the already processed data --- src/_P092_DLbus.ino | 114 +++++++++++++++++++++++++++----------------- 1 file changed, 70 insertions(+), 44 deletions(-) diff --git a/src/_P092_DLbus.ino b/src/_P092_DLbus.ino index 9ebcb99e0..9a907c204 100644 --- a/src/_P092_DLbus.ino +++ b/src/_P092_DLbus.ino @@ -30,7 +30,8 @@ void P092_Pin_changed() ICACHE_RAM_ATTR; volatile uint8_t P092_DLB_Pin = 0xFF; -volatile boolean P092_receiving = false; // receiving flag +volatile boolean P092_receiving = false; // receiving flag +volatile boolean P092_AllBitsReceived = false; uint8_t P092_Last_DLB_Pin; boolean P092_init = false; boolean P092_ReceivedOK = false; @@ -380,20 +381,57 @@ boolean Plugin_092(uint8_t function, struct EventStruct *event, String& string) { if (P092_init) { addLog(LOG_LEVEL_ERROR, F("P092_init -> Already done!")); - return true; } - P092_init = true; - addLog(LOG_LEVEL_INFO, F("P092_init: attachInterrupt")); - P092_DLB_Pin = CONFIG_PIN1; - pinMode(P092_DLB_Pin, INPUT_PULLUP); - P092_receiving = false; - // on a CHANGE on the data pin P092_Pin_changed is called - attachInterrupt(digitalPinToInterrupt(P092_DLB_Pin), P092_Pin_changed, CHANGE); - UserVar[event->BaseVarIndex] = NAN; + else { + P092_init = true; + addLog(LOG_LEVEL_INFO, F("P092_init: attachInterrupt")); + P092_DLB_Pin = CONFIG_PIN1; + pinMode(P092_DLB_Pin, INPUT_PULLUP); + P092_receiving = false; + P092_ReceivedOK = false; + // on a CHANGE on the data pin P092_Pin_changed is called + attachInterrupt(digitalPinToInterrupt(P092_DLB_Pin), P092_Pin_changed, CHANGE); + UserVar[event->BaseVarIndex] = NAN; + } + Plugin_092_SetIndices(PCONFIG(0)); success = true; break; } + case PLUGIN_ONCE_A_SECOND: + { + if (WiFi.status() != WL_CONNECTED) { + return false; + } + if (P092_init == false) { + return false; + } + if (P092_receiving) { + return false; + } + if (P092_AllBitsReceived) { + P092_AllBitsReceived = false; + success = Plugin_092_CheckTimings(); + if (success) + success = P092_Processing(); + if (success) + success = P092_CheckCRC(); + if (success) { + addLog(LOG_LEVEL_INFO, F("Received data OK")); + P092_LastReceived = millis(); + } + P092_ReceivedOK = success; + } + else + success = P092_ReceivedOK; + + if ((P092_ReceivedOK == false) || (timePassedSince(P092_LastReceived)>(static_cast(Settings.TaskDeviceTimer[event->TaskIndex] * 1000/2)))) { + Plugin_092_StartReceiving(); + success = true; + } + break; + } + case PLUGIN_READ: { addLog(LOG_LEVEL_ERROR, F("PLUGIN_092_READ")); @@ -407,33 +445,19 @@ boolean Plugin_092(uint8_t function, struct EventStruct *event, String& string) return false; } if (WiFi.status() != WL_CONNECTED) { + // too busy for DLbus while wifi connect is running addLog(LOG_LEVEL_ERROR, F("## Error DL-Bus: WiFi not connected!")); return false; } - if (P092_receiving) { - addLog(LOG_LEVEL_ERROR, F("## Error DL-Bus: Still receiving bits!")); - return false; - } if (P092_init == false) { addLog(LOG_LEVEL_ERROR, F("## Error DL-Bus: Not initialized!")); return false; } - Plugin_092_SetIndices(PCONFIG(0)); - - if ((P092_ReceivedOK == false) || (timePassedSince(P092_LastReceived)>(static_cast(Settings.TaskDeviceTimer[event->TaskIndex] * 1000/2)))) { - success = Plugin_092_Receiving(); - if (success) - success = P092_Processing(); - if (success) - success = P092_CheckCRC(); - if (success) - P092_LastReceived = millis(); - P092_ReceivedOK = success; + success = P092_ReceivedOK; + if (P092_ReceivedOK == false) { + addLog(LOG_LEVEL_ERROR, F("## Error DL-Bus: Still receiving bits!")); } - else - success = true; - if (success) - { + else { for (int i = 0; i < P092_DLbus_ValueCount; i++) { OptionIdx = PCONFIG(i + 1) >> 8; CurIdx = PCONFIG(i + 1) & 0x00FF; @@ -445,8 +469,6 @@ boolean Plugin_092(uint8_t function, struct EventStruct *event, String& string) } } } - else - addLog(LOG_LEVEL_ERROR, F("## Error DL-Bus: No readings!")); break; } } @@ -659,9 +681,7 @@ sDLbus_HMindex P092_CheckHmRegister(int number); DLBus P092_receiving \****************/ -boolean Plugin_092_Receiving(void) { - uint8_t rawval, val; - int i; +void Plugin_092_StartReceiving(void) { noInterrupts (); // make sure we don't get interrupted before we are ready DLbus_pulse_count = 0; DLbus_pulse_number = (((P092_DataSettings.DataBytes + DLbus_AdditionalRecBytes) * (8 + 1 + 1) + 16) * 3); @@ -670,6 +690,7 @@ boolean Plugin_092_Receiving(void) { DLbus_MinDoublePulseWidth = P092_DataSettings.DLbus_MinDoublePulseWidth; DLbus_MaxDoublePulseWidth = P092_DataSettings.DLbus_MaxDoublePulseWidth; P092_receiving = true; + P092_AllBitsReceived = false; interrupts (); // interrupts allowed now, next instruction WILL be executed uint32_t start=millis(); addLog(LOG_LEVEL_INFO, F("P092_receiving ...")); @@ -681,17 +702,21 @@ boolean Plugin_092_Receiving(void) { // nothing received P092_receiving = false; addLog(LOG_LEVEL_ERROR, F("Error: Nothing received! No DL bus connected!")); - return false; - } - while (P092_receiving) { - // wait for end of P092_receiving - // loop time depends on the device (bytes in protocol and clock frequency) - // ESR21: (((31 + 2) * (8 + 1 + 1) + 16) * 3) = 1038 bits @ 488Hz = 2,13s - // UVR31: ((( 8 + 2) * (8 + 1 + 1) + 16) * 3) = 348 bits @ 50Hz = 6,96s - // UVR1611: (((64 + 2) * (8 + 1 + 1) + 16) * 3) = 2028 bits @ 488Hz = 4,16s - // UVR 61-3: (((62 + 2) * (8 + 1 + 1) + 16) * 3) = 2028 bits @ 488Hz = 4,03s - yield(); } + // while (P092_receiving) { + // // wait for end of P092_receiving + // // loop time depends on the device (bytes in protocol and clock frequency) + // // ESR21: (((31 + 2) * (8 + 1 + 1) + 16) * 3) = 1038 bits @ 488Hz = 2,13s + // // UVR31: ((( 8 + 2) * (8 + 1 + 1) + 16) * 3) = 348 bits @ 50Hz = 6,96s + // // UVR1611: (((64 + 2) * (8 + 1 + 1) + 16) * 3) = 2028 bits @ 488Hz = 4,16s + // // UVR 61-3: (((62 + 2) * (8 + 1 + 1) + 16) * 3) = 2028 bits @ 488Hz = 4,03s + // yield(); + // } +} + +boolean Plugin_092_CheckTimings(void) { + uint8_t rawval, val; + int i; addLog(LOG_LEVEL_INFO, F("Receive stopped.")); DLbus_WrongTimeCnt = 0; @@ -787,6 +812,7 @@ void P092_Pin_changed(void) { DLbus_BitStream[DLbus_pulse_count] = val; // set bit DLbus_pulse_count++; P092_receiving = (DLbus_pulse_count < DLbus_pulse_number); // stop P092_receiving when data frame is complete + P092_AllBitsReceived = !P092_receiving; } } From 61fbfe9f45e48645352b4c709ae6eb5a7fdc35e0 Mon Sep 17 00:00:00 2001 From: uwekaditz <55511593+uwekaditz@users.noreply.github.com> Date: Sun, 15 Dec 2019 14:38:13 +0100 Subject: [PATCH 06/14] [P092] Memory usage optimized CHG: Moved the array for the received bit changes to stativ uint_8t, the ISR call uses only a volatile pointer to it CHG: some more defines and name changes for better explanation --- src/_P092_DLbus.ino | 83 +++++++++++++++++++++++++++++---------------- 1 file changed, 54 insertions(+), 29 deletions(-) diff --git a/src/_P092_DLbus.ino b/src/_P092_DLbus.ino index 9a907c204..c3df006c4 100644 --- a/src/_P092_DLbus.ino +++ b/src/_P092_DLbus.ino @@ -628,22 +628,30 @@ void Plugin_092_SetIndices(int DeviceIndex) { #define DLbus_MaxDataBytes 64 #define DLbus_AdditionalRecBytes 2 -#define DLbus_MaxDataBits (((DLbus_MaxDataBytes + DLbus_AdditionalRecBytes) * (8 + 1 + 1) + 16) * 3) // ((64+2) * (8+1+1) + 16) * 3 = 2028 bytes +#define DLbus_StopBits 1 +#define DLbus_StartBits 1 +#define DLBus_SyncBits 16 +#define DLBus_ReserveBytes 20 +#define DLBus_BitChangeFactor 2 +#define DLbus_MaxDataBits (((DLbus_MaxDataBytes + DLbus_AdditionalRecBytes) * (DLbus_StartBits + 8 + DLbus_StopBits) + DLBus_SyncBits) * DLBus_BitChangeFactor) + DLBus_ReserveBytes + // MaxDataBits is double of the maximum bit length because each bit change is stored + // (((64+2) * (8+1+1) + 16) * 2) + 50 = 1402 bytes // variables used in interrupt function -volatile uint8_t DLbus_BitStream[DLbus_MaxDataBits]; // received bit stream (each bit is extended to uint8_t, containing the timing flags) -volatile int DLbus_pulse_count; // number of received pulses -volatile int DLbus_pulse_number; // max naumber of the received pulses -volatile uint32_t DLbus_last_bit_change = 0; // remember the last transition +static uint8_t DLbus_ChangeBitStream[DLbus_MaxDataBits]; // received bit change stream (each bit change is extended to uint8_t, containing the timing flags) +volatile static uint8_t* DLbus_PtrChangeBitStream; // pointer to received bit change stream +volatile uint16_t DLbus_pulse_count; // number of received pulses +volatile uint16_t DLbus_pulse_number; // max naumber of the received pulses +volatile uint32_t DLbus_TimeLastBitChange = 0; // remember time of last transition volatile uint16_t DLbus_MinPulseWidth, DLbus_MaxPulseWidth, DLbus_MinDoublePulseWidth, DLbus_MaxDoublePulseWidth; uint8_t DLbus_ByteStream[DLbus_MaxDataBits / 8 + 1]; // every bit gets sorted into a bitmap -int DLbus_bit_number; // bit size of the data frame +uint16_t DLbus_bit_number; // bit number of the received DLbus_ChangeBitStream uint8_t DLbus_WrongTimeCnt; uint16_t DLbus_WrongTimings[5][6]; -int DLbus_start_bit; // first bit of data frame +int16_t DLbus_start_bit; // first bit of data frame (-1 not recognized) // sensor types #define DLbus_UNUSED 0b000 @@ -684,11 +692,12 @@ sDLbus_HMindex P092_CheckHmRegister(int number); void Plugin_092_StartReceiving(void) { noInterrupts (); // make sure we don't get interrupted before we are ready DLbus_pulse_count = 0; - DLbus_pulse_number = (((P092_DataSettings.DataBytes + DLbus_AdditionalRecBytes) * (8 + 1 + 1) + 16) * 3); + DLbus_pulse_number = (((P092_DataSettings.DataBytes + DLbus_AdditionalRecBytes) * (DLbus_StartBits + 8 + DLbus_StopBits) + DLBus_SyncBits) * DLBus_BitChangeFactor) + DLBus_ReserveBytes; DLbus_MinPulseWidth = P092_DataSettings.DLbus_MinPulseWidth; DLbus_MaxPulseWidth = P092_DataSettings.DLbus_MaxPulseWidth; DLbus_MinDoublePulseWidth = P092_DataSettings.DLbus_MinDoublePulseWidth; DLbus_MaxDoublePulseWidth = P092_DataSettings.DLbus_MaxDoublePulseWidth; + DLbus_PtrChangeBitStream = DLbus_ChangeBitStream; P092_receiving = true; P092_AllBitsReceived = false; interrupts (); // interrupts allowed now, next instruction WILL be executed @@ -706,10 +715,10 @@ void Plugin_092_StartReceiving(void) { // while (P092_receiving) { // // wait for end of P092_receiving // // loop time depends on the device (bytes in protocol and clock frequency) - // // ESR21: (((31 + 2) * (8 + 1 + 1) + 16) * 3) = 1038 bits @ 488Hz = 2,13s - // // UVR31: ((( 8 + 2) * (8 + 1 + 1) + 16) * 3) = 348 bits @ 50Hz = 6,96s - // // UVR1611: (((64 + 2) * (8 + 1 + 1) + 16) * 3) = 2028 bits @ 488Hz = 4,16s - // // UVR 61-3: (((62 + 2) * (8 + 1 + 1) + 16) * 3) = 2028 bits @ 488Hz = 4,03s + // // ESR21: (((31 + 2) * (8 + 1 + 1) + 16) * 2)+50 = (346*2+50)= 742 bits @ 488Hz = 1,52s + // // UVR31: ((( 8 + 2) * (8 + 1 + 1) + 16) * 2)+50 = (116*2+50)= 282 bits @ 50Hz = 5,64s + // // UVR1611: (((64 + 2) * (8 + 1 + 1) + 16) * 2)+50 = (676*2+50)=1402 bits @ 488Hz = 2,87s + // // UVR 61-3: (((62 + 2) * (8 + 1 + 1) + 16) * 2)+50 = (676*2+50)=1402 bits @ 488Hz = 2,87s // yield(); // } } @@ -722,8 +731,8 @@ boolean Plugin_092_CheckTimings(void) { DLbus_WrongTimeCnt = 0; DLbus_pulse_count = 0; for (i = 0; i <= DLbus_pulse_number; i++) { - // store DLbus_BitStream into DLbus_ByteStream - rawval = DLbus_BitStream[i]; + // store DLbus_ChangeBitStream into DLbus_ByteStream + rawval = DLbus_ChangeBitStream[i]; if (rawval & DLbus_FlagsWrongTiming) { // wrong DLbus_time_diff if ((DLbus_pulse_count > 0) && (DLbus_WrongTimeCnt < 5)) { @@ -731,7 +740,7 @@ boolean Plugin_092_CheckTimings(void) { DLbus_WrongTimings[DLbus_WrongTimeCnt][1] = DLbus_pulse_count; DLbus_WrongTimings[DLbus_WrongTimeCnt][2] = DLbus_bit_number; DLbus_WrongTimings[DLbus_WrongTimeCnt][3] = rawval; - if ((rawval == DLbus_FlagLongerThanTwiceDoubleWidth) && (DLbus_BitStream[i-1] == (DLbus_FlagDoubleWidth | 0x01))) { + if ((rawval == DLbus_FlagLongerThanTwiceDoubleWidth) && (DLbus_ChangeBitStream[i-1] == (DLbus_FlagDoubleWidth | 0x01))) { // Add two additional short pulses (low and high), previous bit is High and contains DLbus_FlagDoubleWidth P092_process_bit(0); P092_process_bit(1); @@ -758,7 +767,7 @@ boolean Plugin_092_CheckTimings(void) { } } } - addLog(LOG_LEVEL_INFO, F("DLbus_BitStream copied.")); + addLog(LOG_LEVEL_INFO, F("DLbus_ChangeBitStream copied.")); #ifdef PLUGIN_092_DEBUG if (DLbus_WrongTimeCnt > 0) { @@ -774,9 +783,9 @@ boolean Plugin_092_CheckTimings(void) { log += F(" Value:0x"); log += String(DLbus_WrongTimings[i][3], HEX); log += F(" ValueBefore:0x"); - log += String(DLbus_BitStream[DLbus_WrongTimings[i][0] - 1], HEX); + log += String(DLbus_ChangeBitStream[DLbus_WrongTimings[i][0] - 1], HEX); log += F(" ValueAfter:0x"); - log += String(DLbus_BitStream[DLbus_WrongTimings[i][0] + 1], HEX); + log += String(DLbus_ChangeBitStream[DLbus_WrongTimings[i][0] + 1], HEX); if (DLbus_WrongTimings[i][4]!=0xff) { log += F(" Added:0x"); log += String(DLbus_WrongTimings[i][4], HEX); @@ -798,8 +807,8 @@ boolean Plugin_092_CheckTimings(void) { \*****************/ void P092_Pin_changed(void) { - uint32_t DLbus_time_diff = usecPassedSince(DLbus_last_bit_change); // time difference to previous pulse in µs - DLbus_last_bit_change = micros(); // save last pin change time + uint32_t DLbus_time_diff = usecPassedSince(DLbus_TimeLastBitChange); // time difference to previous pulse in µs + DLbus_TimeLastBitChange = micros(); // save last pin change time if (P092_receiving) { uint8_t val = digitalRead(P092_DLB_Pin); // read state // check pulse width @@ -809,10 +818,23 @@ void P092_Pin_changed(void) { else if (DLbus_time_diff > DLbus_MaxPulseWidth) val |= DLbus_FlagBetweenDoubleSingleWidth; // between double and single pulse width else if (DLbus_time_diff < DLbus_MinPulseWidth) val |= DLbus_FlagShorterThanSingleWidth; // shorter then single pulse width else val |= DLbus_FlagSingleWidth; // single pulse width - DLbus_BitStream[DLbus_pulse_count] = val; // set bit - DLbus_pulse_count++; - P092_receiving = (DLbus_pulse_count < DLbus_pulse_number); // stop P092_receiving when data frame is complete - P092_AllBitsReceived = !P092_receiving; + if (DLbus_pulse_count < 2) { + // check if sync is received + if (val & DLbus_FlagLongerThanTwiceDoubleWidth) { + // sync received + *DLbus_PtrChangeBitStream = !(val & 0x01); + *(DLbus_PtrChangeBitStream+1) = val; + DLbus_pulse_count = 2; + } + else + DLbus_pulse_count = 1; // flag that interrupt is receiving + } + else { + *(DLbus_PtrChangeBitStream+DLbus_pulse_count) = val; // set bit + DLbus_pulse_count++; + P092_receiving = (DLbus_pulse_count < DLbus_pulse_number); // stop P092_receiving when data frame is complete + P092_AllBitsReceived = !P092_receiving; + } } } @@ -840,6 +862,7 @@ String log; // inverted signal? while (DLbus_start_bit == -1) { if (inverted) { + addLog(LOG_LEVEL_ERROR, F("Error: Already inverted!")); return false; } addLog(LOG_LEVEL_INFO, F("Invert bit stream...")); @@ -850,21 +873,22 @@ String log; addLog(LOG_LEVEL_ERROR, F("Error: No data frame available!")); return false; } - if ((DLbus_bit_number-DLbus_start_bit)<(DLbus_pulse_number/4)) { + if ((DLbus_bit_number-DLbus_start_bit)<((DLbus_pulse_number - DLBus_ReserveBytes)/DLBus_BitChangeFactor)) { // no complete data frame available + addLog(LOG_LEVEL_ERROR, F("Start bit too close to end of stream!")); if (loglevelActiveFor(LOG_LEVEL_INFO)) { - addLog(LOG_LEVEL_INFO, F("Start bit too close to end of stream!")); log = F("# Required bits: "); - log += DLbus_pulse_number/4; + log += (DLbus_pulse_number - DLBus_ReserveBytes)/DLBus_BitChangeFactor; log += F(" StartBit: "); log += DLbus_start_bit; log += F(" / EndBit: "); log += DLbus_bit_number; addLog(LOG_LEVEL_INFO, log); } - DLbus_start_bit = -1; + return false; } } + if (loglevelActiveFor(LOG_LEVEL_INFO)) { log = F("StartBit: "); log += DLbus_start_bit; @@ -873,6 +897,7 @@ String log; addLog(LOG_LEVEL_INFO, log); } P092_Trim(); // remove start and stop bits + if (P092_CheckDevice()) // check connected device return true; else { @@ -889,7 +914,7 @@ int P092_Analyze() { sync++; else sync = 0; - if (sync == 16) { + if (sync == DLBus_SyncBits) { // finde erste 0 // find first 0 while (P092_ReadBit(i) == 1) i++; From 44d407210fc468a8a4c9365f0d28ac0ff5b7343f Mon Sep 17 00:00:00 2001 From: uwekaditz <55511593+uwekaditz@users.noreply.github.com> Date: Sun, 15 Dec 2019 15:26:25 +0100 Subject: [PATCH 07/14] [P092] Changes requested by TDer CHG: variable to calculate RequiredBitStreamLength CHG: function usecPassedSince() is long --- src/_P092_DLbus.ino | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/_P092_DLbus.ino b/src/_P092_DLbus.ino index c3df006c4..e1fb79090 100644 --- a/src/_P092_DLbus.ino +++ b/src/_P092_DLbus.ino @@ -638,13 +638,13 @@ void Plugin_092_SetIndices(int DeviceIndex) { // (((64+2) * (8+1+1) + 16) * 2) + 50 = 1402 bytes // variables used in interrupt function -static uint8_t DLbus_ChangeBitStream[DLbus_MaxDataBits]; // received bit change stream (each bit change is extended to uint8_t, containing the timing flags) volatile static uint8_t* DLbus_PtrChangeBitStream; // pointer to received bit change stream volatile uint16_t DLbus_pulse_count; // number of received pulses volatile uint16_t DLbus_pulse_number; // max naumber of the received pulses volatile uint32_t DLbus_TimeLastBitChange = 0; // remember time of last transition volatile uint16_t DLbus_MinPulseWidth, DLbus_MaxPulseWidth, DLbus_MinDoublePulseWidth, DLbus_MaxDoublePulseWidth; +static uint8_t DLbus_ChangeBitStream[DLbus_MaxDataBits]; // received bit change stream (each bit change is extended to uint8_t, containing the timing flags) uint8_t DLbus_ByteStream[DLbus_MaxDataBits / 8 + 1]; // every bit gets sorted into a bitmap uint16_t DLbus_bit_number; // bit number of the received DLbus_ChangeBitStream @@ -807,7 +807,7 @@ boolean Plugin_092_CheckTimings(void) { \*****************/ void P092_Pin_changed(void) { - uint32_t DLbus_time_diff = usecPassedSince(DLbus_TimeLastBitChange); // time difference to previous pulse in µs + long DLbus_time_diff = usecPassedSince(DLbus_TimeLastBitChange); // time difference to previous pulse in µs DLbus_TimeLastBitChange = micros(); // save last pin change time if (P092_receiving) { uint8_t val = digitalRead(P092_DLB_Pin); // read state @@ -873,12 +873,13 @@ String log; addLog(LOG_LEVEL_ERROR, F("Error: No data frame available!")); return false; } - if ((DLbus_bit_number-DLbus_start_bit)<((DLbus_pulse_number - DLBus_ReserveBytes)/DLBus_BitChangeFactor)) { - // no complete data frame available + uint16_t RequiredBitStreamLength = (DLbus_pulse_number - DLBus_ReserveBytes)/DLBus_BitChangeFactor; + if ((DLbus_bit_number-DLbus_start_bit) < RequiredBitStreamLength) { + // no complete data frame available (difference between start_bit and received bits is < RequiredBitStreamLength) addLog(LOG_LEVEL_ERROR, F("Start bit too close to end of stream!")); if (loglevelActiveFor(LOG_LEVEL_INFO)) { log = F("# Required bits: "); - log += (DLbus_pulse_number - DLBus_ReserveBytes)/DLBus_BitChangeFactor; + log += RequiredBitStreamLength; log += F(" StartBit: "); log += DLbus_start_bit; log += F(" / EndBit: "); @@ -989,6 +990,7 @@ boolean P092_CheckCRC() { dataSum = dataSum & 0xff; if (dataSum == DLbus_ByteStream[P092_DataSettings.IdxCRC]) return true; + addLog(LOG_LEVEL_ERROR, F("Check CRC failed!")); if (loglevelActiveFor(LOG_LEVEL_INFO)) { String log = F("# Calculated CRC: 0x"); log += String(dataSum, HEX); From aa4724cecf76e8d176992aa5628b3d853b6cbd06 Mon Sep 17 00:00:00 2001 From: uwekaditz <55511593+uwekaditz@users.noreply.github.com> Date: Mon, 16 Dec 2019 12:06:13 +0100 Subject: [PATCH 08/14] [P092] Documentation added NEW: documentation --- docs/source/Plugin/P092.rst | 11 +--- docs/source/Plugin/P092_DL_bus_databyte.png | Bin 0 -> 25701 bytes docs/source/Plugin/P092_DL_bus_dataframe.png | Bin 0 -> 10954 bytes .../Plugin/P092_DL_bus_dataframelog.png | Bin 0 -> 86185 bytes .../Plugin/P092_DL_bus_displayclock.png | Bin 0 -> 4423 bytes .../Plugin/P092_DL_bus_outputwiring.png | Bin 0 -> 19660 bytes docs/source/Plugin/P092_DLbus.rst | 48 ++++++++++++++++++ src/_P092_DLbus.ino | 18 ++++++- 8 files changed, 66 insertions(+), 11 deletions(-) create mode 100644 docs/source/Plugin/P092_DL_bus_databyte.png create mode 100644 docs/source/Plugin/P092_DL_bus_dataframe.png create mode 100644 docs/source/Plugin/P092_DL_bus_dataframelog.png create mode 100644 docs/source/Plugin/P092_DL_bus_displayclock.png create mode 100644 docs/source/Plugin/P092_DL_bus_outputwiring.png create mode 100644 docs/source/Plugin/P092_DLbus.rst diff --git a/docs/source/Plugin/P092.rst b/docs/source/Plugin/P092.rst index 7b21072e3..1b87fd993 100644 --- a/docs/source/Plugin/P092.rst +++ b/docs/source/Plugin/P092.rst @@ -1,4 +1,4 @@ -.. include:: ../Plugin/_plugin_substitutions_p03x.repl +.. include:: ../Plugin/_plugin_substitutions_p09x.repl .. _P092_page: |P092_typename| @@ -26,11 +26,6 @@ Supported hardware |P092_usedby| -.. Events -.. ~~~~~~ - -.. .. include:: P92_events.repl - Change log ---------- @@ -39,7 +34,3 @@ Change log |added| Initial release version. - - - - diff --git a/docs/source/Plugin/P092_DL_bus_databyte.png b/docs/source/Plugin/P092_DL_bus_databyte.png new file mode 100644 index 0000000000000000000000000000000000000000..0a456c607812e686d5c1efb1a518ddf8467afdae GIT binary patch literal 25701 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 literal 0 HcmV?d00001 diff --git a/docs/source/Plugin/P092_DL_bus_dataframe.png b/docs/source/Plugin/P092_DL_bus_dataframe.png new file mode 100644 index 0000000000000000000000000000000000000000..03bdf8c1e1215935f8035a816648546149b1f3be GIT binary patch literal 10954 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 literal 0 HcmV?d00001 diff --git a/docs/source/Plugin/P092_DL_bus_dataframelog.png b/docs/source/Plugin/P092_DL_bus_dataframelog.png new file mode 100644 index 0000000000000000000000000000000000000000..64a7e32170ec475d7f076d3dc2578ed8c23c3629 GIT binary patch literal 86185 zcmYhicRbr)^go{1YF9OOv|3uNU3+$FYZYzP3{_OEqIM)fTWyU{R5T$}Q8Sd%Lz1JYIL7bMEupbMEISMtU6Q1kV8g0FFlw@0kJsbda;} zSr(?V^zFMJ*s~YV$5ihQps+`H`7FcWeB1Cg08or%JF;gy%d@_HXyF3@a5nz;09!qO zy#fGEGauc%{WQRK?U)&wsP}C#`cwxSaxhVIxY3g}!m2Sapq0L3z+AoVr}33X%~?*F zIFIpBMqzw<1Qaz(-=2(uLutI|X^?K^6?v97M$fqTb&4xoo2pb>EeP!JYBW zQ{zkLOg`PY@PqrqwR@L>952v8{(l5q?49Ww_x>MYiO-Y;`rm*5Tcq~Rxlr8y6#Tyg z^M{wneE+wm{|LM1t~22OzpBp&wwFHCoBzMI&h_8;$xZp+n*OKp54#=p=6-%<=h)a1 zs^;B{)b3SJpRiHf2x?AMQNjc1OFqy2>Oq&L{Ehsw z6#jv)i%Z|PQZ5__-mJ-l@0_0K(BLOSb^ox(BiI~soNblw>hrA%lu+Su1ywVEZ1=}y z;K8FukBrK&&Y#q^GegLNX{XbH4@ikO%u9pz-mFhl6Qak;vr{FZS2Q)pM_8*bGgp=_ zD!Q8&S}#Kdbnby^Ss47UNNZEsq$B4zoN>pI`)KK-a3&7ZDSXJESMBE~@FCSi30qKM zT=2 z9JgbSKIcBm%L-@ax_J0?GcxeIx^FIQzXZGNdAjd8RA8mD$d=GBdC@upPF7uF!-{c< z{0fH_3g|3 zg%}TJo<9u#6^;dK_!&IQecBJFaGl;h-IzMoIBq?qfS=)PwLr|VDHzP!%H1}5eBAAu z6v`ZOZy^byEw7i!;|-m{!%cAn|IalA0;i*YT=_&qY&4x=!m(KR8jy$AB2qs|=2>s5 zmeQNSYm0|oUS5Tw3PoxT63sdf;~LddR6J8lt{(ENll4bu=qHo#Tkc)J zv8Oxmai?RQ)5X)lv+keXjTTh$zWt^BK#Wd64$Xa=0zch6U0*q!X4ZLo1cGmY-t?t~ z#)xXIgbBvX`W_a>gRzqD_HTz3bF;&aS0UB%TtdoS(r+NWyn*)i_8#$XMoV+zmlxzz zh_KU>W0{Ba@372xBB$og$ie)oBC=A=;&CAAr^SH8Y6N@_MBAD=e$tIre!gmKm1B^s zU^MlG@5V}7oVbzlJ&kvl_<^aXG~B6WfmONR+$+3RVkzr|{JgsTIVgEL)bh`p%+vj; z6ZFY4_N1MPgy`6EUPmuMj)x$XF!THuGiwMLhUMRmomJh3rzcaVtIEe`Mbu)E9zDwU z9ayryx|ZJhAu>04#=BBae@!3p!CNz~^)sPmT}Z zrw4+HPEi9%>OWyevE`2*T}JL93atm2{p|8jsXC|5i(EveEY1bDhyEMmCXpAVF){f= z)&84RYIO4%V_a~`-E3Z0ek&l|wF4oWN0)mSGxXkyXe(ZX^4WD+i`Dt9j~2=fYx+5e z$eC-$j92>`V_~$M0iM%E8mNx)p(9Cl^W|-qeFVR=i~6^Gq;%E0<=M5}c+)j%gl8`D#ZWHFtk_kXzcF*OZ}@x5o>RlT6y~vRTc8)cd93>2@i#M!4`L zA&r1qv3HF~ryk7mS~mwL;FJ1fZ%BwI2(UsdcG#N(pAriUXB+=xqlxCwspAcQ%Obnb z_y+67(rhq7O@$SHvIyT8EiyXYH9j4rcA`D;%P&>-`gdj;BQ|K&MoWTjy#zxXJ9Oq@ ztiKdi+dUL7^->|V`NTVXRxXp0DdqWG#e{5#uuM&APj1dipOcgtt4Bo7y z&I~SCOy8J#>4JCkqA~8MsmOBM#j!E(cJ>!%L_8xM>-;*>+g$An)#8lhyLdre?xCE6 zgPo5g@vy#C!f0BuPhO%Pl%1T~mpwlosI^RpCkVaFH~fCf%m0{&K(MKX)}(A@Ox6Zh zYXh|b+%114qU-Fz%8GPS^|5JI}$OqVAR}>D!N;K1NVf+*_7p*e>pcNGxY7-ld zq;a(NN-oSZt~LfN=}1UCNYU{3+mVN#K>bZ0YPoTe)3J{er7C^7x>Ga=(GG2~mzuqE zS|1Q|%p{%l=l^p1Y7R&m2-oo+)gkZ7 z08l7X@Oe))z9xLUq_N-0ejenwLo0m?7G0~VJN=&LNlfqd;K%scwzh}m=EZgPb7#7h z?|@q6zIXY(4f&F%zNcbaHtwtKayy8Amws_nwu~VE)_C{$=EsUdN1tib#bd8qxN@v+ z7&ls;vr}R|{6CxTPNI^#wRry}>&c(EL z9?Ha*qqFTas9y3+VL-I9Q19Vp9ZoBF|3cDjYkEsoZX#AgzMkb?th0ldF1-=(b*~0B zZ09E1a^*L{Z|5*DljlFd4bmDKWqH$fob2_$1RvAJ>l|qa-t%sNCuHAC%6@Jvya}wa znlj(DL#i~SFFkyz|4whRK9qjKg=zXPbH=pxB~$qEtsj^HK{|PKdD4OaHw$@ns;&+# zD{B9iU|{F0mBzaVn7}+QP7ewWB)9$n=Oqc{-{`6+5+`89=r>f;o16oFM&GP++QPE( zN~l`>ehw_dba^>6w%{~eu+lRDPjY*s8+j8T#?Fi=~8G>v))s22O~LHpI$`?*(F@GudDmC0!#< z{GtiTkxo_3UBao@2)HpBlR)oRv@qsbw{En$I+!y@O7_-~`BcUIJLGgyCY3D0g#fhX zi+kAB8ri~Ecyx-dsx%HBsHdp;w2Z_K+#1N+7EzW9{Z-_9?^RCL>$cHhc~B>)Q)1DZ^EY9_@0768-)xXq*-RX<)@4Obzg zUh-r+O|A|OQ=g`jt4~o%1CE&_aeN=(6+JZV$&hx7W;c3Ksv{se5j^d}hh1zenKA$Km3a?^<+0|S zyO4SMzrX zCKb*EpD?y1U>Y5Z#SJ3QaWU64bL{>`^=4K4z0o_`dkzaFgzhocklMO>fHnf4D~xE? zkim4D8A&?!qQZR1@;oA%I|417 zrHsF}RWD)}Cp1XxkZnYK0;=tg=Uow9i=o_S6U&mtVS8jv^1|Zz?Vz}?r|PU){E(t( zih;VvxT^p6X7RgVh?v`Lkxv(l7PuX7Gl^#6pBq5u{^WmxM%3sp^xRm>cGy3z zuT$2v@KHFuOimpsM9jz)Abr!%=n~71QfCatvZ%Nuv_ziwMX_|*%!RM<7s3?K8vdRP zR&-wo^dGIU(6ZGojON0q(j_U$UXq+_8rS?{BxnOXjwHM<&e$8MJB>TpTGTPw$uhiU zf5hOg{-_S{ahj^R1yTz8L_S zz7V6^`RF40x?iT&LYuf_t-S`Fl%y2q*7*dN%|$jX)Q!=v2by68H%U>H#hK(#G{3k*nxAkNDs#7Cqim@&ouV-i^&fCQ&Jx@2lJ3xK#85ILUI3+uME zWD~6`Mj94XKW}H>klPLz|CkcMevV=%8rUv?4zRl2#ql0y>ukzDTS7?s!-kqM;VPTe zl2Mi;MVT>k)%-%HT8o2P>VWZpb4Kq~1Ji`Tx*$)5y|oY?DyOE{*{LW-n{GYKw4I`b?n&9{EAO+C`Alld#U#BkWl zt&&p{-xh5vN8EBiknLBBdbW7CErN-WUV(KpF7!UV;;)Arwih}h8&HrsTV~q9&Z6&* zdfZ>!m{afN-TUyC`NfG<5zS597u#hAJv#n|@48)x@RSALIF*wDei1dV>3~#E?Z60! z-w(Z%!vLY*HD1wO;1#mopy%i!bzf&hgd+_4W>eTsyLnfNbX6Va=INfaJOTn2TB3yt zqnUqCJ-Y+nFc^6PeIi}?L_kuR-WqtXSm-t)`jf)Sjt83%XM>1cWC4n+C5EF$c!S7V zRx`JCle{N(-6E;*fmFjk>m+BPyRbA--`EdpYd7OfP`G(!R?AAaV!^?J0{9tH-OT`> z^obn!nD=BjD$|YjNjgZ}msJ)cq2gt=;pAvIdWd#cwLJf@gUJD_S}Tz1W@jrfqm z@ntDw82SEuAE<05jvFZu0A>Qrx7e%4y;NNBwro}Trs_U_j|H5;wGvCyW*r^}9(o#T zNB=UmnRI6meks(_t@%R{`4ez%@HWWpgC?A}K?zwFaIft%r}vR&?6+4QuwR>C_l9|K z<`x1mEif774+r={O&aSAdL*>G=N~d70QLyk`VZw-j};{F4;$ueTK+z0VwFY#$HCO2D(s@@IlPMRc6Vw>5 zeAQ#0af%9RgJ0|iucD}p&ut-){VG-){&*||<=bpYe@z~S^DLTdvYia3ulSd$*>OC& zjc=UuBSmX*>eLeeH7C0m^-|}aUy(?K2x6owbd+%E{=R?W3;i1ARq(>yNtvb7+~q`V zzgLZC=1&G2J9oGQca71V2xs~DzYgb&@JACaawZXsx`^2&(I*Qc=(0%x0ZGD1$^{I@ zujZ7l$l-3fNKbu=h<_7<$fW-)ql+?7v^bsK8=q&?Qz5|S?<_~Vv$QHQvD&-Lpo>Ug z>}E1};vDa2LjQ~9*G<8Vz7h7zS|*8~q>QahO&mgu#4<_;nvnv6qvS zFn|#6g*7%?$+d<@;84!GnW`64KdQzr8#y)8(sL08#a};I)OR z{)TS|iTQNJ>wEn4z9B*z|EQ+Tg*MgrS$bQrkv0IL`Nc`G*)t$iw4S+W`a&fC`&!~V zRq8pW^tP+o#l<{00N*%(9Bs6lEelCXQ0mf1CPofu<01$tu4{L#HpNS4;*_d>2q6io z)C^e?V{Hx_uq`Lj2(vP?h=32Xd53g~Wy-R|vOJlUG$FperU#*sMhSBy1mSwc*4!;V zxlhr{Xf=m9roK7jF3D{DC8i?AwYLLJ&a^p2yPK2?{bT1|b}ccq&1Iec!5&h?OAD0X z%F+^JhriMecwDbu->Nor#VAd~=W+hD#K*lbxSgbt=~l4Y=HU)a*E$0PNwYrz*yBAR zCso&8nD1`+HArAa70kQB4~nNNo1Fpr7=Tas?c_S(duWJhOIOf`EiDo%;O{tX@39R+ z^Q698L06dEnnx#mj)H&GzgYb^-)C5Rbrc8M6vBo7w^L@P;G3lr+;`F zT2s2O;+5Fs?kFQ;STIrXc3sN=1Ur>-p6WJEIiD6CI5UXw=Kq1Sn^=lC30Qm2r4xP4 zp%5q%B~;u0xpF?`0fHZ?O%zt!OVeJUsMs;twN!f{9$b5YwG*QB4$fr;)B_xLly`mD zfwKYmT&Ogi6(8Pkus4B?!mta#12o3Bc#*G>1}OaNPNkjBBoP1ygJ%a6GMMh^c1~DQLzy4dz{t&BL6#HvDq$*NZg( zNt&O6tmE&TWPRQ8sba66?HAu^bHeYM`zp}z`1>$FI`aKW!jA9P^4Ly1nq(-xC0- z31+aX7q#B$etZ-be|PPn7$dYenTA8e>j@bF0Ng)!7ehK%*B2Xkr`aH+3t!cZ#pyIp zIyvaPi#fErQTEElqEqtO`CQ8C^;eMb0nmGWt*|A)z~pM?=T-WCSln#*X@^<2BB1x@AkQf6{v_+%g7+>-jMlPCc831=U@EJ+mYrH2e&-J9xg zjQ+=kyab$Rk}ztHZNLCYmHhxsuiPf4mTpF0`(aU8zY+ll=3zy7S)x%d9b}2l3>(xX zQq0-c>I`Wm=z&EgcY1hrl)}Nq60saU;tvcMe=4YqW8^tU|1s}xSMj*kfrGQ#w7kJrk`FV57iu_M4ZOEcqFZx>~#5H?MHM!li_PTYZ-0Riq|E} zj`qcn^_M#0sOqe>sm+(jds_4m?$!c^w{YiGP$)!LRjG9yz+~iFak#D9Ez6*662>T` zd^=9eSld64!9Pqu?`TjQoGi!o-cya|NnbbzAt}Us*StX zyy$fp1KG(8I5-evcC(&s^|P5A;Nt!(2PegaL1r6O_t{#|Df$(KbG^U)u;5_EZsM07 z9AMx%_wSR}`S(Bs;+!u19_wEQw_!HF*{%1dezMb_rhBs1!QdZx|K0_MH`F>sUS&uP4L-3CGsm-yie@A=Z{d<3W;CzY?nGa7rM9t z*#z4^#n?_ zpP?%7Cm5Cq-xpp*uASz^(0Ll)D8QbIa>a7v*-u8>n zhTrao&K>G*+hi`LK#N(6>;l)?Dn=?;!{j2rgW3dSZzn3dr6FYLeu6dDKpH|q$lC#$ zoh={SJ}FE&-?k6UGQ#E@=tyN7T9s>%n-6UpBq7MX&f#^dxRuGuaM*DtHs`@mhaj;I zD-i|WGzuhs8i`^ta${e*qd~j6ATQj&R@BC%pSsx?zZn^g^mGK`RV`R0RsakrxU$FT z>+goly0-zO(!b%pM=Uyfn;P~IxAr+PqgLWzz&!?DH`e^p9rSNWI;G9Kz6&XFL;!>C)KB-RXaashc3Jum+HN ztTA}9@F(Ch2|?5aw_TMW$8d-Ni$XUY#7B!xaykteRooHMqi=nfRsXgwwR&ciUixsx zY+@@^UwUHGbC?5Z9*G9)f{|B}72joh4uhvZt1<^;BgjfdsTFEX*xG12@M0<>-p*6e zbd4p=A%Bp0dMnl;3mhGf;%*I4A+*Z7g-!X4_Iy?<{;Wss z63}jcq;yPIR!QBB0NR!lToh^WixKsN19m9SYXHyD06W8-i%MdjohRMisLDmAc)cy< zn7;hU$GdStYp(f`i=K@rYajwJM|SITLuo#DkPnD`AVd=b%*Y{lM!7W~)#dHpBsT|y zAjAQ3&o`d3h9&H5tJQ~@i5orVzp?)}m6%vIm=W@}$c~qhpW4dCom1DNLRJcCaSM4- z7WP-%PmuCEy5Cxs^5GC+TV_FeoBK60a?!|ju&5!|LfT++%o_UICkBu3QZ_mbQ)-Y5 zuwLp`QBq64%<`4Xgw&3lahZ-(SOGi$yl~@WP=93)S!>J?J^C1Qvc-KuuX+hkLM5;3 zDI3*a*S_D8#fhR9OV?OiXQ;hK31b-@Pv9P0LI=*uCmh(*DXoTU6R%NB8FfGXY4{i| zLs3C%tAHqMRYe;$wGRdSACVW_my&w{>PHd0;>u3*Pq3bR3Z6@yDB|nlOPixSNV2@{ z^=xS(lNbZaj=e^I3HW7``3`4L0s|zWF(J6lR*r;2C>HId79CWm)5S=tZ(wGw=P<*gr!_?%l`Mjs;c^&?YjkHiXmaD_^WqB_k&i|U;42P zGZujHVx9^$M)9{^{)Td7beMlYVY@^84^cg;=HFNSMa5p1>pw>Nm|?4?9ILh1pbfAF zItgOzv4dhqz|$5KYaj7k@Jq=_`Wc2eSEB5@`L}{?S&=ERb31X1>#sVE6`i}EC2uE| z`nGy7}*I)!1HG?=NWg|nCLW| zb?P|QG(uVP?~a2wRudZgC(`&5GwB}B+wf?V{tB>OwU+4$*;L+PW{_13@F|UJifjIm ziwVN*do2Sz>eVgLYyEY0j-nvRN8#O^Cy&xO+$jSKHL0EfwUAv&zi;_-tqf<*_Ii-J z-L@*@E16%t&Td=)hKhf(@2!tQ2e^z{YGP6^wXnoGpA=nHzAfrryQyKJt#O86~DRCZeAp63o`ZiYoV9#?zU2A z(c?U<3c0!E=d9V}aD+MTz!?q;@9(OJ%efbUuKRS1HgD`U*fs?LxWzl+UJURD#-sAi zxcI&~i=z}~$fPvnN=Tf#wj-IIiPQ8&V(yn}^W9B&CDfmql1Vp~;&l(h&)g{+WR!?K z4e&YOT~6WuA=40whzb9SWanSp$GV^s`CeQL3=I8X3}?7k*I*`Dfj5SLDg%R=rXr1> z9CC{6jV!uf5c2O`U=-cbvSo=1m1lILsRocpOv+L^PNsD(CR~Tirf#}voNe|qhiP1K zrliHlH325PwiLv|%5RMo1GRw3QGOVD$VkdaXiUB0D|$47dC{>6?EIPr;l(<4d@!+Va`WXjl7=NOLpRRwnHYA)N4tVhTflrh3QR?q{ReB#o5u!}@BpzH6u~0BoWWph&G`ynZnkaIm7kS+-uO8>d z{7OzTH2%@>CEuD;JNIhTP@X=dN{szm;BL7-EnY@cMVxU2}5h& z{8{-D^Vydg3d`p*_n?jVK5&{=sm9o{q>G-8TwQAg^Xu8A_8}EacRA*nTbfZ1=^gfc z1j&mL*K<~M?9v2PTyh7TdoCU@Gmif5XM%#@ti&sF%yLwGVegL5Ls5sfb49Cm9bNNH z#8I@-yX4djh_~#M@1eNsX4wLi-2CteP7RG>n243*3i%CyP#GBdXKj&~sAfY~)|e`X z;7nTR#7L4!W8a@_`M5KnNj+sx&x*oQsbX%vwO#UpXMpA^YMvTS$}i=5V+K{ z_yb}2n~N^2B<^^V4v{Gndm&_BNCBJkZ4;h8Sr~$^Ybmt7Xc3>)JAAm%SZY5elQ~9e z)KR>reOppamf=zu+x~rr?bwF%WjFHZnR`=ucP^0QbOo;8=Ag@GhPKcpQDNWYweC%R zF>RI68eG}&s|uR?RuV_=)a;h{rHMJr%dRUX_P*Q|T-$SQ*!d#aD#kTk0YZ=e>lK|b zrCF2;>O>Y&oBo?m%5~|JY=Q$Vm@oC4I=Q)`T`?UN&c4J`6oJ<0^e_9tvz|Y0((i2Q ztdSdQJ_xk1D9gdw);;3*Ue@<7(KW%NzFTR|n8yL6Y>eG>WE^Wbv?=1SnRVksS*-xn z1wj7*FDTN|D8-YICur@ROY{J>z&B$#=-k2lJgfc#3`fr5iX|EvzszsZ7O{-`72~X} z@oWuAAcTq~x%hr@TOghP-E^-KHM43aenSPqC93_ezM*lbV!2g4WIs%yL_oj41|$z? zhhLM+wEwgf442s3A?XAQQ8kUB9ZDj_a8CC%pXdF{3OcVaZtBt4TSLlqE9wCh)IbE> zCd`-T6I;VRE0INno*G(wW}f~7UO9|%t9Ng&yqT<>{^p55$kpthInH&!+_7JujUW|2 z-3GK;JH|Dwu3lkQ><(GEuXe77a?$i1XR2$`3kl_GYG99($Ts-CZ&-UlL|Q@+!V$hc z##b)AQT|J_t)~IMJfK@s%yo6!#?o?O&u8) zox1bDu`N@@Nkak&BtTa4O9`ngspw&Z@nt^8%yspQdqvnt@bC^F+!hdTXyREnG-pVUy_B)wkbwqf=U zZ_fy4FPGmlxTrZsfs}#Y-h%~GV$TW)y4i)+X5R!pmJg!l-tEYnQi?gtR0QJ{HvY}y z-#K-~)Tx7HyE5C4V@h`T9EOQ1GpIwZXIZ9(djfKIj)dwgKBC4kmICr1I16bSpJV>r zpx5HLx8>e+WGwH0O}V@UGHY~3K0++u$3RX_))QH=9G$8`%60rcHCllX>v~dNqaCI)Exa1#yQB*a8c~(Cu1((_ zdgIczRD3aweclf1Sr6~hWTt!HE|=X=oWPrvD5R3-QG)#Qs#`tNaZy!6foZA*`T5As z0+JNIsD&!#z_?UxJz<8|onAAO9(`BVU7aH{^~Ec2@cPL9{mNS*wh8^oC%mSjF7jCrIxyK%kR>*33UoF zpjYpV+Ph2+fOnr|nDC0!1&k>7&^cOa`xz+J9$|Dgkm0QFxI%H}-4qp{hH)q_K1kyM zUmn36sePAY?nRekAjWnsg7WLYp|>GK@gTE(7vs{wqx0EpEmZc7F#_j%ahxP${iA)r z`3)^!?Ynkxp-u0z&-L`h>-G?0kc+r6q`QBTBso7T4sF9tCqb^LfZhV)7gQVer6*$2p{#${PZ`QKu zXb_xp2WGQeRm0z#YQLZQW)3TFT(Wp`@XFzMVX$#x!SlvUUT5OC{72K4`!E*;NJ6r| z%7OA?gTuCVjLZN@W-uu}+jV?!go(v!IsCEGElMQo_m^cqjowy+7IcQ4O0jO*iXJQM z%r#QxxPnRgj}?0=jYro4CTHxhZx!6SG7mRP0<#L(z@Wztvqvbe_`S~)QMHG+)%Ju` zyJk;>%TFF&m+cmn{R@xk?h71G5Xc=U&FpxZQ+Og?*LS6);i(m~*-Z%pW$FM41#4+S z0D2XyMo}WXT()=F{daZ^9e9qu@1BT{Q2BkfqXSYu#-yfk-57onE>YknYv~p|1T`$$ z)7MPZ@=Ukl1#<54ErG0NxmV@lV<0)dzO29q_NFqg6EO#(3{~BjkJ}R#@uA< z8(eeh`J)F>d4dtgJO+pV=3)NH{>rG{bI%?xetG7aYx>8MHUZY|)2ZDmdo$?%>vv*q z)$gJe-!Ahv>H?YVuw?6Y=x+G-v%NV;T|vhm!IirMIo6qPa$jWT<~}djfbHZwesQ%G z29p{)diuMJue>$lKiLaJ;4_W5A!65C*tsQ?>R-Ees&FYRD z4|6T6@ndommOoO5a3-~dx!=40;^VsWIaWL785CCwP=Gq;Dc>`T7U(AXnu zN2%w<#pYa=i;!^rp~dFPFVQ+(q`U`-qsl6K7@ITG!=#QfF&0$!5+ybCYyF5@C{Y+h zg&Szz_9smu8K)XJ`68jhr-g5})>4pCxsTUB2H~K5$GhfrB^)(nQcv^dRM8{RebcYHM1E!z&uLR>{RE84!?_e#H&1&89@ zK1k6jAlq7Ox=-fHpWT*V$6aJyu--x*;i&~lU@G_d0C5**sZ?Kf zGSl(Qt)|&P^P0_m=c1=z1`M0j& z=h8XM;yzI}VH1CFYtm`Ks(dq0%JVa^;9J3{dcBh8jKT-cv4sE!il6)Bn{C6EgZTbq zw71JPeyq!S$BYB&Kz6Btb~7oxrWNNBT+*)IAiVKuk}2Rq_O%pflqy{o%eXZn8^6_C z7{avd4}Lz_Cm;XE>(Ju^+Sp^X%20#6BRw-(JW&{Ze56`8=>cd zwN#L^tLt`|o|t4kkHo-Emb3=lYM&|TGu5i*WwZu$rSDI~$ThnN&%c?gJ1=V-(3vye zJSGad(dDk|BzHjtC(PfKVRLM{c&RcJ9eIN%Gm7o>rXeYE+q^Z5i-@@(?{`k+bfnb1 zd>G~7D+te5V6r1gTjfbtyPf3sm^;?+CuQ|UD&VUcUM~OsBQ%)nt~ZoBMGR?w6<<)@ zP4c8XBabs5zTe@I%)WIRqO3=(`Xm>e5JhdMvG;ke?!USYAS5jNTqyRzj`7l+=pFuB z-@0u5k5jgzYc-bxJv2X{ocpr)4e9Sy%i6%a;babRzs-_>KNF;{0S72?zZVwryj+iy zj<>1kmdh01mE-Q@N+-^;wIe1sSMP@3N`5}3X5exU&sBe%Rh^K#&2*%YJN$11y>PvH zLkRDwexg;=YPp+91+}q?{8mKOFQ3Ik3!MspKvTZsTpFQ~UwWZe)#^iWf=MmVtE!zS z+@?zh0kt`SD&4U?jy?5tQoYE?<`&p|0|c2YJ3@oV48?KV^dd zgnj|nfZ~M8pu$$>c?AgL9M;T9x=&*v_x1AV+pC$5DD6s8IB;ribxchymEK+S&{u4a zI`yfArp__>aJcYknZeCRx#0Sg%xfN{lr6%WA-T~Pp%QU(qUwi#=;(;%}z-^4X z&wMhKW$9~10{cLBhcTogpG)fbFzT~ef~_!{tvuRDEm@hlMIZ}QW?Af&@#fZ>{Hw0R z6}=Qozw2|C>z*c0A+|yhV9kBcwPyWw0lyT?x58nOsvN(Ji&Z=#o`KNFm9f>+RXOdB z>bG88Ux)He?S@>4_aczkx3s@Ye3}Oh+A|gJYd{N#Xwk9kTSgBb4}%;ef0+&mj#eHZ zmK|JshrvO$g(zJtva7CocLVokPjGp6!S!)>m+9jy>T{36M8;t}O}|aYh0(5U2pc8&Dzu% zkQ#==-X9EOiwX=ZxJ44WOuruU2fC2^rF^=c&24_i7j9d{-hU8*TAi+xZueqkeM88} z({?48lxH~5%jS+AIWI1#Ey6_Jdm4S0H{N`f@8Mq-oZu8hmcFsuy^tpp^NW%B8ZjHZ z2vhV9LFvwu!!)K!8_u7>zd`4es$agXJym`h4ovxasoGT0uL9J)agx82)+VQ}Mg|BkH4q4nLgg zp4?^j1Z1S#1(Klb%RnB!9;?jG9ddVT(2`G!-&z$rl4x9O(x0b~h<;kz(*2Hh^r1dU z)gWiuOH~9*A$PY&lFP0~o3a0l!D@ClpPm7qD$hf@r__tCe*L{7HE-@L8dxROGO?R= zGa0@kb@-wO=p4TnW4iOlS5Ku;*Y8cy@!-OaS61J?I|@nU$Vs3*GAqu~tI=!$M zeYC5#4sO$WM+6@g*KIxqL7cgH@vMQ4*i7Nj^wa4}8_Di&(7$s~Q_$_ZyCIiO-D9)2 zYAFGKTnM+Z$H`#!#u3k+(SDY#UQqe`Qy3GJ) z_8unYoX_Hc2vVeI0x{-Bw?DRWT70}??lJmv)DZoe`f;zL6rkr-^!W&N5)fVMD5`(( z+aAFl@@fogK+ox}?q{|j=zGD@f7r)hyF@$TMt7DFLvdy6B9tl+c4>R< z6tJ^+)zn2uGzw>k(XM_<-b0a_S|>l{PG;9}fR&Um2J@Bi68gA%6VIzR5ID}MOJrXy z0KO&W*eDeD3{5}nIzscs2}1+Dw+lX<1qB_!?9nkc6CgTGiuaE7y#H0I<5#r)++j}6 z*_=o*L7Hqm^XyK_+B!3k*?)Ny-KkH( zZ-MV-wjUOj9RJA)x~Kz&Ze`yZfotlVqz_7toWOb;k_e<#GB4ei&(^(zK^G~rNh@_y z2YhmmObEmobSO?NaOxbWy5ZS;&eR|uX z<73fqSzNoy%*#v7_hOviXo^6i<;nMr9-W=tALFDf!$k1flyhJA3cL`Sl-XyQU#B~l zrzJ*9uSM%89IziTcaR7B$VpFo_d68)6)-_U( zOWJoTo?6xL4|qNzH`m==c5{HgZFspI4h^F=K74$3^#!H9e2D(H`tNYT+r?{25wNxz ziqjd^?#=dOg)#~YK=#f=u$Kvfchns|i0G%H&pUk7k3XDnI^Z%KgK9@(Iq}!vnme-L z`c?tt0}zzab!%u#8|!j#B{0W!d!T^;Dic_EasLLj>WEJZFQEZ&5F9;)fT8kI6=wte z3lU(`(%J`{a`D2;>p`c0s%3{`cwIecGDb@}`xaUgsbAa}sqp-felP9gbfnJxprp%( z3yQ~Z-k^z~I!zhrjbP5ROTCnHms{AABo3;(&tf;a+eTVV=l=@?qG+(<>8#H~|7`X> zdX_iD5{h#s`-?z_l*zt1x5x|32Ye*sxXH{m7}el(>b-6Gq%2ZD@-P((fP^z?F+zb= zny1D4f!c`xh`|@7qsNv%ZQDyJf{yh1ZN@jugfZuJ4>^U?a+Pv#sLS*$@Lp(x*Icc= z23p>`Z>*Gc2Gbl`r;F=e)1Gy=Uw2v+Cm;;%!u^K-HRqW>O@EAf5F_A@jsr5is(o!B zwnu=>{M!wF{8;DqbmY`0t6G=Z6=nCI3#)`{H;@S0v+X&lXCz)17h0m73g?PWyC`&F z0d(z#hMtJJpJ}w(o<>2V|nxz4jG#0Xw@0Y)8q{I63@K6&XYHMc}MSeOKJBo@7!QG=- zk7-7;C3;Nf8Bg8LwZaw4*jAD1ldSxYke0o#P7)-_ujm-|W@nxq={v3TAE;!4hQ@Yw zb~%jnT~9S(CL=#H|8Nxr*AZ4U1x`7j7TVKn;|)5%LFam15Zoov*){o=TxNb+tF zyQ_KVat}rqSKlsMSOy$(sEJN6z#8txd4`B-aitj4bu!^C|9BL%msv28x?WXogqz7k z>FXcwne$8KObwX2+E23ur$e6ml_`6&nveOdTMJSyl6ICXLK3ndtbTJ8DS1hljG3wF ztygW_z8m8fCMG7$R1Bw8Gw!FK{rQ@;>A^>&Ubd{W^;DBfB3@m#|D9!k&h4?OUh1kW zk$s(~lS*fqkeVe#`K|)TN1o~-MSPUI+PhgP*n!?RT0_b|m7Tu+Gu3Oj&M5nLDKTej zPSUbwrQn8np;|2^>1wKeDCxmf$8Rl9T!OTvr41j*!G)fFAJ3NGy&QBm^AB9K?w8xY zf1}JqT(zXYlZ)3Pqa&Z8{oIwdBTYKG%Z0o<^?SSC7U*Z=_P3sWOwHOXS$;&``?`D< zTdy8G92V-{gjC@Z3bV4lM8n7Wld`=YJov~7)?QPU{y)UMWnYwE`0foNprnd|w8{^V z?v?>XK#}h5?izXsQ949Gx_jsvdH|7bVTK%rjv30KhuZVM_x)f$-w*a1xMqE3UDvtR zI@fW051w&CJq&1RPF~DyMH^=wCx`^>7E#^@{i)1f1$cQ$X#8Z74k)H#SKXbh&^pXJ zD;!&jlH8^4)HNj{y!bpK!#c2x=%R1^9Kg6KYDeGELMuQ3!a0_~>FMc(hP8>EIa4P% zQ-P#Erg&y1O*-C;?KLx~PRH81nAf;<6^^VtF4%bru|Sw~1;DP}<<%oA>qbwaKzn~n zzVxFfCpXX#gD5DIzgYlXBX3mmn6Eo%7dUptMPSw&Zq@Vfp^Tqf=o63(uA7xR5KOh2 zIolGLgU=(r8hC$l#h2B|xEt$~7a-+N|8HR_%CmN3^uJot%>%0J3&~-0sLIW|B&ezk zrvujzdh_61ICx?6mUvZFDKC`7tpjIKgNWV)N@C*sH)7CuiIk53YG1e#nU=0Qc|sOPg;~NLx_;F=ZF$eFUKjQ-J?-HYEkZ1xyFkd3E`y8u<(4DDY3uF4UoUv^+Tljbx@i&>2$2tacAlPG$GOH zZZWOPF~DXu79ZO~8z(7uddni?J8AiVCxP+Co`?h*Y_dtSTnYakTpug*nj^jw(TTH& zWx+?;kco2#z=;>2KfiU)2dUhFFHV(uX^?)e&*)<)$zEfFpL(6YJI}H?9wxu4 z70UNlCy)zX>mte7O&;W3A?g)U0AlTv1G)q~rI|Hx~!`!^%{diw^LM0u0jnNa(I9m~-+1wt102E6aJ z;mZoT4`#ufO74&ZWRiD6Yh!Qreo?L)C+{3=opIqNAQjF`*2QTSKs_B&H-2-5{?Co- z@2ZofTolx7bLZG$e|VC|zjlV$jN|`=Z(!3@|L@ox|4+do|IdFMOQZDtJwxHoQ{l=R z0qVdc2y~(m-4#{*qOG6K{$h3U>X(Is1$2wvh?A>@ zGI3@d{o(q4fuS&jS9_Db|K@=gy7I^GZNc1|!JnE#q~LSweoMAK^i%DnG@19m-se^- zA&fV&3x&(aVm$#)%-M-rruGZlquRxwyN#f`A~IfTZEfmHh9{3{^!zb`va^)7EXbNx z9#0qP242v{I>yrSiTkU$G#VYT^^rOMp9C8}xJjNjpWB2@ZuV`y`!x)+qBYwZ6znn< zmsNvXh&GtS=nV6L4XWPx2d|LC*t{6!f=pVCLp6yD=Nq5eB#K-SJ?Eyhc<&hw0Mwia zW5|Pw^4kF&=|TP)_;Tk~kA!z>@3kcfx3l~yXV+@o&S3r#K^zRl*+r`jtCD~-24%Hj zzNGkEe>V2Pmq^(b_F=5Mmutldeh0VXm*0ctyqqM{-5)W@%-NFc^)i?04iz1ulN`}u z+|14oeJ}uh{bQXY?)cn?X8sb?E!?Nmty5pKO1=|rqc(SJj5=GK0M|{Il9S%`gw7=I z;^j^!zq?D`5D#wm|B-h0N*yZAK$SI6eJ zq$5b5OF_o+zg%1CQK-{)cuXIDp8D{DeGZ;I6YFUGqW)U8&Rw)#a;Pp5n!R1a=PNH^ zh!0$4;Iay|3g_aU_}6vKg{gnZvGLeG+FPlsvv69H(Vo8i{q11gV@&(sU%3PgGjT%I zRr&e}tfv0#$^N6lwh9lVXMWWa?T0G|kZ)>H5MzZgm>6qpz$uZG!GIbIvMIfMKjVR9 zqf^MRU#tyw;IMDQR-T!eOBscxP5z<7UG^3U^tr~=Uy8DqOG;hGwtqyjqO=M1Jkyn_aZ>(>g^q2o^)Y>c>q*Y%(t zit?NU1}*hGxjPVji{(V+KY>hM=~8m=H^-cn<}T%vAc!J9mOY>D{$x{mU`XhVck>W? zYDE%d!LlX!YG!Y9H2dvH?8A;Td;H!Sf(8O$m7@Uho#t1C;L4JC#7A0U)t6HXUvQ$T zZf8^-bK=bCnXI&@bdloI4nuh>VFYOqAWIxa6}a2WiHBVrY|Y=7D~laA5{k_YU?J~D zj3peBK&=r$1|B*2@AS%|uHs4)2haW^t~&njT99u*rKRJMv6aqm{xK1kuh*omMnU+2 zy}3Mz&Zn66RNX`XGn)E18n2vW?C13)`3mRr`fK|T2AW&NKxA5)BG7K1U7_FkUmp86 z1DE+NK=|Ig35(EF(cFxU)V3tQ_z^vRH`(ratLijyjlc&18XKeaK#mcT8xNY-*t8G4 zqR&0*6a8dD!%x06kP2Ty{7pHG)x96}pNUCbHK+h8fgH)vFiKy2@ zR-9jxrLU>7%HH{J+e>U`w+&oox2e{5({+$Wrc~k8eRXOJvch1-CO=&vF?r5*HYrOY z{!qq%Cs>JVb1vCZw3Ir`WyN5iSe5moL8eQ5psu;CRFBGQZeo+FJcDCp$oz%H2aAneg!#o=Z9v8- z0>D%&-o{*rhW~1J&-vcV1t??igL$4h+EFzzRnql1+2Ak-H0n7FxEcdh*6Iv<$0aWC-P~;sE5>_a&Etqd)u0Sva;J2%( zZprgyi`~MP^Kwyc>o{lr@dr%eo^O%=>~?wfk6d=8iJ=yZ>T=8w^yo4g2?noquVW zTbi|=5xm&i+3`QN0R>SVZ>6{!9(VgYdnn;ED@W(gnsq-)wT*ica-W_Yi#Jy15*7b* z&~0IxfM4J*;F;dI8G%cyJ1uqVxCQCHP@u^xBp8n2iG&I-Eft< z-4%L+hZ}`2T3k!0WIh+ryZVxZr zB>6}pUk*wy1nC7WGpD@8ht|FJ(s$0XynaU{h9AOhd94h!6HA+4nXl3r8;k7V1uM$r z?vWa(^3DyYQv2^lCkz;O+zp50OkF;Q#m&3z))`J(HxlZb5w5o8RhK0vPEDd6l2^8l zJLTfs=($j6$3He?Bbu05mgL9Emw!bNm@Qy`;J2|~Mx9AftR4(JPdsUD7_#kz-{Y1k znWyM)bu+%Tfs}`aI+s-nU`(XF8wI2wRj*3j#D7@OOi+HlQU+{6U83&Wyad+h|Jyt< zOQO8I`TMs=B;KsNspY>*n-oJmT;hNIvlFr#STj62A#gdV^97%Sj2j}Tfx>&(3D_-X=f&bx6?T-fU zxy)Z-w;WShjRmofe$DIe!Bmpy#WI3CjT*SZ33~qoxR<%aWl5@jGtsg&6vwmCU7a0q zRv`Drv=@}wjo8yi(a3`&Gs2A3jFU)=7MM?Md~V35#PW;E1I%~p zKoP^|podOR#%i9?OoBf$UOIeaTns3p76?c>$ixiJ{mcJ~&JWI>V6|Cj7GgOFNBs=z zrmp5}?B6)yVE={fb?H=&BRY`~M}ida&G0Mmmt?5J2iqDKLvx!*bNwnm(Mn2SfX1{9 z$A5dAPE|wmwDk^C1r#W)*UeXk-+FoyIE~D)0U;c=qaIGfbQ11v8T~JC^TQW$s0;^SqwVc);aH#!xOHifmE5o82spha*$dk4IYs@8|0t1-+(M z`P7xr>xDk}%6&1nr*`iyOT1XnjgIVgoycw&uzxc3wSBg6g&fc88Lgl3D3voZ$xXw$ zcfDSMp5BT8nP->Tei(zg45*t7`5OBS>7p^0D74#SXE@3N{O+0Evig)fqzz%1Yd@7+4XtL1+0yYl7#mpS?51Nyt@Z@PwH!G z>@Ff>R-{xyjVgWi&K}|RUnB|geBsiz>sa~S$H&b(J+BWILex9X8K)+?t{J^lm^!aH zI_>W950+ZGqb^cMo<4m#x#_Y5`F>WZvVS!xkqdG_?}5|p(todx3B z7*yFIz3i9#n?-bfhdgE;@>!}S!s!}P4QKmc)Z!v$d)H#PK<$ET?=LY@F>Spf+@vly8L$cq2$5J|T9F+BmFqO69CbWRlQy9BRZq=l+TL7ZnIqN)wuux>&* zKF$l}CTnYpUH(}DShuP`h`|VR&bn4Q8UsKtNSee*4_AoflJW#aGL?nrZysg@{NPcG=RkYk=03MAz)cAB zz$dh2$*Kd9 zq(16Yu%o@X5wY*!GvL-Di4^S?U2zsgC@=_F+-g|FLHfJyZj+OOIRzJO(i}nWdw+t)u=XXeojqY%Bce`54ysDwJUyd z>ecLPV$1l5E<_^t4XpF@kSR56sEk(}_4fA3eunGDLAKfrFP+S5UW*gR^2avq&eT*g^e^ z+dxExBET~!u(o9`Cj}#DGtw%V(zgOJzJ8v;e^B@OiXRA)!k!3PpxQc>UT8Nf=;(kA z3~ZdV{}RKL?=xZAHI{@rq(WUII+`V(FSLtn$x~}BMJXCRQbN>#oWaGmsUsB{8I-f- zmj1AE^Nre2CYW}0LwuX2yhx4ldlk+UEf80&QCGxBiim^=3as>932boAB2s0n0sPHb z>66M26R6Q_>m1SMF7niICWCP!2WES$;T(2n%5z}YZ*BNUW%>k61<;k@hN*#~n(hn{{fz_cuITv4owRtMrb(AkKTVp=9m7LobI!*=#A~TKc;H=Klt&z%% zg^JwfT5AZGS#u_*QCFtLSygQSr%`q8N~MlkNV&lm8}O>pK&m6yQlC+$X64gXrHFRM z2vDcSk+Jc8zKacdqpKlR8yaAeTDu_2471Pobl=Lv)@4_x)h%)wwLt)2ZKD^;1B!5{ zv%bl9m}8;f3&(WlL(?{;v365sD4sqyB!(#=Y-}7{YYfKvmJl-m>A` zkb;=1q%D>PO4BQjlfcH@s;kF=I*sz*1z+gQ44Czw*0_3BX2pYzLdI;;<14;i8C;D} zvp739SKkl3P!47_qOt8(($%fEd;v0dI_z_thgln$rE;cAE4N^nQ@nz|$2Dw?=i&65 zMM}-u-9hBAx~m%dli$lzcKTQRIzl=0=?C-~V~Y^e-_F(Abs`!NN7mG8&0%M!V29ft z3lVOL*%~mVvx;uH;fl9#mM&LOUHg_c^jwjo((JPhI8BGvXlV<)WIQKmq}_tfgutD$ zLSPMT^=J1QI$5K1BI9M;hbgzRFemN0R`Y-!7{gv*g6^(iW?Tb-f-H^U{V2^shKv~^{7Cw z#vEMb#mQ^jd$3WdJ7c|ISYutE5AJ6jEVa@H#uk*y$E8L(1)S~{z^jcaak$1BM4d&SF_TM$nEli% z5O%K&Y}O48xHvT7PHV#PlWSCPI6GLm2Fsk-RZ|fKs5eE-WlCZypUH!kfVHy@CXOl``2{KU5S#qwI!yhzlBTR%YiTx9jIxHP;%cg z*-RbuR;1J_P~;ksMWD*anRw|)A2&M z)6nJ2alzP(Oym|P`9k8$!CLah<#t?AOLYa3FW>Gic19DO?{5uEAqW1t^~jRbFRPiz zI8;p#eOg-Bp04#$J7X6A0E&pyynu!ad#{?4-*)B@rQ-Z=ag zRh};d?cpXMI5j0mNmM<)_oEB8YOA| z4b^;DNaS*j+HjSF*{s?Fk7SGqA}I7~!?qLUh{678xnR4kv&9R&1uQc<@9sDk_fb_n z70pA?fl3o}3>{^|YaFkFP0kz^RW}02|K`_hC&Sh5R|sIox11=wvSutCtIeENUHx9# zMdh5iDooT&E`UsZ2Q?16Dhi;}E=rZuu`dTO`|{J13EUDb87HWxZM(o4lzGTq=T-C4 zDvEfU4ehO4@aa~3%df7@PmXf2h{=#j&hG0^jEZzKIF-Iq?cf*q%#^U}`n&^s zd4h9oHsu+5+gA`(qfyDcDlUgk<^DSZD3Q*{h>*|R2aYE&4G{oWZG<$q(!!1)yV?ni z?r}v)2ZaXcU-QZZmIp_+gJ+;InclTUs61UbJHk-n_L`E;0qq>M2z0J#&r8um2cPM* zxUh;i=*uk<58JflCRfQ7i?sO}J3WhVq$Y);AyGBi6{z;2W_ zGp^8-=M0%i^H1i;3?9KKY^%YTH5`b{jUASruU-QE9n>j zouRT7Lr^IhXsYjscE5HXv@473i!|zdyGUt%YIT3MQOp$Z@aW6F3;zKJi+o7U^!MAG zu2^Zhj3zmXx%ppR8Mn#McdGdmab(-!^}mA?-m);71F!X+12zs?PTwyGMi`Y!F4mY+76qe{l~&Y;x<@$>J6Z zZdV!_nw^?yi`jCGOhKENiEN1tY^U#0?#%R@QG<1KRuEG`K-bg@|Kh;&eGiIy_q7iu z(4Ym_Kg=3Voneoft(b5~WR^KR#qqFGolXbCbgK=wu=2z*6eEc^p~G~MqSN2v&$#8! z*n{>qxp4G!Z-!CaX6zI_T1Vdry7t-mftzz6BswvXuSQX#-GUgqni*^{uzqIJV4cJh zV;VExsFft3(N51?R&L)Yzo{ahm2JhIP-$@zfwMqGBM3wcQs9Op-pC4G2wTU-@5 z&bNVx4xn5f#Ie@wuD55c=`0g^mG0XAXCVlo>Agvah-24Z7OimvSC$j(R2d2}@% zS(Cf-IoC15MuVA1#s2=?Dws*rbrW`CzUuvnFBn!w8&K;*rIIJ2=An0py3DRNT=t8y z{eCu^PIBNKgbk2xb-fElm!8aJmDSkW&g5olRa9^5xR%+tL~>xAiw`p=XO-Ym8&bFQkTG-OKins@@H^4cjfW z($eFa-e-0J&;Yj}he)NVt!l;Q%Z})SCI}-*6qWLbU66weSav&y8Kz!`^H2*dojNtHn4Iq&c_fM z61ErozNOIRmi;3a+cbP9yfG6RoD!hwP|c@H)^z5s_1b}PQPiy zH(a?~I(Q5qx)%TZ&d$uz3R!QZ=#l+By6n$7E|a1|+G1-YwLSQ@y;5%Z;`%}D5}v1S zt?7aF8{~zY#J}LNbOAb<;GloGYg;U_`eV5f6u8ps6Zp*kk2mTm^5PJIUcb$j@QS(M z#9|H>6r(Qodrx-;cdtJT;9?^f@GL_xf^UnYt=w6Eg(ZaQ;+lsNXof+kduX%Ui zhne-{Ul9&J&-g`jqCZm_WBEn4B$OF1r?qIgAL=TpY{akb%p~(IpZrb_JdrtG=l_VJ z<;*x54q;h!$WBe&3hl2AxplHD$0g9%`SpNq!izDR}l=|M?SO=Qz_lzg22F*_WVn zQfn(dHz7RCaX~oH{NB{7>A$u-%etUNJ37C_7QBo8`Dw6j2RKt0Tr{*XnBsdCQFG2% zEfI1NIDUEE0`xh3zBM?&#lmW^KKqhV^B89g#J|F2Jb?ZC`&C^A*}W}GAj8EE{Swryl+T(9&@#~mr!xo{$~GkN#^ zqB{s?m(o;skKv$Im2sZ-bqUZgj6kW)~VOcM0ER1+}AzS@+#KEXH z)vt{7lqa7`@m2o*!-)0%C*acct6bY?*`Q5AX>>%_SfSuoUVE9YR|0r1jwRFM6zXdC z{4M(={G%(xlc@ykRNIUFCk2BA&3dW`{s7AK5ox3sd|lSIq1oJXbo@1-k7QO`F1FyJ z*p0(4+kbEp{^3MyMre4T|9cuzUY#LRUHPRit>QSWngcDBcu~W= z`8HtTHP3B%{J0|dfxW~B2Sx6P;`w$#>8py{s#`H&>(f7iN7`XIya(V_#y z8MdSE`uo`{;Y%-0|EU4~eju=)BYW~jif1lJaFpn$W_}iZqQkjj_34(G?i7@Q3YT`! z>-!(3N;PcZ&An~I8x;9eHna9zieMh+R(X8ic6ftw*7esEV+3Q%dzSmos?vLK!9<*q zO~gpcnZ47b^EWRHWkN+NZ!!MFnl1# z=`3+8q+D=3xZ0Fz(Gi{Gej&tgDD}Ej&c`Cg$HcVu93IkVkt*VQ^bj%LTAGsWXB0wB zm0ERu)gof+U?#Gwr2(SxR=36y(xhG9mI|MY6SoO01_iePm|^;iQ2UB%#knP{EwZNw zld6?on%r{kIJB;c-H(+-0Sa?QQtpRxhMrJGTm1>{A*%m1jvTbWM3?;O$0cWV(EF@Q zc)VbYO3jU)#_4#yJ(&6b05&e3uk(b4B}1x>TH2-K-p$ANV=ZgntTbNW+edYu9&GSS zdh{hG6yuVsY8aInHSvhe3Dv(+G+kg>2)Y);*p<`sagC1-pWyD}_PVs7fBiIzbr#`= z$nK+&*Va>tIC=4s6u#bmb5jY0a^Of`Umqhs!E!xcQex0ZD^YrbTRoozsq@1E=DBE} zaPmjnvUo;QV#O2;(GWcI{`yK>}2opajIMI+$~$8$ads!l6@~gx1#k3G4u_S`tP#dxk(nX;c1rD zQ5Hvr*klHE9tCU6X90!*OF?l38yt7C_j86gic#FX=d~-tk7N-fQ_)5o-Xk{PN~izC zLdHWjf~#2;N@C)xjUetPBQFzu%~fN>SN>eNb7PnQLAwJV8AE9gXh}&YqzE}ctEYI% z4Cx(d<~zmA1HT^(h@OTyA7wY$bQ_V>aUx_;uGhigWE_!o_ zeU9^t2lZg;9IsM(osk}7A%H>?EO z)MR*IA}EPU-lff`OVMpL_076V4!xK`!0}WV_-l|+mBF6Uir1$sr>5C-=I&}9mv*kJ zO z7Y>IzmA;3e%Dp;N+ZpnTiyrUM(RwIUZy#xwu__7+tQYbkL#zY+pvvv8896&SaXQzm zk+ZgI!9dg2FT|GPip~_uTK!9%hh5jQAULDWsLdcO_)3EZ;A1ik=|!}R1A0ZC1PUPE!CGApJg3GuT2gH*2`j@#C4ZWFP6%*W^%92Z!@Og9KhJ;w z)-P1P#qKb8Uz;WSkgOMjc!m8&Gjq{>|zeeCB_iItiHLzSJJS|2DE z3Prckbz0}Ok1f}5NY(5bwx3Q7*j;KxPy$ahYPOG{g$Yz*=uz?=n8z|nmsUl+E+4`< zJgH`Ku`+cl&}mO9M`S15r(IIo*uOsF<6myJlJp;6D4QUvd^~}bCDhPqP%`W4wj4yy9wWeE{^lW38Nk>WZjG_UHF$+8E<{HPSvw`xW|e?|}I? zTPuR3B};hYOy4WubEzK>93+*!f;IIM`qFH)JyOjR zV^nUE0O9Tcd)xTA=%o&kzoGWm0xGjRvAkg8lAnQ_@?;M~>+SG9;qmp#esfxHl$l<) z&6W<=SIhoZ;q}LosV7d0VO{1QY*1@mVvA|nqer%lnBsJMA4?e%W%b4`o$!n*e>8yVZ6 z-Dn2uI(B~5b27Z=TTSw6H4Buu*8a}v!z!$_$b9Z*qnIb&1N%b816nE$!8)pQ+r(0y z1M`95pt_yc;o+nxE#ljXK9O@Da{onzVD4tk z&3)vaD1iJXJoUjBCD;yipP1I>Jj&nGDL8jqjis6K!3|Eb7TuWc^-Nrr8^( z5C4nR!2h(89<1q(r|Qw_CGNeeUhk!mz`*wCVO+1rD~4zv9(}U{^L45{sngj;2l^=s58^i}*o#Sr`$q+&6uVlH6 zAY<`_ucC5?N|}IDk%QHEHVp6f!gxM%Y^LI9M+Eu z9JNZo2@|oWDl=|JUReM)Zh7Yb~J|sX?ICnI? zU_s^WSjDsZ;){;^Vbi)Z#Uy!Nez;3u2UTr{*~Dy8FN?QTKS>D_pjh}MNo(Vvrp(CA zB%@h&nhTEFtxJ*=aA+uOafbJ?TmvnZh|W-_^(*(cd`-4DFHK01#WyJ*rCa?5LUUan zC?=rSz6*^s(}x9m{o)LU*_PyWS7nz=DJ?guwOkyk?=P^72!-C7_fg2#F6S3pv8T`g zzg(y>X#P$DDT&u9w)q~tb+`yd7(q2WM(4Qh-&Zvh)o|iC8LWqkMc-y3Q>gqkE`D+A z{QfJ_4hU&e2!rvS*m6Nn2S( z2cN@u^M41Q{fhk+-!z|ph=Ul%&iF6wQx29nt*nh^1|Rv~qU@t9W9 zs>f;uW<5UdD~GOSbv%jJ=8-v(rJopdx{r^HQR13fC?^IZI*WqOU3GY*+kxPE ziDa+z<2sxLSDm71W0d%&?kb}f-2$?|jA_TU{oUI9kP|)rx8zy^&Sqv;b$E^*mh|D% zqM~-ws7CQL+pY^DjJ=E_iFsiq1x~4T>)E_PZKgYe+*+r95hGHbiVK0Y^e>mHTwD~n zJZ>fWUp_)01KVA>mn+i8%Tho94KbR7ziaqj-og8h{k7s?uH-rNAy-U(!B+>CFE4~Ie^`6J!itw5B~k(UY5eJE51OaQz% z&z_UZDjQ4oP4(ba^{7lt&!r|%-Jqld-tUSami$#ODAN-ci~+{JN*CKlGq;R8I_7WB zrt7nmB;Dm(D6`WFU9{dkD=A-i8e`a`NJ~SN>f%KoavAf?Cr>YCFVg|YWp}QrcX$>_NP60(og;um@JB`mo8JM!#6 z(iJqYgW&%Wtg&;%C?*kkz_!uuT5LRZH}r^6^aqgZpuw`yb=PwJb53iZ?40Jrp6)g) zV@HQ#B#W;D@?Q=~C0!}58Qqp;*F%&@h0n+I=~7>HpIG_W9+!}&#S0}m;+WmB&Gwt5 zdZ_yKZCRXTO5?@9yJuUW8%+%3R%GpYP9uq{(sCVSpABJpqm%((mgHT zttNyMp1)oEE4FniClQGMD%nr%e*eopqbWttGb4Ac$ziI4z1Vi+zRr<8rg0|uZc~}X zBC4Jr(&1Em=g$Z517F2d3wWvlUK~R1*HJJrVsSO5+4^b zUZu>?oD7NA^@}vxbx8tY1tx)8M)wSK$4zWfLR@%ex&4P~pT`Jjw&)ce@JUaE0C3)$ z2i+Z7e|*Z0CU$OjR?$Dl_^PJ-r;AetUOvP-9-wy6fwtA0GM@u=}5mzpRMeIDYh_-ki%i zc~aaQu(3MNdC40mc(gkIHSH}epAQaU%W}}x(U*W{z>x87=mKAedH!n$5Ag>TBAN1( zWJ_~_TJ@G1FY4>f;z^qgGcb7#D&Y(t;^#h8rP)r{v zvZ+x{kB3k1vlEvN>?cYD7&KySv)uk#x#*8i)2U>XkY*woexG4E!&q(VU zb}YucsE^*=EX>gLnH#a>QGv$`rQtY2l&Mbh3Psy)u+HNdNk1uhU*|T2%JA%#6s3q4 z+MnDY#FRjfac;F=s`*gAxUfQPI7#qR72{Gi23bf0^Kz4^Wf5Fo+sXX z>}G*(th=MtWw4M9+Oq|B-Egto8HJ^)B4ve69wa)EMA+`)1-X8J{zi-G^w5h)?UUqO zEG%#f$cBkv(hpjoO|AeCJz3;guAP3m1AHx_cfo@^&ObDGB9->DIwP{C@&W^*Yu;=1 zSyB2cO&`9-&Z_@5y21N)%bHw2SeYP=@$ZeaUP^jaZOU?w)sQup%=IfhGiPWqjs@w| z8kRHToBRM%&CS~(`$gATvnbKg!5yZXiD<1=O)x2|O8&>$^nNpQ{IGhltQpqfh$E01 z>XmfBAukKRRojhCKn|(AQtA$>AighaODu9;toTK3>!PciMlU$ou}Q;q@f(_76I4x$ z+CeaGNeE@?Mz>44mmVF!E=s`aqBzBNm>n@kWesroA-0>9lLIxwh|P2~#Ua z1}N1TI93x{ZIYKTT_|Sc_`ZZf31Nvh7N>5G*ZfN03!$%&ci@C759g9759ybL-8Fp4jsKcj z!M)*^Thc(0?bc^Phr91rOc)cF$}*$|o#ru2bPn%)49pIsy5Dn1_`0ZCd2?-5!5K1& zUVo9YpI`KGlq$)kW_an=bCs`2`mEZtFf2wg6J_r|nA=E((~G9HB`??1$#1M@{9qtv#l zJ)YapvCUAJ#HUx(S`&aBw?EPKe_ULD`U449|8OJ{KLeOj&EU)JgO zA3ukINTrTm**W7M8G(ncp7+Z?`uQ#h!X_;*jQk+bHW(zaFfTT2Fp{8u9zb%NS41T!g1`w3mfC z?x@hZeM&q<@UuV3UJWWHnIGl$$^9qQe$Y@TzUezt0^u;M^xNO>cL~@ZSl8jXfAE$i z+CTf~+rv`kdm2e`8b+2K`@KJ!W_2RZ&mV8^j1}4K{1|m1S}1+y{wb8EEPVO(<-b7M z-N&+|+BBH@^m(o>OitKpn;X$dQx^A?p#<=0R+}I-J{Uu)Qf^{qH@@Qk*tb}ifMJ2U z$=Nwk*JWyL1lWA(7F>G5*e<1>oacU8gpDMssjiz~)?=5yoyY2>0YBr~v6??-Y) zBz2P)MtQPzsa+~0SM+wnt@*C3`>)8%>!Se?0(qYcqE%>GRg-jCQ^$mz;W3R2yp1i- z-Y_=tZ0!g+6;tAsa`sk%a8A`;F1+3Fj9q3ng1M`p3UTesxbSX!36a6m`t{p&Oa{P+ zE997p=W0#O+jhu&>9Q~-CkZS(6E-Nau;gpMLu_GqiVP{1)1l+on04r=9MQzZosl#O zIm@X`WvH5n93gMN!|yjQVhr1651$<_1t@9gT0m6gSG40Hh_gymo_$Z1`vLUHMySr$ zu=u!r;}V-~wEl;7~rca&(%ti+;pqeg= z>Bc+Cq4YJJ7>gR0O+v`)oi<;%XthbLf?IGgJmezx_fklOBJp84|F9+H1u2o}iCY=R zTI{&t)k$LWe%d%NWaWL9oYBm}cP0NH1rG>hqnBzO0`=W^E(c2`VS%}xHT3Cf&6k#- zE!Hj04W)*Jv-Da*87Hs`5X)t|BfrJIBtFAKVMDz*E(c-am8$9QcC4|HaVkXT*j8Rk zoz2!8(C7Lrk}G7oUKm&h)0gVF1%Zbao^m$%@G_lvZ&(!6@cu6Vd_aT0-K$k^x7PB% zsHJNiXDRn$qQ&h(C1%-OJ^x}vOpf+eAE4!bT1^|@YNP!9G43BR$hI5w9G=-4IExv% zPRstbzP9}06Ge_%Yv9mgw}ohaNAzy=J+)drXzn4Y%h*!s&YOxJ-cTh(paCu%jJ zo~CU7Qg^LQn)Pp%QdV}l$%$3Jm7l8a$lt5qoYuOMcwE^4H;WS)wmRbTZ)(-K*=jYV zu3ArRsMY6e-!MDm*oMhdqRW@As$qi$?k5YTO`GO!czt{%RuYeir<^tsCy9rE3*xZf zSGWcU_!AZn-YBOGCcXlQ{Juo|Mn16?8Gt!J5i+=8_InL7(1E=LKm*`mk7SSW{X?Xj z4gq+G_x?RH#)2%a0e3v5p$|^(km>dJ%+nM0EnZq@&+vPS-&g39JqJ0Q6w==J!I&72 ze^rNlDR@s|99&}y4kg%ocxpwzUJfbszz6^*9=nq7!5!u3!a)Hb6q{gAUq)N50c@Ne z^1hpY?3(-_NwsR2AGT|+yc}CE#CT%|!~kFfqo=a{0q1z!Q_O+9Lc>RSwm-Sg?nix} zPbE&i=*1Kv;pcx{%4eTXYV6bE>*o{3cucM+Qf^oJR4U88VRXCm&f% zB=T`Ue@sg`_2{2G^!KRW%k^VL29Ck=cuu3JPaRK``{Py?D-KS%w*}Ye1vteP+=XF3 z*vp|G9_MoR0)X>(1%4bbiyh}@9R8WVFQ+f+bEifh1Ri8Kd*tQV9ixR;bGYQ>6ipdF zMWcs&q15C@dSsjALko&A$*~$YxUU-j?B^O&K1@f3jg)R(SAKfD0VCT0Zr;+}FD7aG zo8`3h&wr}pbz3Oo&`}jUGEkEH$N{MQZ4ugDwu+Yg;FntZPw(p1yrn8g&(!^g3Chbd z0A_&nQm+A8`Lo|@*-!q-08TgQ{5k2-L))nAF7I}%V&|_`c$vCd{%1eYzV|9?Ld^y$ z^V>JHVaX!fY~!U1r?v2d547=r{=HWJ^{*ATZj;#{Pe}%N+&{H<@4n6s9;w;?>o2w7 zFaK6YI#?e!@3@!ibL>tiKOeZLw`KcT*BFDf$CeBMA+z6Bky&p88#gV$eH-AQ}ZcHu$o zxEZfUZiBO%4hu;4%$^eu-d5GIThwUEb}c*>tt11D1sR;4TJW|$4&Ta9t7*Gbd-7p* zUUF3D6U>ZL|Mmq89(U zjaK~hW5o|zCncD_+cabv@XEiNsmQULwBnsMn)iz)3U542DTi+<&%jkqg00i|0wrv| zpdAfHXyMPBYr%VMb$h{X%eVMq4pCqLEbH<;o#{1KTi@%XnSWVB`Xy)_pCmKk)JUv`Xe%err|Fnt@xB60Pm*Z@0 z+few@M6Q9_v(Z}m&Zk=N=T)@qH!W1S?JD1Ou(bzJwaw>NvMzR=r8$3DRcn9VR44n+ zQFgT5)L7dB(=$5eo<8f`UcayUmRb#Jte%rv>3qyiW#$`*D|}?2{=RM|oY$-^U#Qur zifT2zs+OOcq(_Ce5gM=ow%p3TskP^psP}@;)Okunck*>T{;bmSt-UFeX5M?`PK1W9 z>8O?yDyh@##@cyvy^`}24SZ!PDJMbE8P~Mvz!-I$Zs2rsJ+DxxC;TL7ix2kK^*@f0VS^PVZY+`onp)Ds@>a#CvsO8v7`f}X>#b(?#>5puC zGruz5ihguO9cR>2v#}qk_l%Z0dTpn*Gdo&*$}~M=GOug#;qm%-OjUh6y0(@aT&VcW z2g){E*}aFZUcROVb_3S(laFm*inKV$%{Ye;<}*e60`GYB?c2}xryXw3$jc)}0tNy% z!@TbVpdr?BV@^BriKWC%fD(HKpvb=rPOOEfM>#k0oLB+8h`sD3z8-OxCmSAY_Rt)PcQ|q63b_$rlU4%lEo)N5kC@z{;Nj(GH@VJir~tsT`|PhVGO>$m8UW z6EBXB(b@NbuGB?e?rzW%)K9+Gk#bVrLE~f&ef=E}Wz^#Yj9|c>2X|5|I%Lv^2Zz`j z2j_7mr+>iR&#AzCBgYohg()+&ymlkq957rL41`Vp zsDh43W)rRabs24~)>J7+j@o8#0FZA7K1i4D#AYGmo;kBMXkP;tqI$rHF4v4oleM8jK$^X^ek;Z9jO`H&uH1DBuzXV zr9Nv8Y4ycBiZXB)XLEWY*5+%=5zRbuN2@M9(wJ3;RH;sDy{j~DkuK2p!w zd(?UEF-_ijRk1cSQ_-Cg8aC0%JL#IZ<(j%IJfY$1Piyb3`?_zj$X1TAdm5%ir|+uE z%ERu_(U&4aDIL<_zK zKo{2Us|y2{>h`#;T3ok}b`M#g^s{j)yqB+s`)_Mox2cL~HCAzBBeePBFSPR0;Y!$v z4D*Lu4|HyEgyvT7qI;t@8u*{DnRUDB4}beB_3hr<<~-kgI7!F5PSw)4KhcH?opgEH zCMnITdsH!*?!B$`Rl959n=P!riAuf{V{60KdAdy|AnSar7T4~kX>T^s(pue= zxzj+V0dn^*Ng0sLxt6SRLlC>V zuxgNIZWyYVlru^%ylbE&R^j`XXw=*u+IxGoX6+lTj+2_}*qvRvmwVgH8K=G1wrj%b zp_;p6jMf~Rp&@g+X!+i`ip{;HB*p1c(lJdBAED`6hiXUUa(%gGpvJ5mtmAj~E2SV_ z@%fQDczv^m%x$kV$7g8e;hAbTw55LWhaYSB#6bqD9xCq9O)c9!LtQ4fP~U}Z6@GDz z`3&IgkpX(U*|VM^POsO{`R&waR#Q!0XYnHAx|JscUck4yaR%_lukEAWvp&|adEIsF z`T;BFzijIxMR!s!YsJB-8Zf)9aTl#Wvc`P(o*vrz%goEt>9Z%*uyH-rt6$6FJKxsh zMn2yG17acZeCW_&+OlP9QJl`TOA_AT-t z%8A$P5!{4xqfERf)>7tUF?$auNbCpPX!}QU#ADwNdkW=%KmWKBUHu-33_uaTeZ{_n z49d|3@WM6u+=vIi7wqDFkqqSWNESW)`*8H_ffsFf+Ji0FKgmZApOv1|W-kh&n77kNO!0$HIPm z^x^g7#EWteJM}%`6v%;jPYgXcj-@SnAd3`x0E$>7=!x#$hJH*uYQ(|)Gk?lqj-erB zVP}9Bw(#SCyghJW7Bc`5J-u_%mO3e^>6$Qcs)h|8W%vVNmaY7Pe5K`>EemrMYXGZX zzh0_Su8eL)Y}bvsi?zH~L!Ir|M;E&F)z%iR6uWw@^34wl??x+OON2Hx`9w#XeXh9P z!?mt@J)QhwoHB3P#%lei@7u5IUyRk+ewcO98$r9B<0_}qsTc+ zw6<;wo&UVMZuS^xeSECzb7m&%Eziiy~){OH@tx^hkF*KaEQj``O0NX0H#s3W$(qgSj{ zex#KfAj>{~Te+8`RA~BKTeDoJ2My7gfg_ZE!{kTXW^w73@m1yBL*98^963SfMoiFQ z1Cf22f1=K9yXa!neMOv))9AHlH2YwzrtH0@2@xl>_eQ+pvh$T_Kxg-j1PxlXUtjKy z)V%W#)oa-SZ9EsJ+v)j=whj7HLXKwcxTYZ+E@{rWEPc8Cs%?-*btW#w09%1>7}D8r zAzH&X9MOzZ_cZBnv_^!V(bjACb?#oe?xy4zc+OHCn~Pt(7pCc(4`}brB-<1Vbt5TP zQ7H!M9_1^^fZO3)54HGYqBa^}yOCPxeiGxRmETPZ=z7#p+0t|IT6HE`r|xI#Vrqe| zq~<8<5ho*giZ-0T=46~!oJ!KJ$V}bOE7a}eT-`~xK5V>qG75D#Hd~9%+}Eme2^unW zsj5}3uMIO-DgDT8?ddaDn;Hz!&A!VO@$p#g>9;@+kKcAbA(4MARd;6X*2Ld5RaD;< zy4-7_=GW?}`#Z0=6R?8VOvPHY=O=DZ=EVdR-nW~=(=pmH zXuj697^xd0)@wz>0ovAelHxa=P(eIDO_Hgdt2gPR-@U6g)f(%>#8oOhYMb_DyAe4T zYyNOw`FB#4c;}3^ID>A&e^GRHjXpX zx2i+^)~XyRi+jE#EOw(>C_hmJ7CS7ksXT+r}u`fJtUSlI~^R*2+T*)yDwP z%)P@jWkX+0Ufx&7uWr}9N0Ej*V{|fZzb1qmzzXlC`6otb{AL5cXP4++`VEtjtef{Q zXvy}e8nLvS!mrLXAMT=&c6~SVsuHtf75nI}rY@bVUzGi^J{izRYY#8h#kk{&Prsv> zKh`aG)JY0(CtB6TO_q61nP1u@!pWtEogov3w37APUl zz+&c2-A%rx8_AL8cZoW4|AdwtoUPTz=IH#rgH|4;=#(151Equ#0J1f_na!s5#$?Xg557Z$( zvNsV|iI;!`-k0Tu*l+MY&QhP7dG-W=0{ej9GbpD$@A~pIhl2yZPxyFDUG@~>J#yIl z$fpiv)I$#A0C@2Z6ngo#5apak0h-u*08Ny6aDp!M%U;0Y34Qo7_8nwV4tV3ViYGGY z?PZ_~eWE7^BkbYqZL~u+bs%JLqtAQcfLO|rLtE+rvUpX8Lj}Ko(v~`24^FuNc7Raq zO@8n=7#lw(%a5@7ekprh^vb{&gXFOzCttz8=>@9igatt04TT|Li09ZiC!oiln0W$R z(1tq)ey0VH#v))s{9<9!_{uMUhUeK{HcVS4g=0({hZpy#?9q0q+rw_(V8O%KRMafARCwC_PsRcfB#s^|L#}1+IOG|Bd;na zJ5^bkX777(iXAsy5x;z2>;B>wI$ooxGLM~7UNY}SrCWqZQQpoSI#i{W*8HCzY5VU! zP|U2kDtMTroJsPEGN_amY1-S9%$3&tu*;Bf23(Y{k7t@?XlZ3^A!UW z0;FaoC~Ea`E%@2{n)AbVw5UdN^$M%5-fis0Aq}bi1EvVHn9avP@0ic0mm$>{9oor*!mIihJcKho2wG%dz@}T68K_O=j*< z(}^3k^7I|W=9sO`TQV{qnmr42#%@~M&pV`g<9Dm?%F_nyOt#5DKJS3Vm`&#&zo!N> z_Nc?+Luxl_fy!2IuH_5YsxU6cfXo?1g!R*+ziy!LvVD}i?y?LmC_mGDCfPQi$P8U- zH&YA$s*V=?psp_VU1II>mBl+={0zjcblsk^Q;Ytog=YRu9UW{jR=Ef7n9s1GWSHA! zEB#QE*47xPsXwZ(1#f(&GM_Cp zzbxb@xZJlN?~GfoiGN#7bAQ!X=f|y5L3*LG4RG_W7=1)-KCKm%dYPWhw7lL>b*bK3 zwX4)ugvHl~S@(4Q?hf^tQ%^0v{JlEQsih+^86Vl#I;{kq2Q8K}l%-&dE( zVcK|Lywb97DK9_G<|0EedDpe>>U4ElTuqH9zolX8J~NHGWkWwH{GPT_&~E<;0VQhs>)A za`iATLvcCrT6uP%T8*!xPe<3#ihVPcYVERe4G`s~>5&1+qqjGz``o5#J}OL|MtrKU z>g83xL2Y;Pm6w-oaWci-%=4q*oZ_(l^KE@GS6P|15X|I}kvD8#8g3i?%;I;7h_N1c zaf8nLy2N}QgArq?1NprHkN}_oVEI^2dx)ED;=O+_m^R1{CQjYBNd`CpHfZmG7qOl; z>^JO<+)%SmQOC!6_7DIKCq+C_@_>eNQgr5~opG@D`Tdu6ehlcz6BzWwX6%*J@xTuP zc+m%YsDE9^?_22VZN(nU>oTK*a%^+m?gBrl) z`|rQ+#)1ysrj()2tEN}_*b$KRyWjoJISK~hjsjzWswu}{e&R3;cNYFf;y7I*&rcfl zs1Jx>kaO%L^4bTT5kk5Xyk>ec$G|eLMPDegOibHea1t2PWZaBcV6s+491GHF;4#tP;~I)r#(ynKnE7IKe?kG z`cW4>kiqF7`p}j{m!|RKz=~HL8f7&D|AxRGs9t2LjvTdOkqNmMi zM7Y|uZ>O4dYN}TKS~`7buL`fY&1F=aiEaV;gOX0fKBzn>|*wKKzZwm8q)nzpkj* zt+tW!V!OrDoE*EGG|+K}Z(07YKiAy9`Wx-<*UL8ZSmmS}xV4~Ln31Uz{^9NNH8kPB z{<$_+t*3_vP8+bYz-emoNJw$_wX<1E&H9u7s~Lax54y8rlWmT<$}-?#_jxMFN>uF1 z6`KEpH#Osb|C5$fX{5fDtEo@Bwu&)ed)qeEnfs#Ec;ap~o4ZGIFB(|04K^t~Q^_{Y z`!)~Z(HUw!|DY<5+oN6^qa64$&$amk5J(pu1;AIO3CGoX*(Gg=e4s?jPbR<*|NQpbfSb?D{;2fjEtD74Me?nSluOq}Y^*l%OmtaTUeIY4F>P;OSL179Z} zO0DJ|Qgs_g&y{C%+w6z8vAXCZI-@{S_up06m~ee!Ag;~GMJiYO6D?n|UIi%yO5A!u z8!PtI^gpetjURNkxw+w9yvJ|yQY}E=E7Zj<^ECS}YG~eH)z+=y2HFhZ<=9x#9$8Nb z`HER^Ov``ssV4n-742v^Tv^BNDld)Lk*>^C^XX$T+E8PVrv7zZE&ko-N?v`z{jOGW zVvLYPUWV1Mxr^R(Rx3Z~rU`#qTZ^mpRi{cVRj*0|?K^nb0i){)2h?X?12rD= zmb%TaYhZh)`HbB>r9U*loTY@ESWQ1Z(tz@Z>NKgM!ViyEZh_sr6=o_e_mSfBq7;68 zuG%jQQ@ydj){r%=bv5y*`|?XphQ*rv4BbpVr7zcZR{bGwsqM6?I+?V^fiK=WRk2AE-QBHq()FepME`z!ID8-JhYK^Z#xccVB}BM%v#*c0fBCq{hZ5YR+> zzaLSTHpr$A9tT3?Q||lWM2}NB-f8oXRQ=w>HBY*@(PxhaczGQeBSe4fTb$hS2-xqf zLVxgsAGq-#gLJ)gvN+YjG5L2Asmr85lp}{WoJR3tJMVZgp}~L!N9XY%<=h?k zM|3P4CZ35UkH>fZxRv%WPDF|fPVA7udsq;T=bejd9%q93LG0W`(2g?tpg)`%r{Po( zphp?(7aS>o3t$C!!&a30MTo5cmHN!6Qgs#w2J^ z-_HYbuq{W$EYx8`hABSko<#_gZ98!acC`&RF)`kN*EV%D(6fHiIt?DuUybTiSLE>{ zirTeXOX@b(*4jAf^x4#>QIjXiU@0<%dNXZ@b^Q>O#=5S5;r#BSasgL&7Yo@K;dbn>$7Cf@KumyZ?`(ABo@wv9tX{^1?Khee} zO?7Lv1r_>uU;#WiQKLro(R;u8TTN}$LVJ3TR?eLiw@K$G+afeDSzvY3*00mHsUy6MHkKB;K5CNkFGr~$-fVEsg8Q9h1A*~6|HTCD zuGvDn>bFw<8Ggt$LwOHVm6vRNB*iLi&u;B%__?+l@8~yFJsUPwrw*NUBk`g3MJDQt zwP!VM>vav^az>*gPU=WpvJ&jBn@4$PA7*RpjuZM~_ccvFm7>lDUN)Ue)?J&AB%6BPfK-7)|eYcdYpP0@&r=QVmqtcGukwd+XjG2|1O zYJHenB-sX2yGMrw4pDEk|okL~F$6E1GjCP8T2Kx*uPC zU}X=jUb0ciz&{3lH7E_KaSkCAE9$SoGJW@s{By} zH7iq7y9Umb4&PDXJp&WG;GbZ6#APXF*Lm&kI8Fzfk5bH%1LpIVpK5g|=SBa^4|KlY z0`r$aIyG>UyB3D*~&F8h|AUkYq!Pp+x^KX#joV&Oe~fqTOa)NL`;@a4@c?j zprtz4W~z>kTA?;onyGrFsycM?uwv70D*V`deYv``79Jg;{_|UD?eTfKpLJXDS5Ju^G;QSo-Hbn>)ZAF5<|imJ?W|_+`9dSschHo*z0F6vYTxw@ zO3tyHn}UaWlozjc`{%3gtk1Rd*f@<^-AR)-3{+C~T|Kn+$(ae7yLP62{Qi$rucO^W zMNHTEyT_DiZ8P$c-04(8{v92PiqQ0JLp5$gZ|%7rVPGmw$<{tKFV6Z%)WgDPE#Eas zBNueiye;ExP25&WzUi2kU_NtS_p)QP{qjbQUfEYOwhq_nJKL37VE&sMW4f9ydAD^n z>7eHC9i=Io25QQZFI25oC4Kh!Ck}jV-@Z+se%jJD`~xo55+8}R{DL|EqQH&FC{3C; zO_L@~wHw~RH}#0~)S*64892q^=>f5pI19L<4zZtj&f_-#3r}^B@ADz{4xXL>5Qy2t zUh0s~HT`kQ!z(m=>z`94--q9q(1X2?f3p!#M7*beUrq|3Vb9>i%Y!$@KtEiwj{urD zGyp*Qy#}V7y^1fT@mQ9}h3pf^Mh1HFnVWfZWZwXU`TfMp;J^TI2gt-$^g&zXcw6wz zNcKK#N;$+>*n1fl`#g_b!3y9CWRvfiv0_JT!9L2ramjw|`#=w_>GxIBD+6B)kRMt7 z{qKM801FdKinCIN5g-i4Mh}t&6ya1D6oWGv-pT!QY);2$@4*JhmpUA$0?ho8Fzx9B zSxg9yj}Cl$#7`>qs6$;qn1At|esOThJfj1Pghd9bhNy#l7#--FI}@J!1F|Sb7X46% zK5$@;Tlvfw(8Vu$^zbiJ@{SjE7%O#PnDwR~h{W?6s6*Dpq@Ti2dCcJjF5lkaK7(B7)^_HVS% z`d!_nt1c~GDBZhjfagpBgdZZG= zcWBdRU3BpCu6i(QzSgw)Os%Vx(>w3{N;_9AS8k#KB?Co!r_Ru^ofTS6`VCX& z1-sLYw_tYP>fC#1avtf%$|X9~sjH53?WLP5*UJ3{So}TPz!P-i!byGJp@SNH)=hJE zoYsVGr?vBHvisR5z9G2lW~|1BpU{HSiCT0%S;IG<(4rI9biL@Esj~?Mnz#S1hOfV% zHIW&beejN^N1V~|=nUO56>i$xY`S_!lMY_e?2Ad7bTUCh!mnuMnM7SpvEXIHIDRM7 z+Fa4>qlsF1ElXc+JEO8KJL!$e)pYh&RN&_jhl z8|j7GcqL8K4##QXksCT5lcYEUS~g1edu04p*uGfP^~6I1Ycbk%G10w87MpE1AXXl0 zd@VCi^N!v#8A)1t`hhMaW%H{GGAv}9YN3{`+oWcdYHLp0L0Z;&gf?`aqJ;ey4XD_i z_NhC%FlDpCTMXCzNfEj}XoVKk?X8$_yX&{{6&R4ZyZN-1w-}<+eHSZs#sO{qc%*jq zpQ8syZkYnvy1(bD_6}d713l&{e%gNR?>s}>I!;j1*0Y9cvy^r&T4&~M*0#^b=>E7Z zN}94m8@rCvAAbBB_2}GPx#kmv_cE2T?YxegT=>qWW99=E==mWtkZrQr)!7#ZW`Q)Zu-!UiMW|HP^9k1ydhwEbeLEV0M)&SQ{Z8^4D zUo7dP?NO^W|KvmsS=mi{u5K_juDMgNeb;ts_O^*yuxqR~pPQ=*s|RZNzPY-S6{)y_ z+d3V8K(ix8YjXHtZM(iqvvz!`iR(vMyY23u1iGDiQHLToYt-Vd3coO45f_)L=a|p+ z^WXo2`q@oTQg(s?p?f+OwL^1uf2mpfzSRD^JC#&;U#W!;9H2@oOwi@T6Iyk2lIHCi zrnN^GDlsdNpP>W;V{r!T?rP(?`I^0Jlosrms4EGltSnUz3+`K4teN|UPTt$3`TIs` zW`xc6wTx^;d{PfGIo;!F5AW2G@8`q! z!(j%m(fHFp+Auyp9>&fd%@a5JKyOYoTefWJuF=Ia@?JH)GVsL)juC$R;~zWZ3F5{f z7_@gBjK-vbWC1>)Z}PoyxMtG$i3C6oj*PKsPg^FBesCP#YXWpo#zaugHBA2hpS`zW z&nn5uJ4@dJKuR_UYY6fnRcVoxCRIzXmBUEySuwW=AwmccVk9BN-QC^Y z?z8SERPrP|fpqr_ZF_MQ`^m1VRaL82t#y~|y}24iz@i?RWgst>Lp04pjy!9|6)*B6 zDJ5d3s#P^E?J_U(u^go!oGlR0@R3@j7^;nI4?&LF^XEV%F`ji`J6H}^2i3<$S*EHd zi99&#;mm>{l66)J$GnUu$RuduAw~{J#b3#izj+pbE0Fs2Wc^tVf2(C<0x!7%S`(VX_)o^hZfY{oM>=H3j2e)I|XCGnPfB|^8b{(qYWELp1+{UId z)Mun3^56;F`{-NT`2YS0Z<8sgaDF0SrVLHB;=n2d0C{@DuFnu$`pq9<{ml>rp1C5R zMFvch=t6k~Y6VF8Z`y*3fBY*f|N0U9mM%y2O98>Pyque+S#) z!?0)a1Q>nwDIVOlMqOn&n$nVS!o(C8|Kmek_{~R1wZ1EPYtc~m+8E{+AoRd7T>iH| z;mU9S2G2F?(3p^nmImoZ0TZnPYziJa;(ovWIQPH)4{VJFpgcGXbs}F8Et*TkA(j`w z&SEBx|3CkRTOWOmki)0M8OyA#p%mh#5tJH%Y3tUYkNH9@KVyq)uTqdCpowo!;M0Iv z0y=D>^0C-D08=k`VE5w~JWVb{z5rmFWcu@`na$Ydl8A|?J+bO$0PF>bk>XvMRnQp~^P1@o&>*yxmsI2jT=Zqz7oJf9VwUya?)v6ynnAFFQr;b~%?ZuP6G zsUFo*SH8@Z;BM;qSD10m2j>OI70La|`U=#Dqa!%;DX7Du>j9X2ISi}s28n~O1izkB zEy6CTsm1MER+#+Nw^;k}Fx)cVglv1B>1#l3V=bD?q!D2SaG!b*xBof|7yfG;Vt3s~ zOPb8c1t2!EKQe2Oc*GIc{x%KQ|2P?sC+$Yz^H}K*=}Q54d{gasKgsOg=Ca)6R{MzB!EIrZgG9H7IXw z5YV0l+pybMe0m}l92<#~wwn==8Gwq$3RFoY3!C%co8gMBcjjaE$zhmxYCK$GY^97M zNRNQ;0n4n6hLy)&SR5aLWhcjD!A^4w7||OC4;?_g)H9Kf>KYGtk#iMjJ;;^R;L zhWQq=Ws>VEW4Fzp&_TBWf)=rTDLAnIkPdj|WasPN55=uW+ENAr9okU(C9c-cw(8qj z`WgBq?mj4BrhEafwAq}*b3uXW=xcbNJZOiRo&bXOo`LqB@#M`wKCCOBIOHx0w*$$8 z`FLd-UgdS$FX}IV?dGbgR z%U~bqUNs@ufN9B3@n+rLH@(+0UtE3R$`=L8PE?&nAyD{q^i({85~5lqY{pSY1VP;Q zrNFsbqdJT{*r61#I{c@$-^hc4MGL#<6bXPd;3sBG{nfaBEY)gLq}9 za*K|rUoFR~Ht@Pt;_z?gBM;Rk zDiW2C%BfZl$)EWt7q*Sd!32n`C*vqT=2tv8KnW13q>N);65}Wn%9MkY4wB zDxQFcva6~p5fd4Y@0p*wE;LM(_nEayXRTnbTM zSB!e$TlvrpuSS}~_Fw;qxK-QG6qkY)>7P0=d@a=#;(!v6yl4fi{`GfwG}shnA#rG} z7CAPxpschE&C+H*ZRpyoH=MpQLbibQ*6a+iB2}m_uS9)T8LGXa@M6+ZSpNI(5xH;? zZY^JdfuDVjM>hA+AV9A*HwVsB=D_ZM{~eEh-y4ljUZAUkJioMB6SGs+yC@qExw-1=Ytil9;EsE zcpk3(Kfi&?$GwqvTbwap(%Mjn0-5E%5b!l&?HYVNb{^JWcEO`$nPCfmsRk-#cAYQ5 zzoHhaABMsFyeBS)79w7N72o3}rc<0C5L(lS+lghEdd?SH?4oo}7V?Fk4T3mIYpanV zPQoFz3=8c9fLVvbGNuHn1T>;gwbIvR0)j#XSnPC5!jucX*!L_ArptEV8{<((&P>z2 z=j(Y^J!V|-$EYjO*zHw>Gyw^<(#~c<6+Ac|mS2l~ZYh{z6@m>9W8jlhj$(0uHT9Kf zXlX)`@VFWzb-Wyo>E~bKesmSe#`w1CL%y zPmGRg&0^U7$2deUJBNA!TXp4Pq2k&_mq+lK{vs7a;Yhz3yFPjdWs-mB`J{!t(X2@bREe zF?;I_oOM2onBpLjcOhz8ME4rYP*$G@=O}B;IWt;hJ`OJ{Tu|MTC4EsWRjfsBQwjWY zy>aN#dMr6J5_i3ip`bbyHOl^+BeCJkLVVr#Gwj~ETWnAhaw=1B&GVQJIIXxj5l@pGQQlIADxSlv z6Wx@_+KWU7tT{gla}M{`z4ju%E?2j*Rn=G`dR2m)x+v_pKL=Bf^u^Z8bC6OHB=$*c zhyc+VNt4$U3%kfuun_RIrZe;AILl;reQr;Z%)uzPi`lwb7G8Bb)}zS z`CReh>!VcrRDS-=-7GFTaDhYBUDbj72y`h=f<*dPB`c<5ewINH$`wTVI8{FTiBCJO zSh1p=r^?It_f7Bh%oiKYH{7!W)jc+xoy>b`6^9+jdsHf3Nd!|AI6;j9Bor8Vu=Cg{ z1a(v#0x$|(bt;Up-8uB6FV}61&mPch^9oV6aXIi3t4iave@*c}2 z@yaqdh=}?LTGZ2q5Bl7?_{w2@1)dvfx0Ztd*?l>%}R`tkBuX z1)Dc+fs?J1?tWQyjX23V6c^>;=;jSr(SHyQ4j&EcIrCBO=PhWW04){8$a~=j*TpOG zbo4|#8#)U2`VU8vH1|qA4^4S4_s>(!YNKn@@)!^PUsYfRsURU5EPkM1<}>g3EvW5*I)H8lF40qB%*x zGFMr|>7%R$*$*6WYtS%U_~7qw9yJja{y_rl#CYMp7of@)u@*G8z%#V~M_dE3%_$sf zZ9}o!B?_Kd;-tli6o~qUHaIDNA?_n!XHuM^8em^htJOE1VK5F!Q3j z?hW^Q+>()8A)*q%q;}K-1?=v77>F5XU9tX-4?NNf`R!}n`?)G5U7CQ=E55nnsC{8^ z`Y|j$;{`wpuo8Xa`E-6l$TzDND=j@R?ZOMJyXk|_v|QbTgXB{v&h)a!}$+JH||;>N5wW4}-Yu)wUd3 zCC)6i2(i1Yapq5BVD;Hl1n#gxLy|~I05o;CI4c*c*RO-o$N^Y!a2>W^-Uj=CJIJbv zM_yejit01q9qWqy*EiyX<94jQJ|FuYtVL2~01E2)x`rJ1XTQJ+=L6V#Zw+?cT7X^G z7QrLjP5_|vNsH)CT@D;x-Nj+s4cKe91S>C3$7T1U$SjXTWm6uC1gOR4zr=3ql{oCQ z0lV+4#^OCQ@pdk@ ziOpxHV)+phTyWTrtm+hrFO*OqX>yU@5Qm+&7GeG&6Kps+4dBoL`d9Lxk77In%VM2bPs)mZ ziHji0KT}RDkH6`odESixjrquz@vI}`3CsxY=$GijSP#}gwSx;0-1;TB3PN zI!y_WJgC4t8^t*0=au={G3->%Ovr~Ii+R~ujH428d6b9y2{@?Ws?!yJb|SYcxr|AG zr3L`6EQ88J(8NJT1tUM^RfB}-ST4a1+d<`I9Lr#Pn3icc5UJn_Z~jt*A3TL> zuK?uSxCOr*I}v*F1S;L1AW!<#Y1s-qU$Gv=cb!mb{}l1ZFTr=$L8RTjkEXy7xC>}s zI%xuWfBrF^h#@QX@kOfusaH2|!DrtY_#V56OabqWxmhR_a9|4xhQhdUn0u=32t^YnUnXIJBX zNE)nP#=s+^1cCYWxZ|6GlaCYOlvV}L(nj2jD1fzZ1iTV5kyz3Q&!}8ndK4vja`99^ zoLgE6?gS*lB{CfW0+9HguuIQFamFhaE*a%`B!K5`bTMwdN=86tITDKN@H8+6R?&cfygG!H3ZN*ig;!FpIM5_GN2DUG zs0wj4O$ZTwp%P*QrFo=O!Y(i!4lkndGBFpK0_p+^>JVJsAp9E;EA4R%O2Xa1G(3&Y zMovXN5~~~FSyl^w0lXJ&95H#+c-%j98osBk;k@Q3l1|#8@>v2>t-Rs0_ZD7WypQ_u zbmZFxzC)e(N@9w5Ty1*$SiQ5~6& z5|0FwhvlFpz8E2wo$%t64W6I7hsua7G^JOe$S)D4eo3eg%|`xHnOq!`ad7G$GM~!q zKC>E?!P%m7Nht77z}h8iFns((+?zYno)=L$q5 zze0LhJpAHC#xHH~*zY#NGyITNpN#ObAOsfsA-z5gA!$Ky@wp9$XP4m>?5sQBpIsG= zs3LDf6ni7TJ^{`F)_CZB6Oa7ukX9Naz%T|e1)hj6@wNUn-SJ_(PpNr+=Y+CNVGVCBXw11ZZmsz-UKFj8pcOzJ@C_oM_X>sJx7$?I$Rr zt>?p3T%b^3h-r9LD@pWiT#Zt|i*}sxtP_D3K@nGj=zHl8l#gT@+I#LO5!BF+Dqq7Z zd66fdbVR_A@V*2!aVE*u2gZklz@btM1fHOn1<=8FjQ~?2Cf7#o_VRfEQjZv zxMD^HV+Tr}C-SUhuw> zDFXo+XAP{UlA(TEIMbsXIoJujSbyGU;2@+zKYiwj?c4Xj{poX5Rmv=_Sq3`a7Stkx zwx$A6p<&pzY7OR^juA%?h*9$tQf^! zK6pH58SML+!f~(}T&K@PvGf&6iy;+9gUnEm?AeaNy*|b1IrCw=d>yKyV*!2!i0|N% znQTjSCDNT7aDB*d+#fv_5m(Ox#iCDj+y)S!++2<7P;m@vH{A9Yd5l2-;Y z4=0t%04^v+@R5_S8DIh@vuUUlpbN>5N=c)8bABO;1HAA=oVC5#EZDBtfX!2;V#A6R zNXW>;%hU=Sbxy!m`$Vj_3C8K?Q37D9`IQ{q3Q>GnGcNk%VBP(AtaVJo2D?za$mBu{efD(IwdRFdnP#$6}LR1aA5#Ayt5oj2ubVf{^?&92dST1&}PUjlyA{On7CM zp-6yrV@op%#i=Y-__MBZRU$qUv9kuJCikd zwCo6KgEK|I;;1DVLu+}HfJuMcn79@WvvwlQ##@v@1V|xONErf*^97haUv^q_ZYv(I zKZn_)r(u}L$}>0w*%kSC9At-`cNXLD(-l}}JrjbZ#Y`ruaHZRU1t3f6sB9Ow`65MpUiO+_7gz*bU;q2YR2u=5w>KCF(QZ%(x zpj!9@WO?DJ>vn9p!#CbLp`f7{^{th<^Ig?V#VBpchK=`GY`I^~{9`)1P1{Nv%0RnH zP{dUz+FIIVI)2(?+FD-8kA8`hWC9iiXp}9d&!L~>IWivmP+)_8fbrx*U&d7^u4r*p zihe@bauRvcXRr(|Y|xjgGSrp6N-YR*Taxz~R5`Ty^mzoK1aHd!vaB|lH0$cdMGLhu z$9#+@f3}rAnR)4#C@a-g6_|$LRRLY*S73<#hdxKGc##L|$@{FMYOj(7Ait3HkQkxpMU~E9K*r9nVhVAfO^E zKtw??KmR7E;XXIhshI;iMJW$w1MCpSb2W#oxfQg6@%NEMD9v)c%N6clQJV< zqO8=Cu2MXf!M5|sO}3TGtsML;pXpcz(-2s4mPHWCfyn$SFfC_5Ji9=Hqs}fcj(N$4 z^?Cl>1KYOm#v|8fl7~-AR-?9FAumY!#?uF^MUt!OXQP^WN6globx|grEinDI56IoT1An4>t9QxM}aPE&E!E48M zam0M0s6iZr^mknqirt>#(I|5q{kK2CX~Jxj`h*B?0dHjz%4GoOmcV<(dYt^_J z{)VJ`c2Yk&QgN2m0#a*=5P$DBPW<^R9Qo}hIA<~jo5zgC)|JbUE`5?LPTBHhuI?qP zb1t~!c2pkHxr5o%EdI7tx7GMCu^tO712N&0C$5Ja;)IpI%&db z2h6o}!TiG)F?9S4*jn46rKk}_&Jl1Nu>oiPYb@>?Z$`m7!>Lcr5p?*jZktjE`dLq@Z=!P`t_)m)ga2)YE8{j`q3KMF7$Jbr%N^xS zWeCak!nQl}F=79=SbJ?6BFeoadx5lp=Nl_g+K>S&|HGKFzdx28AB6{ACs0zCC|ck4 znV&+W;(3}4*4>;uB;7RnuC5mnl!M>FPYp+i!;T2bZAlz;7^n&U794YHsESsI%Jv3;hf2 zTvHS6U<<0N>QPo&F23M74jedymoEc!fJE70+DU>70xSA0`W*${Xrq~ic9r&={*cF4 zXp0%oINDpt$FL_P#X z+zDbCoM`i&;=%TiC;cwlLBGIy(U<7^6@o1;T5wT-0Ezh+&%k=JT;}CgB!L%YKtIB| zFrL2&rdS47@RV;Q9K@dQ21&3%^9qyx`C=?2pib2pru)!r;b`p6oo`Pk1 zb|!%WA2+3d8LyOr9l`-X#o)@BTJd5aF&%*t6`W}Z{&XD#`_gOcV z!+8EC@M3<}fdfVU5^QRz5%IM~&S7w@x;N*0{G5cR92XXaP+ zU^=dN@c{xV9|sHDuF7XT({lNnvLYY0i)AoB1LHYRSw8!O^;C5v4_+0xJAC+vw8s%e zrJ~?0Uv#!v96!&2MaIV9`1w=VeSAL_uUvpxV@;9b<*9pJ!{d2NVAXE~?hZGD_v&@1 z4-H0hQNB1asY`MyLU$j)gFz!jME2q!sOd8abof; zT${NB<&iwZF95f=P(WNUT1xVeasL5s^)Z3%@QDb&cvw`$#dX<8-CIX^nT?j9! z(XFU$atOmp8_^5T6y4TfiSVu$;8ZDTXRg|UKlU@l*2}iA@eLQ8(u5KLR=MJU_!%L- z;r`aM2&}#2hNA+)BJxUguaqFj<2N011Tfk~6l23Jslzo-cqSAeM}Pz$6ew+MMqz!E z?sXLh?!CZj%jY=vEKc_xurg^wMQe)=|72D-;I@AR!cOU7_ zPQ_h*4!eolanEEuEKSxS!O{y&nF5N+q!qxyOXF2=T6Z3+CoaG!laX-oag=5x<8jO#Y`0z{`Z6C|t}GM) zB9pwPbX3#}xDXJQULGO+xE&j>EWpmIOL5KV5OT^QP~DOzRV+fTfEwG7>)3v8DK=Qo z!V#yn2+naseqA!Enu`Qy%ETqr6T7ah#AYiCY`wk^_CZ$!Pzm^I&PSyHBm3tz`1{~L zVc@iHaqRY91Sk0j04x@~Tr60*Omrs)UP(?kc7HXtU6}#?xXax=u%MvJ4j)J>E*8KwOr@rg%1-B?&qiiZv^ z0$9$8-R4$e8_=MQWFTPSt^<#-5KNE<<7tO!Yw3s7?gIgZ;?Jw{f%Hqf2JlX-$F+H(cWSU+BwhW4H-ax8-j6w2SQeDdMson_E(@puXs zDO4MopJ}<mvC~NUJP7EB`Z+tGvZ^vz z4_?(iH+isAnTLV-8PCoo@ZzC#^++wtVI7nLP%)@jT#@4Jgn6lSj8_UwK*NEop7128 zc5u*eAQF*tcA)aBdh%~>iE;);UXPgP%*!-2sqQ!XzP z)bgGh0Q}8Eqa27-Z~|7!LDiAG6bNlQC-xBKm1U@`t3qwFD7kcTqd4Q7j9lzLa1^Jl zF2gG_0Ef@+#q7~T5peYq0uCR8`_HN$a(r4MbEtv zc={Y3OBo5)w~+2&504`U;dkK-lAWc#&z~bfjKH>qb1>k`PhfZSBoZGz6Tnr5oZweT zc5y_CyDJJq{82AJH_7TD(ruogB2;FBiLpq1=7_|n&dBn6iMr@S367JqZlD!Q= z?QdeE#Y`+%vI4GA$+#90hpR85#0eGRS$rO>Uqs7HJ^`K?Wq4Us3&*4aSc;={j?6|t zN(t;<#N&Q&9-I>M;8W5FxAYQN`Nre+%T#z})WRjE2-f}ya1mZUd6n?Yt%OZ@2CQBr z;BjIx+!6}m7%4_FOq`Ygq|m%7_@$O$?Bb31Y}j}_^p8YzL5cWy0c|-2@JK6xS4uH5 ztC|pzQH(`}_$@3%zq zomcSR{Qwc?T#@4%hJbU9@IUboA=kZ7?4OQY0do;Y?cu)e0ty^LkYgK&fc?~n1ayIARIcx*X~&AR&kV# z6jLg{+rWa`<7YT>_&7X0d8~uLt8F!j>1dPrDhICOaQjRFF9zCE+EOkUsNDzt%`#|j z`J48dXR-*qXp0G;lux2Pr#)sJXy@ruc%^M7Z~79}f$7PEWpFEy{($$%gZX*of&hUb z0V0pUs5&USPd~-o6K(@?WlWX9{3;E>8+|9s;KGHfrz(SOXZ`r_8D+wHGoPvp+e*+! zKtvzOGI*bLQGDpD2p+kcLs{^iiszL)xiG_c`e?S5ag-&mtdqhC#2fV2Q>IM8$`vc6 z9%>P#0~5S&>I}Z##7u9$lJtLr`=$&;k&NiLvXN`nti+dJej&m*f{Pa~ASE?f*C7-V z8&9EeiIz)EQd1-4i54l zpkYVyzCNJgOYR6Zh^EO?k*X_Kqqu6vEKcUG>M3|yo!sa zW8gAl4sMu@$FptQfwUAf*GSoUg(z_Mg5!c^up2uCkEYCp-K>SkaB_u=K%l%B6|s?U z-@6w!=F{+8;_sMF#ERj=@y+KS8^h&c0LHjF8e6#7jQCY z+6sI=a0C)_i*+kv5rwrlE&yc1y&$P$95Sn0b&EILVdIKdd{r|n1G2E{rVsW%c!5{x z1t^pu%fK`|2j&o0iVe2G*m&O`Hw7@1HivSLd-elt~?e#-IUWsmz zipS+jrJgq(oM6`91lvX~z>R5p5P0MfYNLwLQYI6#^eO?}!MH#3AY7&%hP~M~JhnK3 zs-P_0wj4jlQxlQ}-;Gz`Fm@|^W*vpg>;nRLp0}+u6-#_{AtJ9lf#a-$csA`29476= z%LBLDUV>UGMp|T$>k%P*58|Q8dbmy5job5f!noH!SXeAVQ;m$P%yLAWu)|HWwXmJM z4Ut#f+RlD)-o=KN0~t>v;5=&|9t>WI7aK04B0OLCOI(>)OA0Hq9?w>u#m!+Wam{QU z3SA>b2y$Q4hOfnF$*e_&r3Y@0T8G;v>kufQu{pa&^s*T(o>oH)Y5w=}i zh9eGZVH0oyxi!(kq7>E5C3qRA2P}W+C+{Sdo z6a?V3(^l-bJ|72dR$}p<$@py0U$OnjM(NWc`YsGQtY;`?sXHquk0y(hT4hYL|T8Ph=Dep_MWzy_LjC;*>mQl zk0GF;&!WAiUt&JmViL>Y4hL6xSO!4{c`94acrF;wFVU9MuaLL0=lsnw=u=ofrqTCH zOvB$?IpW&{SO=aXBTxDY=2vau4i8t%$b;Lmyr=vL>p_1=zr=cS@q}?I4Sf{r%}G9e z3Vk0}0~xR6K;nV`cavBT`Y^?Vb!2|#A#ci)WhtMj`h>jb&sb0TPlCJh@-mDaI~t2D z7D)d|n_Adz>0<$6&GNT2l9HC|YaG*lmHUh$_4L{UdJ}wo-_Q=a7^pCvuWaP1)ywe7 zryt_V)eA^YPC!Fr+u_FMmNw-flI7MG5jnTd)Y2m3cxB)cA_dOb0g*8~gB_zfjw?`H z@uGsMgYT+C_?v)*D?nT-<*FO=G9ML(fy$xZsr;LHNlKZCps83?4wgqA49w4X4m>{k zOK_*2f>CYYmFWl|)fq1;FnO!l3+qGhM*dvcW1AIk#fQqrRXx^|gGHSuU_9%>-^|CE z1wks)t9UgK3A`u^^59@#8H{6oHAo0T$%8AAlpQ~sOyI@G!OO*X-kj5s6}0w48&^DnY4VQoj8ZP|MLe}{q`^L-+oX4n}9=+Pfc?j zni?umrg+l9DlP<#v2IVKp{fc@9T$#JN&@g&22k|8Zx@JG%~>?L#r`tTRq|$04Cc^u1M# zWlJ@9J}RNH1$&+dAFCiNx*LWkIZeordxiCN;`bYo-q4DB@#UCzD-u(z!f+w96iH&^ z>Y7EDBwc+=EBvyXu*D$}vo8l?yF)xiFWQD)1BM|rGY5j>@I1W^i?0V@;`spVdlZj+ z;aMg1E0^KT7o>)jHsZkJWK25o1e>i1zKV74?jr8st0r>gdPT~eb|V;5FMHx7ck-GaKto||+*ZwjCh1UXfph~(6Re}^-3L8*j7Y@h%t6=%Z$?#ut z4vmq;l2^ty!Hrb5A*28Si!Z?XuQT8>dMgTC1o#kr@=PBal2wbM^G|U7f0c_&6<*|BN(X6Pr_v3Db?8wJ2s zN8_sZ9!x(u2#c)7;Zgh@p6U{pQGr&eLw##8Jfk0C&BaNWd9W|exok&)fWAiLi_akB zuSH>PI=0_fin)h}W8;PCh{$~=clj~yDgk(vB9>IxzPf;=C&ps&u`#;ODitqUdbp(d-DjjVpfegV2ffem4Z7A(D?I?e9 zi;k0d`UTo*m6vIhy{D}wP+(eR?-`gz*^O|8GU%`4Tuj8OKLK1w1v@=@f%Vn*t~Jp}?v9Dp0Wc3QpzXJ=HM;YE)_}9#?tT z(W*0e!$9E0LzYx74kG5^ zeWoFiCuc}ha1Llye>Fguo--h|&rM*a@-vQC0x5zvf;-NpSZ@_i;%_dua_O1diIfZP zF{pS2yf_dkS1K&;^U69>p}FG4K}1KE3J{7-PsAz9^Eh(q1d2r#)P?%$ zT9k?Lzp`^TW`6W3j*poLkG%&`B{Mll9zNYzog9b6)0g0DG93>;9Ej%vj53`bqoJ%& zK#LgOl04);dzX~PcLGaqX4L1D-;l9y8_%C0N zs(=sycA`@f8dB1ca`g^eM@@s{#{=MQY>oqF6VUIA&){l*UmRTt5FG={0YhQ+?|;Vm zKYogIS7)@!B%z+~ORAH8%gjT>z9YEy?|*>h2cN)m;~q3+$;_OG(#6ELRF@#n<^djj zI~*7P--#i@wQN?T~;45`XMPDqz3A9 zknfiYuchbUI&2f}d^`ssJMN)1gLXhfUfYEF^h$)Dbb{-U^>FR860Vc?qSQA{^sQBQ z#;Y}_4jHzAcs}(Y9`{)VJChBFy8avuIf9({B!j4UEWVJ2k!;PQ5l-0 zJ2+oo-K+y?HDUR<-ggOZ{9y{Nd^{8NPg8Yy*$$bfqA9Hsky~%$#BWC9+Fz$5bjKaE zWJm$JFT{%@&&$QqH7j5=x)0{>o{e4C*1$8y9z_kQGF>W1abrHB^Fna>`4OzUG7W1l zn&ZxkW5}*clxmhre-|K4fR$^=bsV_8OhC;noU+}4@SK-z=dJ{R71b9YFwGOk9<0Tt zYtyjd+FU$}d4QbSOo=a(a;lM76ppJN`?2NbENs3u2Mcyj!nej>V%Nd#sB9=kMtLO8 zKi-1bNBU#gmCD>}5H^as2$sPnXR^xTS5wpiJHt`yOp6S#50&lMY{QSr2;JoZ7KL%*Ov zlPZVyl=hwzZSqinhWV5~U>&$9!6PmNN6J?yzr`y-3jF~AoLa3S50!>~iC~95g-2aj zHwG2Yc96H4Xe*z=vRFr^V>{?y2}0?&$e($cjy{NfiD$g%GYGI0s8i|Kc5XGY4%~KS zoe1jKM#l3>zr!;4)W3Qy27M39XPa41;sb(E)|2;G4$Egf`J1bT+%e*!1N)TsxX4pg zR*DH@Mq|y2rGlr#{?>6BS;mZn<^~yfVr#k&1YlwVdK!8_UBDO7-S-IXt6oycZUVvA z>NU&Jr|&mNNQ{x03(+voP|0kxq)4aO>=ZhB1!@@BDHI-8aj1OiV7me>>Plsyz=_BS zvUrbyJlH9`$0be<0)h>8D3ylsyt0!CHdqF?8r2gjBq|So69^GB@ySIF7%GbjG6 zaL0D=6B8_h`BWK9$Jqd9Cj>cs`Pql|>3B1&b7iGovF_0Ip z1YTVI<19-V1I95>i8)9Jyg19EEGR>k!8rcrl`{(N*K-!bK|;Q|cGk;mK|*>`B2J$< zjk6ceAtfsVb&UkmGU#ioQJ#|vD*;?f28_TJixse5xDvtVFQY0l9E}NaNWOU+-pe*4 ze#>cO?Y@l1=8NFEYCTGW{bdH9ib5}U1a8@fm$TO)`+@^r%vq1yGv*`9`4NzrjoPRP z_?|fd+m%ZZbK)q%_U(cF)TszOco@~;5ok$DN5%sexGmp;SDOwX`@|L4Pnd>vg9c;x z7oWq^`ZlU#6VMuy0O#dv@o4O9IL}y!RFNy6ibO`9)T0Cq(#LUEui?>{X>gfh0l!n1 z#POvA`B`Yq7pI+_in2$~;JI)EoF>f2v!xqR8WN1wLNVfbX=qAM(XEtuY}|?GW6j|+ zYYq~{0JfHvqd6rDjTr?<35&zRC7Up6-g=yJ4Z=zHDBOw6MudQy)N%ppQJJuM7K59? znYbC0f#c3Eam^J~&5R>LtY z9hW@gaX+pUmg49SJPybGh!n&KP)-#9=#`o$Jfd(jFa!3{1-RlKjXq-+px4mx2#iia zzTg`_0S!CsqOjQ^5thCg$P<8CRV%tw(AmG9}rV`tqqzF(9!+og}!C8J)9SQ{~^26Z4g;hA{5`;}IiMZgGhPaY4WH;9% zuCWP8^^Le8;A@KU7+hSk5%(7F!qfHV+TK8)RF4Ah6!@L7hug*rNV9x_sMVIZJ#r0_ zY<$t2R*u@_B1GNyfzzTRNZ#*&j1$lBc;*54AGnJ`pA@tt2%vZz4ZrQz1zcGp>(q0& zE2_y#){twU9Iv4F2qgzmWs z*Xg_9zThyDZ+Qsd5(A$uhMouYlgp9j;1Bnu$KX0?I|2?`qcS>I(nx%cAglthcToj+ zyyz&N&pH6d+51p0U|F{`$Zt0mh{F~>iC3QD{)EkNo4Fqe^1Frnv&tnDqAVo?t5>eT zu!$pa(E13DJ~$|SA`UUn6FDtO2rGPv2maS#>2@6MQ8u{aa}xV+tb|8`Ez;`4kX#vp zN1?ZH*W(Nv{4e2Qz-64b--Ekemk?JLj*NyRyiE7PJ#Q;qe{>Aq(f1{O2QE7wf_MC5 z|b1xxFi%erJ%SWP4q4sdG%>H>$n$(Z*9U= z`x8jY4M%O0Oiro<+}EZerzQrjVKz8=e;bZScpmGZd(T&4Lpmyje^^v7Oif2&{`~pv zt1z^Gv~{$}w9^C|Jh!Cmxy}xXO{ZTXkRfQ|iV}Sc^DBGHbo3*Pr_bPT=3yMK47BeA zEA&g;GUPqwvv{Sw=b{9C3Rk?;4u&e9b)^mGB$|Lme>aFk{scV)emsjtztq*IFtB~B z2kkw};63tD?I7@CJLrFTY=`$04_?(%jjSjA66;N0!l3wYF@gY*vZ4=X8&&yi2Z0s+ z9(mB;lPGVdQ@oV_qz|P3WM1-C^5E(pWk~?XI+L%GX?<;tfG<-lwwNn;O8U4_CdUeV z)z?U2f>pW=1YfW5PESG)sLO$S0;qpZXq5(7NTd7q`&NJpUo}D0&o}&vp?UmBCvZA^ zb{d7rK%rA`R2arnfeCrX{%JKx7%LCuPMrmc>B1aK=G^NYu{(!TXBHgCJF37HlK$Gq5ZUJPsa~ z!I=dIgi>BzedL-b3Vz|_X`GRepU2OM2!O1W!B)>VQAwZX=VHgIHLx(9gfQF32)%S0 z_OqA3W5IH~T)hdNOV%O7+8zxtnLtt=@*SVz$;!2OzHAx7cWj5#ocV}7dj<7@u>xLX zhUF86_#@}wU_K2AyY|6n>2f^ZxE0yY+yx|wJ|smW#_A$m7cN4;^7V+>d;mU+HX!QM z6#-*00@$*Ua5<*$NJ8Wf81_$1UsMkD_GIlS1m1qqgxs0$23RY)vK0wPf!7>?%bOeEgF z1@G-!;I(}_8e$Vs5fzK-;8&>f_eMivENX>E@SdZ1vEvB5PhP_Mne(xH?Ir}}mf~Jy z1`fD|;jCXGE_p=Z+LKWD#O5Kpu8Bv1@FczfXFU>d)H4ldUS(sibF|zmLqJ-E?)45~ zMNP00aCGc(46Fija9+|{dBr0jr$!tr5LeX*r-WP__YB7ozjz$=Pr@lF%ONHk@f8ia zhv?$6%V2J?5uXe)$3^=W@J%j8mH@2aoLU4HG$OjB5qUKY@QKdAU2i(KG;y{yNU4xG z0SJi#`0{ERC4D*W1}5RIUjl-pA0sP)V96UHAS=159vNc$9tNl4PCz;y3s_94Z$U^w z6+%jy5m(uaGy!+MdBwOIo&@XAWb8a^jqzir!{zE-pN&`GGxrRl*4x5u@p-&D zZim7bacJS!zN3nfc*X^`=Gzdq-Vy=pF2iN{ab!3I0*MtmFqLcL5AT&{;j!=pBDURv z$BNU4IN^XAz7;=JfTeG$=*b4-jIi@;5nkSzePE;bkCp{b%*$*7UOs28A` zc*O-F+bt1%#!mFI0HyxPs0S82*2WhwbSNf+=Q`ke(4JT%onhFaSq3yY{zB41333|FYE%YAS~5W zMyrg!+C)4KyNyE+R^XcNegV-Za9Kdr%OrPXSH%g?NkVAGGgv)6gfnhCaoOhx&ObdY z{cekl;y6^-6L1jyx zfIUatdVU5E{B9z#GzzIj5l9x$m7E`sl6sLtZUAhaorRs(IfQ3CM^;4w67nLEkROfQ z+7u*}1;HiQTEN^j+_b%d5hI6V(V|7Vl@{7V+G5&gzW9_YF!VpPfwX^&uo1@)yb$tBE!N34sFhk(9lst)`tPDB|J-{S56n`H+~NfJQwj zPd~^ss*a3jJ!$XhcbHcBHdPn;9s(~u(a%*YPUab>0(o$kh`@_JmTjVpNcuboytvas zS-f10wDRf0o?Na!@H>q_+saO-@pQi_zZ`- zx*9BBz7zun^pnnv7GZD?x==ctTXe^Cz)LN4QdsOfUX?%zY>1ZG2~;S?Q@8{m8~|K~ z9p$=nG!S(m!RUN2IRB-i%eb$qCRT*jqMCBwXQiDXr^EVZo?NBoyH4s@o zul$<|&cUqq(n+cg{F?xg?O<7IX2H5Lp6#L$Id$p;E}lD&gxCa8+BR@n*HDe-)*9p& zXW;g|o0v3d62_U1N5abp)J3KtaNQnU`_q@W`{B0;*>Vt#sX3^w;AfGt}EtVTLjRL(RgsOu%1jMGcx>Md7)rIqX0B0@wfg33AR@i32P}U3C>2>ja1= zMs5j^~;H*7!n3V{pOp*AQ2^`%9quPH-qRSAym*@6kZzQj?JNjN^t9K}9CXswX} zECa8pu?j6!MM$x{hAaR1DQ^7P2rmyF1xop*u^P!8xSD~Rkl z*_eGV2;;B$VZVPif=e5~4{h_q>6PVGSiE)*e*f(_tTy~uaX)(RhP6W$Na!XhhgEW7v^k0bL?&?r144Zp=$E`U9@ z3fOepAJfk~6%ZMQ3ys={c4GcG%4ci;`Xil$0 z$=x74H{ON&A6UR?=vL%Dib9KkK%Qgci&T+XiIAB`aqoX7!tT%0k+k&|TJuDotHkJv z9Gg?Bka@uak9se~-M>$V&-`O3_e#`(w-#CE~9=(j9tltP>j~We9RXs&fFWhc3W{zl?_ewhL%T zE0j3NEb?Hei_3z?^c_-%Nw_wAF{-!?Dd4k?Tf0(DYiT1g&N$)17n5V^!lD>*2yDL`Ib94>ln#@rLbu;J=_-1EI5pe$Rr^;d^t6gI}gHOdO>uTRH} z#X%nIf0wr%L8fwK>iNKQ!f^h8aN~}IJ8XL}yhj+qVR5ldIq>N8z*Td1x5g+yc z0K=w#h20lcz$5S>8f9EGH`k+~wF>-XkaxTj)?b{3IR{4Jw$BY@R2QJUxe|4))u?PL zM^RlCPTbyxnOlcr!-d6&FAqaQllYA$ZZpcnuQ3nK;Wx4L$QZ0YH4%?r-9&X0KP4n% zyj8$RYbgTLMBi>L$FgISuwnmF3^g9yY2}NynEr;qi}sNAjYJ#DKzm60NuNWz-*%>` z&4w~RZKgUp!pS;UV`y6y;NWip7Eb1A@3|GH>^+HmIO*kr0R0Yu7i}@~lQ-j85Bf&( zC-745*iyEhfj)yrTWIgOVx;oZUof6&xlllR&va}*;}s94qfccS^i9eyF`jK;J?M|Q zn4kb6+r@Z&d8jQ>%8F(1K4r+fEQ3Ck+okkfe6Wl>lq^^ewq3niL#=oz->=G`j9Ewe zKFXfHiuF)!<=<9TS21|d0IXlPMrTinOPYAzt3}dqKfeoR=^R)ers-*TH~oXbml%_7 zLSthCHgDd9FTVI(9JtJu#38x3IE!)}5zzBQCvXasfkLAaaArZ}6z{1 zKx92RIP}Y4+h|a@9jRVu%lnE4>rF$$da^7UAl9AtDL0nKfpO~0X&gCy9C67>s29M& z?yV^0_p=&NQkshg&NkS*Z!64aPs7B?QxF#zj;gQ(crV?AOTYUB)_?vQ!K-(mJ|P(u zHRY%h(9_ybi};gg;PC0Uxc|Ek;W%gns>HC+pqB6@to5~Mdj1lR2ASg2|Mwf*`>HRJ z_n${=h8R_Gay+zMo0X2>o%?Y2_g{#!{S3hi)}SFY9F5iG0(|OGRa=46$M#`tug|et z_#EhOhN2g*bZ2B5TWWP5;cclYMB?SEIRF3t6_&sI5-;}b6Xz+$LL5V5vw*Ye3KTtZ zgQKw-j{f%_;5c;#iUR_4^>3Csv^I*zFUWz%%H=rm$G>6kAO4OEzNx>iS{y)y@DO-X zR)j(uTb%mS=Q#1fN4Pz10``s@jqNKJBUyAfvAh|Vy;HIDx-aHg`rz`*G?}@Jp{o-I z#HSZUPza#PV7kb&0@~<8Ih^^95d|mFU11F%LhqT`ZvDdQcW- zUh&1k3s2w{k&7boXcc2ATq;DL!li4MTlr$*X%Fmljzwav=)L4`l(;f!OLA2sE_fzj z#tBEPzv_)O`)x4XbUtjX90UN#xVRMvw}IPW`}+m3>9q_6b^@l0+iXN#t&H=mY6Q~54Dt*u(fTy`c zK&^nUhr`z5uEbydt2uJ7`JlCsGvzjr84?kVDI>>Ywt%mT!!3|;>zU{Y&&V{0UPu|G z^@w}miE~ENaO!s>;Jx8AYLf(nOZ{~3X^~5Ptbnhvn{n$uO<^^3A*#bN1)PbK*MV-a zH%0YGK6D?4CI6X^CxUPGC-`cp6+1@pzSPCq-nTvN{J<4JF8}PsDlmEtqrE7>iF#!%cTfl(m+j zq>=C8%0p3866}L6V#UQtm~+w;dmgMqaIQZp8u)=`(VhBoq!owa4l$;L9UU>Um)zX6_q+ z>z?NYe92@*fLD#AC~p#YR+pm#UvqYt2>4ov)LI^4;qjGvDXSK_jcKq8zl^yDhhh1# z(Rk>8RdB4>G6DPaM76Dz0>0d_?b-s&-e-c9yXIqri7_lJEOd65lU4!|0xwS16=2b~ zwX}n@*Yqu%tm`J95@;)FGx-n}C+hSW1O?<17-pW@q z4gC>!rMO6<7GD?`$Fw}2LvY811@cqvXIZQd<;@2OHf&gr&p-bRYu2omxHjKMT+%8w ziF~?Zmd@cP4ZesDyC({QZ=&zjtCtR$QjlCORV!W;lD^Q`X`B@(Bun8?*i=HsQ)xM~ zpz?4qs7_<&FrJD+G|kxs!H+`fEQdK>tBo&+>O2sq3QgF6`O3vSmV_j8UC>z#~%BNQ5SU<&|X$ZWid_2cR z-t?I6FS)`*L$(QE<86URFK1=y{>O!_1dsj4W4#hHzMSNT*)IicWuiVWF3Oo+}Vvs z1~|1a{ybykO`AmaUdqkvkca-vk>bJ6pjaQko?dp6+}T5oHe|G_-UxH_r{{@Qexa=IVW6$Nh|uGw^T5al z{m$e7gb!WD`PU*YpQ-9^&vY=1Wr%3I5dx=qNZH8&G}=68Euu|lGAK|eZR3Y2I&n>q z5p74AY!D5y5+TuYy-?y7gZSm82n53aLFp5a^p<%bEyyZx+b&XK z{egl4L1U;EDy*j7kCgV*v6$aiFoW*dshqO0yYO;k?_lv4V15@gXp`tDKsRns@9@~c z-z{xRE;TybSjJAsw@IptGz3L)n0{a=ti2nL=O{mpL98n6>u!<#>c&OTf*=V^R z_J32W23uoM#$iw3oPj@1x?9!H@Djg5PW;WXvQ=fqP1cXt>*bLlX^|d0T8|dqk911= zX`Xt@(AHi5<(n4;*$a6eY$mTOifE#eYWD3*2JPHLn8sRa3eYv-VfP!ZuVZX0FS!f1`%31_+05$SOsHP(F-=I~JA;nRE(3|Y$@I+*%69?$E_qX8 z^P%%(*Z_uPi8r}UwSQ7313r%>d5yo35N6bFx-c&rphTOS#$9G?FxqDExN91B5BlE6 zx90KY#WAZnjrj|GjPUr@5i9Bn25cO}OJGIavk` zGy2XP&%$frRnxEczE>m9gIOa_#D`;V2ZgovxM{$+t{10~Lvx2!d_`kN?1}R{1R(JI zY`Jrc;$_e51utl#Rwq3yX@TEuRY#q_q-Yb?ZO~E1J2ZEIe*%q6M33I}J5fgb_^{6+ zWtV2b1y8NLhQ6{%oX z4aD*QnRjiJsc606;S~HjZ8qRp=;cl$=XF!!0k~xO)xLm>6j$yq3IJT5LQx?g^I@-( z;8ux>0`rAMI=6=^SO=WzK0A&jIF#J)>)=kb)1x1cgh(+-J)R6dtP*MzX^9JuYGQDX zsl;W^NbEsG5=<5(u-G%#*wl-QEw$I?8^0*lw-(gFy>ayqd#qYUl8=*AHO51`-bzH= z4hr{(%k1@ARg~H4iXa*@$W9M|f&4n9lsVwA==Z~M6*ZfY8_Z>bs5F6vh-qLzz6sw> z8K}<@K&-G~>-U}2+{hBdk02AXRltNM!HPK{ZgutF3V5kr57`0R^4OfA$QU-tsH79b z4)T-;iifWcZ@T6+k=zQS^?UVcR%27I9~X=FK919B)6o_3(j$M;Ck`0Bh#NIPDNMEO z2{h3LGZAq&s%K_LcG)EDHkoqf{WXc#wV5iWWFu1{v@2Irk?>F@`qeLWYk%x4@{>m_ zyS0#s2LqK*Vb3#d7LWs@txdIi=k=m$@B<&u0n^Sde96#ld@j+Nk(zY}cZo$WvEp8L zKQ@h=tqrbEkPf*4N)?OgY&ZW~qSADc*&`RWZh)5CBqv5oC}T8JC2rYTd|Q#CA!f4M zyM{ouRIJ;YFmBlf)ozAnEDNM0qt&Bp()b`_nYtnR=#W(p3pi9BEItt#%;cx6DMFOo z>#Y-w8-#5oSb@dg0X6vmrq)8HLBFUN_`(Gs%xM1#+_J#J=UMOlTA*#JBz(otw@|(}TemcXvyLVw2n%lH2Bm#DZ1T>JMixJSYX!Q z!-?RN%FV>Um&Y?E3&dm!wOHyvMI;~y1)%5k5BSbf@*p6%{KY-a)1VU4ViOtHI3Pfo z)+yU8n_Ob6ff@>@2#P^drZHp)N`Kn_2Qz zz|!rTfh+S4PpuDWe;>TTjmVS&glZSWgO3kg+s?*7VB1L}`ZJ7UuGdBaJa8F9mxS^5 z)FIuMmQNc>qDlKXNY8r{pJ0FLgg$8TrMJKgWa{_Z_ib@R>Vt zz~GSM95Z$Zt9^Mfkf=b7`<5uY2Q7&;o~Ts88(I zl&xau`Wa)RHOey1U&2CKEN55G1wLHa*#yaDWLh#q`aBP`2Px|K6nX==-nsI2&ziV9 zrg24MyrleUnl&WM%)H>B!c0t?vly+XawuTE`Lp3*Y}|&jfTTc}i*TQ%`8)bNKa0P|KYY;F!AKMHInIO% zFU1Au2)<{h1%T9`*q6csGSn#1mvXCuAMQ7H=Uk#H(a*8)pPPZEBD$)bBNC(qRjev%<={N`etYv+*k}kv z=v%APq_3^9E~J-EPu3^tPF(-aam45QvG}=A9z!~5X}a!jO4HpZ!i;o9iQRIZF06RB zjOcKgZv9Mf*~~kGDQ|SS08$8pn0-}>sWfXVm$-0eE)AOMVMV^?|PF!mvIxBecbZvgu;t=$TJfebv)q17i*QH;&U{3#D|$G28Ym({e`E zNOv$I?dT*C!r*j@BsYFx|1vsnMnt(wwUo3Q+PI|z@K+PUSMqmKZ@)*mC2F9=AHA7B zC*N`*CVnu;;&Uo;5%k8t z@$Vkrr@;>X8&{JjIaZwuZt+)xNTy{uS3)5y-QYJH0fOwJjcxQARIc?5H|P}HzU8=A z=G~j%K!{fHN6CfNY}*>lef5znYt&TiRLZ=$=KZIVRGZ({yFL~-G+A{CG&5QpbR zgf(L7@P={J9clVnHsERl;@dPhHMk#aM|5?-h0w#zO^ROBHGNwZ+4yJArl}@`C{a6` z`?nGkLLMXC?iBrcYho94O9JzaMEbW0)wfqw{wxzd+@<0LQMAt{s}04j@G)7M?Yl2& z2M!gsUjij-l*z`E-Dc3x#qty0@|ERIDm?)2yAaiX^eWy|EiAslntwGJ$`Dun;gtV7 zTKFEJ!`tcvZ9{}UAbn0=B=duT{qv||3fCzH~>wKDG6 z1FVE4rj$^K6-7HarSG_NC1_uRbK`~cr=)hC&bcVdlkbL7cy0n^t@JwFQT-BL;NqUA zh9%E=5mdd>gRpE2Q<5T&+$}Td_p0B5^bCo@t-u)-x(gAc^Cr)A_us67qxR8ZavP)< zK#R}}d^!Y)wV0E4U9MB6`R@JNt_B=Q!fCf&Ge$gPvdBko>weC!y{^R&t4m0m!X2^p z*tZ;eB6#^^5xn?irn6ULC;STto!(cHHSx3WL~gxeWu|UZI7+|KT6Xz+lPo-tdm1V< zeQ^4jKgE`eNRxa=;1PXYLKKf`NRe zQnnJuP#GC6px{#bdwS?p{&xT{;d_>^tu&#W@Hj3L_%PD}3L8XgAqTw}2LP2TOCb3*+|zdK3~@G#R`b%RU{A3yDk%WOHQjuX~3&pNv3< zQeMjFBpo*aryQUHVevKFLJHrR@9!1K46~@q_mC)bTfx2yfXGl}RFFjGr3LAz!7KkB zG+SQz5N0VQ`kgtrJdw?@oNF}mnUFyX%B=QtR<7!kBL8-O7zQ;LjVyhb;nh z_po9Y7B!}{+ioTO0%E{oToVRC(c6dz4{LuibfH2#^EKy`>xp{ERdl|&UQZA;=;@Lj zX@|WD3Mp+prC&0L149DCO)KV6*OY)ky%tBqF4}VS7Kh=wDsev}cUbKd!>0mGH&^Wo z*svx%x=I5^U~>BH0;QC8XCI>Q4iks74$4Y-A`2EB&v~Owqijd!$DvvqpIH$EffA%DmqT5x1a{9NAV1+(=ku>Kr$x$0KgFkyK!k%h zs_Ngf3(Ua>EU&TJ?3}zb#ZILHimC=AmRinWckl=K#@j~}!b+h0nntA16J~yDMTN}n zhriECr+D?}eyb0kJqwd`Ka8Op9mC;r9DPlBzm0x)K+jv2)O5`*iswEET(f( z!RQrQH^&y^*N@FOCL0heggE6g<|57>oQ?6v#7k-lh5a7GA$S=czU3QTft8#2X@`-l z%SgejF+4-oF22QubMIKR`)gK)oSmW(^S5Ru&#qavHX`!5I;40|8;O1hOuH_fg>Ewu z>|a&{7P~&Q5d@aDv!u;LL;@jiem`_hIlfk%p;`f2{=Rob7+J&kf$z)82VY}$?NUF> z8J9yB%lnBgykkZdkUv*UiJ^O{6}6+Kcoq>WZL6j2q?v1hO#MIN>Np0tAf7E`%7}*` zc%oGi0mqb|A$xEvo!GIn$6@ueoOqbO7t8mSS{CZGhet%$-vEw01oy!{x zq76MTvBil(c#&ZPbYj9|!6zMO=WS0WP;_Dq5_5=c>ZYOqo zW`|_m3^=9h0YK1K&_g668PZCX?a!F%_@1M0?R@xs%u{g8>8v*%%KUqQd??`WkA7&9EY z@NXTzC1NaFoi{7bNnoSXv6?K}VHA7&A$t?|0*`+0j78nbti!mHa9qfLN6AQfMYI(d z)q|&U80HqApg_N)vE4@^+pi#qw-L(tDW7+#&g|VK_i3*acWFvk4d0imiJ}8H?+!O8 zIr!V?s92LTS5s^}wn|4^?4#TB&L(@6k8MQrYkEY7+Gi|2x~DsZCLWA2nBC2!pUN)D zhO3wR#e&qqLEi+jqCLwsVDE;Hyh46*V--tIokG3QdjvswVP_s^bn?XXH}sir8f;eDRLcYK#v(R+ zK}1wGlY@_;ANA%EE+`*I9s)?FHTVPSZ(I=g337X*|6bK{K5r}r#oB1WE;rX!5{SJO zD#}sYPq_k*+5h@)(LWK6Gl*vZsnn`pQ~FD znVhVm1*)ctP{U^`Pr5$-dncYkmbe#j*UV}6F@yXyw<;eSKOhx{O2Fws++uv+k9lm` zR)$Ym)sE}?hZRAUbx2{^^};_d(Mxqq@4GNTBIghTo~s_?eyI$}l~)~yV*_%3q}-UE z19=4ZRYNpeC9YvVx_)afeK8Ka5mo&^J1#y^lo4xx6Oq46KP2#R6cJdN1|p6rSN1VN zq?0V_Pk+I~sp1}s1~4^pHU7@Q6N#T%T*urAxx!7x8awd&UM=XUVYe2Q(}=B-d$)rQoZhJAx@e9sZSHw>5q-1Dt`CIAd9uU8wZtp5=Q_XRO0@o@rvU+^^R0zKwJT$;kP^bW7^ z2LE<6;5Ysbk0tCCpjslq1S}N^JM$Ev} zzgcsN8A)rQc6>tIAZR9;I-e?HVKMHQyoc>8bmai(Lm&&}hR1%9jeCKFcg@6ox&xi`U9$q>7SR z8&1Y8bNt=0vT(C((_<8zj0lZo#fPp8lfFQuZ3r35@An6Ix>|}HibdP z%uRs1Bg2s~S<+h{zq&SSuT-y}L)vH~CHxb6t?AIJ8^G5UA#rP+`n`$br;%g&%F{1R z%Zy>O{l_nWW^at893DB-qO_MM zU_UIRm5IWEWcEZ1pKhw{^*UXfld04z^pyaHPXo!Hfx-(xa6W_#>et_F{`0TCdhEmJ z>}+6_J^9Sm`L?dz;yB5rXee$V@qUKO!4>*_BMJ~X{?#|XivjzNqOF+ZMEvx41@3TL zUh(S#a{w*uzP$3tJ4>7}r%2k6$G7pi1~!)POFD**O=)pnNQT@beF$Q1*txuw5Z2{MmJ)S9dnh;r6}X!;l0+QB~WR7TF6U z^|;R`>25C&>mQwqvyHn!T6k2K4(V7@c$RwsmInrBUWpQQ(-Ejt$mhk^^m54yAyHH5 zVoo@9V~GK`#VIVN^4z zx<3Mz=|}$nBPQX!HB#^re)b1wi=#{bP2*^mr7Jdsb3J2aF4^o1&%tM({bdx{SRhd1 z_fkwHYaP`vJL=XfxA$1Z;Q3v~<2&20w8rGqPb}Kc6kFCxiH;`hyP7(x%Qf1~_SU04 z&GZ*g@ya^>nDcbK^%mEpaSOCsaje?}J)t)Y$BXsXUHt$`664>!v;vqKLpsrzruL-i zacOL`K13#o(K$o{Z$I`5T?jIbbiL%DAt6@xx+d_X?l`RqcPS- zxi~Y{!VmV}>9CNM;_bVAht1Kl4ERz)RW5P%Z64zJhDX_;fjIcZ9ic0%NS#5Vv7i=~ zea`-dAqI?FmQb)jZUmb&>a6^*gybiL!U=ajzhP;>3bNCYuXB`&3|U!`;=E`-WT4M0iza8?y$%^J4M}DPMYC$n51C0B@i>Z=JD%>3__`>c>iYPT zwe*)t=)Rr952GNM<3BbSK39~nUFMjsi)d5+QxuEC(5Sb+%b(&0_7lo>Tb^KkZ4}Mi z2q1mJyHLCoiQ0$Fsbfyv2YH*do^fE+ib}To^FU3Bg^aj4Y!cQD6I5g-u)n10^jJJ= z>|n*-oIBqL`N212=4fE+hjiQ+u8?(y?S4d>4{gxOKO=qduqIVBq)zr2LC1yiJP&W0 zW%$r0Nez|yN3&4+vrt3`|Ml6Vuy+m_cT1sTnv54*^F1jF=OsyK`%{b=yEoTu9h(sS z!>W-IyLa+i`WtP*o)y-&FOeCPS)zHF}?7Y$w>R}Ddc|8M(w#J(_g&^AQXK6@=XOQ%tOTOV;6D5T_n71QuhWi5Kh>e zSOBz2MYV47Y|L_8aNhQD0`uOVgPD7P{+#(#ALtx`U!f{rff^w7&6*|N=ouq z-&uJzWQ>B$_=P#W7p0AR7`Z_lnZn9;qKKhWc?Dd;W4hvw3JkL>;~Pa+3DY%;bY6t* zH58dLIVwSRLf^$Kc_yTAwQA(|v^HZs(M!9x$Y0s#qo~c{B z$6DA{PJ)cjGSmwxz57N5aj2;ZoOF~9dp#HyBoY2@2#>U)fWwmc<@5!SuPy1Xq{Nrw zKs1=GGAviSwDMf$FEF&)WK4|0u}V2I>xPW`ikSO|@(AAu%-QsdP&Lk&hJQOBr?oAxkv|W&S_1URP9GGOcdL zxxh!Ly^iqvt7u17A{jr|LpGR78q>rl%m}N|;c?(GZ8WOs?>X~gC;8m1l6q4b4=#SZ zuJRq(_$p6?jylPP@jG8OqA8E?xqe9)9{70WW-;g{K__ua(MnGG)$xsHyqB?(LGr5x zSwB{Bz0X*HGMO04DiA2|<@aNv>1c1SnXrw^7mwtp6Gqf&k}PABpg1~g5c{p`qV-00 z7Xo@I+wkix_m1}m9g$+3MrMBa&q11lZMXgyN((blZ%Q`hT*T!X{}~cWQ$}`tRQwaS!} z-wCnI=R6n|bEMa3%?*Wxd_%)SY~yIMGgDKx;_?BLnPW^LLW?c<1$MNiT3X$Yc1jS& z{Q6IsfZLnk_x$ddkaC$4{GUZ_g|IPS7JYDX;`jOTR(uy>qprn9{@C;(j4|TVe+xf| z6?!Q>*h{}hzVO?LNZ{YBKfmG@iTf+1XvgbrX*e9Ke8jpPjqXouF}+Ic`h+H{_?4_N zjyZ)wf|0KWZnwg>?VK!(^lNQ>zylH_=cznvwTz!Wv?lBzEpmC|b6o$e|5aPSG%7n3 z6=uH1kA>84CHVK)ynmxr#)eUa-PZUG-S$tJX>ii1%ewINe?Q8z*Ia)60pN}pFKfL6U@zX;h_lUF+5Ds0+HjmwWk7V_xHp4uSTd7t)1uN5HXOcA{BGcWw zx^7{$Y`Xqo|J391f=_ z)dTp@sb$e3sxnDak)h1)4@l4q*W$x}`ZpY(QEoidORIk)xU0HL{s~sPAh2HucVp7m zT@D~tQMUy=Q-$q^C+pI7=w|(R*`V0)=!~V#{JwW`*xlxH+#J$AGFqz$#v1-|<{cYb zM(k8`9GL}MCoZ5|$TMT$fvyHyD%H?o(i!R=X`nzT~-Q?3~^fL09f6nX={V zxibMX!uzRjG+laZNM2_WxmiCb@7;N0KO@A#A1Pc8wGeDy5=_}p>QyJ@{HK}c=lSQh zJm@2VNzW(DfK0ddY=cr5mj|Wh>uTf=s1IVWG$APtt(tzq<_%X*6I|$bl6^9J9~&J%{9|ms-gL|zCq2EmSu-S{LfNy@Uc=D1;;nPt6yp8_ey_Mukx{N* zt7c_4Po4hekK2T^axSL{+z5(t{vU~F|G5Q009POxomw{XJ!4ZRViSk&9g4EA62%Ru zRF^yeG?obvv|t-f;2p7@cLQ()aYdpKMixp(odO$pWvwaG=+*GT`81!i+0PHm6x-3?Fe6d7~u)_vy#9}vi;HgSGjnC zP|0vOvx}96%V$86T~?G^;M>z;hM?0L&t`_%!^vz1k8~tTAOChh@mu!ktM*X2MzQBR zAWsAyg`mIzex93s!c^4Pifk$L()8Pwu9JnRzW1l~dL$ZYW#@=bsgk04QtJ%ebuVpfKOSp5cp6Xb%4efq3qWhXEB% ztrz91ZG3Lv2Nbt|VB~3cPhYbJ9e~4{N?A7AaX8!Jm0)+aj(yTUFeYaEso!y510ZgO zM3g0!ntoM=EgOwf)kicmFVLctV}RRd_+~OPiGBq=EB5=|0SPIXAUZ{ z1F*eMTC&8ywV+SRq2TI2NnM+TbJ&9%;{lGLK^DhF*KNK8wz8|Swep|_3uR8T2Zl+2 z2<|@pR9|cO$nJfR1?Q+ET)bRD_!yvpfbNn+%$ZC1hurpVnkml=4s^){qy_ze&$u#5 zt^n?EnziYVSH}lpQPOU?>A?_Aj~SZ-ocOE`h*IoQvloO}6UZ_0z$ZZ<9$^r#CkY%t zah(pJ1c)vy#Wtlnl}*T|dY!zjxW#!O;zOfWDGAz_Ns>V;)ig$gFE;{KkTqY$-_rOrPwEnr9zr3! zz)00W35ENHg{pt`L38Zp!ZN|7kA&f`viqEmRT_GxLZtULlX$O5{S2r3tJq(b21d-^ z`K38pmMKp8wUqg>eUbEjQGoaj);QM}NYX$_y(N&;oNhM^$|RIeHV>A{86Z`jG&f;u zAv!doIJfQikg-f@4vXdu?(Fzo=tv9D3L}8|`)w;2!4~koYm=&WM(JnH#^Vdlr@j0kCT+S_)ss%mr|38?KO1w)Wqquim6)~vr3?-=lJj!sX19nu{APFA z#JstEkR3p`9C{*p#*LCUhc9aZj2PqLR!+SYwODgh&f~y6O8aZ(=p2s@AM^uQ{APM0 z&=8R}^i?DOZ~X7+k}Zo!#H79x{wwPk@!rvE?XkMq<6UP_@2S& ziUAJG3kc<3oM_hjvSwlJ&GVBu`A;CIZ4{pVXt!YwQgIY(3-~ye$bQcY4is`x7-?B_ znS4x>z4cua(}MV(K67cg1a90;E^SYbwv)dCD13bV5DN3_FAgX~i|}-%;ilF?P^HBs zCiJTP^7Dl!+%HNGq##B(v}@X~1kUgMwiWxf02KmCKR$V%;PArYx1xUqE@qYw2~$93 z1I5n268ieCGC)t{UhX#blm0!S7UPeiBtTV6Lmt{-Bgrtq;ZuF?3EdMTTOpH#dlZv&grYZ z^zrt*{PFiqd7{Sj&K$sL0S5$~F_V%nrCEX9geJDZ^c8*lLl?r)?AMWaY%=cSo$26z z1i>FCT9YQtI88^0!zuo0rGFPfxjYCxHsKobn-wB&ryVB&-55jJQ0Ez&CmsCKhPn%&?NXM(+581g~e`L(%VO^Xhgl23`okP0|GA zE6R0uspNGR5_dZgMR%!Dni4;UR1aJ-zAi?bRs_h(%66d9nrvC9Lx%_Gh>pbtlr4^cpyB!o={D(2GV^s;N2OG~#Z&!2s-i-%zjohsSWyodJje}{wR^OJ=P8qnp zl6rh~tT?(W*?lVlsH2iXvIeupx2YqOWLzLMi|G>ZZ)S8o<#OU;P^2tU>LAc9EbPKn z=>kppE{Fl>Aec0`;0QPAH{|@36Mh*`&=11MM2SCCaU-EB}Pm!z1Kmu{ic=sMip+F)QKOUcG0r-7Pf^{_#tzg2Py-{VDWE3vK zD9WOq((oaMXKd&VlX&O4I#b1V^=G$6Lq)vQNVyh0w5rF(gsQ47j~3!TstFq!u)ROipAh z%c0VozHK3Olt%ztE*+4xB~`Cmzbkhf0eaBw5f?+;ybB^N>trz)Co&c#GKnN~778kAOyHc`vU$`f zr!yqfY#`Di$^j6}%l$TrC(Bv=oJ$TLSPBktGu2#)sDp zUg*3JJJ7^7%&sPL6?6{-Q!$7@^#GsN;_HO9a4x6vbDsEaU z10rSzev2P`-lRZ9!9|+-nL?%cCH{cG)^!O#c z;7FG}_UTfK;fKttc`Ev#rL{bfCj@9unNbG3}RC?3&T^@)idu=BrP;k3>Iq?iAEdl{6 zAYk~=R03`;FSam)7YFH<3CIFtc&x;!IsQ)y)J3Fn@-6ElftZFw_ru7j2K8?zsD+Yg zIyIbpOFF)w)D^w^zPY8sIqw`meBVtdS0Tw39MNz*aU>`9P-)UxoJJ{?K?68XkZ^b{ zNg(Q0A0lqIu9p(JVDS>o_fI0bECBhky|JeGwfWCMU+;F8T=tjqQUW$LyQ zhOjBYTQlq)4epZj$|sRVcP=>BpTILGPyN3ypY0|8ulL2z@>lEZ$zcN?7hGxD^L|9kI+Rt0y*s(h{qcv-K8Q`jlO;`*z&~(_OLP5* zSb5CdwO!3a0WJ-za-yAYQRQ^r& z#zqlX{SLoj^ukyj`wo3l1`A9L!jgUU4`04un-trWtS_lsaC_zcaJbr1vz3y_wRcctQMGAGnuc;J?ag{x;C(u~zE-W~lKBUy zY)D%Z^!AzJvR||f4*rU+e0pNe(611)p`nby7@T6T)fV?hZMK``k2-wsBo&E zEpIdtpexKfCtrMZS_Th%m`d{GN4{Dy4iKGryz_L33zB?b8+co~Tz(QEjodb!`F*ZH zB>i}*56mk&SB^~hJfFGJ7Rs3>E_CP?hCLM7%I#q$JXnSe@In$26JHbB(bVLEht-SRHiGt^Sz$mI{D&{=&9NP*|(cZ#eyDhM%*T@;$K@E%*i>6k}5 zN3yt|BJ#_2aBJo>-pyj3Nrp|YX;tH^%uTTZZdrtIxs`MVejiqa7U`I=aM%}BT ze(s6zXqN%m<$}iYcjL(67~>9dIN+9JnJkgrg6K!vPL%_PDMknKWuk7yu48CjxsS%p$2{E{R`lUDoThA*Du@`C3z;hB)XJ& zz5Vm*uHw#bX(?~H>8<4~!)hk-^!SwIVIqJS{flUt&h)xv+vL@HMT#tumzuc7%@@t4 z)hWC9cot*v6bnFV>L7uquMJkN;I{t#Pe;;7MZ%xo%U()n-^Z#0yion__OU&3bA%uh zfDl_}4<^u4c_o;B^9;}b>G*%yH1CfgEmwguv6(XF(0e|NMM*-TTN7FukhzP~0Do|A6Uiu{eugQPokD%C+&^i;= zKTZmsYg;o;LnkiNPc(ng3xoNB{~M)%PE+83|4+cOMg2e1>AxSGh^GF3@gm47rRvK_ zR7V2K4hZx#9iHksS6*`^OaF&G?%#mCXVGQxr8s}!%hiGX?YC!EZ6zbKLWfRFo(%AV zC?D;EVTbv&WY)oA#TsYrQbt!%XmwYf))uWIVGY%BnZk6xMz7aaP#26^Hhl?)Xbu9Z0%gXB9uqr5>A=C`IH!7Qoiq}0@s(R?)@xy z|3@9-D}KD`ZKQ{thY(XjO2myi_tE#D$OIpMlfZm;M50G9$=M4eq~Px_1Uq0512+!@ zM-0Wr1W^1=25Nqi048c_Ep-wU`fDFfIl5w@gS%>E`lEY^#VLc=LZe)jsu98C}=P zd0$?B0>QWU!~RSX8t@=#IZ`H=ZpAEME%oI0H5S-+0~sPHbb$^1qvfnF;FMVJgD@zw zz-49Kmk8e%9!_=oY~lY3=!`ES>+a-=v;BuM2+ z13czv5BuTl(rDeA0xghS;c&k<)#Gkc2@APOjU1=gQ&EU-mkZO}E?tp8Rq%#_3z>C6 z3(RH;boyfEWi2s=lTt{kLu1L;DU>^KNv!C?_8eU47xk(VzMvTyc5?AUYjF^ z`VtwcNo-O}1_VCy(Jwn?ccjm=PUk&2=z=IO3k+5Jc@^rq(u~$_!$D2QPG>;zPEGjf ztKQ}H%c19mq}EfZ*2`dnPQP#HqGU!yOORVzEV|$|!S5eoeowfy|BMM_8%Bm}#JDY95AmkU<hw`;zBk5cTd-A+S?r9#!w;7qILuFg(aq*w{q}sNWLm7r6ZSj^=dMBEC&A09wYA2hwXHv2^=is7zazu{{`|cboCztHFZanG>AS$X&w%_L zrMhZWuXDxCC#~s+0n<-sU#`l8k>}<4>j7zSFMv2t${>Lc@$&w*-Y=Vk>1g3L4Abmc zYlnr)TZvAvq9f~9mK`3$brqW&-m1?7eaph*i^V0X@V$?Bf%s*!Dr?@tC2Wri9#c;G zL6tjI$9GP}9?mw(qCBMbS`{L0DU)lOcEkKKYneg8|>dQ7t!Y$1`KQt;A)uvMtT|oJ8t#C`4j3H#)TOfdbWFUE zAQJI#sdAiI*=Qu|w7&y?CMRd0BUI?T{_p4a$2PLf`x8rclmA`(L_lL9b*gZsab|wp zAK9}1r+RDuXL|qRLpVZ3a;Z?FiAt%6HN#@0Gs-u*&E&W{vx*I4(~0=%ghJGp4QFgr z__}A9N+FdybIDXE?c%bH&5kkqew^<=@cs4s{`vKIydUq^`}uxe-jDZt`r&^5xrK;4 zrAYf!Y+qnkxIh(@0D&Lr5Er1jGA~ z73~<*UR@q$Vew`e4Afv)wm3Nw17;7CxaVOd#^kOrmeBFj_W6Fni|1;xdh13y5q^;H z%d}7Yr?qr$_a57k3(~(4@0Y!p(3aV}$sZd$x(ZXA`4ystXnnL8>;rjl6|7Q$SXk9l z;M13AO6#jtNg6x{526v5VmS9bd@^)}TyDOEojI7Zt~;}F@)G^_q@SAOkY|xqvlo$# zTAaI-xf1`iTW}m-{e-;}tA*`q&UFcs(l%l(oEqt9_30ZTv04^l;p*Z#4;R z^=JuCy@~2eK19u}=`K3A+__c{#t{6I@n-Oaa5_suL?q1k!x+}Btt$!u99f8T%zQ=< zAi&gQCqS#bsKx3=YAwKOV$8JT+l=o-0;&&F15}zC4JiL^xh@w{l_yu`vDhR4*@rd- zo1YKZ&q15Jq)}^F->MnDV#pif z4PA}Ba>z@U;%+QDgD4+2!jGgGr@U?$66n{=jq5)M94xQ4GF_8mUX_tMNb&7_=}{BU z>NGy^5lo$!(1L$tFa@Vak9?hP?e)pl8uRTgsFg`#9yefl1{b$~m#Vdw!#vYul|MTX z63k;q=+r)x(zTqPvvKHTNh26XLKwH^lsZb^(i(;#b7eD%rM1K?12@4~bKKmE*LG2x z$cvKcG#NwoHtmOxxMO!Gq;$zy=eL$H^AXae!QArFf#?CrnwyO!Da~*1q<{y}RM~dc z2E_^-c+XW=+14G%U`dkpWaEvD0I6<+2c+Ho%`r!7%#AZ*G&M}p;g_yE4nt(QhuAmy z)8B8z!_#Ee2{X<8GpO#q;F7(@lDD*LLO~p>JxtaW*$xe;CvNtZYC8MTzq{8D z@#UE-xO0f&UiA2*N#dD$`QwMS;|oYCaiylH)r=VCdd1eZvh#~|3Y*f=S$TUbTI`;L zFpa%^6kC?KGniX*%txJ(PZy-JTNo47rm}rsFlWR?A+6PoRY8sA_FL|2P5UNk_YCa7 z`S#oQ^76y_XIUA5p>bUZY20qr`=|N!Tyd|%MEQoA_)DTRVLN~PspDUGH8iGeia(*_ zIF(1~txcCN^)aOXm|@fEF~Nqyzt3|RU?U5%7{Btku3+kO>=tx7K1vY<4jG4Ny=1mI zLTJ&8ajL2Wqy+sytI8yHcDOM)faNA4c6#Crv`&{#*c2Q50GfzB#0s_gV^3ORn* zCMBu05)S6ueUfqwQc9x|fpoG~Uuf5EQh?2`HMqPkNHXn?J=&V-BvgONZ2Y9u^Cmu>MBbji1KEj@7@vT6E>G5U`BVP?IbPN`S zax0Qqj}70^$Yu@)%-a<1D~RJUW_3ggAfl4QA!y3FRKiYp6c zaUZBqVgZ5cFxzxEZ8qc~*1IUEIf5{5Gvh*RUJSPT;N3G zs(0cJoJbjYM-#t9DoR8_9{FYV;!Mw}jYXuO5rY6IcXn`19UYX%V6OWp+S2M^WWOuo zZ!@8>Q_DZ?L|Lh*`9m*tfj^Qc;--mY#P#(3g3=R%63zZKZqPlg$5hThtan0t{_~vr z&r!L}%v|nude&~?y4SU*d^T)X63?MMi@+t%MsSwf<({CNe!4KzM--9(~le0~c^>lj%qrV)kqQ?!$e~ z;r340TYBUo=deg`YS`yp0y`(;GzllNhkZ(u_7sEv1{(B8U&?p93J z)SQqB4zaxFmh3dPV{F34yM4i*%k4*zg968mLyYHacj4msRxz9>zc<;Y6VOb5ZVeN^ z&gPV3+wLtRyNGkRz%$9h`afkq$2|3+QDvQcJ5PPh4~aU@!Lm{OboB8I2zn0MRn+sZ zowqLQ1<=Jum%KU-v-&vxz%!bc+*I4Q_ZBLWf6#k_ieYPIq&E_(Td4m=!5EZAm)^f~ zJhT0eoSAKCuW6RFu#b$LGG!iwF8D`EIakPR)_KfwebVAHM}3zn_Gn^6K}*a>xAcW! zimx9uMD~MI4rL={H|iB;TOSCD*EyOc-Jjm{+!){D4o*^nuZE|`-i&)@{W(LZ`e4?s z)n)GJjHsXS>Sd}8=+4E$PkD)Dg;Fg)FmXRBQU@BRm95j#Nu literal 0 HcmV?d00001 diff --git a/docs/source/Plugin/P092_DL_bus_displayclock.png b/docs/source/Plugin/P092_DL_bus_displayclock.png new file mode 100644 index 0000000000000000000000000000000000000000..1bf4d21333060e6e28d3892b19b764330886961e GIT binary patch literal 4423 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 literal 0 HcmV?d00001 diff --git a/docs/source/Plugin/P092_DLbus.rst b/docs/source/Plugin/P092_DLbus.rst new file mode 100644 index 000000000..0aeddc065 --- /dev/null +++ b/docs/source/Plugin/P092_DLbus.rst @@ -0,0 +1,48 @@ +.. include:: ../Plugin/_plugin_substitutions_p09x.repl +.. _P092_DLbus_page: + +DL bus +====== + +|P092_typename| +|P092_status| + +Introduction +------------ + +The DL-Bus is used in control units e.g. sold by Technische Alternative (www.ta.co.at). +The DL-Bus serves as a bus line for various external sensors and modules. +The DL-Bus is a bidirectional data line and only compatible with products of Technische Alternative. + +The data transmission looks as follows: + * In an infinite loop, a logging data frame is created by the control one after the others on the data line. +Up to 4 sensor measured value queries (master/slave) can be made between the individual logging data frames on the DL bus. + * So that the beginning of a data frame can be detected, a SYNC of 16 high bits is sent before the first data byte. + * The data transmission is carried out as Manchester code (EXOR linked) with a display clock of 50 or 488Hz (depending on control type). +This is necessary to ensure the supply voltage of the logger and DL sensors from the data signal. +If the receiver is synchronized to the display clock, the correct bit value appears always during the second half period of the data bit (inverted in the first half period). + +Wiring +------ + +The DL-Bus consists of 2 wires: DL and GND (sensor ground). +The power supply for the DL-Bus sensors is supplied via the DL-Bus itself. +Some DL-Bus devices can/must be powered via a 12V source, e.g. that of the CAN bus (this is explicitly noted in the operating manual of that sensor). +The cable routing can be star-shaped or serial (from one device to the next). +Any cable with a cross-section of 0.75 mm² up to a maximum length of 30 m can be used as a data cable. +Over 30 m, the use of shielded cables is recommended, which increases the permissible length of the cable to 100 m. + +Protocol +-------- + +Transmission of a data byte +.. image:: P092_DL_bus_databyte.png + +Transmission of a data frame +.. image:: P092_DL_bus_dataframe.png + +Data frame on the DL bus +.. image:: P092_DL_bus_dataframelog.png + +Display clock +.. image:: P092_DL_bus_displayclock.png diff --git a/src/_P092_DLbus.ino b/src/_P092_DLbus.ino index e1fb79090..8f2fcf22d 100644 --- a/src/_P092_DLbus.ino +++ b/src/_P092_DLbus.ino @@ -14,8 +14,24 @@ The plug-in should be also able to decode the information from the UVR31, UVR1611 and UVR 61-3 devices. - The selected input needs a voltage divider as follows because the DL-Bus runs on 12 volts. + The selected input needs a voltage divider as follows because the DL-Bus runs on 12 volts for + following devices: UVR31, UVR42, UVR64, HZR65, EEG30 and TFM66 DLbus@12V - 8k6 - input@3.3V - 3k3 - ground + + For following devices just a pull up resistor is needed if the device is used stand alone: + UVR1611, UVR61-3 and ESR21 + + @uwekaditz 2019-12-15 Memory usage optimized + CHG: Moved the array for the received bit changes to stativ uint_8t, the ISR call uses only a volatile pointer to it + CHG: some more defines and name changes for better explanation + + @uwekaditz 2019-12-14 Timing optimized + CHG: Removed the while (P092_receiving) loop. + CHG: Starting of the receiving and processing of the received bit stream are now done in the PLUGIN_ONCE_A_SECOND call + PLUGIN_READ call just uses the already processed data + + @uwekaditz 2019-12-08 Inital commit to mega + \**************************************************/ #define PLUGIN_092 From 078d60d27dca6d55b568d6a1356cb9b95abe6fba Mon Sep 17 00:00:00 2001 From: uwekaditz <55511593+uwekaditz@users.noreply.github.com> Date: Thu, 19 Dec 2019 22:11:01 +0100 Subject: [PATCH 09/14] [P092] More documentation added NEW: docs for ESR21 and UVR31 units --- docs/source/Plugin/P092_ESR21.PNG | Bin 0 -> 62014 bytes docs/source/Plugin/P092_ESR21.rst | 36 +++++++++++++++++++++ docs/source/Plugin/P092_ESR21_Inputs.PNG | Bin 0 -> 8043 bytes docs/source/Plugin/P092_ESR21_Protocol.PNG | Bin 0 -> 35034 bytes docs/source/Plugin/P092_ESR21_Sensor.PNG | Bin 0 -> 4557 bytes docs/source/Plugin/P092_ESR21_Wiring.PNG | Bin 0 -> 12864 bytes docs/source/Plugin/P092_UVR31.PNG | Bin 0 -> 28083 bytes docs/source/Plugin/P092_UVR31.rst | 36 +++++++++++++++++++++ docs/source/Plugin/P092_UVR31_Inputs.PNG | Bin 0 -> 3336 bytes docs/source/Plugin/P092_UVR31_Protocol.PNG | Bin 0 -> 10784 bytes docs/source/Plugin/P092_UVR31_Sensor.PNG | Bin 0 -> 4656 bytes docs/source/Plugin/P092_UVR31_Wiring.PNG | Bin 0 -> 9279 bytes 12 files changed, 72 insertions(+) create mode 100644 docs/source/Plugin/P092_ESR21.PNG create mode 100644 docs/source/Plugin/P092_ESR21.rst create mode 100644 docs/source/Plugin/P092_ESR21_Inputs.PNG create mode 100644 docs/source/Plugin/P092_ESR21_Protocol.PNG create mode 100644 docs/source/Plugin/P092_ESR21_Sensor.PNG create mode 100644 docs/source/Plugin/P092_ESR21_Wiring.PNG create mode 100644 docs/source/Plugin/P092_UVR31.PNG create mode 100644 docs/source/Plugin/P092_UVR31.rst create mode 100644 docs/source/Plugin/P092_UVR31_Inputs.PNG create mode 100644 docs/source/Plugin/P092_UVR31_Protocol.PNG create mode 100644 docs/source/Plugin/P092_UVR31_Sensor.PNG create mode 100644 docs/source/Plugin/P092_UVR31_Wiring.PNG diff --git a/docs/source/Plugin/P092_ESR21.PNG b/docs/source/Plugin/P092_ESR21.PNG new file mode 100644 index 0000000000000000000000000000000000000000..0da32e442ff39b5fe002292e6396bf8ecd559e3c GIT binary patch literal 62014 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 N=~YXkYD3qA{|CDuaeV*) literal 0 HcmV?d00001 diff --git a/docs/source/Plugin/P092_ESR21_Protocol.PNG b/docs/source/Plugin/P092_ESR21_Protocol.PNG new file mode 100644 index 0000000000000000000000000000000000000000..8ec2c905527bea47c3dcef89a2d3209108770546 GIT binary patch literal 35034 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 JsxRVze*<^hfBygg literal 0 HcmV?d00001 diff --git a/docs/source/Plugin/P092_UVR31_Protocol.PNG b/docs/source/Plugin/P092_UVR31_Protocol.PNG new file mode 100644 index 0000000000000000000000000000000000000000..85d6eab0557b60ed8a6da60cffde1084adf3264c GIT binary patch literal 10784 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 literal 0 HcmV?d00001 diff --git a/docs/source/Plugin/P092_UVR31_Sensor.PNG b/docs/source/Plugin/P092_UVR31_Sensor.PNG new file mode 100644 index 0000000000000000000000000000000000000000..d71f97eb191ba6a929324ee47758ce31059c93d4 GIT binary patch literal 4656 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 Tdj9_V^3a$VS{PKpJR<)Kcb5ru literal 0 HcmV?d00001 diff --git a/docs/source/Plugin/P092_UVR31_Wiring.PNG b/docs/source/Plugin/P092_UVR31_Wiring.PNG new file mode 100644 index 0000000000000000000000000000000000000000..8d4621e5dc1d54fcdd3d9ee3f035d8b8afec5618 GIT binary patch literal 9279 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 sdpIcw0)bc)@A>b!#{cu9=gT8G Date: Fri, 20 Dec 2019 21:04:32 +0100 Subject: [PATCH 10/14] [P092] Documentation updated NEW: More devices CHG: can be compiled by sphinx without warnings or errors --- ...2_ESR21_Wiring.PNG => P092_12V_Wiring.PNG} | Bin ...2_UVR31_Wiring.PNG => P092_24V_Wiring.PNG} | Bin docs/source/Plugin/P092_DLbus.rst | 4 +- docs/source/Plugin/P092_ESR21.rst | 50 +++++++++-- docs/source/Plugin/P092_ESR21_Inputs.PNG | Bin 8043 -> 0 bytes docs/source/Plugin/P092_ESR21_Sensor.PNG | Bin 4557 -> 0 bytes docs/source/Plugin/P092_Setup.png | Bin 0 -> 36203 bytes docs/source/Plugin/P092_UVR1611.png | Bin 0 -> 31557 bytes docs/source/Plugin/P092_UVR1611.rst | 80 ++++++++++++++++++ docs/source/Plugin/P092_UVR1611_Protocol.png | Bin 0 -> 24059 bytes docs/source/Plugin/P092_UVR31.rst | 45 ++++++++-- docs/source/Plugin/P092_UVR31_Inputs.PNG | Bin 3336 -> 0 bytes docs/source/Plugin/P092_UVR31_Sensor.PNG | Bin 4656 -> 0 bytes docs/source/Plugin/P092_UVR61-3.png | Bin 0 -> 79317 bytes docs/source/Plugin/P092_UVR61-3.rst | 76 +++++++++++++++++ docs/source/Plugin/P092_UVR61-3_Protocol.png | Bin 0 -> 18339 bytes .../Plugin/_plugin_substitutions_p09x.repl | 11 +++ 17 files changed, 255 insertions(+), 11 deletions(-) rename docs/source/Plugin/{P092_ESR21_Wiring.PNG => P092_12V_Wiring.PNG} (100%) rename docs/source/Plugin/{P092_UVR31_Wiring.PNG => P092_24V_Wiring.PNG} (100%) delete mode 100644 docs/source/Plugin/P092_ESR21_Inputs.PNG delete mode 100644 docs/source/Plugin/P092_ESR21_Sensor.PNG create mode 100644 docs/source/Plugin/P092_Setup.png create mode 100644 docs/source/Plugin/P092_UVR1611.png create mode 100644 docs/source/Plugin/P092_UVR1611.rst create mode 100644 docs/source/Plugin/P092_UVR1611_Protocol.png delete mode 100644 docs/source/Plugin/P092_UVR31_Inputs.PNG delete mode 100644 docs/source/Plugin/P092_UVR31_Sensor.PNG create mode 100644 docs/source/Plugin/P092_UVR61-3.png create mode 100644 docs/source/Plugin/P092_UVR61-3.rst create mode 100644 docs/source/Plugin/P092_UVR61-3_Protocol.png create mode 100644 docs/source/Plugin/_plugin_substitutions_p09x.repl diff --git a/docs/source/Plugin/P092_ESR21_Wiring.PNG b/docs/source/Plugin/P092_12V_Wiring.PNG similarity index 100% rename from docs/source/Plugin/P092_ESR21_Wiring.PNG rename to docs/source/Plugin/P092_12V_Wiring.PNG diff --git a/docs/source/Plugin/P092_UVR31_Wiring.PNG b/docs/source/Plugin/P092_24V_Wiring.PNG similarity index 100% rename from docs/source/Plugin/P092_UVR31_Wiring.PNG rename to docs/source/Plugin/P092_24V_Wiring.PNG diff --git a/docs/source/Plugin/P092_DLbus.rst b/docs/source/Plugin/P092_DLbus.rst index 0aeddc065..45b45b2be 100644 --- a/docs/source/Plugin/P092_DLbus.rst +++ b/docs/source/Plugin/P092_DLbus.rst @@ -16,9 +16,11 @@ The DL-Bus is a bidirectional data line and only compatible with products of Tec The data transmission looks as follows: * In an infinite loop, a logging data frame is created by the control one after the others on the data line. + Up to 4 sensor measured value queries (master/slave) can be made between the individual logging data frames on the DL bus. * So that the beginning of a data frame can be detected, a SYNC of 16 high bits is sent before the first data byte. * The data transmission is carried out as Manchester code (EXOR linked) with a display clock of 50 or 488Hz (depending on control type). + This is necessary to ensure the supply voltage of the logger and DL sensors from the data signal. If the receiver is synchronized to the display clock, the correct bit value appears always during the second half period of the data bit (inverted in the first half period). @@ -29,7 +31,7 @@ The DL-Bus consists of 2 wires: DL and GND (sensor ground). The power supply for the DL-Bus sensors is supplied via the DL-Bus itself. Some DL-Bus devices can/must be powered via a 12V source, e.g. that of the CAN bus (this is explicitly noted in the operating manual of that sensor). The cable routing can be star-shaped or serial (from one device to the next). -Any cable with a cross-section of 0.75 mm² up to a maximum length of 30 m can be used as a data cable. +Any cable with a cross-section of 0.75 sqmm up to a maximum length of 30 m can be used as a data cable. Over 30 m, the use of shielded cables is recommended, which increases the permissible length of the cable to 100 m. Protocol diff --git a/docs/source/Plugin/P092_ESR21.rst b/docs/source/Plugin/P092_ESR21.rst index 90ae1f2ae..ba2af9a8c 100644 --- a/docs/source/Plugin/P092_ESR21.rst +++ b/docs/source/Plugin/P092_ESR21.rst @@ -1,5 +1,5 @@ .. include:: ../Plugin/_plugin_substitutions_p09x.repl -.. _P092_DLbus_page: +.. _P092_ESR21_page: ESR21 ===== @@ -12,6 +12,7 @@ Introduction The ESR21 unit is a simple solar control. The ESR21 unit is a differential control that can be used in many ways + The DL bus runs at 12 volts. The data frame consist of 30 bytes (excluding sync and CRC). The data are transmitted @ 488Hz, therefore the transmission of one data set takes about 0.67 seconds. @@ -20,7 +21,7 @@ The data are transmitted @ 488Hz, therefore the transmission of one data set tak Wiring ------ -.. image:: P092_ESR21_Wiring.png +.. image:: P092_12V_Wiring.png Protocol -------- @@ -30,7 +31,46 @@ Protocol Setup ----- -Note: Intervall not less than 10 seconds! +.. note:: A new device task must be created for each value to be read from the DL bus! -.. image:: P092_ESR21_Sensor.PNG -.. image:: P092_ESR21_Inputs.PNG +.. image:: P092_Setup.png + +Task settings +~~~~~~~~~~~~~ + +* **Device**: Heating - DL-Bus (Technische Alternative) +* **Name**: Name of the task (example name **ValueN**, where N is a number). +* **Enable**: Should the task be enabled or not + +Sensor +^^^^^^ + +* **1st GPIO**: DL bus input e.g. **GPIO 14 (D5)** +* **DL-Bus Type**: **ESR21** + +.. note:: The settings for **1st GPIO** and **DL-Bus Type** must be the same for all used DL bus tasks! + +Inputs +^^^^^^ + +.. note:: The description of the **Frame data** and the related **Frame bytes** can be found in the section **Protocol**! + +.. csv-table:: + :header: "Frame data", "Frame bytes", "Value", "Index", "Decimals" + :widths: 16, 8, 8, 5, 5 + + "Sensor1 ... Sensor3", "3 ... 8", "Sensor", "1 - 3", "1" + "Ext1 ... Ext6", "9 ... 20", "Ext. Sensor", "1 - 6", "1" + "Output byte", "21", "Digital Output", "", "0" + "Speed step", "22", "Speed step", "", "0" + "Analog output", "23", "Analog output", "", "1" + "Current power", "25,26", "Heat power [kW]", "", "1" + "Heat quantity", "27 ... 30", "Heat meter [MWh]", "", "4" + +Data acquisition +^^^^^^^^^^^^^^^^ + +* **Send to controller** 1..3: Check which controller (if any) you want to publish to. All or no controller can be used. +* **Interval**: How often should the task publish its value (10..60 seconds is normal). + +.. note:: Intervall not less than **10 seconds**! The reading of the DL bus happens twice per intervall. diff --git a/docs/source/Plugin/P092_ESR21_Inputs.PNG b/docs/source/Plugin/P092_ESR21_Inputs.PNG deleted file mode 100644 index 2415e1b7cd7d9d73dbc0dfeae9fce9f50e573d56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8043 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 N=~YXkYD3qA{|CDuaeV*) diff --git a/docs/source/Plugin/P092_ESR21_Sensor.PNG b/docs/source/Plugin/P092_ESR21_Sensor.PNG deleted file mode 100644 index 69ce74068c53a990f80a3bdd442ea5b255234f6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4557 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 Q!A2Oy&G#FDOUO_E0$ijD=l}o! literal 0 HcmV?d00001 diff --git a/docs/source/Plugin/P092_UVR1611.png b/docs/source/Plugin/P092_UVR1611.png new file mode 100644 index 0000000000000000000000000000000000000000..d9cdabfa06b0764183df49ac77c400d4317a91cd GIT binary patch literal 31557 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%0Dt(766&?P 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 literal 0 HcmV?d00001 diff --git a/docs/source/Plugin/P092_UVR1611.rst b/docs/source/Plugin/P092_UVR1611.rst new file mode 100644 index 000000000..efd456823 --- /dev/null +++ b/docs/source/Plugin/P092_UVR1611.rst @@ -0,0 +1,80 @@ +.. include:: ../Plugin/_plugin_substitutions_p09x.repl +.. _P092_UVR1611_page: + +UVR1611 +======= + +|P092_typename| +|P092_status| + +Introduction +------------ + +The UVR1611 unit is a freely programmable universal control system. +The UVR1611 universal controller can be freely programmed using function modules to match any system configuration for heating room management. + +The DL bus runs at 12 volts. +The data frame consist of 63 bytes (excluding sync and CRC). +The data are transmitted @ 488Hz, therefore the transmission of one data set takes about 1.4 seconds. +.. image:: P092_UVR1611.png + +Wiring +------ + +.. image:: P092_12V_Wiring.png + +Protocol +-------- + +.. image:: P092_UVR1611_Protocol.png + +Setup +----- + +.. note:: A new device task must be created for each value to be read from the DL bus! + +.. image:: P092_Setup.png + +Task settings +~~~~~~~~~~~~~ + +* **Device**: Heating - DL-Bus (Technische Alternative) +* **Name**: Name of the task (example name **ValueN**, where N is a number). +* **Enable**: Should the task be enabled or not + +Sensor +^^^^^^ + +* **1st GPIO**: DL bus input e.g. **GPIO 14 (D5)** +* **DL-Bus Type**: **UVR1611** + +.. note:: The settings for **1st GPIO** and **DL-Bus Type** must be the same for all used DL bus tasks! + +Inputs +^^^^^^ + +.. note:: The description of the **Frame data** and the related **Frame bytes** can be found in the section **Protocol**! + +.. csv-table:: + :header: "Frame data", "Frame bytes", "Value", "Index", "Decimals" + :widths: 16, 8, 8, 5, 5 + + "Sensor1 ... Sensor16", "9 ... 40", "Sensor", "1 - 16", "1" + "Output A1 ... A7", "41", "Digital Output", "1 - 7", "0" + "Output A9 ... A13", "42", "Digital Output", "9 - 13", "0" + "Speed step A1", "43", "Speed step", "1", "0" + "Speed step A2", "44", "Speed step", "2", "0" + "Speed step A6", "45", "Speed step", "3", "0" + "Speed step A7", "46", "Speed step", "4", "0" + "Current power 1", "48 ... 51", "Heat power [kW]", "1", "2" + "Current power 2", "56 ... 59", "Heat power [kW]", "2", "2" + "Heat quantity 1", "52 ... 55", "Heat meter [MWh]", "1", "4" + "Heat quantity 2", "60 ... 64", "Heat meter [MWh]", "2", "4" + +Data acquisition +^^^^^^^^^^^^^^^^ + +* **Send to controller** 1..3: Check which controller (if any) you want to publish to. All or no controller can be used. +* **Interval**: How often should the task publish its value (10..60 seconds is normal). + +.. note:: Intervall not less than **10 seconds**! The reading of the DL bus happens twice per intervall. diff --git a/docs/source/Plugin/P092_UVR1611_Protocol.png b/docs/source/Plugin/P092_UVR1611_Protocol.png new file mode 100644 index 0000000000000000000000000000000000000000..498b08584269f51281b7ecf200b6bfb278e12d8a GIT binary patch literal 24059 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 BG)Mpd literal 0 HcmV?d00001 diff --git a/docs/source/Plugin/P092_UVR31.rst b/docs/source/Plugin/P092_UVR31.rst index 6497b8732..b7748a8f7 100644 --- a/docs/source/Plugin/P092_UVR31.rst +++ b/docs/source/Plugin/P092_UVR31.rst @@ -1,5 +1,5 @@ .. include:: ../Plugin/_plugin_substitutions_p09x.repl -.. _P092_DLbus_page: +.. _P092_UVR31_page: UVR31 ===== @@ -12,6 +12,7 @@ Introduction The UVR31 unit is a single-circuit universal control system. The UVR31 unit is designed for simple solar installations and heating systems (storage charging, domestic hot water preparation) + The DL bus runs at 24 volts. The data frame consist of 8 bytes (excluding sync). The data are transmitted @ 50Hz, therefore the transmission of one data set takes about 1.92 seconds. @@ -20,7 +21,7 @@ The data are transmitted @ 50Hz, therefore the transmission of one data set take Wiring ------ -.. image:: P092_UVR31_Wiring.png +.. image:: P092_24V_Wiring.png Protocol -------- @@ -30,7 +31,41 @@ Protocol Setup ----- -Note: Intervall not less than 20 seconds! +.. note:: A new device task must be created for each value to be read from the DL bus! -.. image:: P092_UVR31_Sensor.PNG -.. image:: P092_UVR31_Inputs.PNG +.. image:: P092_Setup.png + +Task settings +~~~~~~~~~~~~~ + +* **Device**: Heating - DL-Bus (Technische Alternative) +* **Name**: Name of the task (example name **ValueN**, where N is a number). +* **Enable**: Should the task be enabled or not + +Sensor +^^^^^^ + +* **1st GPIO**: DL bus input e.g. **GPIO 14 (D5)** +* **DL-Bus Type**: **UVR31** + +.. note:: The settings for **1st GPIO** and **DL-Bus Type** must be the same for all used DL bus tasks! + +Inputs +^^^^^^ + +.. note:: The description of the **Frame data** and the related **Frame bytes** can be found in the section **Protocol**! + +.. csv-table:: + :header: "Frame data", "Frame bytes", "Value", "Index", "Decimals" + :widths: 16, 8, 8, 5, 5 + + "Temp1 ... Temp3", "2 ... 7", "Sensor", "1 - 3", "1" + "Output byte", "8", "Digital Output", "", "0" + +Data acquisition +^^^^^^^^^^^^^^^^ + +* **Send to controller** 1..3: Check which controller (if any) you want to publish to. All or no controller can be used. +* **Interval**: How often should the task publish its value (20..60 seconds is normal). + +.. note:: Intervall not less than **20 seconds**! The reading of the DL bus happens twice per intervall. diff --git a/docs/source/Plugin/P092_UVR31_Inputs.PNG b/docs/source/Plugin/P092_UVR31_Inputs.PNG deleted file mode 100644 index fcb20d3505876503dc23341ae1e2d3f592226492..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3336 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 JsxRVze*<^hfBygg diff --git a/docs/source/Plugin/P092_UVR31_Sensor.PNG b/docs/source/Plugin/P092_UVR31_Sensor.PNG deleted file mode 100644 index d71f97eb191ba6a929324ee47758ce31059c93d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4656 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 Tdj9_V^3a$VS{PKpJR<)Kcb5ru diff --git a/docs/source/Plugin/P092_UVR61-3.png b/docs/source/Plugin/P092_UVR61-3.png new file mode 100644 index 0000000000000000000000000000000000000000..830c22b398248040e3d27012f73b66a986a15fb1 GIT binary patch literal 79317 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ⅆ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 literal 0 HcmV?d00001 diff --git a/docs/source/Plugin/P092_UVR61-3.rst b/docs/source/Plugin/P092_UVR61-3.rst new file mode 100644 index 000000000..1995671ac --- /dev/null +++ b/docs/source/Plugin/P092_UVR61-3.rst @@ -0,0 +1,76 @@ +.. include:: ../Plugin/_plugin_substitutions_p09x.repl +.. _P092_UVR61-3_page: + +UVR61-3 +======= + +|P092_typename| +|P092_status| + +Introduction +------------ + +The UVR61-3 unit is a three-circuit universal control system. +The UVR61-3 unit is designed for an energy-saving and cost-effective drying of cellars and other parts of buildings by means of fan control. +The UVR61-3 three-circuit controllers has various thermostat, differential temperature and speed control functions for use in solar and heating systems, too. + +The DL bus runs at 12 volts. +The data frame consist of 34 bytes (excluding sync and CRC). +The data are transmitted @ 488Hz, therefore the transmission of one data set takes about 0.8 seconds. +.. image:: P092_UVR61-3.png + +Wiring +------ + +.. image:: P092_12V_Wiring.png + +Protocol +-------- + +.. image:: P092_UVR61-3_Protocol.png + +Setup +----- + +.. note:: A new device task must be created for each value to be read from the DL bus! + +.. image:: P092_Setup.png + +Task settings +~~~~~~~~~~~~~ + +* **Device**: Heating - DL-Bus (Technische Alternative) +* **Name**: Name of the task (example name **ValueN**, where N is a number). +* **Enable**: Should the task be enabled or not + +Sensor +^^^^^^ + +* **1st GPIO**: DL bus input e.g. **GPIO 14 (D5)** +* **DL-Bus Type**: **UVR61-3 v8.2** + +.. note:: The settings for **1st GPIO** and **DL-Bus Type** must be the same for all used DL bus tasks! + +Inputs +^^^^^^ + +.. note:: The description of the **Frame data** and the related **Frame bytes** can be found in the section **Protocol**! + +.. csv-table:: + :header: "Frame data", "Frame bytes", "Value", "Index", "Decimals" + :widths: 16, 8, 8, 5, 5 + + "Sensor1 ... Sensor6", "9 ... 20", "Sensor", "1 - 6", "1" + "Output A1 ... A3", "21", "Digital Output", "1 - 3", "0" + "Speed step", "22", "Speed step", "", "0" + "Analog output", "23", "Analog output", "", "1" + "Current power", "27,28", "Heat power [kW]", "", "1" + "Heat quantity", "29 ... 34", "Heat meter [MWh]", "", "4" + +Data acquisition +^^^^^^^^^^^^^^^^ + +* **Send to controller** 1..3: Check which controller (if any) you want to publish to. All or no controller can be used. +* **Interval**: How often should the task publish its value (10..60 seconds is normal). + +.. note:: Intervall not less than **10 seconds**! The reading of the DL bus happens twice per intervall. diff --git a/docs/source/Plugin/P092_UVR61-3_Protocol.png b/docs/source/Plugin/P092_UVR61-3_Protocol.png new file mode 100644 index 0000000000000000000000000000000000000000..359648f8ddd092573ac5231bab38e9a6d104e926 GIT binary patch literal 18339 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 I3Kp;bANqjM7XSbN literal 0 HcmV?d00001 diff --git a/docs/source/Plugin/_Plugin.rst b/docs/source/Plugin/_Plugin.rst index d86d6af7e..212b7694e 100644 --- a/docs/source/Plugin/_Plugin.rst +++ b/docs/source/Plugin/_Plugin.rst @@ -114,6 +114,7 @@ There's three different released versions of ESP Easy: ":ref:`P088_page`","|P088_status|","P088" ":ref:`P089_page`","|P089_status|","P089" ":ref:`P090_page`","|P090_status|","P090" + ":ref:`P092_page`","|P092_status|","P092" Internal GPIO handling diff --git a/docs/source/Plugin/_plugin_substitutions_p09x.repl b/docs/source/Plugin/_plugin_substitutions_p09x.repl index f9d9fba8c..cb74d283e 100644 --- a/docs/source/Plugin/_plugin_substitutions_p09x.repl +++ b/docs/source/Plugin/_plugin_substitutions_p09x.repl @@ -8,4 +8,15 @@ .. |P090_shortinfo| replace:: `.` .. |P090_maintainer| replace:: `TD-er` .. |P090_compileinfo| replace:: `.` -.. |P090_usedlibraries| replace:: `.` \ No newline at end of file +.. |P090_usedlibraries| replace:: `.` +.. |P092_name| replace:: :cyan:`DL-Bus (Technische Alternative)` +.. |P092_type| replace:: :cyan:`Heating` +.. |P092_typename| replace:: :cyan:`Heating - DL-Bus (Technische Alternative)` +.. |P092_status| replace:: :yellow:`TESTING` +.. |P092_github| replace:: P092_DLbus.ino +.. _P092_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P092_DLbus.ino +.. |P092_usedby| replace:: `.` +.. |P092_shortinfo| replace:: `.` +.. |P092_maintainer| replace:: `.` +.. |P092_compileinfo| replace:: `.` +.. |P092_usedlibraries| replace:: `.` diff --git a/lib/DLBus/DLBus.cpp b/lib/DLBus/DLBus.cpp new file mode 100644 index 000000000..e041af332 --- /dev/null +++ b/lib/DLBus/DLBus.cpp @@ -0,0 +1,372 @@ +#include "DLBus.h" +// +// DLBus reads and decodes the DL-Bus. +// The DL-Bus is used in heating control units e.g. sold by Technische Alternative (www.ta.co.at). +// Author uwekaditz + +//#define DLbus_DEBUG + +// Flags for pulse width (bit 0 is the content!) +#define DLbus_FlagSingleWidth 0x02 +#define DLbus_FlagDoubleWidth 0x04 +#define DLbus_FlagShorterThanSingleWidth 0x10 +#define DLbus_FlagBetweenDoubleSingleWidth 0x20 +#define DLbus_FlagLongerThanDoubleWidth 0x40 +#define DLbus_FlagLongerThanTwiceDoubleWidth 0x80 +#define DLbus_FlagsWrongTiming (DLbus_FlagLongerThanTwiceDoubleWidth | DLbus_FlagLongerThanDoubleWidth | DLbus_FlagBetweenDoubleSingleWidth | DLbus_FlagShorterThanSingleWidth) + +extern long usecPassedSince(unsigned long timestamp) ICACHE_RAM_ATTR; +extern void addToLog(byte loglevel, const String& string); + +//#define LOG_LEVEL_ERROR 1 +#define LOG_LEVEL_INFO 2 +#ifndef F +// Create a no-op F() macro so the code base still compiles outside of the +// Arduino framework. Thus we can safely use the Arduino 'F()' macro through-out +// the code base. That macro stores constants in Flash (PROGMEM) memory. +// See: https://github.com/crankyoldgit/IRremoteESP8266/issues/667 + #define F(x) x +#endif // F + +// Helper for ISR call +DLBus* DLBus::__instance = nullptr; +volatile static uint8_t* ISR_PtrChangeBitStream = nullptr; // pointer to received bit change stream + +DLBus::DLBus() +{ + if (__instance == nullptr) + { + __instance = this; + ISR_PtrChangeBitStream = DLbus_ChangeBitStream; + addToLog(LOG_LEVEL_INFO, F("Class DLBus created")); + } +} + +DLBus::~DLBus() +{ + if (__instance == this) + { + __instance = nullptr; + ISR_PtrChangeBitStream = nullptr; + addToLog(LOG_LEVEL_INFO, F("Class DLBus destroyed")); + } +} + +void DLBus::AddToInfoLog(const String& string) +{ + if ((IsLogLevelInfo) && (LogLevelInfo != 0xff)) + addToLog(LogLevelInfo, string); +} + +void DLBus::AddToErrorLog(const String& string) +{ + if (LogLevelError != 0xff) + addToLog(LogLevelError, string); +} + +void DLBus::attachDLBusInterrupt(void) +{ + ISR_Receiving = false; + attachInterrupt(digitalPinToInterrupt(ISR_DLB_Pin), ISR, CHANGE); +} + +void DLBus::StartReceiving(void) +{ + noInterrupts (); // make sure we don't get interrupted before we are ready + ISR_PulseCount = 0; + ISR_Receiving = (ISR_PtrChangeBitStream != nullptr); + ISR_AllBitsReceived = false; + interrupts (); // interrupts allowed now, next instruction WILL be executed +} + +void ICACHE_RAM_ATTR DLBus::ISR(void) +{ + if (__instance) + { + __instance->ISR_PinChanged(); + } +} + +void ICACHE_RAM_ATTR DLBus::ISR_PinChanged(void) +{ + long TimeDiff = usecPassedSince(ISR_TimeLastBitChange); // time difference to previous pulse in µs + ISR_TimeLastBitChange = micros(); // save last pin change time + if (ISR_Receiving) { + uint8_t val = digitalRead(ISR_DLB_Pin); // read state + // check pulse width + if (TimeDiff >= 2*ISR_MinDoublePulseWidth) val |= DLbus_FlagLongerThanTwiceDoubleWidth; // longer then 2x double pulse width + else if (TimeDiff > ISR_MaxDoublePulseWidth) val |= DLbus_FlagLongerThanDoubleWidth; // longer then double pulse width + else if (TimeDiff >= ISR_MinDoublePulseWidth) val |= DLbus_FlagDoubleWidth; // double pulse width + else if (TimeDiff > ISR_MaxPulseWidth) val |= DLbus_FlagBetweenDoubleSingleWidth; // between double and single pulse width + else if (TimeDiff < ISR_MinPulseWidth) val |= DLbus_FlagShorterThanSingleWidth; // shorter then single pulse width + else val |= DLbus_FlagSingleWidth; // single pulse width + if (ISR_PulseCount < 2) { + // check if sync is received + if (val & DLbus_FlagLongerThanTwiceDoubleWidth) { + // sync received + *ISR_PtrChangeBitStream = !(val & 0x01); + *(ISR_PtrChangeBitStream+1) = val; + ISR_PulseCount = 2; + } + else + ISR_PulseCount = 1; // flag that interrupt is receiving + } + else { + *(ISR_PtrChangeBitStream+ISR_PulseCount) = val; // set bit + ISR_PulseCount++; + ISR_Receiving = (ISR_PulseCount < ISR_PulseNumber); // stop P092_receiving when data frame is complete + ISR_AllBitsReceived = !ISR_Receiving; + } + } +} + +boolean DLBus::CheckTimings(void) { + uint8_t rawval, val; + uint8_t WrongTimeCnt = 0; + int i; +#ifdef DLbus_DEBUG + uint16_t WrongTimingArray[5][6]; +#endif // DLbus_DEBUG + +// AddToInfoLog(F("Receive stopped.")); + + ISR_PulseCount = 0; + for (i = 0; i <= ISR_PulseNumber; i++) { + // store DLbus_ChangeBitStream into ByteStream + rawval = *(ISR_PtrChangeBitStream+i); + if (rawval & DLbus_FlagsWrongTiming) { + // wrong DLbus_time_diff + if (ISR_PulseCount > 0) { +#ifdef DLbus_DEBUG + WrongTimingArray[WrongTimeCnt][0] = i; + WrongTimingArray[WrongTimeCnt][1] = ISR_PulseCount; + WrongTimingArray[WrongTimeCnt][2] = BitNumber; + WrongTimingArray[WrongTimeCnt][3] = rawval; +#endif // DLbus_DEBUG + if ((rawval == DLbus_FlagLongerThanTwiceDoubleWidth) && (*(ISR_PtrChangeBitStream+i-1) == (DLbus_FlagDoubleWidth | 0x01))) { + // Add two additional short pulses (low and high), previous bit is High and contains DLbus_FlagDoubleWidth + ProcessBit(0); + ProcessBit(1); +#ifdef DLbus_DEBUG + WrongTimingArray[WrongTimeCnt][4] = DLbus_FlagSingleWidth; + WrongTimingArray[WrongTimeCnt][5] = DLbus_FlagSingleWidth+1; +#endif // DLbus_DEBUG + } +#ifdef DLbus_DEBUG + else { + WrongTimingArray[WrongTimeCnt][4] = 0xff; + WrongTimingArray[WrongTimeCnt][5] = 0xff; + } +#endif // DLbus_DEBUG + WrongTimeCnt++; + if (WrongTimeCnt >=5) + return false; + } + } + else { + val = rawval & 0x01; + if ((rawval & DLbus_FlagDoubleWidth) == DLbus_FlagDoubleWidth) { + // double pulse width + ProcessBit(!val); + ProcessBit(val); + } + else { + // single pulse width + ProcessBit(val); + } + } + } +// AddToInfoLog(F("DLbus_ChangeBitStream copied.")); + +#ifdef DLbus_DEBUG + if (WrongTimeCnt > 0) { + if (IsLogLevelInfo) { + String log = F("Wrong Timings: "); + AddToInfoLog(log); + for (i = 0; i < WrongTimeCnt; i++) { + log = i + 1; + log += F(": PulseCount:"); + log += WrongTimingArray[i][1]; + log += F(": BitCount:"); + log += WrongTimingArray[i][2]; + log += F(" Value:0x"); + log += String(WrongTimingArray[i][3], HEX); + log += F(" ValueBefore:0x"); + log += String(*(ISR_PtrChangeBitStream+WrongTimingArray[i][0] - 1), HEX); + log += F(" ValueAfter:0x"); + log += String(*(ISR_PtrChangeBitStream+WrongTimingArray[i][0] + 1), HEX); + if (WrongTimingArray[i][4]!=0xff) { + log += F(" Added:0x"); + log += String(WrongTimingArray[i][4], HEX); + } + if (WrongTimingArray[i][5]!=0xff) { + log += F(" Added:0x"); + log += String(WrongTimingArray[i][5], HEX); + } + AddToInfoLog(log); + } + } + } +#endif // DLbus_DEBUG + return true; +} + +void DLBus::ProcessBit(uint8_t b) { + // ignore first pulse + ISR_PulseCount++; + if (ISR_PulseCount % 2) + return; + BitNumber = (ISR_PulseCount / 2); + if (b) + ByteStream[BitNumber / 8] |= (1 << (BitNumber % 8)); // set bit + else + ByteStream[BitNumber / 8] &= ~(1 << (BitNumber % 8)); // clear bit +} + +boolean DLBus::Processing(void) { +boolean inverted = false; +int16_t StartBit; // first bit of data frame (-1 not recognized) +String log; + AddToInfoLog(F("Processing...")); + StartBit = Analyze(); // find the data frame's beginning + // inverted signal? + while (StartBit == -1) { + if (inverted) { + AddToErrorLog(F("Error: Already inverted!")); + return false; + } + Invert(); // invert again + inverted = true; + StartBit = Analyze(); + if (StartBit == -1) { + AddToErrorLog(F("Error: No data frame available!")); + return false; + } + uint16_t RequiredBitStreamLength = (ISR_PulseNumber - DLBus_ReserveBytes)/DLBus_BitChangeFactor; + if ((BitNumber-StartBit) < RequiredBitStreamLength) { + // no complete data frame available (difference between start_bit and received bits is < RequiredBitStreamLength) + AddToErrorLog(F("Start bit too close to end of stream!")); + if (IsLogLevelInfo) { + log = F("# Required bits: "); + log += RequiredBitStreamLength; + log += F(" StartBit: "); + log += StartBit; + log += F(" / EndBit: "); + log += BitNumber; + AddToInfoLog(log); + } + return false; + } + } + + if (IsLogLevelInfo) { + log = F("StartBit: "); + log += StartBit; + log += F(" / EndBit: "); + log += BitNumber; + AddToInfoLog(log); + } + Trim(StartBit); // remove start and stop bits + + if (CheckDevice()) // check connected device + return true; + else { + AddToErrorLog(F("Error: Device not found!")); + return false; + } +} + +int DLBus::Analyze(void) { + uint8_t sync=0; + // find SYNC (16 * sequential 1) + for (int i = 0; i < BitNumber; i++) { + if (ReadBit(i)) + sync++; + else + sync = 0; + if (sync == DLBus_SyncBits) { + // finde erste 0 // find first 0 + while (ReadBit(i) == 1) + i++; + return i; // beginning of data frame + } + } + // no data frame available. check signal? + return -1; +} + +void DLBus::Invert(void) { + AddToInfoLog(F("Invert bit stream...")); + for (int i = 0; i < BitNumber; i++) + WriteBit(i, ReadBit(i) ? 0 : 1); // invert every bit +} + +uint8_t DLBus::ReadBit(int pos) { + int row = pos / 8; // detect position in bitmap + int col = pos % 8; + return (((ByteStream[row]) >> (col)) & 0x01); // return bit +} + +void DLBus::WriteBit(int pos, uint8_t set) { + int row = pos / 8; // detect position in bitmap + int col = pos % 8; + if (set) + ByteStream[row] |= 1 << col; // set bit + else + ByteStream[row] &= ~(1 << col); // clear bit +} + +void DLBus::Trim(int start_bit) { + for (int i = start_bit, bit = 0; i < BitNumber; i++) { + int offset = i - start_bit; + // ignore start and stop bits: + // start bits: 0 10 20 30, also x % 10 == 0 + // stop bits: 9 19 29 39, also (x+1) % 10 == 0 + if (offset % 10 && (offset + 1) % 10) { + WriteBit(bit, ReadBit(i)); + bit++; + } + } +} + +boolean DLBus::CheckDevice(void) { + // Data frame of a device? + if (ByteStream[0] == DeviceBytes[0]) { + if ((DeviceBytes[1] == 0) || (ByteStream[1] == DeviceBytes[1])) + return true; + } + if (IsLogLevelInfo) { + String log = F("# Received DeviceByte(s): 0x"); + log += String(ByteStream[0], HEX); + if (DeviceBytes[1] != 0) + log += String(ByteStream[1], HEX); + log += F(" Requested: 0x"); + log += String(DeviceBytes[0], HEX); + if (DeviceBytes[1] != 0) + log += String(DeviceBytes[1], HEX); + AddToInfoLog(log); + } + return false; +} + +boolean DLBus::CheckCRC(uint8_t IdxCRC) { + // CRC check sum + if (IdxCRC == 0) + return true; + AddToInfoLog(F("Check CRC...")); + uint16_t dataSum = 0; + for (int i = 0; i < IdxCRC; i++) + dataSum = dataSum + ByteStream[i]; + dataSum = dataSum & 0xff; + if (dataSum == ByteStream[IdxCRC]) + return true; + AddToErrorLog(F("Check CRC failed!")); + if (IsLogLevelInfo) { + String log = F("# Calculated CRC: 0x"); + log += String(dataSum, HEX); + log += F(" Received: 0x"); + log += String(ByteStream[IdxCRC], HEX); + AddToInfoLog(log); + } + return false; +} diff --git a/lib/DLBus/DLBus.h b/lib/DLBus/DLBus.h new file mode 100644 index 000000000..5e8ef99af --- /dev/null +++ b/lib/DLBus/DLBus.h @@ -0,0 +1,65 @@ +#ifndef DLBus_H +#define DLBus_H + +#include + +/*********************************************************************************************\ + DLBus subs to get values from the receiving bitstream +\*********************************************************************************************/ +// one data frame has data bytes + SYNC, e.g. 64 * (8+1+1) + 16 = 656 +// 656 * 2 = 1312 (twice as much as a data frame is saved +// so there's one complete data frame + +#define DLbus_MaxDataBytes 64 +#define DLbus_AdditionalRecBytes 2 +#define DLbus_StopBits 1 +#define DLbus_StartBits 1 +#define DLBus_SyncBits 16 +#define DLBus_ReserveBytes 20 +#define DLBus_BitChangeFactor 2 +#define DLbus_MaxDataBits (((DLbus_MaxDataBytes + DLbus_AdditionalRecBytes) * (DLbus_StartBits + 8 + DLbus_StopBits) + DLBus_SyncBits) * DLBus_BitChangeFactor) + DLBus_ReserveBytes + // MaxDataBits is double of the maximum bit length because each bit change is stored + // (((64+2) * (8+1+1) + 16) * 2) + 50 = 1402 bytes + +class DLBus +{ + public: + DLBus(); // constructor of DLBus object + ~DLBus(); // destructor of DLBus object + + volatile uint8_t ISR_DLB_Pin = 0xFF; + volatile boolean ISR_Receiving = false; // receiving flag + volatile boolean ISR_AllBitsReceived = false; + volatile uint16_t ISR_PulseCount; // number of received pulses + volatile uint16_t ISR_PulseNumber; // max naumber of the received pulses + volatile uint16_t ISR_MinPulseWidth, ISR_MaxPulseWidth, ISR_MinDoublePulseWidth, ISR_MaxDoublePulseWidth; + // identification bytes for each DL bus device + uint8_t DeviceBytes[2]; + uint8_t ByteStream[DLbus_MaxDataBits / 8 + 1]; // every bit gets sorted into a bitmap + boolean IsLogLevelInfo = false; + uint8_t LogLevelInfo = 0xff; + uint8_t LogLevelError = 0xFF; + void attachDLBusInterrupt(void); + void StartReceiving(void); + boolean CheckTimings(void); + boolean Processing(void); + boolean CheckCRC(uint8_t IdxCRC); + private: + volatile uint32_t ISR_TimeLastBitChange = 0; // remember time of last transition + uint8_t DLbus_ChangeBitStream[DLbus_MaxDataBits]; // received bit change stream (each bit change is extended to uint8_t, containing the timing flags) + uint16_t BitNumber; // bit number of the received DLbus_ChangeBitStream + static void ISR(void); + void ISR_PinChanged(void); + void ProcessBit(uint8_t b); + int Analyze(void); + void Invert(void); + uint8_t ReadBit(int pos); + void WriteBit(int pos, uint8_t set); + void Trim(int start_bit); + boolean CheckDevice(void); + static DLBus* __instance; + void AddToInfoLog(const String& string); + void AddToErrorLog(const String& string); +}; + +#endif diff --git a/lib/DLBus/keywords.txt b/lib/DLBus/keywords.txt new file mode 100644 index 000000000..d0c8c4bb0 --- /dev/null +++ b/lib/DLBus/keywords.txt @@ -0,0 +1,6 @@ +DLBus KEYWORD1 +attachDLBusInterrupt KEYWORD2 +StartReceiving KEYWORD2 +CheckTimings KEYWORD2 +Processing KEYWORD2 +CheckCRC KEYWORD2 diff --git a/src/_P092_DLbus.ino b/src/_P092_DLbus.ino new file mode 100644 index 000000000..71ee90b62 --- /dev/null +++ b/src/_P092_DLbus.ino @@ -0,0 +1,947 @@ +#ifdef USES_P092 + +//####################################################################################################### +//########################### Plugin 092: DL-bus from Technische Alternative ############################ +//####################################################################################################### + +/**************************************************\ + This plug-in reads and decodes the DL-Bus. + The DL-Bus is used in heating control units e.g. sold by Technische Alternative (www.ta.co.at). + + The idea for this plug-in is based on Martin Kropf's project UVR31_RF24 (https://github.com/martinkropf/UVR31_RF24) + + The plug-in is tested and workis fine for the ESR21 device. + The plug-in should be also able to decode the information from the + UVR31, UVR1611 and UVR 61-3 devices. + + The selected input needs a voltage divider as follows because the DL-Bus runs on 12 volts for + following devices: UVR31, UVR42, UVR64, HZR65, EEG30 and TFM66 + DLbus@12V - 8k6 - input@3.3V - 3k3 - ground + + For following devices just a pull up resistor is needed if the device is used stand alone: + UVR1611, UVR61-3 and ESR21 + + @uwekaditz 2020-03-01 Memory usage optimized + CHG: Moved arrays into the class DLBus + CHG: Moved arrays to PLUGIN_092_DEBUG + + @uwekaditz 2019-12-15 Memory usage optimized + CHG: Moved the array for the received bit changes to stativ uint_8t, the ISR call uses only a volatile pointer to it + CHG: some more defines and name changes for better explanation + + @uwekaditz 2019-12-14 Timing optimized + CHG: Removed the while (P092_receiving) loop. + CHG: Starting of the receiving and processing of the received bit stream are now done in the PLUGIN_ONCE_A_SECOND call + PLUGIN_READ call just uses the already processed data + + @uwekaditz 2019-12-08 Inital commit to mega + +\**************************************************/ + +#include + +#define PLUGIN_092 +#define PLUGIN_ID_092 92 +//#define PLUGIN_092_DEBUG // additional debug messages in the log +#define PLUGIN_NAME_092 "Heating - DL-Bus (Technische Alternative)" +#define PLUGIN_VALUENAME1_092 "Value" + +#define P092_DLbus_OptionCount 8 +#define P092_DLbus_ValueCount 1 +#define P092_DLbus_DeviceCount 5 + +uint8_t P092_Last_DLB_Pin; +boolean P092_init = false; +boolean P092_ReceivedOK = false; +uint32_t P092_LastReceived = 0; +struct _P092_DataStruct +{ + uint8_t DataBytes; + uint8_t DeviceByte0; + uint8_t DeviceByte1; + uint8_t DeviceBytes; + uint8_t DontCareBytes; + uint8_t TimeStampBytes; + uint8_t MaxSensors; + uint8_t MaxExtSensors; + uint8_t OutputBytes; + uint8_t SpeedBytes; + uint8_t AnalogBytes; + uint8_t VolumeBytes; + uint8_t MaxHeatMeters; + uint8_t CurrentHmBytes; + uint8_t MWhBytes; + + uint16_t DLbus_MinPulseWidth; + uint16_t DLbus_MaxPulseWidth; + uint16_t DLbus_MinDoublePulseWidth; + uint16_t DLbus_MaxDoublePulseWidth; + uint8_t IdxSensor; + uint8_t IdxExtSensor; + uint8_t IdxOutput; + uint8_t IdxDrehzahl; + uint8_t IdxAnalog; + uint8_t IdxHmRegister; + uint8_t IdxVolume; + uint8_t IdxHeatMeter1; + uint8_t IdxkWh1; + uint8_t IdxMWh1; + uint8_t IdxHeatMeter2; + uint8_t IdxkWh2; + uint8_t IdxMWh2; + uint8_t IdxHeatMeter3; + uint8_t IdxkWh3; + uint8_t IdxMWh3; + uint8_t IdxCRC; +} P092_DataSettings; + +typedef struct { + uint8_t Idx; + uint8_t mode; + float value; +} sP092_ReadData; + +DLBus *DLbus_Data = nullptr; + +// decoding the manchester code +// pulse width @ 488hz: 1000ms/488 = 2,048ms = 2048µs +// 2048µs / 2 = 1024µs (2 pulses for one bit) +// pulse width @ 50hz: 1000ms/50 = 20ms = 20000µs +// 20000µs / 2 = 10000µs (2 pulses for one bit) +#define P092_pulse_width_488 1024 // µs +#define P092_pulse_width_50 10000 // µs + +// % tolerance for variances at the pulse width +#define P092_percentage_variance 10 +// 1001 or 0110 are two sequential pulses without transition +#define P092_double_pulse_width_488 (P092_pulse_width_488 * 2) +#define P092_double_pulse_width_50 (P092_pulse_width_50 * 2) + +// calculating the tolerance limits for variances +#define P092_min_width_488 (P092_pulse_width_488 - (P092_pulse_width_488 * P092_percentage_variance / 100)) +#define P092_max_width_488 (P092_pulse_width_488 + (P092_pulse_width_488 * P092_percentage_variance / 100)) +#define P092_double_min_width_488 (P092_double_pulse_width_488 - (P092_pulse_width_488 * P092_percentage_variance / 100)) +#define P092_double_max_width_488 (P092_double_pulse_width_488 + (P092_pulse_width_488 * P092_percentage_variance / 100)) +#define P092_min_width_50 (P092_pulse_width_50 - (P092_pulse_width_50 * P092_percentage_variance / 100)) +#define P092_max_width_50 (P092_pulse_width_50 + (P092_pulse_width_50 * P092_percentage_variance / 100)) +#define P092_double_min_width_50 (P092_double_pulse_width_50 - (P092_pulse_width_50 * P092_percentage_variance / 100)) +#define P092_double_max_width_50 (P092_double_pulse_width_50 + (P092_pulse_width_50 * P092_percentage_variance / 100)) + +boolean P092_GetData(int OptionIdx, int CurIdx, sP092_ReadData* ReadData); + +boolean Plugin_092(uint8_t function, struct EventStruct *event, String& string) +{ + boolean success = false; + int OptionIdx, CurIdx; + sP092_ReadData P092_ReadData; + + uint8_t P092_MaxIdx[P092_DLbus_OptionCount]; + int P092_ValueType, P092_ValueIdx; + int P092_OptionValueDecimals[P092_DLbus_OptionCount] = { + // Dezimalstellen der Variablen + 0, //F("None") + 1, //[0,1°C] F("Sensor") + 1, //[0,1°C] F("Ext. sensor") + 0, // F("Digital output") + 0, // F("Speed step") + 1, //[0,1V] F("Analog output") + 1, //[0,1kW] F("Heat power (kW)") Attention: UVR1611 in 0,01kW + 4 //[0,0001MWh] F("Heat meter (MWh)") + }; + + + const String plugin_092_ValStr = F("p092_Value"); + const String plugin_092_IdxStr = F("p092_Idx"); + + + switch (function) + { + case PLUGIN_DEVICE_ADD: + { + Device[++deviceCount].Number = PLUGIN_ID_092; + Device[deviceCount].Type = DEVICE_TYPE_SINGLE; + Device[deviceCount].VType = SENSOR_TYPE_SINGLE; + Device[deviceCount].Ports = 0; + Device[deviceCount].PullUpOption = false; + Device[deviceCount].InverseLogicOption = false; + Device[deviceCount].FormulaOption = false; + Device[deviceCount].ValueCount = P092_DLbus_ValueCount; + Device[deviceCount].SendDataOption = true; + Device[deviceCount].TimerOption = true; + Device[deviceCount].GlobalSyncOption = true; + Device[deviceCount].DecimalsOnly = true; + break; + } + + case PLUGIN_GET_DEVICENAME: + { + string = F(PLUGIN_NAME_092); + break; + } + + case PLUGIN_GET_DEVICEVALUENAMES: + { + strcpy_P(ExtraTaskSettings.TaskDeviceValueNames[0], PSTR(PLUGIN_VALUENAME1_092)); + break; + } + + case PLUGIN_WEBFORM_LOAD: + { + P092_Last_DLB_Pin = CONFIG_PIN1; + + const String plugin_092_DefValueName = F(PLUGIN_VALUENAME1_092); + const int P092_OptionTypes[P092_DLbus_OptionCount] = { + // Index der Variablen + 0, //F("None") + 1, //F("Sensor") + 2, //F("Ext. sensor") + 3, //F("Digital output") + 4, //F("Speed step") + 5, //F("Analog output") + 6, //F("Heat power (kW)") + 7 //F("Heat meter (MWh)") + }; + const String Options[P092_DLbus_OptionCount] = { + F("None"), + F("Sensor"), + F("Ext. sensor"), + F("Digital output"), + F("Speed step"), + F("Analog output"), + F("Heat power (kW)"), + F("Heat meter (MWh)") + }; + const String Devices[P092_DLbus_DeviceCount] = { F("ESR21"), F("UVR31"), F("UVR1611"), F("UVR 61-3 (bis V8.2)"), F("UVR 61-3 (ab V8.3)") }; + const int DevTypes[P092_DLbus_DeviceCount] = { 21, 31, 1611, 6132, 6133 }; + + addFormSelector(F("DL-Bus Type"), F("p092_dlbtype"), P092_DLbus_DeviceCount, Devices, DevTypes, NULL, PCONFIG(0), true ); + + // Calculation of the max indices for each sensor type + // default indizes for UVR31 + P092_MaxIdx[0] = 0; // None + P092_MaxIdx[1] = 3; // Sensor + P092_MaxIdx[2] = 0; // Ext. sensor + P092_MaxIdx[3] = 1; // Digital output + P092_MaxIdx[4] = 0; // Speed step + P092_MaxIdx[5] = 0; // Analog output + P092_MaxIdx[6] = 0; // Heat power (kW) + P092_MaxIdx[7] = 0; // Heat meter (MWh) + switch (PCONFIG(0)) { + case 21: //ESR21 + P092_MaxIdx[2] = 6; // Ext. sensor + P092_MaxIdx[4] = 1; // Speed step + P092_MaxIdx[5] = 1; // Analog output + P092_MaxIdx[6] = 1; // Heat power (kW) + P092_MaxIdx[7] = 1; // Heat meter (MWh) + break; + case 1611: //UVR1611 + P092_MaxIdx[1] = 16; // Sensor + P092_MaxIdx[3] = 13; // Digital output + P092_MaxIdx[4] = 4; // Speed step + P092_MaxIdx[6] = 2; // Heat power (kW) + P092_MaxIdx[7] = 2; // Heat meter (MWh) + break; + case 6132: //UVR 61-3 (bis V8.2) + P092_MaxIdx[1] = 6; // Sensor + P092_MaxIdx[3] = 8; // Digital output + P092_MaxIdx[4] = 1; // Speed step + P092_MaxIdx[5] = 1; // Analog output + P092_MaxIdx[6] = 1; // Heat power (kW) + P092_MaxIdx[7] = 1; // Heat meter (MWh) + break; + case 6133: //UVR 61-3 (ab V8.3) + P092_MaxIdx[1] = 6; // Sensor + P092_MaxIdx[2] = 9; // Ext. sensor + P092_MaxIdx[3] = 3; // Digital output + P092_MaxIdx[4] = 1; // Speed step + P092_MaxIdx[5] = 2; // Analog output + P092_MaxIdx[6] = 3; // Heat power (kW) + P092_MaxIdx[7] = 3; // Heat meter (MWh) + break; + } + + addFormSubHeader(F("Inputs")); + + for (int i = 0; i < P092_DLbus_ValueCount; i++) { + P092_ValueType = PCONFIG(i + 1) >> 8; + P092_ValueIdx = PCONFIG(i + 1) & 0x00FF; + + addFormSelector(plugin_092_DefValueName, plugin_092_ValStr, P092_DLbus_OptionCount, Options, P092_OptionTypes, NULL, P092_ValueType, true); + if (P092_MaxIdx[P092_ValueType] > 1) { + CurIdx = P092_ValueIdx; + if (CurIdx < 1) { + CurIdx = 1; + } + if (CurIdx > P092_MaxIdx[P092_ValueType]) { + CurIdx = P092_MaxIdx[P092_ValueType]; + } + addHtml(F(" Index: ")); + addNumericBox(plugin_092_IdxStr, CurIdx, 1, P092_MaxIdx[P092_ValueType]); + } + } + + UserVar[event->BaseVarIndex] = NAN; + + success = true; + break; + } + + case PLUGIN_WEBFORM_SAVE: + { + PCONFIG(0) = getFormItemInt(F("p092_dlbtype")); + if (PCONFIG(0) == 1611) // only UVR1611 + P092_OptionValueDecimals[6] = 2; + + for (int i = 0; i < P092_DLbus_ValueCount; i++) { + OptionIdx = getFormItemInt(plugin_092_ValStr); + CurIdx = getFormItemInt(plugin_092_IdxStr); + if (CurIdx < 1) { + CurIdx = 1; + } + PCONFIG(i + 1) = (OptionIdx << 8) + CurIdx; + ExtraTaskSettings.TaskDeviceValueDecimals[event->BaseVarIndex + i] = P092_OptionValueDecimals[OptionIdx]; + } + + if (DLbus_Data == nullptr) { + addLog(LOG_LEVEL_ERROR, F("## P092_save: Error DL-Bus: Class not initialized!")); + return false; + } + + if (P092_Last_DLB_Pin != CONFIG_PIN1) { + // pin number is changed -> run a new init + P092_init = false; + if (DLbus_Data->ISR_DLB_Pin != 0xFF) { + // interrupt was already attached to P092_DLB_Pin + detachInterrupt(digitalPinToInterrupt(DLbus_Data->ISR_DLB_Pin)); + addLog(LOG_LEVEL_INFO, F("P092_save: detachInterrupt")); + } + } + +#ifdef PLUGIN_092_DEBUG + if (loglevelActiveFor(LOG_LEVEL_INFO)) { + + String log = F("PLUGIN_WEBFORM_SAVE :"); + log += F(" DLB_Pin:"); + log += CONFIG_PIN1; + log += F(" DLbus_MinPulseWidth:"); + log += P092_DataSettings.DLbus_MinPulseWidth; + log += F(" DLbus_MaxPulseWidth:"); + log += P092_DataSettings.DLbus_MaxPulseWidth; + log += F(" DLbus_MinDoublePulseWidth:"); + log += P092_DataSettings.DLbus_MinDoublePulseWidth; + log += F(" DLbus_MaxDoublePulseWidth:"); + log += P092_DataSettings.DLbus_MaxDoublePulseWidth; + log += F(" IdxSensor:"); + log += P092_DataSettings.IdxSensor; + log += F(" IdxExtSensor:"); + log += P092_DataSettings.IdxExtSensor; + log += F(" IdxOutput:"); + log += P092_DataSettings.IdxOutput; + if (P092_DataSettings.SpeedBytes > 0) { + log += F(" IdxDrehzahl:"); + log += P092_DataSettings.IdxDrehzahl; + } + if (P092_DataSettings.AnalogBytes > 0) { + log += F(" IdxAnalog:"); + log += P092_DataSettings.IdxAnalog; + } + if (P092_DataSettings.MaxHeatMeters > 0) { + log += F(" IdxHmRegister:"); + log += P092_DataSettings.IdxHmRegister; + } + if (P092_DataSettings.VolumeBytes > 0) { + log += F(" IdxVolume:"); + log += P092_DataSettings.IdxVolume; + } + if (P092_DataSettings.MaxHeatMeters > 0) { + log += F(" IdxHM1:"); + log += P092_DataSettings.IdxHeatMeter1; + log += F(" IdxkWh1:"); + log += P092_DataSettings.IdxkWh1; + log += F(" IdxMWh1:"); + log += P092_DataSettings.IdxMWh1; + } + if (P092_DataSettings.MaxHeatMeters > 1) { + log += F(" IdxHM2:"); + log += P092_DataSettings.IdxHeatMeter2; + log += F(" IdxkWh2:"); + log += P092_DataSettings.IdxkWh2; + log += F(" IdxMWh2:"); + log += P092_DataSettings.IdxMWh2; + } + if (P092_DataSettings.MaxHeatMeters > 2) { + log += F(" IdxHM3:"); + log += P092_DataSettings.IdxHeatMeter3; + log += F(" IdxkWh3:"); + log += P092_DataSettings.IdxkWh3; + log += F(" IdxMWh3:"); + log += P092_DataSettings.IdxMWh3; + } + log += F(" IdxCRC:"); + log += P092_DataSettings.IdxCRC; + addLog(LOG_LEVEL_INFO, log); + } +#endif // PLUGIN_092_DEBUG + UserVar[event->BaseVarIndex] = NAN; + success = true; + break; + } + + case PLUGIN_INIT: + { + if (P092_init) { + addLog(LOG_LEVEL_ERROR, F("P092_init -> Already done!")); + } + else { + addLog(LOG_LEVEL_INFO, F("P092_init ...")); + if (DLbus_Data == nullptr) { + DLbus_Data = new DLBus; + if (DLbus_Data == nullptr) { + addLog(LOG_LEVEL_ERROR, F("## P092_init: Error DL-Bus: Class not initialized!")); + return false; + } + DLbus_Data->LogLevelInfo = LOG_LEVEL_INFO; + DLbus_Data->LogLevelError = LOG_LEVEL_ERROR; + DLbus_Data->IsLogLevelInfo = loglevelActiveFor(LOG_LEVEL_INFO); + } + P092_init = true; + P092_ReceivedOK = false; + addLog(LOG_LEVEL_INFO, F("P092_init: attachInterrupt")); + DLbus_Data->ISR_DLB_Pin = CONFIG_PIN1; + pinMode(CONFIG_PIN1, INPUT_PULLUP); + // on a CHANGE on the data pin P092_Pin_changed is called + DLbus_Data->attachDLBusInterrupt(); + UserVar[event->BaseVarIndex] = NAN; + } + success = true; + break; + } + + case PLUGIN_ONCE_A_SECOND: + { + if (WiFi.status() != WL_CONNECTED) { + return false; + } + if (P092_init == false) { + return false; + } + if (DLbus_Data == nullptr) + return false; + if (DLbus_Data->ISR_Receiving) { + return false; + } + Plugin_092_SetIndices(PCONFIG(0)); + if (DLbus_Data->ISR_AllBitsReceived) { + DLbus_Data->ISR_AllBitsReceived = false; + success = DLbus_Data->CheckTimings(); + if (success) + success = DLbus_Data->Processing(); + if (success) + success = DLbus_Data->CheckCRC(P092_DataSettings.IdxCRC); + if (success) { + addLog(LOG_LEVEL_INFO, F("Received data OK")); + P092_LastReceived = millis(); + } + P092_ReceivedOK = success; + } + else + success = P092_ReceivedOK; + + if ((P092_ReceivedOK == false) || (timePassedSince(P092_LastReceived)>(static_cast(Settings.TaskDeviceTimer[event->TaskIndex] * 1000/2)))) { + Plugin_092_StartReceiving(); + success = true; + } + break; + } + + case PLUGIN_READ: + { + addLog(LOG_LEVEL_ERROR, F("PLUGIN_092_READ")); + if (WiFi.status() != WL_CONNECTED) { + // too busy for DLbus while wifi connect is running + addLog(LOG_LEVEL_ERROR, F("## P092_read: Error DL-Bus: WiFi not connected!")); + return false; + } + if (P092_init == false) { + addLog(LOG_LEVEL_ERROR, F("## P092_read: Error DL-Bus: Not initialized!")); + return false; + } + if (DLbus_Data == nullptr) { + addLog(LOG_LEVEL_ERROR, F("## P092_read: Error DL-Bus: Class not initialized!")); + return false; + } + if (DLbus_Data->ISR_DLB_Pin != CONFIG_PIN1) { + String log = F("## P092_read: Error DL-Bus: Device Pin setting not correct!"); + log += F(" DLB_Pin:"); + log += DLbus_Data->ISR_DLB_Pin; + log += F(" Setting:"); + log += CONFIG_PIN1; + addLog(LOG_LEVEL_ERROR, log); + return false; + } + success = P092_ReceivedOK; + if (P092_ReceivedOK == false) { + addLog(LOG_LEVEL_INFO, F("P092_read: Still receiving DL-Bus bits!")); + } + else { + for (int i = 0; i < P092_DLbus_ValueCount; i++) { + OptionIdx = PCONFIG(i + 1) >> 8; + CurIdx = PCONFIG(i + 1) & 0x00FF; + if (P092_GetData(OptionIdx, CurIdx, &P092_ReadData)) { + UserVar[event->BaseVarIndex + i] = P092_ReadData.value; + } + else { + addLog(LOG_LEVEL_ERROR, F("## P092_read: Error: No readings!")); + } + } + } + break; + } + } + return success; +} + +void Plugin_092_SetIndices(int DeviceIndex) { + // Set the indices for the DL bus packet +int iDeviceBytes, iDontCareBytes, iTimeStampBytes; + + //default settings for ESR21 + P092_DataSettings.DataBytes = 31; + P092_DataSettings.DLbus_MinPulseWidth = P092_min_width_488; + P092_DataSettings.DLbus_MaxPulseWidth = P092_max_width_488; + P092_DataSettings.DLbus_MinDoublePulseWidth = P092_double_min_width_488; + P092_DataSettings.DLbus_MaxDoublePulseWidth = P092_double_max_width_488; + + P092_DataSettings.DeviceByte0 = 0x70; + P092_DataSettings.DeviceByte1 = 0x8F; + iDeviceBytes = 2; + iDontCareBytes = 0; + iTimeStampBytes = 0; + P092_DataSettings.MaxSensors = 3; + P092_DataSettings.MaxExtSensors = 6; + P092_DataSettings.OutputBytes = 1; + P092_DataSettings.SpeedBytes = 1; + P092_DataSettings.AnalogBytes = 1; + P092_DataSettings.VolumeBytes = 0; + P092_DataSettings.MaxHeatMeters = 1; + P092_DataSettings.CurrentHmBytes = 2; + P092_DataSettings.MWhBytes = 2; + P092_DataSettings.IdxCRC = 30; + + switch (DeviceIndex) { + case 31: //UVR31 + P092_DataSettings.DataBytes = 8; + P092_DataSettings.DLbus_MinPulseWidth = P092_min_width_50; + P092_DataSettings.DLbus_MaxPulseWidth = P092_max_width_50; + P092_DataSettings.DLbus_MinDoublePulseWidth = P092_double_min_width_50; + P092_DataSettings.DLbus_MaxDoublePulseWidth = P092_double_max_width_50; + + P092_DataSettings.DeviceByte0 = 0x30; + P092_DataSettings.DeviceByte1 = 0; + iDeviceBytes = 1; + P092_DataSettings.MaxExtSensors = 0; + P092_DataSettings.SpeedBytes = 0; + P092_DataSettings.AnalogBytes = 0; + P092_DataSettings.MaxHeatMeters = 0; + P092_DataSettings.CurrentHmBytes = 0; + P092_DataSettings.MWhBytes = 0; + P092_DataSettings.IdxCRC = 0; + break; + case 1611: //UVR1611 + P092_DataSettings.DataBytes = 64; + + P092_DataSettings.DeviceByte0 = 0x80; + P092_DataSettings.DeviceByte1 = 0x7F; + iDontCareBytes = 1; + iTimeStampBytes = 5; + P092_DataSettings.MaxSensors = 16; + P092_DataSettings.MaxExtSensors = 0; + P092_DataSettings.OutputBytes = 2; + P092_DataSettings.SpeedBytes = 4; + P092_DataSettings.AnalogBytes = 0; + P092_DataSettings.MaxHeatMeters = 2; + P092_DataSettings.CurrentHmBytes = 4; + P092_DataSettings.IdxCRC = P092_DataSettings.DataBytes-1; + + break; + case 6132: //UVR 61-3 (up to V8.2) + P092_DataSettings.DataBytes = 35; + + P092_DataSettings.DeviceByte0 = 0x90; + P092_DataSettings.DeviceByte1 = 0x6F; + iDontCareBytes = 1; + iTimeStampBytes = 5; + P092_DataSettings.MaxSensors = 6; + P092_DataSettings.MaxExtSensors = 0; + P092_DataSettings.VolumeBytes = 2; + P092_DataSettings.MWhBytes = 4; + P092_DataSettings.IdxCRC = P092_DataSettings.DataBytes-1; + + break; + case 6133: //UVR 61-3 (from V8.3) + P092_DataSettings.DataBytes = 62; + + P092_DataSettings.DeviceByte0 = 0x90; + P092_DataSettings.DeviceByte1 = 0x9F; + iDontCareBytes = 1; + iTimeStampBytes = 5; + P092_DataSettings.MaxSensors = 6; + P092_DataSettings.MaxExtSensors = 9; + P092_DataSettings.MaxHeatMeters = 3; + P092_DataSettings.IdxCRC = P092_DataSettings.DataBytes-1; + + break; + } + P092_DataSettings.IdxSensor = iDeviceBytes + iDontCareBytes + iTimeStampBytes; + P092_DataSettings.IdxExtSensor = P092_DataSettings.IdxSensor + 2 * P092_DataSettings.MaxSensors; + P092_DataSettings.IdxOutput = P092_DataSettings.IdxExtSensor + 2 * P092_DataSettings.MaxExtSensors; + P092_DataSettings.IdxDrehzahl = P092_DataSettings.IdxOutput + P092_DataSettings.OutputBytes; + P092_DataSettings.IdxAnalog = P092_DataSettings.IdxDrehzahl + P092_DataSettings.SpeedBytes; + P092_DataSettings.IdxHmRegister = P092_DataSettings.IdxAnalog + P092_DataSettings.AnalogBytes; + P092_DataSettings.IdxVolume = P092_DataSettings.IdxHmRegister + 1; + P092_DataSettings.IdxHeatMeter1 = P092_DataSettings.IdxVolume + P092_DataSettings.VolumeBytes; + P092_DataSettings.IdxkWh1 = P092_DataSettings.IdxHeatMeter1 + P092_DataSettings.CurrentHmBytes; + P092_DataSettings.IdxMWh1 = P092_DataSettings.IdxkWh1 + 2; + P092_DataSettings.IdxHeatMeter2 = P092_DataSettings.IdxMWh1 + P092_DataSettings.MWhBytes; + P092_DataSettings.IdxkWh2 = P092_DataSettings.IdxHeatMeter2 + P092_DataSettings.CurrentHmBytes; + P092_DataSettings.IdxMWh2 = P092_DataSettings.IdxkWh2 + 2; + P092_DataSettings.IdxHeatMeter3 = P092_DataSettings.IdxMWh2 + P092_DataSettings.MWhBytes; + P092_DataSettings.IdxkWh3 = P092_DataSettings.IdxHeatMeter3 + P092_DataSettings.CurrentHmBytes; + P092_DataSettings.IdxMWh3 = P092_DataSettings.IdxkWh3 + 2; + + return; +} +/*********************************************************************************************\ + DLBus subs to get values from the P092_receiving bitstream +\*********************************************************************************************/ + +// sensor types +#define DLbus_UNUSED 0b000 +#define DLbus_Sensor_DIGITAL 0b001 +#define DLbus_Sensor_TEMP 0b010 +#define DLbus_Sensor_VOLUME_FLOW 0b011 +#define DLbus_Sensor_RAYS 0b110 +#define DLbus_Sensor_ROOM 0b111 + +// room sensor modes +#define DLbus_RSM_AUTO 0b00 +#define DLbus_RSM_NORMAL 0b01 +#define DLbus_RSM_LOWER 0b10 +#define DLbus_RSM_STANDBY 0b11 + +boolean P092_fetch_sensor(int number, sP092_ReadData* ReadData); +boolean P092_fetch_output(int number, sP092_ReadData* ReadData); // digital output byte(s) +boolean P092_fetch_speed(int number, sP092_ReadData* ReadData); // speed byte(s) +boolean P092_fetch_analog(int number, sP092_ReadData* ReadData); // analog byte(s) +boolean P092_fetch_heatpower(int number, sP092_ReadData* ReadData); // heat power(s) +boolean P092_fetch_heatmeter(int number, sP092_ReadData* ReadData); // heat meters(s) + +// heat meter +typedef struct { + uint8_t IndexIsValid; + int32_t power_index; + int32_t kwh_index; + int32_t mwh_index; +} sDLbus_HMindex; +sDLbus_HMindex P092_CheckHmRegister(int number); + +/****************\ + DLBus P092_receiving +\****************/ + +void Plugin_092_StartReceiving(void) { + DLbus_Data->ISR_Receiving = false; + DLbus_Data->DeviceBytes[0] = P092_DataSettings.DeviceByte0; + DLbus_Data->DeviceBytes[1] = P092_DataSettings.DeviceByte1; + DLbus_Data->ISR_PulseNumber = (((P092_DataSettings.DataBytes + DLbus_AdditionalRecBytes) * (DLbus_StartBits + 8 + DLbus_StopBits) + DLBus_SyncBits) * DLBus_BitChangeFactor) + DLBus_ReserveBytes; + DLbus_Data->ISR_MinPulseWidth = P092_DataSettings.DLbus_MinPulseWidth; + DLbus_Data->ISR_MaxPulseWidth = P092_DataSettings.DLbus_MaxPulseWidth; + DLbus_Data->ISR_MinDoublePulseWidth = P092_DataSettings.DLbus_MinDoublePulseWidth; + DLbus_Data->ISR_MaxDoublePulseWidth = P092_DataSettings.DLbus_MaxDoublePulseWidth; + DLbus_Data->StartReceiving(); + uint32_t start=millis(); + addLog(LOG_LEVEL_INFO, F("P092_receiving ...")); + while ((timePassedSince(start)<100) && (DLbus_Data->ISR_PulseCount == 0)) { + // wait for first pulse received (timeout 100ms) + yield(); + } + if (DLbus_Data->ISR_PulseCount == 0) { + // nothing received + DLbus_Data->ISR_Receiving = false; + addLog(LOG_LEVEL_ERROR, F("## StartReceiving: Error: Nothing received! No DL bus connected!")); + } +} + +/****************\ + DLBus get data +\****************/ + +boolean P092_GetData(int OptionIdx, int CurIdx, sP092_ReadData* ReadData) { + String log; + boolean result = false; + switch (OptionIdx) { + case 1: //F("Sensor") + log = F("Get Sensor"); + log += CurIdx; + if (CurIdx > P092_DataSettings.MaxSensors) { + result=false; + break; + } + ReadData->Idx = P092_DataSettings.IdxSensor; + result = P092_fetch_sensor(CurIdx, ReadData); + break; + case 2: //F("Sensor") + log = F("Get ExtSensor"); + log += CurIdx; + if (CurIdx > P092_DataSettings.MaxExtSensors) { + result=false; + break; + } + ReadData->Idx = P092_DataSettings.IdxExtSensor; + result = P092_fetch_sensor(CurIdx, ReadData); + break; + case 3: //F("Digital output") + log = F("Get DigitalOutput"); + log += CurIdx; + if (CurIdx > (8 * P092_DataSettings.OutputBytes)) { + result=false; + break; + } + result = P092_fetch_output(CurIdx, ReadData); + break; + case 4: //F("Speed step") + log = F("Get SpeedStep"); + log += CurIdx; + if (CurIdx > P092_DataSettings.SpeedBytes) { + result=false; + break; + } + result = P092_fetch_speed(CurIdx, ReadData); + break; + case 5: //F("Analog output") + log = F("Get AnalogOutput"); + log += CurIdx; + if (CurIdx > P092_DataSettings.AnalogBytes) { + result=false; + break; + } + result = P092_fetch_analog(CurIdx, ReadData); + break; + case 6: //F("Heat power (kW)") + log = F("Get HeatPower"); + log += CurIdx; + if (CurIdx > P092_DataSettings.MaxHeatMeters) { + result=false; + break; + } + result = P092_fetch_heatpower(CurIdx, ReadData); + break; + case 7: //F("Heat meter (MWh)" + log = F("Get HeatMeter"); + log += CurIdx; + if (CurIdx > P092_DataSettings.MaxHeatMeters) { + result=false; + break; + } + result = P092_fetch_heatmeter(CurIdx, ReadData); + break; + } + if (loglevelActiveFor(LOG_LEVEL_INFO)) { + log += F(": "); + if (result) { + log += String(ReadData->value, 1); + } + else { + log += F("nan"); + } + addLog(LOG_LEVEL_INFO, log); + } + return result; +} + +boolean P092_fetch_sensor(int number, sP092_ReadData* ReadData) { + float value; + ReadData->mode = -1; + number = ReadData->Idx + (number - 1) * 2; + int32_t sensorvalue = (DLbus_Data->ByteStream[number + 1] << 8) | DLbus_Data->ByteStream[number]; + if (sensorvalue == 0) { + return false; + } + uint8_t sensortype = (sensorvalue & 0x7000) >> 12; + if (!(sensorvalue & 0x8000)) { // sign positive + sensorvalue &= 0xfff; + // calculations for different sensor types + switch (sensortype) { + case DLbus_Sensor_DIGITAL: + value = false; + break; + case DLbus_Sensor_TEMP: + value = sensorvalue * 0.1; + break; + case DLbus_Sensor_RAYS: + value = sensorvalue; + break; + case DLbus_Sensor_VOLUME_FLOW: + value = sensorvalue * 4; + break; + case DLbus_Sensor_ROOM: + ReadData->mode = (sensorvalue & 0x600) >> 9; + value = (sensorvalue & 0x1ff) * 0.1; + break; + default: + return false; + } + } + else { // sign negative + sensorvalue |= 0xf000; + // calculations for different sensor types + switch (sensortype) { + case DLbus_Sensor_DIGITAL: + value = true; + break; + case DLbus_Sensor_TEMP: + value = (sensorvalue - 0x10000) * 0.1; + break; + case DLbus_Sensor_RAYS: + value = sensorvalue - 0x10000; + break; + case DLbus_Sensor_VOLUME_FLOW: + value = (sensorvalue - 0x10000) * 4; + break; + case DLbus_Sensor_ROOM: + ReadData->mode = (sensorvalue & 0x600) >> 9; + value = ((sensorvalue & 0x1ff) - 0x10000) * 0.1; + break; + default: + return false; + } + } + ReadData->value = value; + return true; +} + +boolean P092_fetch_output(int number, sP092_ReadData* ReadData) { + int32_t outputs; + + if (P092_DataSettings.OutputBytes > 1) + outputs = (DLbus_Data->ByteStream[P092_DataSettings.IdxOutput + 1] << 8) | DLbus_Data->ByteStream[P092_DataSettings.IdxOutput]; + else + outputs = DLbus_Data->ByteStream[P092_DataSettings.IdxOutput]; + if (outputs & (1 << (number - 1))) + ReadData->value = 1; + else + ReadData->value = 0; + return true; +} + +boolean P092_fetch_speed(int number, sP092_ReadData* ReadData) { + uint8_t speedbyte; + + if ((P092_DataSettings.IdxDrehzahl + (number - 1)) >= P092_DataSettings.IdxAnalog) { + // wrong index for speed, overlapping next index (IdxAnalog) + return false; + } + speedbyte = DLbus_Data->ByteStream[P092_DataSettings.IdxDrehzahl + (number - 1)]; + if (speedbyte & 0x80) + return false; + ReadData->value = (speedbyte & 0x1f); + return true; +} + +boolean P092_fetch_analog(int number, sP092_ReadData* ReadData) { + uint8_t analogbyte; + + if ((P092_DataSettings.IdxAnalog + (number - 1)) >= P092_DataSettings.IdxHmRegister) { + // wrong index for analog, overlapping next index (IdxHmRegister) + return false; + } + analogbyte = DLbus_Data->ByteStream[P092_DataSettings.IdxAnalog + (number - 1)]; + if (analogbyte & 0x80) + return false; + ReadData->value = (analogbyte * 0.1); + return true; +} + +sDLbus_HMindex P092_CheckHmRegister(int number) { +sDLbus_HMindex result; + + result.IndexIsValid = 0; + switch (number) { + case 1: + if ((DLbus_Data->ByteStream[P092_DataSettings.IdxHmRegister] & 0x1) == 0) + return result; + result.power_index = P092_DataSettings.IdxHeatMeter1; + result.kwh_index = P092_DataSettings.IdxkWh1; + result.mwh_index = P092_DataSettings.IdxMWh1; + break; + case 2: + if ((DLbus_Data->ByteStream[P092_DataSettings.IdxHmRegister] & 0x2) == 0) + return result; + result.power_index = P092_DataSettings.IdxHeatMeter2; + result.kwh_index = P092_DataSettings.IdxkWh2; + result.mwh_index = P092_DataSettings.IdxMWh2; + break; + case 3: + if ((DLbus_Data->ByteStream[P092_DataSettings.IdxHmRegister] & 0x4) == 0) + return result; + result.power_index = P092_DataSettings.IdxHeatMeter3; + result.kwh_index = P092_DataSettings.IdxkWh3; + result.mwh_index = P092_DataSettings.IdxMWh3; + break; + default: + return result; + } + result.IndexIsValid = 1; + return result; +} + +boolean P092_fetch_heatpower(int number, sP092_ReadData* ReadData) { + // current power + int32_t high; + sDLbus_HMindex HMindex = P092_CheckHmRegister(number); + if (HMindex.IndexIsValid == 0) + return false; + uint8_t b1 = DLbus_Data->ByteStream[HMindex.power_index]; + uint8_t b2 = DLbus_Data->ByteStream[HMindex.power_index + 1]; + if (P092_DataSettings.CurrentHmBytes > 2) { + uint8_t b3 = DLbus_Data->ByteStream[HMindex.power_index + 2]; + uint8_t b4 = DLbus_Data->ByteStream[HMindex.power_index + 3]; + high = 0x10000 * b4 + 0x100 * b3 + b2; + int low = (b1 * 10) / 0x100; + if (!(b4 & 0x80)) // sign positive + ReadData->value = (10 * high + low) / 100; + else // sign negative + ReadData->value = (10 * (high - 0x10000) - low) / 100; + } + else { + high = (b2 << 8) | b1; + if ((b2 & 0x80) == 0) // sign positive + ReadData->value = high / 10; + else // sign negative + ReadData->value = (high - 0x10000) / 10; + } + return true; +} + +boolean P092_fetch_heatmeter(int number, sP092_ReadData* ReadData) { + // heat meter + int32_t heat_meter; + float heat_meter_mwh; + + sDLbus_HMindex HMindex = P092_CheckHmRegister(number); + if (HMindex.IndexIsValid == 0) + return false; + heat_meter = (DLbus_Data->ByteStream[HMindex.kwh_index + 1] << 8) | DLbus_Data->ByteStream[HMindex.kwh_index]; + heat_meter_mwh = (heat_meter * 0.1) / 1000; // in MWh + if (heat_meter_mwh > 1.0) { + // in kWh + heat_meter = heat_meter_mwh; + heat_meter_mwh -= heat_meter; + } + // MWh + heat_meter = (DLbus_Data->ByteStream[HMindex.mwh_index + 1] << 8) | DLbus_Data->ByteStream[HMindex.mwh_index]; + ReadData->value = heat_meter_mwh + heat_meter; + return true; +} + +#endif // USES_P092 From 300eb35629813b3fe4cc0e60e6c34f2c75b13a04 Mon Sep 17 00:00:00 2001 From: uwekaditz <55511593+uwekaditz@users.noreply.github.com> Date: Mon, 2 Mar 2020 18:57:24 +0100 Subject: [PATCH 13/14] Merge conflicts solved --- .../Plugin/_plugin_substitutions_p09x.repl | 4 - src/_P092_DLbus.ino | 819 ------------------ 2 files changed, 823 deletions(-) diff --git a/docs/source/Plugin/_plugin_substitutions_p09x.repl b/docs/source/Plugin/_plugin_substitutions_p09x.repl index a3feef908..cb74d283e 100644 --- a/docs/source/Plugin/_plugin_substitutions_p09x.repl +++ b/docs/source/Plugin/_plugin_substitutions_p09x.repl @@ -20,7 +20,3 @@ .. |P092_maintainer| replace:: `.` .. |P092_compileinfo| replace:: `.` .. |P092_usedlibraries| replace:: `.` -<<<<<<< HEAD -======= - ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 diff --git a/src/_P092_DLbus.ino b/src/_P092_DLbus.ino index c70cc07f7..71ee90b62 100644 --- a/src/_P092_DLbus.ino +++ b/src/_P092_DLbus.ino @@ -21,13 +21,10 @@ For following devices just a pull up resistor is needed if the device is used stand alone: UVR1611, UVR61-3 and ESR21 -<<<<<<< HEAD @uwekaditz 2020-03-01 Memory usage optimized CHG: Moved arrays into the class DLBus CHG: Moved arrays to PLUGIN_092_DEBUG -======= ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 @uwekaditz 2019-12-15 Memory usage optimized CHG: Moved the array for the received bit changes to stativ uint_8t, the ISR call uses only a volatile pointer to it CHG: some more defines and name changes for better explanation @@ -41,11 +38,8 @@ \**************************************************/ -<<<<<<< HEAD #include -======= ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 #define PLUGIN_092 #define PLUGIN_ID_092 92 //#define PLUGIN_092_DEBUG // additional debug messages in the log @@ -56,23 +50,10 @@ #define P092_DLbus_ValueCount 1 #define P092_DLbus_DeviceCount 5 -<<<<<<< HEAD -======= -void P092_Pin_changed() ICACHE_RAM_ATTR; -volatile uint8_t P092_DLB_Pin = 0xFF; -volatile boolean P092_receiving = false; // receiving flag -volatile boolean P092_AllBitsReceived = false; ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 uint8_t P092_Last_DLB_Pin; boolean P092_init = false; boolean P092_ReceivedOK = false; uint32_t P092_LastReceived = 0; -<<<<<<< HEAD -======= -uint8_t P092_MaxIdx[P092_DLbus_OptionCount]; -int P092_ValueType[P092_DLbus_ValueCount]; -int P092_ValueIdx[P092_DLbus_ValueCount]; ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 struct _P092_DataStruct { uint8_t DataBytes; @@ -119,36 +100,8 @@ typedef struct { uint8_t mode; float value; } sP092_ReadData; -<<<<<<< HEAD DLBus *DLbus_Data = nullptr; -======= -sP092_ReadData P092_ReadData; - -int P092_OptionTypes[P092_DLbus_OptionCount] = { - // Index der Variablen - 0, //F("None") - 1, //F("Sensor") - 2, //F("Ext. sensor") - 3, //F("Digital output") - 4, //F("Speed step") - 5, //F("Analog output") - 6, //F("Heat power (kW)") - 7 //F("Heat meter (MWh)") -}; - -int P092_OptionValueDecimals[P092_DLbus_OptionCount] = { - // Dezimalstellen der Variablen - 0, //F("None") - 1, //[0,1°C] F("Sensor") - 1, //[0,1°C] F("Ext. sensor") - 0, // F("Digital output") - 0, // F("Speed step") - 1, //[0,1V] F("Analog output") - 1, //[0,1kW] F("Heat power (kW)") Attention: UVR1611 in 0,01kW - 4 //[0,0001MWh] F("Heat meter (MWh)") -}; ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 // decoding the manchester code // pulse width @ 488hz: 1000ms/488 = 2,048ms = 2048µs @@ -174,16 +127,12 @@ int P092_OptionValueDecimals[P092_DLbus_OptionCount] = { #define P092_double_min_width_50 (P092_double_pulse_width_50 - (P092_pulse_width_50 * P092_percentage_variance / 100)) #define P092_double_max_width_50 (P092_double_pulse_width_50 + (P092_pulse_width_50 * P092_percentage_variance / 100)) -<<<<<<< HEAD boolean P092_GetData(int OptionIdx, int CurIdx, sP092_ReadData* ReadData); -======= ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 boolean Plugin_092(uint8_t function, struct EventStruct *event, String& string) { boolean success = false; int OptionIdx, CurIdx; -<<<<<<< HEAD sP092_ReadData P092_ReadData; uint8_t P092_MaxIdx[P092_DLbus_OptionCount]; @@ -203,15 +152,6 @@ boolean Plugin_092(uint8_t function, struct EventStruct *event, String& string) const String plugin_092_ValStr = F("p092_Value"); const String plugin_092_IdxStr = F("p092_Idx"); -======= - - const String plugin_092_Values[P092_DLbus_ValueCount] = { - F("p092_Value") - }; - const String plugin_092_Indizes[P092_DLbus_ValueCount] = { - F("p092_Idx") - }; ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 switch (function) @@ -249,7 +189,6 @@ boolean Plugin_092(uint8_t function, struct EventStruct *event, String& string) { P092_Last_DLB_Pin = CONFIG_PIN1; -<<<<<<< HEAD const String plugin_092_DefValueName = F(PLUGIN_VALUENAME1_092); const int P092_OptionTypes[P092_DLbus_OptionCount] = { // Index der Variablen @@ -261,10 +200,6 @@ boolean Plugin_092(uint8_t function, struct EventStruct *event, String& string) 5, //F("Analog output") 6, //F("Heat power (kW)") 7 //F("Heat meter (MWh)") -======= - const String plugin_092_ValueNames[P092_DLbus_ValueCount] = { - F(PLUGIN_VALUENAME1_092) ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 }; const String Options[P092_DLbus_OptionCount] = { F("None"), @@ -277,31 +212,12 @@ boolean Plugin_092(uint8_t function, struct EventStruct *event, String& string) F("Heat meter (MWh)") }; const String Devices[P092_DLbus_DeviceCount] = { F("ESR21"), F("UVR31"), F("UVR1611"), F("UVR 61-3 (bis V8.2)"), F("UVR 61-3 (ab V8.3)") }; -<<<<<<< HEAD const int DevTypes[P092_DLbus_DeviceCount] = { 21, 31, 1611, 6132, 6133 }; -======= - int DevTypes[P092_DLbus_DeviceCount] = { 21, 31, 1611, 6132, 6133 }; ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 addFormSelector(F("DL-Bus Type"), F("p092_dlbtype"), P092_DLbus_DeviceCount, Devices, DevTypes, NULL, PCONFIG(0), true ); // Calculation of the max indices for each sensor type -<<<<<<< HEAD // default indizes for UVR31 -======= - switch (PCONFIG(0)) { - case 21: //ESR21 - P092_MaxIdx[0] = 0; // None - P092_MaxIdx[1] = 3; // Sensor - P092_MaxIdx[2] = 6; // Ext. sensor - P092_MaxIdx[3] = 1; // Digital output - P092_MaxIdx[4] = 1; // Speed step - P092_MaxIdx[5] = 1; // Analog output - P092_MaxIdx[6] = 1; // Heat power (kW) - P092_MaxIdx[7] = 1; // Heat meter (MWh) - break; - case 31: //UVR31 ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 P092_MaxIdx[0] = 0; // None P092_MaxIdx[1] = 3; // Sensor P092_MaxIdx[2] = 0; // Ext. sensor @@ -310,7 +226,6 @@ boolean Plugin_092(uint8_t function, struct EventStruct *event, String& string) P092_MaxIdx[5] = 0; // Analog output P092_MaxIdx[6] = 0; // Heat power (kW) P092_MaxIdx[7] = 0; // Heat meter (MWh) -<<<<<<< HEAD switch (PCONFIG(0)) { case 21: //ESR21 P092_MaxIdx[2] = 6; // Ext. sensor @@ -323,27 +238,11 @@ boolean Plugin_092(uint8_t function, struct EventStruct *event, String& string) P092_MaxIdx[1] = 16; // Sensor P092_MaxIdx[3] = 13; // Digital output P092_MaxIdx[4] = 4; // Speed step -======= - break; - case 1611: //UVR1611 - P092_MaxIdx[0] = 0; // None - P092_MaxIdx[1] = 16; // Sensor - P092_MaxIdx[2] = 0; // Ext. sensor - P092_MaxIdx[3] = 13; // Digital output - P092_MaxIdx[4] = 4; // Speed step - P092_MaxIdx[5] = 0; // Analog output ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 P092_MaxIdx[6] = 2; // Heat power (kW) P092_MaxIdx[7] = 2; // Heat meter (MWh) break; case 6132: //UVR 61-3 (bis V8.2) -<<<<<<< HEAD P092_MaxIdx[1] = 6; // Sensor -======= - P092_MaxIdx[0] = 0; // None - P092_MaxIdx[1] = 6; // Sensor - P092_MaxIdx[2] = 0; // Ext. sensor ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 P092_MaxIdx[3] = 8; // Digital output P092_MaxIdx[4] = 1; // Speed step P092_MaxIdx[5] = 1; // Analog output @@ -351,10 +250,6 @@ boolean Plugin_092(uint8_t function, struct EventStruct *event, String& string) P092_MaxIdx[7] = 1; // Heat meter (MWh) break; case 6133: //UVR 61-3 (ab V8.3) -<<<<<<< HEAD -======= - P092_MaxIdx[0] = 0; // None ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 P092_MaxIdx[1] = 6; // Sensor P092_MaxIdx[2] = 9; // Ext. sensor P092_MaxIdx[3] = 3; // Digital output @@ -368,7 +263,6 @@ boolean Plugin_092(uint8_t function, struct EventStruct *event, String& string) addFormSubHeader(F("Inputs")); for (int i = 0; i < P092_DLbus_ValueCount; i++) { -<<<<<<< HEAD P092_ValueType = PCONFIG(i + 1) >> 8; P092_ValueIdx = PCONFIG(i + 1) & 0x00FF; @@ -383,22 +277,6 @@ boolean Plugin_092(uint8_t function, struct EventStruct *event, String& string) } addHtml(F(" Index: ")); addNumericBox(plugin_092_IdxStr, CurIdx, 1, P092_MaxIdx[P092_ValueType]); -======= - P092_ValueType[i] = PCONFIG(i + 1) >> 8; - P092_ValueIdx[i] = PCONFIG(i + 1) & 0x00FF; - - addFormSelector(plugin_092_ValueNames[i], plugin_092_Values[i], P092_DLbus_OptionCount, Options, P092_OptionTypes, NULL, P092_ValueType[i], true); - if (P092_MaxIdx[P092_ValueType[i]] > 1) { - CurIdx = P092_ValueIdx[i]; - if (CurIdx < 1) { - CurIdx = 1; - } - if (CurIdx > P092_MaxIdx[P092_ValueType[i]]) { - CurIdx = P092_MaxIdx[P092_ValueType[i]]; - } - addHtml(F(" Index: ")); - addNumericBox(plugin_092_Indizes[i], CurIdx, 1, P092_MaxIdx[P092_ValueType[i]]); ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 } } @@ -411,20 +289,12 @@ boolean Plugin_092(uint8_t function, struct EventStruct *event, String& string) case PLUGIN_WEBFORM_SAVE: { PCONFIG(0) = getFormItemInt(F("p092_dlbtype")); -<<<<<<< HEAD if (PCONFIG(0) == 1611) // only UVR1611 P092_OptionValueDecimals[6] = 2; for (int i = 0; i < P092_DLbus_ValueCount; i++) { OptionIdx = getFormItemInt(plugin_092_ValStr); CurIdx = getFormItemInt(plugin_092_IdxStr); -======= - Plugin_092_SetIndices(PCONFIG(0)); - - for (int i = 0; i < P092_DLbus_ValueCount; i++) { - OptionIdx = getFormItemInt(plugin_092_Values[i]); - CurIdx = getFormItemInt(plugin_092_Indizes[i]); ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 if (CurIdx < 1) { CurIdx = 1; } @@ -432,7 +302,6 @@ boolean Plugin_092(uint8_t function, struct EventStruct *event, String& string) ExtraTaskSettings.TaskDeviceValueDecimals[event->BaseVarIndex + i] = P092_OptionValueDecimals[OptionIdx]; } -<<<<<<< HEAD if (DLbus_Data == nullptr) { addLog(LOG_LEVEL_ERROR, F("## P092_save: Error DL-Bus: Class not initialized!")); return false; @@ -444,32 +313,16 @@ boolean Plugin_092(uint8_t function, struct EventStruct *event, String& string) if (DLbus_Data->ISR_DLB_Pin != 0xFF) { // interrupt was already attached to P092_DLB_Pin detachInterrupt(digitalPinToInterrupt(DLbus_Data->ISR_DLB_Pin)); -======= - if (P092_Last_DLB_Pin != CONFIG_PIN1) { - // pin number is changed -> run a new init - P092_init = false; - if (P092_DLB_Pin != 0xFF) { - // interrupt was already attached to P092_DLB_Pin - detachInterrupt(digitalPinToInterrupt(P092_DLB_Pin)); ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 addLog(LOG_LEVEL_INFO, F("P092_save: detachInterrupt")); } } #ifdef PLUGIN_092_DEBUG if (loglevelActiveFor(LOG_LEVEL_INFO)) { -<<<<<<< HEAD String log = F("PLUGIN_WEBFORM_SAVE :"); log += F(" DLB_Pin:"); log += CONFIG_PIN1; -======= - P092_DLB_Pin = CONFIG_PIN1; - - String log = F("PLUGIN_WEBFORM_SAVE :"); - log += F(" DLB_Pin:"); - log += P092_DLB_Pin; ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 log += F(" DLbus_MinPulseWidth:"); log += P092_DataSettings.DLbus_MinPulseWidth; log += F(" DLbus_MaxPulseWidth:"); @@ -540,7 +393,6 @@ boolean Plugin_092(uint8_t function, struct EventStruct *event, String& string) addLog(LOG_LEVEL_ERROR, F("P092_init -> Already done!")); } else { -<<<<<<< HEAD addLog(LOG_LEVEL_INFO, F("P092_init ...")); if (DLbus_Data == nullptr) { DLbus_Data = new DLBus; @@ -561,19 +413,6 @@ boolean Plugin_092(uint8_t function, struct EventStruct *event, String& string) DLbus_Data->attachDLBusInterrupt(); UserVar[event->BaseVarIndex] = NAN; } -======= - P092_init = true; - addLog(LOG_LEVEL_INFO, F("P092_init: attachInterrupt")); - P092_DLB_Pin = CONFIG_PIN1; - pinMode(P092_DLB_Pin, INPUT_PULLUP); - P092_receiving = false; - P092_ReceivedOK = false; - // on a CHANGE on the data pin P092_Pin_changed is called - attachInterrupt(digitalPinToInterrupt(P092_DLB_Pin), P092_Pin_changed, CHANGE); - UserVar[event->BaseVarIndex] = NAN; - } - Plugin_092_SetIndices(PCONFIG(0)); ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 success = true; break; } @@ -586,7 +425,6 @@ boolean Plugin_092(uint8_t function, struct EventStruct *event, String& string) if (P092_init == false) { return false; } -<<<<<<< HEAD if (DLbus_Data == nullptr) return false; if (DLbus_Data->ISR_Receiving) { @@ -600,18 +438,6 @@ boolean Plugin_092(uint8_t function, struct EventStruct *event, String& string) success = DLbus_Data->Processing(); if (success) success = DLbus_Data->CheckCRC(P092_DataSettings.IdxCRC); -======= - if (P092_receiving) { - return false; - } - if (P092_AllBitsReceived) { - P092_AllBitsReceived = false; - success = Plugin_092_CheckTimings(); - if (success) - success = P092_Processing(); - if (success) - success = P092_CheckCRC(); ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 if (success) { addLog(LOG_LEVEL_INFO, F("Received data OK")); P092_LastReceived = millis(); @@ -631,7 +457,6 @@ boolean Plugin_092(uint8_t function, struct EventStruct *event, String& string) case PLUGIN_READ: { addLog(LOG_LEVEL_ERROR, F("PLUGIN_092_READ")); -<<<<<<< HEAD if (WiFi.status() != WL_CONNECTED) { // too busy for DLbus while wifi connect is running addLog(LOG_LEVEL_ERROR, F("## P092_read: Error DL-Bus: WiFi not connected!")); @@ -652,51 +477,21 @@ boolean Plugin_092(uint8_t function, struct EventStruct *event, String& string) log += F(" Setting:"); log += CONFIG_PIN1; addLog(LOG_LEVEL_ERROR, log); -======= - if (P092_DLB_Pin != CONFIG_PIN1) { - String log = F("## Error DL-Bus: Device Pin setting not correct!"); - log += F(" DLB_Pin:"); - log += P092_DLB_Pin; - log += F(" Setting:"); - log += CONFIG_PIN1; - addLog(LOG_LEVEL_ERROR, log); - return false; - } - if (WiFi.status() != WL_CONNECTED) { - // too busy for DLbus while wifi connect is running - addLog(LOG_LEVEL_ERROR, F("## Error DL-Bus: WiFi not connected!")); - return false; - } - if (P092_init == false) { - addLog(LOG_LEVEL_ERROR, F("## Error DL-Bus: Not initialized!")); ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 return false; } success = P092_ReceivedOK; if (P092_ReceivedOK == false) { -<<<<<<< HEAD addLog(LOG_LEVEL_INFO, F("P092_read: Still receiving DL-Bus bits!")); -======= - addLog(LOG_LEVEL_ERROR, F("## Error DL-Bus: Still receiving bits!")); ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 } else { for (int i = 0; i < P092_DLbus_ValueCount; i++) { OptionIdx = PCONFIG(i + 1) >> 8; CurIdx = PCONFIG(i + 1) & 0x00FF; -<<<<<<< HEAD if (P092_GetData(OptionIdx, CurIdx, &P092_ReadData)) { UserVar[event->BaseVarIndex + i] = P092_ReadData.value; } else { addLog(LOG_LEVEL_ERROR, F("## P092_read: Error: No readings!")); -======= - if (P092_GetData(OptionIdx, CurIdx)) { - UserVar[event->BaseVarIndex + i] = P092_ReadData.value; - } - else { - addLog(LOG_LEVEL_ERROR, F("Error: No readings!")); ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 } } } @@ -708,7 +503,6 @@ boolean Plugin_092(uint8_t function, struct EventStruct *event, String& string) void Plugin_092_SetIndices(int DeviceIndex) { // Set the indices for the DL bus packet -<<<<<<< HEAD int iDeviceBytes, iDontCareBytes, iTimeStampBytes; //default settings for ESR21 @@ -735,34 +529,6 @@ int iDeviceBytes, iDontCareBytes, iTimeStampBytes; P092_DataSettings.IdxCRC = 30; switch (DeviceIndex) { -======= - switch (DeviceIndex) { - case 21: //ESR21 - P092_DataSettings.DataBytes = 31; - P092_DataSettings.DLbus_MinPulseWidth = P092_min_width_488; - P092_DataSettings.DLbus_MaxPulseWidth = P092_max_width_488; - P092_DataSettings.DLbus_MinDoublePulseWidth = P092_double_min_width_488; - P092_DataSettings.DLbus_MaxDoublePulseWidth = P092_double_max_width_488; - - P092_DataSettings.DeviceByte0 = 0x70; - P092_DataSettings.DeviceByte1 = 0x8F; - P092_DataSettings.DeviceBytes = 2; - P092_DataSettings.DontCareBytes = 0; - P092_DataSettings.TimeStampBytes = 0; - P092_DataSettings.MaxSensors = 3; - P092_DataSettings.MaxExtSensors = 6; - P092_DataSettings.OutputBytes = 1; - P092_DataSettings.SpeedBytes = 1; - P092_DataSettings.AnalogBytes = 1; - P092_DataSettings.VolumeBytes = 0; - P092_DataSettings.MaxHeatMeters = 1; - P092_DataSettings.CurrentHmBytes = 2; - P092_DataSettings.MWhBytes = 2; - P092_DataSettings.IdxCRC = 30; - - P092_OptionValueDecimals[6] = 1; //[0,1kW] F("Heat power (kW)") - break; ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 case 31: //UVR31 P092_DataSettings.DataBytes = 8; P092_DataSettings.DLbus_MinPulseWidth = P092_min_width_50; @@ -772,22 +538,10 @@ int iDeviceBytes, iDontCareBytes, iTimeStampBytes; P092_DataSettings.DeviceByte0 = 0x30; P092_DataSettings.DeviceByte1 = 0; -<<<<<<< HEAD iDeviceBytes = 1; P092_DataSettings.MaxExtSensors = 0; P092_DataSettings.SpeedBytes = 0; P092_DataSettings.AnalogBytes = 0; -======= - P092_DataSettings.DeviceBytes = 1; - P092_DataSettings.DontCareBytes = 0; - P092_DataSettings.TimeStampBytes = 0; - P092_DataSettings.MaxSensors = 3; - P092_DataSettings.MaxExtSensors = 0; - P092_DataSettings.OutputBytes = 1; - P092_DataSettings.SpeedBytes = 0; - P092_DataSettings.AnalogBytes = 0; - P092_DataSettings.VolumeBytes = 0; ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 P092_DataSettings.MaxHeatMeters = 0; P092_DataSettings.CurrentHmBytes = 0; P092_DataSettings.MWhBytes = 0; @@ -795,30 +549,16 @@ int iDeviceBytes, iDontCareBytes, iTimeStampBytes; break; case 1611: //UVR1611 P092_DataSettings.DataBytes = 64; -<<<<<<< HEAD P092_DataSettings.DeviceByte0 = 0x80; P092_DataSettings.DeviceByte1 = 0x7F; iDontCareBytes = 1; iTimeStampBytes = 5; -======= - P092_DataSettings.DLbus_MinPulseWidth = P092_min_width_488; - P092_DataSettings.DLbus_MaxPulseWidth = P092_max_width_488; - P092_DataSettings.DLbus_MinDoublePulseWidth = P092_double_min_width_488; - P092_DataSettings.DLbus_MaxDoublePulseWidth = P092_double_max_width_488; - - P092_DataSettings.DeviceByte0 = 0x80; - P092_DataSettings.DeviceByte1 = 0x7F; - P092_DataSettings.DeviceBytes = 2; - P092_DataSettings.DontCareBytes = 1; - P092_DataSettings.TimeStampBytes = 5; ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 P092_DataSettings.MaxSensors = 16; P092_DataSettings.MaxExtSensors = 0; P092_DataSettings.OutputBytes = 2; P092_DataSettings.SpeedBytes = 4; P092_DataSettings.AnalogBytes = 0; -<<<<<<< HEAD P092_DataSettings.MaxHeatMeters = 2; P092_DataSettings.CurrentHmBytes = 4; P092_DataSettings.IdxCRC = P092_DataSettings.DataBytes-1; @@ -853,68 +593,6 @@ int iDeviceBytes, iDontCareBytes, iTimeStampBytes; break; } P092_DataSettings.IdxSensor = iDeviceBytes + iDontCareBytes + iTimeStampBytes; -======= - P092_DataSettings.VolumeBytes = 0; - P092_DataSettings.MaxHeatMeters = 2; - P092_DataSettings.CurrentHmBytes = 4; - P092_DataSettings.MWhBytes = 2; - P092_DataSettings.IdxCRC = 63; - - P092_OptionValueDecimals[6] = 2; //[0,01kW] F("Heat power (kW)") - break; - case 6132: //UVR 61-3 (up to V8.2) - P092_DataSettings.DataBytes = 35; - P092_DataSettings.DLbus_MinPulseWidth = P092_min_width_488; - P092_DataSettings.DLbus_MaxPulseWidth = P092_max_width_488; - P092_DataSettings.DLbus_MinDoublePulseWidth = P092_double_min_width_488; - P092_DataSettings.DLbus_MaxDoublePulseWidth = P092_double_max_width_488; - - P092_DataSettings.DeviceByte0 = 0x90; - P092_DataSettings.DeviceByte1 = 0x6F; - P092_DataSettings.DeviceBytes = 2; - P092_DataSettings.DontCareBytes = 1; - P092_DataSettings.TimeStampBytes = 5; - P092_DataSettings.MaxSensors = 6; - P092_DataSettings.MaxExtSensors = 0; - P092_DataSettings.OutputBytes = 1; - P092_DataSettings.SpeedBytes = 1; - P092_DataSettings.AnalogBytes = 1; - P092_DataSettings.VolumeBytes = 2; - P092_DataSettings.MaxHeatMeters = 1; - P092_DataSettings.CurrentHmBytes = 2; - P092_DataSettings.MWhBytes = 4; - P092_DataSettings.IdxCRC = 34; - - P092_OptionValueDecimals[6] = 1; //[0,1kW] F("Heat power (kW)") - break; - case 6133: //UVR 61-3 (from V8.3) - P092_DataSettings.DataBytes = 62; - P092_DataSettings.DLbus_MinPulseWidth = P092_min_width_488; - P092_DataSettings.DLbus_MaxPulseWidth = P092_max_width_488; - P092_DataSettings.DLbus_MinDoublePulseWidth = P092_double_min_width_488; - P092_DataSettings.DLbus_MaxDoublePulseWidth = P092_double_max_width_488; - - P092_DataSettings.DeviceByte0 = 0x90; - P092_DataSettings.DeviceByte1 = 0x9F; - P092_DataSettings.DeviceBytes = 2; - P092_DataSettings.DontCareBytes = 1; - P092_DataSettings.TimeStampBytes = 5; - P092_DataSettings.MaxSensors = 6; - P092_DataSettings.MaxExtSensors = 9; - P092_DataSettings.OutputBytes = 1; - P092_DataSettings.SpeedBytes = 1; - P092_DataSettings.AnalogBytes = 2; - P092_DataSettings.VolumeBytes = 0; - P092_DataSettings.MaxHeatMeters = 3; - P092_DataSettings.CurrentHmBytes = 2; - P092_DataSettings.MWhBytes = 2; - P092_DataSettings.IdxCRC = 61; - - P092_OptionValueDecimals[6] = 1; //[0,1kW] F("Heat power (kW)") - break; - } - P092_DataSettings.IdxSensor = P092_DataSettings.DeviceBytes + P092_DataSettings.DontCareBytes + P092_DataSettings.TimeStampBytes; ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 P092_DataSettings.IdxExtSensor = P092_DataSettings.IdxSensor + 2 * P092_DataSettings.MaxSensors; P092_DataSettings.IdxOutput = P092_DataSettings.IdxExtSensor + 2 * P092_DataSettings.MaxExtSensors; P092_DataSettings.IdxDrehzahl = P092_DataSettings.IdxOutput + P092_DataSettings.OutputBytes; @@ -930,48 +608,12 @@ int iDeviceBytes, iDontCareBytes, iTimeStampBytes; P092_DataSettings.IdxHeatMeter3 = P092_DataSettings.IdxMWh2 + P092_DataSettings.MWhBytes; P092_DataSettings.IdxkWh3 = P092_DataSettings.IdxHeatMeter3 + P092_DataSettings.CurrentHmBytes; P092_DataSettings.IdxMWh3 = P092_DataSettings.IdxkWh3 + 2; -<<<<<<< HEAD return; -======= ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 } /*********************************************************************************************\ DLBus subs to get values from the P092_receiving bitstream \*********************************************************************************************/ -<<<<<<< HEAD -======= -// one data frame has data bytes + SYNC, e.g. 64 * (8+1+1) + 16 = 656 -// 656 * 2 = 1312 (twice as much as a data frame is saved -// so there's one complete data frame - -#define DLbus_MaxDataBytes 64 -#define DLbus_AdditionalRecBytes 2 -#define DLbus_StopBits 1 -#define DLbus_StartBits 1 -#define DLBus_SyncBits 16 -#define DLBus_ReserveBytes 20 -#define DLBus_BitChangeFactor 2 -#define DLbus_MaxDataBits (((DLbus_MaxDataBytes + DLbus_AdditionalRecBytes) * (DLbus_StartBits + 8 + DLbus_StopBits) + DLBus_SyncBits) * DLBus_BitChangeFactor) + DLBus_ReserveBytes - // MaxDataBits is double of the maximum bit length because each bit change is stored - // (((64+2) * (8+1+1) + 16) * 2) + 50 = 1402 bytes - -// variables used in interrupt function -volatile static uint8_t* DLbus_PtrChangeBitStream; // pointer to received bit change stream -volatile uint16_t DLbus_pulse_count; // number of received pulses -volatile uint16_t DLbus_pulse_number; // max naumber of the received pulses -volatile uint32_t DLbus_TimeLastBitChange = 0; // remember time of last transition -volatile uint16_t DLbus_MinPulseWidth, DLbus_MaxPulseWidth, DLbus_MinDoublePulseWidth, DLbus_MaxDoublePulseWidth; - -static uint8_t DLbus_ChangeBitStream[DLbus_MaxDataBits]; // received bit change stream (each bit change is extended to uint8_t, containing the timing flags) -uint8_t DLbus_ByteStream[DLbus_MaxDataBits / 8 + 1]; // every bit gets sorted into a bitmap -uint16_t DLbus_bit_number; // bit number of the received DLbus_ChangeBitStream - -uint8_t DLbus_WrongTimeCnt; -uint16_t DLbus_WrongTimings[5][6]; - -int16_t DLbus_start_bit; // first bit of data frame (-1 not recognized) ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 // sensor types #define DLbus_UNUSED 0b000 @@ -987,23 +629,12 @@ int16_t DLbus_start_bit; // first bit of data #define DLbus_RSM_LOWER 0b10 #define DLbus_RSM_STANDBY 0b11 -<<<<<<< HEAD boolean P092_fetch_sensor(int number, sP092_ReadData* ReadData); boolean P092_fetch_output(int number, sP092_ReadData* ReadData); // digital output byte(s) boolean P092_fetch_speed(int number, sP092_ReadData* ReadData); // speed byte(s) boolean P092_fetch_analog(int number, sP092_ReadData* ReadData); // analog byte(s) boolean P092_fetch_heatpower(int number, sP092_ReadData* ReadData); // heat power(s) boolean P092_fetch_heatmeter(int number, sP092_ReadData* ReadData); // heat meters(s) -======= -// Flags for pulse width (bit 0 is the content!) -#define DLbus_FlagSingleWidth 0x02 -#define DLbus_FlagDoubleWidth 0x04 -#define DLbus_FlagShorterThanSingleWidth 0x10 -#define DLbus_FlagBetweenDoubleSingleWidth 0x20 -#define DLbus_FlagLongerThanDoubleWidth 0x40 -#define DLbus_FlagLongerThanTwiceDoubleWidth 0x80 -#define DLbus_FlagsWrongTiming (DLbus_FlagLongerThanTwiceDoubleWidth | DLbus_FlagLongerThanDoubleWidth | DLbus_FlagBetweenDoubleSingleWidth | DLbus_FlagShorterThanSingleWidth) ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 // heat meter typedef struct { @@ -1019,7 +650,6 @@ sDLbus_HMindex P092_CheckHmRegister(int number); \****************/ void Plugin_092_StartReceiving(void) { -<<<<<<< HEAD DLbus_Data->ISR_Receiving = false; DLbus_Data->DeviceBytes[0] = P092_DataSettings.DeviceByte0; DLbus_Data->DeviceBytes[1] = P092_DataSettings.DeviceByte1; @@ -1039,270 +669,6 @@ void Plugin_092_StartReceiving(void) { // nothing received DLbus_Data->ISR_Receiving = false; addLog(LOG_LEVEL_ERROR, F("## StartReceiving: Error: Nothing received! No DL bus connected!")); -======= - noInterrupts (); // make sure we don't get interrupted before we are ready - DLbus_pulse_count = 0; - DLbus_pulse_number = (((P092_DataSettings.DataBytes + DLbus_AdditionalRecBytes) * (DLbus_StartBits + 8 + DLbus_StopBits) + DLBus_SyncBits) * DLBus_BitChangeFactor) + DLBus_ReserveBytes; - DLbus_MinPulseWidth = P092_DataSettings.DLbus_MinPulseWidth; - DLbus_MaxPulseWidth = P092_DataSettings.DLbus_MaxPulseWidth; - DLbus_MinDoublePulseWidth = P092_DataSettings.DLbus_MinDoublePulseWidth; - DLbus_MaxDoublePulseWidth = P092_DataSettings.DLbus_MaxDoublePulseWidth; - DLbus_PtrChangeBitStream = DLbus_ChangeBitStream; - P092_receiving = true; - P092_AllBitsReceived = false; - interrupts (); // interrupts allowed now, next instruction WILL be executed - uint32_t start=millis(); - addLog(LOG_LEVEL_INFO, F("P092_receiving ...")); - while ((timePassedSince(start)<100) && (DLbus_pulse_count == 0)) { - // wait for first pulse received (timeout 100ms) - yield(); - } - if (DLbus_pulse_count == 0) { - // nothing received - P092_receiving = false; - addLog(LOG_LEVEL_ERROR, F("Error: Nothing received! No DL bus connected!")); - } - // while (P092_receiving) { - // // wait for end of P092_receiving - // // loop time depends on the device (bytes in protocol and clock frequency) - // // ESR21: (((31 + 2) * (8 + 1 + 1) + 16) * 2)+50 = (346*2+50)= 742 bits @ 488Hz = 1,52s - // // UVR31: ((( 8 + 2) * (8 + 1 + 1) + 16) * 2)+50 = (116*2+50)= 282 bits @ 50Hz = 5,64s - // // UVR1611: (((64 + 2) * (8 + 1 + 1) + 16) * 2)+50 = (676*2+50)=1402 bits @ 488Hz = 2,87s - // // UVR 61-3: (((62 + 2) * (8 + 1 + 1) + 16) * 2)+50 = (676*2+50)=1402 bits @ 488Hz = 2,87s - // yield(); - // } -} - -boolean Plugin_092_CheckTimings(void) { - uint8_t rawval, val; - int i; - addLog(LOG_LEVEL_INFO, F("Receive stopped.")); - - DLbus_WrongTimeCnt = 0; - DLbus_pulse_count = 0; - for (i = 0; i <= DLbus_pulse_number; i++) { - // store DLbus_ChangeBitStream into DLbus_ByteStream - rawval = DLbus_ChangeBitStream[i]; - if (rawval & DLbus_FlagsWrongTiming) { - // wrong DLbus_time_diff - if ((DLbus_pulse_count > 0) && (DLbus_WrongTimeCnt < 5)) { - DLbus_WrongTimings[DLbus_WrongTimeCnt][0] = i; - DLbus_WrongTimings[DLbus_WrongTimeCnt][1] = DLbus_pulse_count; - DLbus_WrongTimings[DLbus_WrongTimeCnt][2] = DLbus_bit_number; - DLbus_WrongTimings[DLbus_WrongTimeCnt][3] = rawval; - if ((rawval == DLbus_FlagLongerThanTwiceDoubleWidth) && (DLbus_ChangeBitStream[i-1] == (DLbus_FlagDoubleWidth | 0x01))) { - // Add two additional short pulses (low and high), previous bit is High and contains DLbus_FlagDoubleWidth - P092_process_bit(0); - P092_process_bit(1); - DLbus_WrongTimings[DLbus_WrongTimeCnt][4] = DLbus_FlagSingleWidth; - DLbus_WrongTimings[DLbus_WrongTimeCnt][5] = DLbus_FlagSingleWidth+1; - } - else { - DLbus_WrongTimings[DLbus_WrongTimeCnt][4] = 0xff; - DLbus_WrongTimings[DLbus_WrongTimeCnt][5] = 0xff; - } - DLbus_WrongTimeCnt++; - } - } - else { - val = rawval & 0x01; - if ((rawval & DLbus_FlagDoubleWidth) == DLbus_FlagDoubleWidth) { - // double pulse width - P092_process_bit(!val); - P092_process_bit(val); - } - else { - // single pulse width - P092_process_bit(val); - } - } - } - addLog(LOG_LEVEL_INFO, F("DLbus_ChangeBitStream copied.")); - -#ifdef PLUGIN_092_DEBUG - if (DLbus_WrongTimeCnt > 0) { - if (loglevelActiveFor(LOG_LEVEL_INFO)) { - String log = F("Wrong Timings: "); - addLog(LOG_LEVEL_INFO, log); - for (i = 0; i < DLbus_WrongTimeCnt; i++) { - log = i + 1; - log += F(": PulseCount:"); - log += DLbus_WrongTimings[i][1]; - log += F(": BitCount:"); - log += DLbus_WrongTimings[i][2]; - log += F(" Value:0x"); - log += String(DLbus_WrongTimings[i][3], HEX); - log += F(" ValueBefore:0x"); - log += String(DLbus_ChangeBitStream[DLbus_WrongTimings[i][0] - 1], HEX); - log += F(" ValueAfter:0x"); - log += String(DLbus_ChangeBitStream[DLbus_WrongTimings[i][0] + 1], HEX); - if (DLbus_WrongTimings[i][4]!=0xff) { - log += F(" Added:0x"); - log += String(DLbus_WrongTimings[i][4], HEX); - } - if (DLbus_WrongTimings[i][5]!=0xff) { - log += F(" Added:0x"); - log += String(DLbus_WrongTimings[i][5], HEX); - } - addLog(LOG_LEVEL_INFO, log); - } - } - } -#endif // PLUGIN_092_DEBUG - return true; -} - -/*****************\ - DLBus interrupt -\*****************/ - -void P092_Pin_changed(void) { - long DLbus_time_diff = usecPassedSince(DLbus_TimeLastBitChange); // time difference to previous pulse in µs - DLbus_TimeLastBitChange = micros(); // save last pin change time - if (P092_receiving) { - uint8_t val = digitalRead(P092_DLB_Pin); // read state - // check pulse width - if (DLbus_time_diff >= 2*DLbus_MinDoublePulseWidth) val |= DLbus_FlagLongerThanTwiceDoubleWidth; // longer then 2x double pulse width - else if (DLbus_time_diff > DLbus_MaxDoublePulseWidth) val |= DLbus_FlagLongerThanDoubleWidth; // longer then double pulse width - else if (DLbus_time_diff >= DLbus_MinDoublePulseWidth) val |= DLbus_FlagDoubleWidth; // double pulse width - else if (DLbus_time_diff > DLbus_MaxPulseWidth) val |= DLbus_FlagBetweenDoubleSingleWidth; // between double and single pulse width - else if (DLbus_time_diff < DLbus_MinPulseWidth) val |= DLbus_FlagShorterThanSingleWidth; // shorter then single pulse width - else val |= DLbus_FlagSingleWidth; // single pulse width - if (DLbus_pulse_count < 2) { - // check if sync is received - if (val & DLbus_FlagLongerThanTwiceDoubleWidth) { - // sync received - *DLbus_PtrChangeBitStream = !(val & 0x01); - *(DLbus_PtrChangeBitStream+1) = val; - DLbus_pulse_count = 2; - } - else - DLbus_pulse_count = 1; // flag that interrupt is receiving - } - else { - *(DLbus_PtrChangeBitStream+DLbus_pulse_count) = val; // set bit - DLbus_pulse_count++; - P092_receiving = (DLbus_pulse_count < DLbus_pulse_number); // stop P092_receiving when data frame is complete - P092_AllBitsReceived = !P092_receiving; - } - } -} - -/*****************\ - DLBus processing -\*****************/ - -void P092_process_bit(uint8_t b) { - // ignore first pulse - DLbus_pulse_count++; - if (DLbus_pulse_count % 2) - return; - DLbus_bit_number = (DLbus_pulse_count / 2); - if (b) - DLbus_ByteStream[DLbus_bit_number / 8] |= (1 << (DLbus_bit_number % 8)); // set bit - else - DLbus_ByteStream[DLbus_bit_number / 8] &= ~(1 << (DLbus_bit_number % 8)); // clear bit -} - -boolean P092_Processing(void) { -boolean inverted = false; -String log; - addLog(LOG_LEVEL_INFO, F("Processing...")); - DLbus_start_bit = P092_Analyze(); // find the data frame's beginning - // inverted signal? - while (DLbus_start_bit == -1) { - if (inverted) { - addLog(LOG_LEVEL_ERROR, F("Error: Already inverted!")); - return false; - } - addLog(LOG_LEVEL_INFO, F("Invert bit stream...")); - P092_Invert(); // invert again - inverted = true; - DLbus_start_bit = P092_Analyze(); - if (DLbus_start_bit == -1) { - addLog(LOG_LEVEL_ERROR, F("Error: No data frame available!")); - return false; - } - uint16_t RequiredBitStreamLength = (DLbus_pulse_number - DLBus_ReserveBytes)/DLBus_BitChangeFactor; - if ((DLbus_bit_number-DLbus_start_bit) < RequiredBitStreamLength) { - // no complete data frame available (difference between start_bit and received bits is < RequiredBitStreamLength) - addLog(LOG_LEVEL_ERROR, F("Start bit too close to end of stream!")); - if (loglevelActiveFor(LOG_LEVEL_INFO)) { - log = F("# Required bits: "); - log += RequiredBitStreamLength; - log += F(" StartBit: "); - log += DLbus_start_bit; - log += F(" / EndBit: "); - log += DLbus_bit_number; - addLog(LOG_LEVEL_INFO, log); - } - return false; - } - } - - if (loglevelActiveFor(LOG_LEVEL_INFO)) { - log = F("StartBit: "); - log += DLbus_start_bit; - log += F(" / EndBit: "); - log += DLbus_bit_number; - addLog(LOG_LEVEL_INFO, log); - } - P092_Trim(); // remove start and stop bits - - if (P092_CheckDevice()) // check connected device - return true; - else { - addLog(LOG_LEVEL_ERROR, F("Error: Device not found!")); - return false; - } -} - -int P092_Analyze() { - uint8_t sync=0; - // find SYNC (16 * sequential 1) - for (int i = 0; i < DLbus_bit_number; i++) { - if (P092_ReadBit(i)) - sync++; - else - sync = 0; - if (sync == DLBus_SyncBits) { - // finde erste 0 // find first 0 - while (P092_ReadBit(i) == 1) - i++; - return i; // beginning of data frame - } - } - // no data frame available. check signal? - return -1; -} -void P092_Invert() { - for (int i = 0; i < DLbus_bit_number; i++) - P092_WriteBit(i, P092_ReadBit(i) ? 0 : 1); // invert every bit -} -uint8_t P092_ReadBit(int pos) { - int row = pos / 8; // detect position in bitmap - int col = pos % 8; - return (((DLbus_ByteStream[row]) >> (col)) & 0x01); // return bit -} -void P092_WriteBit(int pos, uint8_t set) { - int row = pos / 8; // detect position in bitmap - int col = pos % 8; - if (set) - DLbus_ByteStream[row] |= 1 << col; // set bit - else - DLbus_ByteStream[row] &= ~(1 << col); // clear bit -} -void P092_Trim() { - for (int i = DLbus_start_bit, bit = 0; i < DLbus_bit_number; i++) { - int offset = i - DLbus_start_bit; - // ignore start and stop bits: - // start bits: 0 10 20 30, also x % 10 == 0 - // stop bits: 9 19 29 39, also (x+1) % 10 == 0 - if (offset % 10 && (offset + 1) % 10) { - P092_WriteBit(bit, P092_ReadBit(i)); - bit++; - } ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 } } @@ -1310,53 +676,7 @@ void P092_Trim() { DLBus get data \****************/ -<<<<<<< HEAD boolean P092_GetData(int OptionIdx, int CurIdx, sP092_ReadData* ReadData) { -======= -boolean P092_CheckDevice() { - // Data frame of a device? - if (DLbus_ByteStream[0] == P092_DataSettings.DeviceByte0) { - if ((P092_DataSettings.DeviceBytes == 1) || (DLbus_ByteStream[1] == P092_DataSettings.DeviceByte1)) - return true; - } - if (loglevelActiveFor(LOG_LEVEL_INFO)) { - String log = F("# Received DeviceByte(s): 0x"); - log += String(DLbus_ByteStream[0], HEX); - if (P092_DataSettings.DeviceBytes > 1) - log += String(DLbus_ByteStream[1], HEX); - log += F(" Requested: 0x"); - log += String(P092_DataSettings.DeviceByte0, HEX); - if (P092_DataSettings.DeviceBytes > 1) - log += String(P092_DataSettings.DeviceByte1, HEX); - addLog(LOG_LEVEL_INFO, log); - } - return false; -} - -boolean P092_CheckCRC() { - // CRC check sum - if (P092_DataSettings.IdxCRC == 0) - return true; - addLog(LOG_LEVEL_INFO, F("Check CRC...")); - uint16_t dataSum = 0; - for (int i = 0; i < P092_DataSettings.IdxCRC; i++) - dataSum = dataSum + DLbus_ByteStream[i]; - dataSum = dataSum & 0xff; - if (dataSum == DLbus_ByteStream[P092_DataSettings.IdxCRC]) - return true; - addLog(LOG_LEVEL_ERROR, F("Check CRC failed!")); - if (loglevelActiveFor(LOG_LEVEL_INFO)) { - String log = F("# Calculated CRC: 0x"); - log += String(dataSum, HEX); - log += F(" Received: 0x"); - log += String(DLbus_ByteStream[P092_DataSettings.IdxCRC], HEX); - addLog(LOG_LEVEL_INFO, log); - } - return false; -} - -boolean P092_GetData(int OptionIdx, int CurIdx) { ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 String log; boolean result = false; switch (OptionIdx) { @@ -1367,13 +687,8 @@ boolean P092_GetData(int OptionIdx, int CurIdx) { result=false; break; } -<<<<<<< HEAD ReadData->Idx = P092_DataSettings.IdxSensor; result = P092_fetch_sensor(CurIdx, ReadData); -======= - P092_ReadData.Idx = P092_DataSettings.IdxSensor; - result = P092_fetch_sensor(CurIdx); ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 break; case 2: //F("Sensor") log = F("Get ExtSensor"); @@ -1382,13 +697,8 @@ boolean P092_GetData(int OptionIdx, int CurIdx) { result=false; break; } -<<<<<<< HEAD ReadData->Idx = P092_DataSettings.IdxExtSensor; result = P092_fetch_sensor(CurIdx, ReadData); -======= - P092_ReadData.Idx = P092_DataSettings.IdxExtSensor; - result = P092_fetch_sensor(CurIdx); ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 break; case 3: //F("Digital output") log = F("Get DigitalOutput"); @@ -1397,11 +707,7 @@ boolean P092_GetData(int OptionIdx, int CurIdx) { result=false; break; } -<<<<<<< HEAD result = P092_fetch_output(CurIdx, ReadData); -======= - result = P092_fetch_output(CurIdx); ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 break; case 4: //F("Speed step") log = F("Get SpeedStep"); @@ -1410,11 +716,7 @@ boolean P092_GetData(int OptionIdx, int CurIdx) { result=false; break; } -<<<<<<< HEAD result = P092_fetch_speed(CurIdx, ReadData); -======= - result = P092_fetch_speed(CurIdx); ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 break; case 5: //F("Analog output") log = F("Get AnalogOutput"); @@ -1423,11 +725,7 @@ boolean P092_GetData(int OptionIdx, int CurIdx) { result=false; break; } -<<<<<<< HEAD result = P092_fetch_analog(CurIdx, ReadData); -======= - result = P092_fetch_analog(CurIdx); ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 break; case 6: //F("Heat power (kW)") log = F("Get HeatPower"); @@ -1436,11 +734,7 @@ boolean P092_GetData(int OptionIdx, int CurIdx) { result=false; break; } -<<<<<<< HEAD result = P092_fetch_heatpower(CurIdx, ReadData); -======= - result = P092_fetch_heatpower(CurIdx); ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 break; case 7: //F("Heat meter (MWh)" log = F("Get HeatMeter"); @@ -1449,21 +743,13 @@ boolean P092_GetData(int OptionIdx, int CurIdx) { result=false; break; } -<<<<<<< HEAD result = P092_fetch_heatmeter(CurIdx, ReadData); -======= - result = P092_fetch_heatmeter(CurIdx); ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 break; } if (loglevelActiveFor(LOG_LEVEL_INFO)) { log += F(": "); if (result) { -<<<<<<< HEAD log += String(ReadData->value, 1); -======= - log += String(P092_ReadData.value, 1); ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 } else { log += F("nan"); @@ -1473,19 +759,11 @@ boolean P092_GetData(int OptionIdx, int CurIdx) { return result; } -<<<<<<< HEAD boolean P092_fetch_sensor(int number, sP092_ReadData* ReadData) { float value; ReadData->mode = -1; number = ReadData->Idx + (number - 1) * 2; int32_t sensorvalue = (DLbus_Data->ByteStream[number + 1] << 8) | DLbus_Data->ByteStream[number]; -======= -boolean P092_fetch_sensor(int number) { - float value; - P092_ReadData.mode = -1; - number = P092_ReadData.Idx + (number - 1) * 2; - int32_t sensorvalue = (DLbus_ByteStream[number + 1] << 8) | DLbus_ByteStream[number]; ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 if (sensorvalue == 0) { return false; } @@ -1507,11 +785,7 @@ boolean P092_fetch_sensor(int number) { value = sensorvalue * 4; break; case DLbus_Sensor_ROOM: -<<<<<<< HEAD ReadData->mode = (sensorvalue & 0x600) >> 9; -======= - P092_ReadData.mode = (sensorvalue & 0x600) >> 9; ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 value = (sensorvalue & 0x1ff) * 0.1; break; default: @@ -1535,18 +809,13 @@ boolean P092_fetch_sensor(int number) { value = (sensorvalue - 0x10000) * 4; break; case DLbus_Sensor_ROOM: -<<<<<<< HEAD ReadData->mode = (sensorvalue & 0x600) >> 9; -======= - P092_ReadData.mode = (sensorvalue & 0x600) >> 9; ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 value = ((sensorvalue & 0x1ff) - 0x10000) * 0.1; break; default: return false; } } -<<<<<<< HEAD ReadData->value = value; return true; } @@ -1566,34 +835,12 @@ boolean P092_fetch_output(int number, sP092_ReadData* ReadData) { } boolean P092_fetch_speed(int number, sP092_ReadData* ReadData) { -======= - P092_ReadData.value = value; - return true; -} - -boolean P092_fetch_output(int number) { - int32_t outputs; - - if (P092_DataSettings.OutputBytes > 1) - outputs = (DLbus_ByteStream[P092_DataSettings.IdxOutput + 1] << 8) | DLbus_ByteStream[P092_DataSettings.IdxOutput]; - else - outputs = DLbus_ByteStream[P092_DataSettings.IdxOutput]; - if (outputs & (1 << (number - 1))) - P092_ReadData.value = 1; - else - P092_ReadData.value = 0; - return true; -} - -boolean P092_fetch_speed(int number) { ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 uint8_t speedbyte; if ((P092_DataSettings.IdxDrehzahl + (number - 1)) >= P092_DataSettings.IdxAnalog) { // wrong index for speed, overlapping next index (IdxAnalog) return false; } -<<<<<<< HEAD speedbyte = DLbus_Data->ByteStream[P092_DataSettings.IdxDrehzahl + (number - 1)]; if (speedbyte & 0x80) return false; @@ -1602,33 +849,16 @@ boolean P092_fetch_speed(int number) { } boolean P092_fetch_analog(int number, sP092_ReadData* ReadData) { -======= - speedbyte = DLbus_ByteStream[P092_DataSettings.IdxDrehzahl + (number - 1)]; - if (speedbyte & 0x80) - return false; - P092_ReadData.value = (speedbyte & 0x1f); - return true; -} - -boolean P092_fetch_analog(int number) { ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 uint8_t analogbyte; if ((P092_DataSettings.IdxAnalog + (number - 1)) >= P092_DataSettings.IdxHmRegister) { // wrong index for analog, overlapping next index (IdxHmRegister) return false; } -<<<<<<< HEAD analogbyte = DLbus_Data->ByteStream[P092_DataSettings.IdxAnalog + (number - 1)]; if (analogbyte & 0x80) return false; ReadData->value = (analogbyte * 0.1); -======= - analogbyte = DLbus_ByteStream[P092_DataSettings.IdxAnalog + (number - 1)]; - if (analogbyte & 0x80) - return false; - P092_ReadData.value = (analogbyte * 0.1); ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 return true; } @@ -1638,33 +868,21 @@ sDLbus_HMindex result; result.IndexIsValid = 0; switch (number) { case 1: -<<<<<<< HEAD if ((DLbus_Data->ByteStream[P092_DataSettings.IdxHmRegister] & 0x1) == 0) -======= - if ((DLbus_ByteStream[P092_DataSettings.IdxHmRegister] & 0x1) == 0) ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 return result; result.power_index = P092_DataSettings.IdxHeatMeter1; result.kwh_index = P092_DataSettings.IdxkWh1; result.mwh_index = P092_DataSettings.IdxMWh1; break; case 2: -<<<<<<< HEAD if ((DLbus_Data->ByteStream[P092_DataSettings.IdxHmRegister] & 0x2) == 0) -======= - if ((DLbus_ByteStream[P092_DataSettings.IdxHmRegister] & 0x2) == 0) ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 return result; result.power_index = P092_DataSettings.IdxHeatMeter2; result.kwh_index = P092_DataSettings.IdxkWh2; result.mwh_index = P092_DataSettings.IdxMWh2; break; case 3: -<<<<<<< HEAD if ((DLbus_Data->ByteStream[P092_DataSettings.IdxHmRegister] & 0x4) == 0) -======= - if ((DLbus_ByteStream[P092_DataSettings.IdxHmRegister] & 0x4) == 0) ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 return result; result.power_index = P092_DataSettings.IdxHeatMeter3; result.kwh_index = P092_DataSettings.IdxkWh3; @@ -1677,17 +895,12 @@ sDLbus_HMindex result; return result; } -<<<<<<< HEAD boolean P092_fetch_heatpower(int number, sP092_ReadData* ReadData) { -======= -boolean P092_fetch_heatpower(int number) { ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 // current power int32_t high; sDLbus_HMindex HMindex = P092_CheckHmRegister(number); if (HMindex.IndexIsValid == 0) return false; -<<<<<<< HEAD uint8_t b1 = DLbus_Data->ByteStream[HMindex.power_index]; uint8_t b2 = DLbus_Data->ByteStream[HMindex.power_index + 1]; if (P092_DataSettings.CurrentHmBytes > 2) { @@ -1699,41 +912,18 @@ boolean P092_fetch_heatpower(int number) { ReadData->value = (10 * high + low) / 100; else // sign negative ReadData->value = (10 * (high - 0x10000) - low) / 100; -======= - uint8_t b1 = DLbus_ByteStream[HMindex.power_index]; - uint8_t b2 = DLbus_ByteStream[HMindex.power_index + 1]; - if (P092_DataSettings.CurrentHmBytes > 2) { - uint8_t b3 = DLbus_ByteStream[HMindex.power_index + 2]; - uint8_t b4 = DLbus_ByteStream[HMindex.power_index + 3]; - high = 0x10000 * b4 + 0x100 * b3 + b2; - int low = (b1 * 10) / 0x100; - if (!(b4 & 0x80)) // sign positive - P092_ReadData.value = (10 * high + low) / 100; - else // sign negative - P092_ReadData.value = (10 * (high - 0x10000) - low) / 100; ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 } else { high = (b2 << 8) | b1; if ((b2 & 0x80) == 0) // sign positive -<<<<<<< HEAD ReadData->value = high / 10; else // sign negative ReadData->value = (high - 0x10000) / 10; -======= - P092_ReadData.value = high / 10; - else // sign negative - P092_ReadData.value = (high - 0x10000) / 10; ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 } return true; } -<<<<<<< HEAD boolean P092_fetch_heatmeter(int number, sP092_ReadData* ReadData) { -======= -boolean P092_fetch_heatmeter(int number) { ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 // heat meter int32_t heat_meter; float heat_meter_mwh; @@ -1741,11 +931,7 @@ boolean P092_fetch_heatmeter(int number) { sDLbus_HMindex HMindex = P092_CheckHmRegister(number); if (HMindex.IndexIsValid == 0) return false; -<<<<<<< HEAD heat_meter = (DLbus_Data->ByteStream[HMindex.kwh_index + 1] << 8) | DLbus_Data->ByteStream[HMindex.kwh_index]; -======= - heat_meter = (DLbus_ByteStream[HMindex.kwh_index + 1] << 8) | DLbus_ByteStream[HMindex.kwh_index]; ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 heat_meter_mwh = (heat_meter * 0.1) / 1000; // in MWh if (heat_meter_mwh > 1.0) { // in kWh @@ -1753,13 +939,8 @@ boolean P092_fetch_heatmeter(int number) { heat_meter_mwh -= heat_meter; } // MWh -<<<<<<< HEAD heat_meter = (DLbus_Data->ByteStream[HMindex.mwh_index + 1] << 8) | DLbus_Data->ByteStream[HMindex.mwh_index]; ReadData->value = heat_meter_mwh + heat_meter; -======= - heat_meter = (DLbus_ByteStream[HMindex.mwh_index + 1] << 8) | DLbus_ByteStream[HMindex.mwh_index]; - P092_ReadData.value = heat_meter_mwh + heat_meter; ->>>>>>> 3f4af8f9c084cc2d974477b7cc12c5e26fe412f3 return true; } From bec007abb77501846089e64a7510b6bb0d84c033 Mon Sep 17 00:00:00 2001 From: uwekaditz <55511593+uwekaditz@users.noreply.github.com> Date: Mon, 9 Mar 2020 19:59:56 +0100 Subject: [PATCH 14/14] merged with release mega-20200305 merged with release mega-20200305 --- docs/source/Plugin/P092.rst | 36 + docs/source/Plugin/P092_12V_Wiring.PNG | Bin 0 -> 11193 bytes docs/source/Plugin/P092_24V_Wiring.PNG | Bin 0 -> 9837 bytes docs/source/Plugin/P092_DL_bus_databyte.png | Bin 0 -> 25701 bytes docs/source/Plugin/P092_DL_bus_dataframe.png | Bin 0 -> 10954 bytes .../Plugin/P092_DL_bus_dataframelog.png | Bin 0 -> 86185 bytes .../Plugin/P092_DL_bus_displayclock.png | Bin 0 -> 4423 bytes .../Plugin/P092_DL_bus_outputwiring.png | Bin 0 -> 19660 bytes docs/source/Plugin/P092_DLbus.rst | 50 + docs/source/Plugin/P092_ESR21.PNG | Bin 0 -> 62014 bytes docs/source/Plugin/P092_ESR21.rst | 76 ++ docs/source/Plugin/P092_ESR21_Protocol.PNG | Bin 0 -> 35034 bytes docs/source/Plugin/P092_Setup.png | Bin 0 -> 36203 bytes docs/source/Plugin/P092_UVR1611.png | Bin 0 -> 31557 bytes docs/source/Plugin/P092_UVR1611.rst | 80 ++ docs/source/Plugin/P092_UVR1611_Protocol.png | Bin 0 -> 24059 bytes docs/source/Plugin/P092_UVR31.PNG | Bin 0 -> 28083 bytes docs/source/Plugin/P092_UVR31.rst | 71 ++ docs/source/Plugin/P092_UVR31_Protocol.PNG | Bin 0 -> 10784 bytes docs/source/Plugin/P092_UVR61-3.png | Bin 0 -> 79317 bytes docs/source/Plugin/P092_UVR61-3.rst | 76 ++ docs/source/Plugin/P092_UVR61-3_Protocol.png | Bin 0 -> 18339 bytes docs/source/Plugin/_Plugin.rst | 1 + .../Plugin/_plugin_substitutions_p09x.repl | 13 +- lib/DLBus/DLBus.cpp | 372 +++++++ lib/DLBus/DLBus.h | 65 ++ lib/DLBus/keywords.txt | 6 + src/ESPEasy.ino | 2 +- src/_P092_DLbus.ino | 947 ++++++++++++++++++ src/define_plugin_sets.h | 1 + 30 files changed, 1794 insertions(+), 2 deletions(-) create mode 100644 docs/source/Plugin/P092.rst create mode 100644 docs/source/Plugin/P092_12V_Wiring.PNG create mode 100644 docs/source/Plugin/P092_24V_Wiring.PNG create mode 100644 docs/source/Plugin/P092_DL_bus_databyte.png create mode 100644 docs/source/Plugin/P092_DL_bus_dataframe.png create mode 100644 docs/source/Plugin/P092_DL_bus_dataframelog.png create mode 100644 docs/source/Plugin/P092_DL_bus_displayclock.png create mode 100644 docs/source/Plugin/P092_DL_bus_outputwiring.png create mode 100644 docs/source/Plugin/P092_DLbus.rst create mode 100644 docs/source/Plugin/P092_ESR21.PNG create mode 100644 docs/source/Plugin/P092_ESR21.rst create mode 100644 docs/source/Plugin/P092_ESR21_Protocol.PNG create mode 100644 docs/source/Plugin/P092_Setup.png create mode 100644 docs/source/Plugin/P092_UVR1611.png create mode 100644 docs/source/Plugin/P092_UVR1611.rst create mode 100644 docs/source/Plugin/P092_UVR1611_Protocol.png create mode 100644 docs/source/Plugin/P092_UVR31.PNG create mode 100644 docs/source/Plugin/P092_UVR31.rst create mode 100644 docs/source/Plugin/P092_UVR31_Protocol.PNG create mode 100644 docs/source/Plugin/P092_UVR61-3.png create mode 100644 docs/source/Plugin/P092_UVR61-3.rst create mode 100644 docs/source/Plugin/P092_UVR61-3_Protocol.png create mode 100644 lib/DLBus/DLBus.cpp create mode 100644 lib/DLBus/DLBus.h create mode 100644 lib/DLBus/keywords.txt create mode 100644 src/_P092_DLbus.ino diff --git a/docs/source/Plugin/P092.rst b/docs/source/Plugin/P092.rst new file mode 100644 index 000000000..1b87fd993 --- /dev/null +++ b/docs/source/Plugin/P092.rst @@ -0,0 +1,36 @@ +.. include:: ../Plugin/_plugin_substitutions_p09x.repl +.. _P092_page: + +|P092_typename| +================================================== + +|P092_shortinfo| + +Plugin details +-------------- + +Type: |P092_type| + +Name: |P092_name| + +Status: |P092_status| + +GitHub: |P092_github|_ + +Maintainer: |P092_maintainer| + +Used libraries: |P092_usedlibraries| + +Supported hardware +------------------ + +|P092_usedby| + +Change log +---------- + +.. versionadded:: 1.0 + ... + + |added| + Initial release version. diff --git a/docs/source/Plugin/P092_12V_Wiring.PNG b/docs/source/Plugin/P092_12V_Wiring.PNG new file mode 100644 index 0000000000000000000000000000000000000000..35a2a84340c719a43ee9a5d1cf3c8de38a76242e GIT binary patch literal 11193 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%0A`N#~y=65~8jcl`&`>GC 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 F{|8EsCJO)n literal 0 HcmV?d00001 diff --git a/docs/source/Plugin/P092_DL_bus_databyte.png b/docs/source/Plugin/P092_DL_bus_databyte.png new file mode 100644 index 0000000000000000000000000000000000000000..0a456c607812e686d5c1efb1a518ddf8467afdae GIT binary patch literal 25701 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 literal 0 HcmV?d00001 diff --git a/docs/source/Plugin/P092_DL_bus_dataframe.png b/docs/source/Plugin/P092_DL_bus_dataframe.png new file mode 100644 index 0000000000000000000000000000000000000000..03bdf8c1e1215935f8035a816648546149b1f3be GIT binary patch literal 10954 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 literal 0 HcmV?d00001 diff --git a/docs/source/Plugin/P092_DL_bus_dataframelog.png b/docs/source/Plugin/P092_DL_bus_dataframelog.png new file mode 100644 index 0000000000000000000000000000000000000000..64a7e32170ec475d7f076d3dc2578ed8c23c3629 GIT binary patch literal 86185 zcmYhicRbr)^go{1YF9OOv|3uNU3+$FYZYzP3{_OEqIM)fTWyU{R5T$}Q8Sd%Lz1JYIL7bMEupbMEISMtU6Q1kV8g0FFlw@0kJsbda;} zSr(?V^zFMJ*s~YV$5ihQps+`H`7FcWeB1Cg08or%JF;gy%d@_HXyF3@a5nz;09!qO zy#fGEGauc%{WQRK?U)&wsP}C#`cwxSaxhVIxY3g}!m2Sapq0L3z+AoVr}33X%~?*F zIFIpBMqzw<1Qaz(-=2(uLutI|X^?K^6?v97M$fqTb&4xoo2pb>EeP!JYBW zQ{zkLOg`PY@PqrqwR@L>952v8{(l5q?49Ww_x>MYiO-Y;`rm*5Tcq~Rxlr8y6#Tyg z^M{wneE+wm{|LM1t~22OzpBp&wwFHCoBzMI&h_8;$xZp+n*OKp54#=p=6-%<=h)a1 zs^;B{)b3SJpRiHf2x?AMQNjc1OFqy2>Oq&L{Ehsw z6#jv)i%Z|PQZ5__-mJ-l@0_0K(BLOSb^ox(BiI~soNblw>hrA%lu+Su1ywVEZ1=}y z;K8FukBrK&&Y#q^GegLNX{XbH4@ikO%u9pz-mFhl6Qak;vr{FZS2Q)pM_8*bGgp=_ zD!Q8&S}#Kdbnby^Ss47UNNZEsq$B4zoN>pI`)KK-a3&7ZDSXJESMBE~@FCSi30qKM zT=2 z9JgbSKIcBm%L-@ax_J0?GcxeIx^FIQzXZGNdAjd8RA8mD$d=GBdC@upPF7uF!-{c< z{0fH_3g|3 zg%}TJo<9u#6^;dK_!&IQecBJFaGl;h-IzMoIBq?qfS=)PwLr|VDHzP!%H1}5eBAAu z6v`ZOZy^byEw7i!;|-m{!%cAn|IalA0;i*YT=_&qY&4x=!m(KR8jy$AB2qs|=2>s5 zmeQNSYm0|oUS5Tw3PoxT63sdf;~LddR6J8lt{(ENll4bu=qHo#Tkc)J zv8Oxmai?RQ)5X)lv+keXjTTh$zWt^BK#Wd64$Xa=0zch6U0*q!X4ZLo1cGmY-t?t~ z#)xXIgbBvX`W_a>gRzqD_HTz3bF;&aS0UB%TtdoS(r+NWyn*)i_8#$XMoV+zmlxzz zh_KU>W0{Ba@372xBB$og$ie)oBC=A=;&CAAr^SH8Y6N@_MBAD=e$tIre!gmKm1B^s zU^MlG@5V}7oVbzlJ&kvl_<^aXG~B6WfmONR+$+3RVkzr|{JgsTIVgEL)bh`p%+vj; z6ZFY4_N1MPgy`6EUPmuMj)x$XF!THuGiwMLhUMRmomJh3rzcaVtIEe`Mbu)E9zDwU z9ayryx|ZJhAu>04#=BBae@!3p!CNz~^)sPmT}Z zrw4+HPEi9%>OWyevE`2*T}JL93atm2{p|8jsXC|5i(EveEY1bDhyEMmCXpAVF){f= z)&84RYIO4%V_a~`-E3Z0ek&l|wF4oWN0)mSGxXkyXe(ZX^4WD+i`Dt9j~2=fYx+5e z$eC-$j92>`V_~$M0iM%E8mNx)p(9Cl^W|-qeFVR=i~6^Gq;%E0<=M5}c+)j%gl8`D#ZWHFtk_kXzcF*OZ}@x5o>RlT6y~vRTc8)cd93>2@i#M!4`L zA&r1qv3HF~ryk7mS~mwL;FJ1fZ%BwI2(UsdcG#N(pAriUXB+=xqlxCwspAcQ%Obnb z_y+67(rhq7O@$SHvIyT8EiyXYH9j4rcA`D;%P&>-`gdj;BQ|K&MoWTjy#zxXJ9Oq@ ztiKdi+dUL7^->|V`NTVXRxXp0DdqWG#e{5#uuM&APj1dipOcgtt4Bo7y z&I~SCOy8J#>4JCkqA~8MsmOBM#j!E(cJ>!%L_8xM>-;*>+g$An)#8lhyLdre?xCE6 zgPo5g@vy#C!f0BuPhO%Pl%1T~mpwlosI^RpCkVaFH~fCf%m0{&K(MKX)}(A@Ox6Zh zYXh|b+%114qU-Fz%8GPS^|5JI}$OqVAR}>D!N;K1NVf+*_7p*e>pcNGxY7-ld zq;a(NN-oSZt~LfN=}1UCNYU{3+mVN#K>bZ0YPoTe)3J{er7C^7x>Ga=(GG2~mzuqE zS|1Q|%p{%l=l^p1Y7R&m2-oo+)gkZ7 z08l7X@Oe))z9xLUq_N-0ejenwLo0m?7G0~VJN=&LNlfqd;K%scwzh}m=EZgPb7#7h z?|@q6zIXY(4f&F%zNcbaHtwtKayy8Amws_nwu~VE)_C{$=EsUdN1tib#bd8qxN@v+ z7&ls;vr}R|{6CxTPNI^#wRry}>&c(EL z9?Ha*qqFTas9y3+VL-I9Q19Vp9ZoBF|3cDjYkEsoZX#AgzMkb?th0ldF1-=(b*~0B zZ09E1a^*L{Z|5*DljlFd4bmDKWqH$fob2_$1RvAJ>l|qa-t%sNCuHAC%6@Jvya}wa znlj(DL#i~SFFkyz|4whRK9qjKg=zXPbH=pxB~$qEtsj^HK{|PKdD4OaHw$@ns;&+# zD{B9iU|{F0mBzaVn7}+QP7ewWB)9$n=Oqc{-{`6+5+`89=r>f;o16oFM&GP++QPE( zN~l`>ehw_dba^>6w%{~eu+lRDPjY*s8+j8T#?Fi=~8G>v))s22O~LHpI$`?*(F@GudDmC0!#< z{GtiTkxo_3UBao@2)HpBlR)oRv@qsbw{En$I+!y@O7_-~`BcUIJLGgyCY3D0g#fhX zi+kAB8ri~Ecyx-dsx%HBsHdp;w2Z_K+#1N+7EzW9{Z-_9?^RCL>$cHhc~B>)Q)1DZ^EY9_@0768-)xXq*-RX<)@4Obzg zUh-r+O|A|OQ=g`jt4~o%1CE&_aeN=(6+JZV$&hx7W;c3Ksv{se5j^d}hh1zenKA$Km3a?^<+0|S zyO4SMzrX zCKb*EpD?y1U>Y5Z#SJ3QaWU64bL{>`^=4K4z0o_`dkzaFgzhocklMO>fHnf4D~xE? zkim4D8A&?!qQZR1@;oA%I|417 zrHsF}RWD)}Cp1XxkZnYK0;=tg=Uow9i=o_S6U&mtVS8jv^1|Zz?Vz}?r|PU){E(t( zih;VvxT^p6X7RgVh?v`Lkxv(l7PuX7Gl^#6pBq5u{^WmxM%3sp^xRm>cGy3z zuT$2v@KHFuOimpsM9jz)Abr!%=n~71QfCatvZ%Nuv_ziwMX_|*%!RM<7s3?K8vdRP zR&-wo^dGIU(6ZGojON0q(j_U$UXq+_8rS?{BxnOXjwHM<&e$8MJB>TpTGTPw$uhiU zf5hOg{-_S{ahj^R1yTz8L_S zz7V6^`RF40x?iT&LYuf_t-S`Fl%y2q*7*dN%|$jX)Q!=v2by68H%U>H#hK(#G{3k*nxAkNDs#7Cqim@&ouV-i^&fCQ&Jx@2lJ3xK#85ILUI3+uME zWD~6`Mj94XKW}H>klPLz|CkcMevV=%8rUv?4zRl2#ql0y>ukzDTS7?s!-kqM;VPTe zl2Mi;MVT>k)%-%HT8o2P>VWZpb4Kq~1Ji`Tx*$)5y|oY?DyOE{*{LW-n{GYKw4I`b?n&9{EAO+C`Alld#U#BkWl zt&&p{-xh5vN8EBiknLBBdbW7CErN-WUV(KpF7!UV;;)Arwih}h8&HrsTV~q9&Z6&* zdfZ>!m{afN-TUyC`NfG<5zS597u#hAJv#n|@48)x@RSALIF*wDei1dV>3~#E?Z60! z-w(Z%!vLY*HD1wO;1#mopy%i!bzf&hgd+_4W>eTsyLnfNbX6Va=INfaJOTn2TB3yt zqnUqCJ-Y+nFc^6PeIi}?L_kuR-WqtXSm-t)`jf)Sjt83%XM>1cWC4n+C5EF$c!S7V zRx`JCle{N(-6E;*fmFjk>m+BPyRbA--`EdpYd7OfP`G(!R?AAaV!^?J0{9tH-OT`> z^obn!nD=BjD$|YjNjgZ}msJ)cq2gt=;pAvIdWd#cwLJf@gUJD_S}Tz1W@jrfqm z@ntDw82SEuAE<05jvFZu0A>Qrx7e%4y;NNBwro}Trs_U_j|H5;wGvCyW*r^}9(o#T zNB=UmnRI6meks(_t@%R{`4ez%@HWWpgC?A}K?zwFaIft%r}vR&?6+4QuwR>C_l9|K z<`x1mEif774+r={O&aSAdL*>G=N~d70QLyk`VZw-j};{F4;$ueTK+z0VwFY#$HCO2D(s@@IlPMRc6Vw>5 zeAQ#0af%9RgJ0|iucD}p&ut-){VG-){&*||<=bpYe@z~S^DLTdvYia3ulSd$*>OC& zjc=UuBSmX*>eLeeH7C0m^-|}aUy(?K2x6owbd+%E{=R?W3;i1ARq(>yNtvb7+~q`V zzgLZC=1&G2J9oGQca71V2xs~DzYgb&@JACaawZXsx`^2&(I*Qc=(0%x0ZGD1$^{I@ zujZ7l$l-3fNKbu=h<_7<$fW-)ql+?7v^bsK8=q&?Qz5|S?<_~Vv$QHQvD&-Lpo>Ug z>}E1};vDa2LjQ~9*G<8Vz7h7zS|*8~q>QahO&mgu#4<_;nvnv6qvS zFn|#6g*7%?$+d<@;84!GnW`64KdQzr8#y)8(sL08#a};I)OR z{)TS|iTQNJ>wEn4z9B*z|EQ+Tg*MgrS$bQrkv0IL`Nc`G*)t$iw4S+W`a&fC`&!~V zRq8pW^tP+o#l<{00N*%(9Bs6lEelCXQ0mf1CPofu<01$tu4{L#HpNS4;*_d>2q6io z)C^e?V{Hx_uq`Lj2(vP?h=32Xd53g~Wy-R|vOJlUG$FperU#*sMhSBy1mSwc*4!;V zxlhr{Xf=m9roK7jF3D{DC8i?AwYLLJ&a^p2yPK2?{bT1|b}ccq&1Iec!5&h?OAD0X z%F+^JhriMecwDbu->Nor#VAd~=W+hD#K*lbxSgbt=~l4Y=HU)a*E$0PNwYrz*yBAR zCso&8nD1`+HArAa70kQB4~nNNo1Fpr7=Tas?c_S(duWJhOIOf`EiDo%;O{tX@39R+ z^Q698L06dEnnx#mj)H&GzgYb^-)C5Rbrc8M6vBo7w^L@P;G3lr+;`F zT2s2O;+5Fs?kFQ;STIrXc3sN=1Ur>-p6WJEIiD6CI5UXw=Kq1Sn^=lC30Qm2r4xP4 zp%5q%B~;u0xpF?`0fHZ?O%zt!OVeJUsMs;twN!f{9$b5YwG*QB4$fr;)B_xLly`mD zfwKYmT&Ogi6(8Pkus4B?!mta#12o3Bc#*G>1}OaNPNkjBBoP1ygJ%a6GMMh^c1~DQLzy4dz{t&BL6#HvDq$*NZg( zNt&O6tmE&TWPRQ8sba66?HAu^bHeYM`zp}z`1>$FI`aKW!jA9P^4Ly1nq(-xC0- z31+aX7q#B$etZ-be|PPn7$dYenTA8e>j@bF0Ng)!7ehK%*B2Xkr`aH+3t!cZ#pyIp zIyvaPi#fErQTEElqEqtO`CQ8C^;eMb0nmGWt*|A)z~pM?=T-WCSln#*X@^<2BB1x@AkQf6{v_+%g7+>-jMlPCc831=U@EJ+mYrH2e&-J9xg zjQ+=kyab$Rk}ztHZNLCYmHhxsuiPf4mTpF0`(aU8zY+ll=3zy7S)x%d9b}2l3>(xX zQq0-c>I`Wm=z&EgcY1hrl)}Nq60saU;tvcMe=4YqW8^tU|1s}xSMj*kfrGQ#w7kJrk`FV57iu_M4ZOEcqFZx>~#5H?MHM!li_PTYZ-0Riq|E} zj`qcn^_M#0sOqe>sm+(jds_4m?$!c^w{YiGP$)!LRjG9yz+~iFak#D9Ez6*662>T` zd^=9eSld64!9Pqu?`TjQoGi!o-cya|NnbbzAt}Us*StX zyy$fp1KG(8I5-evcC(&s^|P5A;Nt!(2PegaL1r6O_t{#|Df$(KbG^U)u;5_EZsM07 z9AMx%_wSR}`S(Bs;+!u19_wEQw_!HF*{%1dezMb_rhBs1!QdZx|K0_MH`F>sUS&uP4L-3CGsm-yie@A=Z{d<3W;CzY?nGa7rM9t z*#z4^#n?_ zpP?%7Cm5Cq-xpp*uASz^(0Ll)D8QbIa>a7v*-u8>n zhTrao&K>G*+hi`LK#N(6>;l)?Dn=?;!{j2rgW3dSZzn3dr6FYLeu6dDKpH|q$lC#$ zoh={SJ}FE&-?k6UGQ#E@=tyN7T9s>%n-6UpBq7MX&f#^dxRuGuaM*DtHs`@mhaj;I zD-i|WGzuhs8i`^ta${e*qd~j6ATQj&R@BC%pSsx?zZn^g^mGK`RV`R0RsakrxU$FT z>+goly0-zO(!b%pM=Uyfn;P~IxAr+PqgLWzz&!?DH`e^p9rSNWI;G9Kz6&XFL;!>C)KB-RXaashc3Jum+HN ztTA}9@F(Ch2|?5aw_TMW$8d-Ni$XUY#7B!xaykteRooHMqi=nfRsXgwwR&ciUixsx zY+@@^UwUHGbC?5Z9*G9)f{|B}72joh4uhvZt1<^;BgjfdsTFEX*xG12@M0<>-p*6e zbd4p=A%Bp0dMnl;3mhGf;%*I4A+*Z7g-!X4_Iy?<{;Wss z63}jcq;yPIR!QBB0NR!lToh^WixKsN19m9SYXHyD06W8-i%MdjohRMisLDmAc)cy< zn7;hU$GdStYp(f`i=K@rYajwJM|SITLuo#DkPnD`AVd=b%*Y{lM!7W~)#dHpBsT|y zAjAQ3&o`d3h9&H5tJQ~@i5orVzp?)}m6%vIm=W@}$c~qhpW4dCom1DNLRJcCaSM4- z7WP-%PmuCEy5Cxs^5GC+TV_FeoBK60a?!|ju&5!|LfT++%o_UICkBu3QZ_mbQ)-Y5 zuwLp`QBq64%<`4Xgw&3lahZ-(SOGi$yl~@WP=93)S!>J?J^C1Qvc-KuuX+hkLM5;3 zDI3*a*S_D8#fhR9OV?OiXQ;hK31b-@Pv9P0LI=*uCmh(*DXoTU6R%NB8FfGXY4{i| zLs3C%tAHqMRYe;$wGRdSACVW_my&w{>PHd0;>u3*Pq3bR3Z6@yDB|nlOPixSNV2@{ z^=xS(lNbZaj=e^I3HW7``3`4L0s|zWF(J6lR*r;2C>HId79CWm)5S=tZ(wGw=P<*gr!_?%l`Mjs;c^&?YjkHiXmaD_^WqB_k&i|U;42P zGZujHVx9^$M)9{^{)Td7beMlYVY@^84^cg;=HFNSMa5p1>pw>Nm|?4?9ILh1pbfAF zItgOzv4dhqz|$5KYaj7k@Jq=_`Wc2eSEB5@`L}{?S&=ERb31X1>#sVE6`i}EC2uE| z`nGy7}*I)!1HG?=NWg|nCLW| zb?P|QG(uVP?~a2wRudZgC(`&5GwB}B+wf?V{tB>OwU+4$*;L+PW{_13@F|UJifjIm ziwVN*do2Sz>eVgLYyEY0j-nvRN8#O^Cy&xO+$jSKHL0EfwUAv&zi;_-tqf<*_Ii-J z-L@*@E16%t&Td=)hKhf(@2!tQ2e^z{YGP6^wXnoGpA=nHzAfrryQyKJt#O86~DRCZeAp63o`ZiYoV9#?zU2A z(c?U<3c0!E=d9V}aD+MTz!?q;@9(OJ%efbUuKRS1HgD`U*fs?LxWzl+UJURD#-sAi zxcI&~i=z}~$fPvnN=Tf#wj-IIiPQ8&V(yn}^W9B&CDfmql1Vp~;&l(h&)g{+WR!?K z4e&YOT~6WuA=40whzb9SWanSp$GV^s`CeQL3=I8X3}?7k*I*`Dfj5SLDg%R=rXr1> z9CC{6jV!uf5c2O`U=-cbvSo=1m1lILsRocpOv+L^PNsD(CR~Tirf#}voNe|qhiP1K zrliHlH325PwiLv|%5RMo1GRw3QGOVD$VkdaXiUB0D|$47dC{>6?EIPr;l(<4d@!+Va`WXjl7=NOLpRRwnHYA)N4tVhTflrh3QR?q{ReB#o5u!}@BpzH6u~0BoWWph&G`ynZnkaIm7kS+-uO8>d z{7OzTH2%@>CEuD;JNIhTP@X=dN{szm;BL7-EnY@cMVxU2}5h& z{8{-D^Vydg3d`p*_n?jVK5&{=sm9o{q>G-8TwQAg^Xu8A_8}EacRA*nTbfZ1=^gfc z1j&mL*K<~M?9v2PTyh7TdoCU@Gmif5XM%#@ti&sF%yLwGVegL5Ls5sfb49Cm9bNNH z#8I@-yX4djh_~#M@1eNsX4wLi-2CteP7RG>n243*3i%CyP#GBdXKj&~sAfY~)|e`X z;7nTR#7L4!W8a@_`M5KnNj+sx&x*oQsbX%vwO#UpXMpA^YMvTS$}i=5V+K{ z_yb}2n~N^2B<^^V4v{Gndm&_BNCBJkZ4;h8Sr~$^Ybmt7Xc3>)JAAm%SZY5elQ~9e z)KR>reOppamf=zu+x~rr?bwF%WjFHZnR`=ucP^0QbOo;8=Ag@GhPKcpQDNWYweC%R zF>RI68eG}&s|uR?RuV_=)a;h{rHMJr%dRUX_P*Q|T-$SQ*!d#aD#kTk0YZ=e>lK|b zrCF2;>O>Y&oBo?m%5~|JY=Q$Vm@oC4I=Q)`T`?UN&c4J`6oJ<0^e_9tvz|Y0((i2Q ztdSdQJ_xk1D9gdw);;3*Ue@<7(KW%NzFTR|n8yL6Y>eG>WE^Wbv?=1SnRVksS*-xn z1wj7*FDTN|D8-YICur@ROY{J>z&B$#=-k2lJgfc#3`fr5iX|EvzszsZ7O{-`72~X} z@oWuAAcTq~x%hr@TOghP-E^-KHM43aenSPqC93_ezM*lbV!2g4WIs%yL_oj41|$z? zhhLM+wEwgf442s3A?XAQQ8kUB9ZDj_a8CC%pXdF{3OcVaZtBt4TSLlqE9wCh)IbE> zCd`-T6I;VRE0INno*G(wW}f~7UO9|%t9Ng&yqT<>{^p55$kpthInH&!+_7JujUW|2 z-3GK;JH|Dwu3lkQ><(GEuXe77a?$i1XR2$`3kl_GYG99($Ts-CZ&-UlL|Q@+!V$hc z##b)AQT|J_t)~IMJfK@s%yo6!#?o?O&u8) zox1bDu`N@@Nkak&BtTa4O9`ngspw&Z@nt^8%yspQdqvnt@bC^F+!hdTXyREnG-pVUy_B)wkbwqf=U zZ_fy4FPGmlxTrZsfs}#Y-h%~GV$TW)y4i)+X5R!pmJg!l-tEYnQi?gtR0QJ{HvY}y z-#K-~)Tx7HyE5C4V@h`T9EOQ1GpIwZXIZ9(djfKIj)dwgKBC4kmICr1I16bSpJV>r zpx5HLx8>e+WGwH0O}V@UGHY~3K0++u$3RX_))QH=9G$8`%60rcHCllX>v~dNqaCI)Exa1#yQB*a8c~(Cu1((_ zdgIczRD3aweclf1Sr6~hWTt!HE|=X=oWPrvD5R3-QG)#Qs#`tNaZy!6foZA*`T5As z0+JNIsD&!#z_?UxJz<8|onAAO9(`BVU7aH{^~Ec2@cPL9{mNS*wh8^oC%mSjF7jCrIxyK%kR>*33UoF zpjYpV+Ph2+fOnr|nDC0!1&k>7&^cOa`xz+J9$|Dgkm0QFxI%H}-4qp{hH)q_K1kyM zUmn36sePAY?nRekAjWnsg7WLYp|>GK@gTE(7vs{wqx0EpEmZc7F#_j%ahxP${iA)r z`3)^!?Ynkxp-u0z&-L`h>-G?0kc+r6q`QBTBso7T4sF9tCqb^LfZhV)7gQVer6*$2p{#${PZ`QKu zXb_xp2WGQeRm0z#YQLZQW)3TFT(Wp`@XFzMVX$#x!SlvUUT5OC{72K4`!E*;NJ6r| z%7OA?gTuCVjLZN@W-uu}+jV?!go(v!IsCEGElMQo_m^cqjowy+7IcQ4O0jO*iXJQM z%r#QxxPnRgj}?0=jYro4CTHxhZx!6SG7mRP0<#L(z@Wztvqvbe_`S~)QMHG+)%Ju` zyJk;>%TFF&m+cmn{R@xk?h71G5Xc=U&FpxZQ+Og?*LS6);i(m~*-Z%pW$FM41#4+S z0D2XyMo}WXT()=F{daZ^9e9qu@1BT{Q2BkfqXSYu#-yfk-57onE>YknYv~p|1T`$$ z)7MPZ@=Ukl1#<54ErG0NxmV@lV<0)dzO29q_NFqg6EO#(3{~BjkJ}R#@uA< z8(eeh`J)F>d4dtgJO+pV=3)NH{>rG{bI%?xetG7aYx>8MHUZY|)2ZDmdo$?%>vv*q z)$gJe-!Ahv>H?YVuw?6Y=x+G-v%NV;T|vhm!IirMIo6qPa$jWT<~}djfbHZwesQ%G z29p{)diuMJue>$lKiLaJ;4_W5A!65C*tsQ?>R-Ees&FYRD z4|6T6@ndommOoO5a3-~dx!=40;^VsWIaWL785CCwP=Gq;Dc>`T7U(AXnu zN2%w<#pYa=i;!^rp~dFPFVQ+(q`U`-qsl6K7@ITG!=#QfF&0$!5+ybCYyF5@C{Y+h zg&Szz_9smu8K)XJ`68jhr-g5})>4pCxsTUB2H~K5$GhfrB^)(nQcv^dRM8{RebcYHM1E!z&uLR>{RE84!?_e#H&1&89@ zK1k6jAlq7Ox=-fHpWT*V$6aJyu--x*;i&~lU@G_d0C5**sZ?Kf zGSl(Qt)|&P^P0_m=c1=z1`M0j& z=h8XM;yzI}VH1CFYtm`Ks(dq0%JVa^;9J3{dcBh8jKT-cv4sE!il6)Bn{C6EgZTbq zw71JPeyq!S$BYB&Kz6Btb~7oxrWNNBT+*)IAiVKuk}2Rq_O%pflqy{o%eXZn8^6_C z7{avd4}Lz_Cm;XE>(Ju^+Sp^X%20#6BRw-(JW&{Ze56`8=>cd zwN#L^tLt`|o|t4kkHo-Emb3=lYM&|TGu5i*WwZu$rSDI~$ThnN&%c?gJ1=V-(3vye zJSGad(dDk|BzHjtC(PfKVRLM{c&RcJ9eIN%Gm7o>rXeYE+q^Z5i-@@(?{`k+bfnb1 zd>G~7D+te5V6r1gTjfbtyPf3sm^;?+CuQ|UD&VUcUM~OsBQ%)nt~ZoBMGR?w6<<)@ zP4c8XBabs5zTe@I%)WIRqO3=(`Xm>e5JhdMvG;ke?!USYAS5jNTqyRzj`7l+=pFuB z-@0u5k5jgzYc-bxJv2X{ocpr)4e9Sy%i6%a;babRzs-_>KNF;{0S72?zZVwryj+iy zj<>1kmdh01mE-Q@N+-^;wIe1sSMP@3N`5}3X5exU&sBe%Rh^K#&2*%YJN$11y>PvH zLkRDwexg;=YPp+91+}q?{8mKOFQ3Ik3!MspKvTZsTpFQ~UwWZe)#^iWf=MmVtE!zS z+@?zh0kt`SD&4U?jy?5tQoYE?<`&p|0|c2YJ3@oV48?KV^dd zgnj|nfZ~M8pu$$>c?AgL9M;T9x=&*v_x1AV+pC$5DD6s8IB;ribxchymEK+S&{u4a zI`yfArp__>aJcYknZeCRx#0Sg%xfN{lr6%WA-T~Pp%QU(qUwi#=;(;%}z-^4X z&wMhKW$9~10{cLBhcTogpG)fbFzT~ef~_!{tvuRDEm@hlMIZ}QW?Af&@#fZ>{Hw0R z6}=Qozw2|C>z*c0A+|yhV9kBcwPyWw0lyT?x58nOsvN(Ji&Z=#o`KNFm9f>+RXOdB z>bG88Ux)He?S@>4_aczkx3s@Ye3}Oh+A|gJYd{N#Xwk9kTSgBb4}%;ef0+&mj#eHZ zmK|JshrvO$g(zJtva7CocLVokPjGp6!S!)>m+9jy>T{36M8;t}O}|aYh0(5U2pc8&Dzu% zkQ#==-X9EOiwX=ZxJ44WOuruU2fC2^rF^=c&24_i7j9d{-hU8*TAi+xZueqkeM88} z({?48lxH~5%jS+AIWI1#Ey6_Jdm4S0H{N`f@8Mq-oZu8hmcFsuy^tpp^NW%B8ZjHZ z2vhV9LFvwu!!)K!8_u7>zd`4es$agXJym`h4ovxasoGT0uL9J)agx82)+VQ}Mg|BkH4q4nLgg zp4?^j1Z1S#1(Klb%RnB!9;?jG9ddVT(2`G!-&z$rl4x9O(x0b~h<;kz(*2Hh^r1dU z)gWiuOH~9*A$PY&lFP0~o3a0l!D@ClpPm7qD$hf@r__tCe*L{7HE-@L8dxROGO?R= zGa0@kb@-wO=p4TnW4iOlS5Ku;*Y8cy@!-OaS61J?I|@nU$Vs3*GAqu~tI=!$M zeYC5#4sO$WM+6@g*KIxqL7cgH@vMQ4*i7Nj^wa4}8_Di&(7$s~Q_$_ZyCIiO-D9)2 zYAFGKTnM+Z$H`#!#u3k+(SDY#UQqe`Qy3GJ) z_8unYoX_Hc2vVeI0x{-Bw?DRWT70}??lJmv)DZoe`f;zL6rkr-^!W&N5)fVMD5`(( z+aAFl@@fogK+ox}?q{|j=zGD@f7r)hyF@$TMt7DFLvdy6B9tl+c4>R< z6tJ^+)zn2uGzw>k(XM_<-b0a_S|>l{PG;9}fR&Um2J@Bi68gA%6VIzR5ID}MOJrXy z0KO&W*eDeD3{5}nIzscs2}1+Dw+lX<1qB_!?9nkc6CgTGiuaE7y#H0I<5#r)++j}6 z*_=o*L7Hqm^XyK_+B!3k*?)Ny-KkH( zZ-MV-wjUOj9RJA)x~Kz&Ze`yZfotlVqz_7toWOb;k_e<#GB4ei&(^(zK^G~rNh@_y z2YhmmObEmobSO?NaOxbWy5ZS;&eR|uX z<73fqSzNoy%*#v7_hOviXo^6i<;nMr9-W=tALFDf!$k1flyhJA3cL`Sl-XyQU#B~l zrzJ*9uSM%89IziTcaR7B$VpFo_d68)6)-_U( zOWJoTo?6xL4|qNzH`m==c5{HgZFspI4h^F=K74$3^#!H9e2D(H`tNYT+r?{25wNxz ziqjd^?#=dOg)#~YK=#f=u$Kvfchns|i0G%H&pUk7k3XDnI^Z%KgK9@(Iq}!vnme-L z`c?tt0}zzab!%u#8|!j#B{0W!d!T^;Dic_EasLLj>WEJZFQEZ&5F9;)fT8kI6=wte z3lU(`(%J`{a`D2;>p`c0s%3{`cwIecGDb@}`xaUgsbAa}sqp-felP9gbfnJxprp%( z3yQ~Z-k^z~I!zhrjbP5ROTCnHms{AABo3;(&tf;a+eTVV=l=@?qG+(<>8#H~|7`X> zdX_iD5{h#s`-?z_l*zt1x5x|32Ye*sxXH{m7}el(>b-6Gq%2ZD@-P((fP^z?F+zb= zny1D4f!c`xh`|@7qsNv%ZQDyJf{yh1ZN@jugfZuJ4>^U?a+Pv#sLS*$@Lp(x*Icc= z23p>`Z>*Gc2Gbl`r;F=e)1Gy=Uw2v+Cm;;%!u^K-HRqW>O@EAf5F_A@jsr5is(o!B zwnu=>{M!wF{8;DqbmY`0t6G=Z6=nCI3#)`{H;@S0v+X&lXCz)17h0m73g?PWyC`&F z0d(z#hMtJJpJ}w(o<>2V|nxz4jG#0Xw@0Y)8q{I63@K6&XYHMc}MSeOKJBo@7!QG=- zk7-7;C3;Nf8Bg8LwZaw4*jAD1ldSxYke0o#P7)-_ujm-|W@nxq={v3TAE;!4hQ@Yw zb~%jnT~9S(CL=#H|8Nxr*AZ4U1x`7j7TVKn;|)5%LFam15Zoov*){o=TxNb+tF zyQ_KVat}rqSKlsMSOy$(sEJN6z#8txd4`B-aitj4bu!^C|9BL%msv28x?WXogqz7k z>FXcwne$8KObwX2+E23ur$e6ml_`6&nveOdTMJSyl6ICXLK3ndtbTJ8DS1hljG3wF ztygW_z8m8fCMG7$R1Bw8Gw!FK{rQ@;>A^>&Ubd{W^;DBfB3@m#|D9!k&h4?OUh1kW zk$s(~lS*fqkeVe#`K|)TN1o~-MSPUI+PhgP*n!?RT0_b|m7Tu+Gu3Oj&M5nLDKTej zPSUbwrQn8np;|2^>1wKeDCxmf$8Rl9T!OTvr41j*!G)fFAJ3NGy&QBm^AB9K?w8xY zf1}JqT(zXYlZ)3Pqa&Z8{oIwdBTYKG%Z0o<^?SSC7U*Z=_P3sWOwHOXS$;&``?`D< zTdy8G92V-{gjC@Z3bV4lM8n7Wld`=YJov~7)?QPU{y)UMWnYwE`0foNprnd|w8{^V z?v?>XK#}h5?izXsQ949Gx_jsvdH|7bVTK%rjv30KhuZVM_x)f$-w*a1xMqE3UDvtR zI@fW051w&CJq&1RPF~DyMH^=wCx`^>7E#^@{i)1f1$cQ$X#8Z74k)H#SKXbh&^pXJ zD;!&jlH8^4)HNj{y!bpK!#c2x=%R1^9Kg6KYDeGELMuQ3!a0_~>FMc(hP8>EIa4P% zQ-P#Erg&y1O*-C;?KLx~PRH81nAf;<6^^VtF4%bru|Sw~1;DP}<<%oA>qbwaKzn~n zzVxFfCpXX#gD5DIzgYlXBX3mmn6Eo%7dUptMPSw&Zq@Vfp^Tqf=o63(uA7xR5KOh2 zIolGLgU=(r8hC$l#h2B|xEt$~7a-+N|8HR_%CmN3^uJot%>%0J3&~-0sLIW|B&ezk zrvujzdh_61ICx?6mUvZFDKC`7tpjIKgNWV)N@C*sH)7CuiIk53YG1e#nU=0Qc|sOPg;~NLx_;F=ZF$eFUKjQ-J?-HYEkZ1xyFkd3E`y8u<(4DDY3uF4UoUv^+Tljbx@i&>2$2tacAlPG$GOH zZZWOPF~DXu79ZO~8z(7uddni?J8AiVCxP+Co`?h*Y_dtSTnYakTpug*nj^jw(TTH& zWx+?;kco2#z=;>2KfiU)2dUhFFHV(uX^?)e&*)<)$zEfFpL(6YJI}H?9wxu4 z70UNlCy)zX>mte7O&;W3A?g)U0AlTv1G)q~rI|Hx~!`!^%{diw^LM0u0jnNa(I9m~-+1wt102E6aJ z;mZoT4`#ufO74&ZWRiD6Yh!Qreo?L)C+{3=opIqNAQjF`*2QTSKs_B&H-2-5{?Co- z@2ZofTolx7bLZG$e|VC|zjlV$jN|`=Z(!3@|L@ox|4+do|IdFMOQZDtJwxHoQ{l=R z0qVdc2y~(m-4#{*qOG6K{$h3U>X(Is1$2wvh?A>@ zGI3@d{o(q4fuS&jS9_Db|K@=gy7I^GZNc1|!JnE#q~LSweoMAK^i%DnG@19m-se^- zA&fV&3x&(aVm$#)%-M-rruGZlquRxwyN#f`A~IfTZEfmHh9{3{^!zb`va^)7EXbNx z9#0qP242v{I>yrSiTkU$G#VYT^^rOMp9C8}xJjNjpWB2@ZuV`y`!x)+qBYwZ6znn< zmsNvXh&GtS=nV6L4XWPx2d|LC*t{6!f=pVCLp6yD=Nq5eB#K-SJ?Eyhc<&hw0Mwia zW5|Pw^4kF&=|TP)_;Tk~kA!z>@3kcfx3l~yXV+@o&S3r#K^zRl*+r`jtCD~-24%Hj zzNGkEe>V2Pmq^(b_F=5Mmutldeh0VXm*0ctyqqM{-5)W@%-NFc^)i?04iz1ulN`}u z+|14oeJ}uh{bQXY?)cn?X8sb?E!?Nmty5pKO1=|rqc(SJj5=GK0M|{Il9S%`gw7=I z;^j^!zq?D`5D#wm|B-h0N*yZAK$SI6eJ zq$5b5OF_o+zg%1CQK-{)cuXIDp8D{DeGZ;I6YFUGqW)U8&Rw)#a;Pp5n!R1a=PNH^ zh!0$4;Iay|3g_aU_}6vKg{gnZvGLeG+FPlsvv69H(Vo8i{q11gV@&(sU%3PgGjT%I zRr&e}tfv0#$^N6lwh9lVXMWWa?T0G|kZ)>H5MzZgm>6qpz$uZG!GIbIvMIfMKjVR9 zqf^MRU#tyw;IMDQR-T!eOBscxP5z<7UG^3U^tr~=Uy8DqOG;hGwtqyjqO=M1Jkyn_aZ>(>g^q2o^)Y>c>q*Y%(t zit?NU1}*hGxjPVji{(V+KY>hM=~8m=H^-cn<}T%vAc!J9mOY>D{$x{mU`XhVck>W? zYDE%d!LlX!YG!Y9H2dvH?8A;Td;H!Sf(8O$m7@Uho#t1C;L4JC#7A0U)t6HXUvQ$T zZf8^-bK=bCnXI&@bdloI4nuh>VFYOqAWIxa6}a2WiHBVrY|Y=7D~laA5{k_YU?J~D zj3peBK&=r$1|B*2@AS%|uHs4)2haW^t~&njT99u*rKRJMv6aqm{xK1kuh*omMnU+2 zy}3Mz&Zn66RNX`XGn)E18n2vW?C13)`3mRr`fK|T2AW&NKxA5)BG7K1U7_FkUmp86 z1DE+NK=|Ig35(EF(cFxU)V3tQ_z^vRH`(ratLijyjlc&18XKeaK#mcT8xNY-*t8G4 zqR&0*6a8dD!%x06kP2Ty{7pHG)x96}pNUCbHK+h8fgH)vFiKy2@ zR-9jxrLU>7%HH{J+e>U`w+&oox2e{5({+$Wrc~k8eRXOJvch1-CO=&vF?r5*HYrOY z{!qq%Cs>JVb1vCZw3Ir`WyN5iSe5moL8eQ5psu;CRFBGQZeo+FJcDCp$oz%H2aAneg!#o=Z9v8- z0>D%&-o{*rhW~1J&-vcV1t??igL$4h+EFzzRnql1+2Ak-H0n7FxEcdh*6Iv<$0aWC-P~;sE5>_a&Etqd)u0Sva;J2%( zZprgyi`~MP^Kwyc>o{lr@dr%eo^O%=>~?wfk6d=8iJ=yZ>T=8w^yo4g2?noquVW zTbi|=5xm&i+3`QN0R>SVZ>6{!9(VgYdnn;ED@W(gnsq-)wT*ica-W_Yi#Jy15*7b* z&~0IxfM4J*;F;dI8G%cyJ1uqVxCQCHP@u^xBp8n2iG&I-Eft< z-4%L+hZ}`2T3k!0WIh+ryZVxZr zB>6}pUk*wy1nC7WGpD@8ht|FJ(s$0XynaU{h9AOhd94h!6HA+4nXl3r8;k7V1uM$r z?vWa(^3DyYQv2^lCkz;O+zp50OkF;Q#m&3z))`J(HxlZb5w5o8RhK0vPEDd6l2^8l zJLTfs=($j6$3He?Bbu05mgL9Emw!bNm@Qy`;J2|~Mx9AftR4(JPdsUD7_#kz-{Y1k znWyM)bu+%Tfs}`aI+s-nU`(XF8wI2wRj*3j#D7@OOi+HlQU+{6U83&Wyad+h|Jyt< zOQO8I`TMs=B;KsNspY>*n-oJmT;hNIvlFr#STj62A#gdV^97%Sj2j}Tfx>&(3D_-X=f&bx6?T-fU zxy)Z-w;WShjRmofe$DIe!Bmpy#WI3CjT*SZ33~qoxR<%aWl5@jGtsg&6vwmCU7a0q zRv`Drv=@}wjo8yi(a3`&Gs2A3jFU)=7MM?Md~V35#PW;E1I%~p zKoP^|podOR#%i9?OoBf$UOIeaTns3p76?c>$ixiJ{mcJ~&JWI>V6|Cj7GgOFNBs=z zrmp5}?B6)yVE={fb?H=&BRY`~M}ida&G0Mmmt?5J2iqDKLvx!*bNwnm(Mn2SfX1{9 z$A5dAPE|wmwDk^C1r#W)*UeXk-+FoyIE~D)0U;c=qaIGfbQ11v8T~JC^TQW$s0;^SqwVc);aH#!xOHifmE5o82spha*$dk4IYs@8|0t1-+(M z`P7xr>xDk}%6&1nr*`iyOT1XnjgIVgoycw&uzxc3wSBg6g&fc88Lgl3D3voZ$xXw$ zcfDSMp5BT8nP->Tei(zg45*t7`5OBS>7p^0D74#SXE@3N{O+0Evig)fqzz%1Yd@7+4XtL1+0yYl7#mpS?51Nyt@Z@PwH!G z>@Ff>R-{xyjVgWi&K}|RUnB|geBsiz>sa~S$H&b(J+BWILex9X8K)+?t{J^lm^!aH zI_>W950+ZGqb^cMo<4m#x#_Y5`F>WZvVS!xkqdG_?}5|p(todx3B z7*yFIz3i9#n?-bfhdgE;@>!}S!s!}P4QKmc)Z!v$d)H#PK<$ET?=LY@F>Spf+@vly8L$cq2$5J|T9F+BmFqO69CbWRlQy9BRZq=l+TL7ZnIqN)wuux>&* zKF$l}CTnYpUH(}DShuP`h`|VR&bn4Q8UsKtNSee*4_AoflJW#aGL?nrZysg@{NPcG=RkYk=03MAz)cAB zz$dh2$*Kd9 zq(16Yu%o@X5wY*!GvL-Di4^S?U2zsgC@=_F+-g|FLHfJyZj+OOIRzJO(i}nWdw+t)u=XXeojqY%Bce`54ysDwJUyd z>ecLPV$1l5E<_^t4XpF@kSR56sEk(}_4fA3eunGDLAKfrFP+S5UW*gR^2avq&eT*g^e^ z+dxExBET~!u(o9`Cj}#DGtw%V(zgOJzJ8v;e^B@OiXRA)!k!3PpxQc>UT8Nf=;(kA z3~ZdV{}RKL?=xZAHI{@rq(WUII+`V(FSLtn$x~}BMJXCRQbN>#oWaGmsUsB{8I-f- zmj1AE^Nre2CYW}0LwuX2yhx4ldlk+UEf80&QCGxBiim^=3as>932boAB2s0n0sPHb z>66M26R6Q_>m1SMF7niICWCP!2WES$;T(2n%5z}YZ*BNUW%>k61<;k@hN*#~n(hn{{fz_cuITv4owRtMrb(AkKTVp=9m7LobI!*=#A~TKc;H=Klt&z%% zg^JwfT5AZGS#u_*QCFtLSygQSr%`q8N~MlkNV&lm8}O>pK&m6yQlC+$X64gXrHFRM z2vDcSk+Jc8zKacdqpKlR8yaAeTDu_2471Pobl=Lv)@4_x)h%)wwLt)2ZKD^;1B!5{ zv%bl9m}8;f3&(WlL(?{;v365sD4sqyB!(#=Y-}7{YYfKvmJl-m>A` zkb;=1q%D>PO4BQjlfcH@s;kF=I*sz*1z+gQ44Czw*0_3BX2pYzLdI;;<14;i8C;D} zvp739SKkl3P!47_qOt8(($%fEd;v0dI_z_thgln$rE;cAE4N^nQ@nz|$2Dw?=i&65 zMM}-u-9hBAx~m%dli$lzcKTQRIzl=0=?C-~V~Y^e-_F(Abs`!NN7mG8&0%M!V29ft z3lVOL*%~mVvx;uH;fl9#mM&LOUHg_c^jwjo((JPhI8BGvXlV<)WIQKmq}_tfgutD$ zLSPMT^=J1QI$5K1BI9M;hbgzRFemN0R`Y-!7{gv*g6^(iW?Tb-f-H^U{V2^shKv~^{7Cw z#vEMb#mQ^jd$3WdJ7c|ISYutE5AJ6jEVa@H#uk*y$E8L(1)S~{z^jcaak$1BM4d&SF_TM$nEli% z5O%K&Y}O48xHvT7PHV#PlWSCPI6GLm2Fsk-RZ|fKs5eE-WlCZypUH!kfVHy@CXOl``2{KU5S#qwI!yhzlBTR%YiTx9jIxHP;%cg z*-RbuR;1J_P~;ksMWD*anRw|)A2&M z)6nJ2alzP(Oym|P`9k8$!CLah<#t?AOLYa3FW>Gic19DO?{5uEAqW1t^~jRbFRPiz zI8;p#eOg-Bp04#$J7X6A0E&pyynu!ad#{?4-*)B@rQ-Z=ag zRh};d?cpXMI5j0mNmM<)_oEB8YOA| z4b^;DNaS*j+HjSF*{s?Fk7SGqA}I7~!?qLUh{678xnR4kv&9R&1uQc<@9sDk_fb_n z70pA?fl3o}3>{^|YaFkFP0kz^RW}02|K`_hC&Sh5R|sIox11=wvSutCtIeENUHx9# zMdh5iDooT&E`UsZ2Q?16Dhi;}E=rZuu`dTO`|{J13EUDb87HWxZM(o4lzGTq=T-C4 zDvEfU4ehO4@aa~3%df7@PmXf2h{=#j&hG0^jEZzKIF-Iq?cf*q%#^U}`n&^s zd4h9oHsu+5+gA`(qfyDcDlUgk<^DSZD3Q*{h>*|R2aYE&4G{oWZG<$q(!!1)yV?ni z?r}v)2ZaXcU-QZZmIp_+gJ+;InclTUs61UbJHk-n_L`E;0qq>M2z0J#&r8um2cPM* zxUh;i=*uk<58JflCRfQ7i?sO}J3WhVq$Y);AyGBi6{z;2W_ zGp^8-=M0%i^H1i;3?9KKY^%YTH5`b{jUASruU-QE9n>j zouRT7Lr^IhXsYjscE5HXv@473i!|zdyGUt%YIT3MQOp$Z@aW6F3;zKJi+o7U^!MAG zu2^Zhj3zmXx%ppR8Mn#McdGdmab(-!^}mA?-m);71F!X+12zs?PTwyGMi`Y!F4mY+76qe{l~&Y;x<@$>J6Z zZdV!_nw^?yi`jCGOhKENiEN1tY^U#0?#%R@QG<1KRuEG`K-bg@|Kh;&eGiIy_q7iu z(4Ym_Kg=3Voneoft(b5~WR^KR#qqFGolXbCbgK=wu=2z*6eEc^p~G~MqSN2v&$#8! z*n{>qxp4G!Z-!CaX6zI_T1Vdry7t-mftzz6BswvXuSQX#-GUgqni*^{uzqIJV4cJh zV;VExsFft3(N51?R&L)Yzo{ahm2JhIP-$@zfwMqGBM3wcQs9Op-pC4G2wTU-@5 z&bNVx4xn5f#Ie@wuD55c=`0g^mG0XAXCVlo>Agvah-24Z7OimvSC$j(R2d2}@% zS(Cf-IoC15MuVA1#s2=?Dws*rbrW`CzUuvnFBn!w8&K;*rIIJ2=An0py3DRNT=t8y z{eCu^PIBNKgbk2xb-fElm!8aJmDSkW&g5olRa9^5xR%+tL~>xAiw`p=XO-Ym8&bFQkTG-OKins@@H^4cjfW z($eFa-e-0J&;Yj}he)NVt!l;Q%Z})SCI}-*6qWLbU66weSav&y8Kz!`^H2*dojNtHn4Iq&c_fM z61ErozNOIRmi;3a+cbP9yfG6RoD!hwP|c@H)^z5s_1b}PQPiy zH(a?~I(Q5qx)%TZ&d$uz3R!QZ=#l+By6n$7E|a1|+G1-YwLSQ@y;5%Z;`%}D5}v1S zt?7aF8{~zY#J}LNbOAb<;GloGYg;U_`eV5f6u8ps6Zp*kk2mTm^5PJIUcb$j@QS(M z#9|H>6r(Qodrx-;cdtJT;9?^f@GL_xf^UnYt=w6Eg(ZaQ;+lsNXof+kduX%Ui zhne-{Ul9&J&-g`jqCZm_WBEn4B$OF1r?qIgAL=TpY{akb%p~(IpZrb_JdrtG=l_VJ z<;*x54q;h!$WBe&3hl2AxplHD$0g9%`SpNq!izDR}l=|M?SO=Qz_lzg22F*_WVn zQfn(dHz7RCaX~oH{NB{7>A$u-%etUNJ37C_7QBo8`Dw6j2RKt0Tr{*XnBsdCQFG2% zEfI1NIDUEE0`xh3zBM?&#lmW^KKqhV^B89g#J|F2Jb?ZC`&C^A*}W}GAj8EE{Swryl+T(9&@#~mr!xo{$~GkN#^ zqB{s?m(o;skKv$Im2sZ-bqUZgj6kW)~VOcM0ER1+}AzS@+#KEXH z)vt{7lqa7`@m2o*!-)0%C*acct6bY?*`Q5AX>>%_SfSuoUVE9YR|0r1jwRFM6zXdC z{4M(={G%(xlc@ykRNIUFCk2BA&3dW`{s7AK5ox3sd|lSIq1oJXbo@1-k7QO`F1FyJ z*p0(4+kbEp{^3MyMre4T|9cuzUY#LRUHPRit>QSWngcDBcu~W= z`8HtTHP3B%{J0|dfxW~B2Sx6P;`w$#>8py{s#`H&>(f7iN7`XIya(V_#y z8MdSE`uo`{;Y%-0|EU4~eju=)BYW~jif1lJaFpn$W_}iZqQkjj_34(G?i7@Q3YT`! z>-!(3N;PcZ&An~I8x;9eHna9zieMh+R(X8ic6ftw*7esEV+3Q%dzSmos?vLK!9<*q zO~gpcnZ47b^EWRHWkN+NZ!!MFnl1# z=`3+8q+D=3xZ0Fz(Gi{Gej&tgDD}Ej&c`Cg$HcVu93IkVkt*VQ^bj%LTAGsWXB0wB zm0ERu)gof+U?#Gwr2(SxR=36y(xhG9mI|MY6SoO01_iePm|^;iQ2UB%#knP{EwZNw zld6?on%r{kIJB;c-H(+-0Sa?QQtpRxhMrJGTm1>{A*%m1jvTbWM3?;O$0cWV(EF@Q zc)VbYO3jU)#_4#yJ(&6b05&e3uk(b4B}1x>TH2-K-p$ANV=ZgntTbNW+edYu9&GSS zdh{hG6yuVsY8aInHSvhe3Dv(+G+kg>2)Y);*p<`sagC1-pWyD}_PVs7fBiIzbr#`= z$nK+&*Va>tIC=4s6u#bmb5jY0a^Of`Umqhs!E!xcQex0ZD^YrbTRoozsq@1E=DBE} zaPmjnvUo;QV#O2;(GWcI{`yK>}2opajIMI+$~$8$ads!l6@~gx1#k3G4u_S`tP#dxk(nX;c1rD zQ5Hvr*klHE9tCU6X90!*OF?l38yt7C_j86gic#FX=d~-tk7N-fQ_)5o-Xk{PN~izC zLdHWjf~#2;N@C)xjUetPBQFzu%~fN>SN>eNb7PnQLAwJV8AE9gXh}&YqzE}ctEYI% z4Cx(d<~zmA1HT^(h@OTyA7wY$bQ_V>aUx_;uGhigWE_!o_ zeU9^t2lZg;9IsM(osk}7A%H>?EO z)MR*IA}EPU-lff`OVMpL_076V4!xK`!0}WV_-l|+mBF6Uir1$sr>5C-=I&}9mv*kJ zO z7Y>IzmA;3e%Dp;N+ZpnTiyrUM(RwIUZy#xwu__7+tQYbkL#zY+pvvv8896&SaXQzm zk+ZgI!9dg2FT|GPip~_uTK!9%hh5jQAULDWsLdcO_)3EZ;A1ik=|!}R1A0ZC1PUPE!CGApJg3GuT2gH*2`j@#C4ZWFP6%*W^%92Z!@Og9KhJ;w z)-P1P#qKb8Uz;WSkgOMjc!m8&Gjq{>|zeeCB_iItiHLzSJJS|2DE z3Prckbz0}Ok1f}5NY(5bwx3Q7*j;KxPy$ahYPOG{g$Yz*=uz?=n8z|nmsUl+E+4`< zJgH`Ku`+cl&}mO9M`S15r(IIo*uOsF<6myJlJp;6D4QUvd^~}bCDhPqP%`W4wj4yy9wWeE{^lW38Nk>WZjG_UHF$+8E<{HPSvw`xW|e?|}I? zTPuR3B};hYOy4WubEzK>93+*!f;IIM`qFH)JyOjR zV^nUE0O9Tcd)xTA=%o&kzoGWm0xGjRvAkg8lAnQ_@?;M~>+SG9;qmp#esfxHl$l<) z&6W<=SIhoZ;q}LosV7d0VO{1QY*1@mVvA|nqer%lnBsJMA4?e%W%b4`o$!n*e>8yVZ6 z-Dn2uI(B~5b27Z=TTSw6H4Buu*8a}v!z!$_$b9Z*qnIb&1N%b816nE$!8)pQ+r(0y z1M`95pt_yc;o+nxE#ljXK9O@Da{onzVD4tk z&3)vaD1iJXJoUjBCD;yipP1I>Jj&nGDL8jqjis6K!3|Eb7TuWc^-Nrr8^( z5C4nR!2h(89<1q(r|Qw_CGNeeUhk!mz`*wCVO+1rD~4zv9(}U{^L45{sngj;2l^=s58^i}*o#Sr`$q+&6uVlH6 zAY<`_ucC5?N|}IDk%QHEHVp6f!gxM%Y^LI9M+Eu z9JNZo2@|oWDl=|JUReM)Zh7Yb~J|sX?ICnI? zU_s^WSjDsZ;){;^Vbi)Z#Uy!Nez;3u2UTr{*~Dy8FN?QTKS>D_pjh}MNo(Vvrp(CA zB%@h&nhTEFtxJ*=aA+uOafbJ?TmvnZh|W-_^(*(cd`-4DFHK01#WyJ*rCa?5LUUan zC?=rSz6*^s(}x9m{o)LU*_PyWS7nz=DJ?guwOkyk?=P^72!-C7_fg2#F6S3pv8T`g zzg(y>X#P$DDT&u9w)q~tb+`yd7(q2WM(4Qh-&Zvh)o|iC8LWqkMc-y3Q>gqkE`D+A z{QfJ_4hU&e2!rvS*m6Nn2S( z2cN@u^M41Q{fhk+-!z|ph=Ul%&iF6wQx29nt*nh^1|Rv~qU@t9W9 zs>f;uW<5UdD~GOSbv%jJ=8-v(rJopdx{r^HQR13fC?^IZI*WqOU3GY*+kxPE ziDa+z<2sxLSDm71W0d%&?kb}f-2$?|jA_TU{oUI9kP|)rx8zy^&Sqv;b$E^*mh|D% zqM~-ws7CQL+pY^DjJ=E_iFsiq1x~4T>)E_PZKgYe+*+r95hGHbiVK0Y^e>mHTwD~n zJZ>fWUp_)01KVA>mn+i8%Tho94KbR7ziaqj-og8h{k7s?uH-rNAy-U(!B+>CFE4~Ie^`6J!itw5B~k(UY5eJE51OaQz% z&z_UZDjQ4oP4(ba^{7lt&!r|%-Jqld-tUSami$#ODAN-ci~+{JN*CKlGq;R8I_7WB zrt7nmB;Dm(D6`WFU9{dkD=A-i8e`a`NJ~SN>f%KoavAf?Cr>YCFVg|YWp}QrcX$>_NP60(og;um@JB`mo8JM!#6 z(iJqYgW&%Wtg&;%C?*kkz_!uuT5LRZH}r^6^aqgZpuw`yb=PwJb53iZ?40Jrp6)g) zV@HQ#B#W;D@?Q=~C0!}58Qqp;*F%&@h0n+I=~7>HpIG_W9+!}&#S0}m;+WmB&Gwt5 zdZ_yKZCRXTO5?@9yJuUW8%+%3R%GpYP9uq{(sCVSpABJpqm%((mgHT zttNyMp1)oEE4FniClQGMD%nr%e*eopqbWttGb4Ac$ziI4z1Vi+zRr<8rg0|uZc~}X zBC4Jr(&1Em=g$Z517F2d3wWvlUK~R1*HJJrVsSO5+4^b zUZu>?oD7NA^@}vxbx8tY1tx)8M)wSK$4zWfLR@%ex&4P~pT`Jjw&)ce@JUaE0C3)$ z2i+Z7e|*Z0CU$OjR?$Dl_^PJ-r;AetUOvP-9-wy6fwtA0GM@u=}5mzpRMeIDYh_-ki%i zc~aaQu(3MNdC40mc(gkIHSH}epAQaU%W}}x(U*W{z>x87=mKAedH!n$5Ag>TBAN1( zWJ_~_TJ@G1FY4>f;z^qgGcb7#D&Y(t;^#h8rP)r{v zvZ+x{kB3k1vlEvN>?cYD7&KySv)uk#x#*8i)2U>XkY*woexG4E!&q(VU zb}YucsE^*=EX>gLnH#a>QGv$`rQtY2l&Mbh3Psy)u+HNdNk1uhU*|T2%JA%#6s3q4 z+MnDY#FRjfac;F=s`*gAxUfQPI7#qR72{Gi23bf0^Kz4^Wf5Fo+sXX z>}G*(th=MtWw4M9+Oq|B-Egto8HJ^)B4ve69wa)EMA+`)1-X8J{zi-G^w5h)?UUqO zEG%#f$cBkv(hpjoO|AeCJz3;guAP3m1AHx_cfo@^&ObDGB9->DIwP{C@&W^*Yu;=1 zSyB2cO&`9-&Z_@5y21N)%bHw2SeYP=@$ZeaUP^jaZOU?w)sQup%=IfhGiPWqjs@w| z8kRHToBRM%&CS~(`$gATvnbKg!5yZXiD<1=O)x2|O8&>$^nNpQ{IGhltQpqfh$E01 z>XmfBAukKRRojhCKn|(AQtA$>AighaODu9;toTK3>!PciMlU$ou}Q;q@f(_76I4x$ z+CeaGNeE@?Mz>44mmVF!E=s`aqBzBNm>n@kWesroA-0>9lLIxwh|P2~#Ua z1}N1TI93x{ZIYKTT_|Sc_`ZZf31Nvh7N>5G*ZfN03!$%&ci@C759g9759ybL-8Fp4jsKcj z!M)*^Thc(0?bc^Phr91rOc)cF$}*$|o#ru2bPn%)49pIsy5Dn1_`0ZCd2?-5!5K1& zUVo9YpI`KGlq$)kW_an=bCs`2`mEZtFf2wg6J_r|nA=E((~G9HB`??1$#1M@{9qtv#l zJ)YapvCUAJ#HUx(S`&aBw?EPKe_ULD`U449|8OJ{KLeOj&EU)JgO zA3ukINTrTm**W7M8G(ncp7+Z?`uQ#h!X_;*jQk+bHW(zaFfTT2Fp{8u9zb%NS41T!g1`w3mfC z?x@hZeM&q<@UuV3UJWWHnIGl$$^9qQe$Y@TzUezt0^u;M^xNO>cL~@ZSl8jXfAE$i z+CTf~+rv`kdm2e`8b+2K`@KJ!W_2RZ&mV8^j1}4K{1|m1S}1+y{wb8EEPVO(<-b7M z-N&+|+BBH@^m(o>OitKpn;X$dQx^A?p#<=0R+}I-J{Uu)Qf^{qH@@Qk*tb}ifMJ2U z$=Nwk*JWyL1lWA(7F>G5*e<1>oacU8gpDMssjiz~)?=5yoyY2>0YBr~v6??-Y) zBz2P)MtQPzsa+~0SM+wnt@*C3`>)8%>!Se?0(qYcqE%>GRg-jCQ^$mz;W3R2yp1i- z-Y_=tZ0!g+6;tAsa`sk%a8A`;F1+3Fj9q3ng1M`p3UTesxbSX!36a6m`t{p&Oa{P+ zE997p=W0#O+jhu&>9Q~-CkZS(6E-Nau;gpMLu_GqiVP{1)1l+on04r=9MQzZosl#O zIm@X`WvH5n93gMN!|yjQVhr1651$<_1t@9gT0m6gSG40Hh_gymo_$Z1`vLUHMySr$ zu=u!r;}V-~wEl;7~rca&(%ti+;pqeg= z>Bc+Cq4YJJ7>gR0O+v`)oi<;%XthbLf?IGgJmezx_fklOBJp84|F9+H1u2o}iCY=R zTI{&t)k$LWe%d%NWaWL9oYBm}cP0NH1rG>hqnBzO0`=W^E(c2`VS%}xHT3Cf&6k#- zE!Hj04W)*Jv-Da*87Hs`5X)t|BfrJIBtFAKVMDz*E(c-am8$9QcC4|HaVkXT*j8Rk zoz2!8(C7Lrk}G7oUKm&h)0gVF1%Zbao^m$%@G_lvZ&(!6@cu6Vd_aT0-K$k^x7PB% zsHJNiXDRn$qQ&h(C1%-OJ^x}vOpf+eAE4!bT1^|@YNP!9G43BR$hI5w9G=-4IExv% zPRstbzP9}06Ge_%Yv9mgw}ohaNAzy=J+)drXzn4Y%h*!s&YOxJ-cTh(paCu%jJ zo~CU7Qg^LQn)Pp%QdV}l$%$3Jm7l8a$lt5qoYuOMcwE^4H;WS)wmRbTZ)(-K*=jYV zu3ArRsMY6e-!MDm*oMhdqRW@As$qi$?k5YTO`GO!czt{%RuYeir<^tsCy9rE3*xZf zSGWcU_!AZn-YBOGCcXlQ{Juo|Mn16?8Gt!J5i+=8_InL7(1E=LKm*`mk7SSW{X?Xj z4gq+G_x?RH#)2%a0e3v5p$|^(km>dJ%+nM0EnZq@&+vPS-&g39JqJ0Q6w==J!I&72 ze^rNlDR@s|99&}y4kg%ocxpwzUJfbszz6^*9=nq7!5!u3!a)Hb6q{gAUq)N50c@Ne z^1hpY?3(-_NwsR2AGT|+yc}CE#CT%|!~kFfqo=a{0q1z!Q_O+9Lc>RSwm-Sg?nix} zPbE&i=*1Kv;pcx{%4eTXYV6bE>*o{3cucM+Qf^oJR4U88VRXCm&f% zB=T`Ue@sg`_2{2G^!KRW%k^VL29Ck=cuu3JPaRK``{Py?D-KS%w*}Ye1vteP+=XF3 z*vp|G9_MoR0)X>(1%4bbiyh}@9R8WVFQ+f+bEifh1Ri8Kd*tQV9ixR;bGYQ>6ipdF zMWcs&q15C@dSsjALko&A$*~$YxUU-j?B^O&K1@f3jg)R(SAKfD0VCT0Zr;+}FD7aG zo8`3h&wr}pbz3Oo&`}jUGEkEH$N{MQZ4ugDwu+Yg;FntZPw(p1yrn8g&(!^g3Chbd z0A_&nQm+A8`Lo|@*-!q-08TgQ{5k2-L))nAF7I}%V&|_`c$vCd{%1eYzV|9?Ld^y$ z^V>JHVaX!fY~!U1r?v2d547=r{=HWJ^{*ATZj;#{Pe}%N+&{H<@4n6s9;w;?>o2w7 zFaK6YI#?e!@3@!ibL>tiKOeZLw`KcT*BFDf$CeBMA+z6Bky&p88#gV$eH-AQ}ZcHu$o zxEZfUZiBO%4hu;4%$^eu-d5GIThwUEb}c*>tt11D1sR;4TJW|$4&Ta9t7*Gbd-7p* zUUF3D6U>ZL|Mmq89(U zjaK~hW5o|zCncD_+cabv@XEiNsmQULwBnsMn)iz)3U542DTi+<&%jkqg00i|0wrv| zpdAfHXyMPBYr%VMb$h{X%eVMq4pCqLEbH<;o#{1KTi@%XnSWVB`Xy)_pCmKk)JUv`Xe%err|Fnt@xB60Pm*Z@0 z+few@M6Q9_v(Z}m&Zk=N=T)@qH!W1S?JD1Ou(bzJwaw>NvMzR=r8$3DRcn9VR44n+ zQFgT5)L7dB(=$5eo<8f`UcayUmRb#Jte%rv>3qyiW#$`*D|}?2{=RM|oY$-^U#Qur zifT2zs+OOcq(_Ce5gM=ow%p3TskP^psP}@;)Okunck*>T{;bmSt-UFeX5M?`PK1W9 z>8O?yDyh@##@cyvy^`}24SZ!PDJMbE8P~Mvz!-I$Zs2rsJ+DxxC;TL7ix2kK^*@f0VS^PVZY+`onp)Ds@>a#CvsO8v7`f}X>#b(?#>5puC zGruz5ihguO9cR>2v#}qk_l%Z0dTpn*Gdo&*$}~M=GOug#;qm%-OjUh6y0(@aT&VcW z2g){E*}aFZUcROVb_3S(laFm*inKV$%{Ye;<}*e60`GYB?c2}xryXw3$jc)}0tNy% z!@TbVpdr?BV@^BriKWC%fD(HKpvb=rPOOEfM>#k0oLB+8h`sD3z8-OxCmSAY_Rt)PcQ|q63b_$rlU4%lEo)N5kC@z{;Nj(GH@VJir~tsT`|PhVGO>$m8UW z6EBXB(b@NbuGB?e?rzW%)K9+Gk#bVrLE~f&ef=E}Wz^#Yj9|c>2X|5|I%Lv^2Zz`j z2j_7mr+>iR&#AzCBgYohg()+&ymlkq957rL41`Vp zsDh43W)rRabs24~)>J7+j@o8#0FZA7K1i4D#AYGmo;kBMXkP;tqI$rHF4v4oleM8jK$^X^ek;Z9jO`H&uH1DBuzXV zr9Nv8Y4ycBiZXB)XLEWY*5+%=5zRbuN2@M9(wJ3;RH;sDy{j~DkuK2p!w zd(?UEF-_ijRk1cSQ_-Cg8aC0%JL#IZ<(j%IJfY$1Piyb3`?_zj$X1TAdm5%ir|+uE z%ERu_(U&4aDIL<_zK zKo{2Us|y2{>h`#;T3ok}b`M#g^s{j)yqB+s`)_Mox2cL~HCAzBBeePBFSPR0;Y!$v z4D*Lu4|HyEgyvT7qI;t@8u*{DnRUDB4}beB_3hr<<~-kgI7!F5PSw)4KhcH?opgEH zCMnITdsH!*?!B$`Rl959n=P!riAuf{V{60KdAdy|AnSar7T4~kX>T^s(pue= zxzj+V0dn^*Ng0sLxt6SRLlC>V zuxgNIZWyYVlru^%ylbE&R^j`XXw=*u+IxGoX6+lTj+2_}*qvRvmwVgH8K=G1wrj%b zp_;p6jMf~Rp&@g+X!+i`ip{;HB*p1c(lJdBAED`6hiXUUa(%gGpvJ5mtmAj~E2SV_ z@%fQDczv^m%x$kV$7g8e;hAbTw55LWhaYSB#6bqD9xCq9O)c9!LtQ4fP~U}Z6@GDz z`3&IgkpX(U*|VM^POsO{`R&waR#Q!0XYnHAx|JscUck4yaR%_lukEAWvp&|adEIsF z`T;BFzijIxMR!s!YsJB-8Zf)9aTl#Wvc`P(o*vrz%goEt>9Z%*uyH-rt6$6FJKxsh zMn2yG17acZeCW_&+OlP9QJl`TOA_AT-t z%8A$P5!{4xqfERf)>7tUF?$auNbCpPX!}QU#ADwNdkW=%KmWKBUHu-33_uaTeZ{_n z49d|3@WM6u+=vIi7wqDFkqqSWNESW)`*8H_ffsFf+Ji0FKgmZApOv1|W-kh&n77kNO!0$HIPm z^x^g7#EWteJM}%`6v%;jPYgXcj-@SnAd3`x0E$>7=!x#$hJH*uYQ(|)Gk?lqj-erB zVP}9Bw(#SCyghJW7Bc`5J-u_%mO3e^>6$Qcs)h|8W%vVNmaY7Pe5K`>EemrMYXGZX zzh0_Su8eL)Y}bvsi?zH~L!Ir|M;E&F)z%iR6uWw@^34wl??x+OON2Hx`9w#XeXh9P z!?mt@J)QhwoHB3P#%lei@7u5IUyRk+ewcO98$r9B<0_}qsTc+ zw6<;wo&UVMZuS^xeSECzb7m&%Eziiy~){OH@tx^hkF*KaEQj``O0NX0H#s3W$(qgSj{ zex#KfAj>{~Te+8`RA~BKTeDoJ2My7gfg_ZE!{kTXW^w73@m1yBL*98^963SfMoiFQ z1Cf22f1=K9yXa!neMOv))9AHlH2YwzrtH0@2@xl>_eQ+pvh$T_Kxg-j1PxlXUtjKy z)V%W#)oa-SZ9EsJ+v)j=whj7HLXKwcxTYZ+E@{rWEPc8Cs%?-*btW#w09%1>7}D8r zAzH&X9MOzZ_cZBnv_^!V(bjACb?#oe?xy4zc+OHCn~Pt(7pCc(4`}brB-<1Vbt5TP zQ7H!M9_1^^fZO3)54HGYqBa^}yOCPxeiGxRmETPZ=z7#p+0t|IT6HE`r|xI#Vrqe| zq~<8<5ho*giZ-0T=46~!oJ!KJ$V}bOE7a}eT-`~xK5V>qG75D#Hd~9%+}Eme2^unW zsj5}3uMIO-DgDT8?ddaDn;Hz!&A!VO@$p#g>9;@+kKcAbA(4MARd;6X*2Ld5RaD;< zy4-7_=GW?}`#Z0=6R?8VOvPHY=O=DZ=EVdR-nW~=(=pmH zXuj697^xd0)@wz>0ovAelHxa=P(eIDO_Hgdt2gPR-@U6g)f(%>#8oOhYMb_DyAe4T zYyNOw`FB#4c;}3^ID>A&e^GRHjXpX zx2i+^)~XyRi+jE#EOw(>C_hmJ7CS7ksXT+r}u`fJtUSlI~^R*2+T*)yDwP z%)P@jWkX+0Ufx&7uWr}9N0Ej*V{|fZzb1qmzzXlC`6otb{AL5cXP4++`VEtjtef{Q zXvy}e8nLvS!mrLXAMT=&c6~SVsuHtf75nI}rY@bVUzGi^J{izRYY#8h#kk{&Prsv> zKh`aG)JY0(CtB6TO_q61nP1u@!pWtEogov3w37APUl zz+&c2-A%rx8_AL8cZoW4|AdwtoUPTz=IH#rgH|4;=#(151Equ#0J1f_na!s5#$?Xg557Z$( zvNsV|iI;!`-k0Tu*l+MY&QhP7dG-W=0{ej9GbpD$@A~pIhl2yZPxyFDUG@~>J#yIl z$fpiv)I$#A0C@2Z6ngo#5apak0h-u*08Ny6aDp!M%U;0Y34Qo7_8nwV4tV3ViYGGY z?PZ_~eWE7^BkbYqZL~u+bs%JLqtAQcfLO|rLtE+rvUpX8Lj}Ko(v~`24^FuNc7Raq zO@8n=7#lw(%a5@7ekprh^vb{&gXFOzCttz8=>@9igatt04TT|Li09ZiC!oiln0W$R z(1tq)ey0VH#v))s{9<9!_{uMUhUeK{HcVS4g=0({hZpy#?9q0q+rw_(V8O%KRMafARCwC_PsRcfB#s^|L#}1+IOG|Bd;na zJ5^bkX777(iXAsy5x;z2>;B>wI$ooxGLM~7UNY}SrCWqZQQpoSI#i{W*8HCzY5VU! zP|U2kDtMTroJsPEGN_amY1-S9%$3&tu*;Bf23(Y{k7t@?XlZ3^A!UW z0;FaoC~Ea`E%@2{n)AbVw5UdN^$M%5-fis0Aq}bi1EvVHn9avP@0ic0mm$>{9oor*!mIihJcKho2wG%dz@}T68K_O=j*< z(}^3k^7I|W=9sO`TQV{qnmr42#%@~M&pV`g<9Dm?%F_nyOt#5DKJS3Vm`&#&zo!N> z_Nc?+Luxl_fy!2IuH_5YsxU6cfXo?1g!R*+ziy!LvVD}i?y?LmC_mGDCfPQi$P8U- zH&YA$s*V=?psp_VU1II>mBl+={0zjcblsk^Q;Ytog=YRu9UW{jR=Ef7n9s1GWSHA! zEB#QE*47xPsXwZ(1#f(&GM_Cp zzbxb@xZJlN?~GfoiGN#7bAQ!X=f|y5L3*LG4RG_W7=1)-KCKm%dYPWhw7lL>b*bK3 zwX4)ugvHl~S@(4Q?hf^tQ%^0v{JlEQsih+^86Vl#I;{kq2Q8K}l%-&dE( zVcK|Lywb97DK9_G<|0EedDpe>>U4ElTuqH9zolX8J~NHGWkWwH{GPT_&~E<;0VQhs>)A za`iATLvcCrT6uP%T8*!xPe<3#ihVPcYVERe4G`s~>5&1+qqjGz``o5#J}OL|MtrKU z>g83xL2Y;Pm6w-oaWci-%=4q*oZ_(l^KE@GS6P|15X|I}kvD8#8g3i?%;I;7h_N1c zaf8nLy2N}QgArq?1NprHkN}_oVEI^2dx)ED;=O+_m^R1{CQjYBNd`CpHfZmG7qOl; z>^JO<+)%SmQOC!6_7DIKCq+C_@_>eNQgr5~opG@D`Tdu6ehlcz6BzWwX6%*J@xTuP zc+m%YsDE9^?_22VZN(nU>oTK*a%^+m?gBrl) z`|rQ+#)1ysrj()2tEN}_*b$KRyWjoJISK~hjsjzWswu}{e&R3;cNYFf;y7I*&rcfl zs1Jx>kaO%L^4bTT5kk5Xyk>ec$G|eLMPDegOibHea1t2PWZaBcV6s+491GHF;4#tP;~I)r#(ynKnE7IKe?kG z`cW4>kiqF7`p}j{m!|RKz=~HL8f7&D|AxRGs9t2LjvTdOkqNmMi zM7Y|uZ>O4dYN}TKS~`7buL`fY&1F=aiEaV;gOX0fKBzn>|*wKKzZwm8q)nzpkj* zt+tW!V!OrDoE*EGG|+K}Z(07YKiAy9`Wx-<*UL8ZSmmS}xV4~Ln31Uz{^9NNH8kPB z{<$_+t*3_vP8+bYz-emoNJw$_wX<1E&H9u7s~Lax54y8rlWmT<$}-?#_jxMFN>uF1 z6`KEpH#Osb|C5$fX{5fDtEo@Bwu&)ed)qeEnfs#Ec;ap~o4ZGIFB(|04K^t~Q^_{Y z`!)~Z(HUw!|DY<5+oN6^qa64$&$amk5J(pu1;AIO3CGoX*(Gg=e4s?jPbR<*|NQpbfSb?D{;2fjEtD74Me?nSluOq}Y^*l%OmtaTUeIY4F>P;OSL179Z} zO0DJ|Qgs_g&y{C%+w6z8vAXCZI-@{S_up06m~ee!Ag;~GMJiYO6D?n|UIi%yO5A!u z8!PtI^gpetjURNkxw+w9yvJ|yQY}E=E7Zj<^ECS}YG~eH)z+=y2HFhZ<=9x#9$8Nb z`HER^Ov``ssV4n-742v^Tv^BNDld)Lk*>^C^XX$T+E8PVrv7zZE&ko-N?v`z{jOGW zVvLYPUWV1Mxr^R(Rx3Z~rU`#qTZ^mpRi{cVRj*0|?K^nb0i){)2h?X?12rD= zmb%TaYhZh)`HbB>r9U*loTY@ESWQ1Z(tz@Z>NKgM!ViyEZh_sr6=o_e_mSfBq7;68 zuG%jQQ@ydj){r%=bv5y*`|?XphQ*rv4BbpVr7zcZR{bGwsqM6?I+?V^fiK=WRk2AE-QBHq()FepME`z!ID8-JhYK^Z#xccVB}BM%v#*c0fBCq{hZ5YR+> zzaLSTHpr$A9tT3?Q||lWM2}NB-f8oXRQ=w>HBY*@(PxhaczGQeBSe4fTb$hS2-xqf zLVxgsAGq-#gLJ)gvN+YjG5L2Asmr85lp}{WoJR3tJMVZgp}~L!N9XY%<=h?k zM|3P4CZ35UkH>fZxRv%WPDF|fPVA7udsq;T=bejd9%q93LG0W`(2g?tpg)`%r{Po( zphp?(7aS>o3t$C!!&a30MTo5cmHN!6Qgs#w2J^ z-_HYbuq{W$EYx8`hABSko<#_gZ98!acC`&RF)`kN*EV%D(6fHiIt?DuUybTiSLE>{ zirTeXOX@b(*4jAf^x4#>QIjXiU@0<%dNXZ@b^Q>O#=5S5;r#BSasgL&7Yo@K;dbn>$7Cf@KumyZ?`(ABo@wv9tX{^1?Khee} zO?7Lv1r_>uU;#WiQKLro(R;u8TTN}$LVJ3TR?eLiw@K$G+afeDSzvY3*00mHsUy6MHkKB;K5CNkFGr~$-fVEsg8Q9h1A*~6|HTCD zuGvDn>bFw<8Ggt$LwOHVm6vRNB*iLi&u;B%__?+l@8~yFJsUPwrw*NUBk`g3MJDQt zwP!VM>vav^az>*gPU=WpvJ&jBn@4$PA7*RpjuZM~_ccvFm7>lDUN)Ue)?J&AB%6BPfK-7)|eYcdYpP0@&r=QVmqtcGukwd+XjG2|1O zYJHenB-sX2yGMrw4pDEk|okL~F$6E1GjCP8T2Kx*uPC zU}X=jUb0ciz&{3lH7E_KaSkCAE9$SoGJW@s{By} zH7iq7y9Umb4&PDXJp&WG;GbZ6#APXF*Lm&kI8Fzfk5bH%1LpIVpK5g|=SBa^4|KlY z0`r$aIyG>UyB3D*~&F8h|AUkYq!Pp+x^KX#joV&Oe~fqTOa)NL`;@a4@c?j zprtz4W~z>kTA?;onyGrFsycM?uwv70D*V`deYv``79Jg;{_|UD?eTfKpLJXDS5Ju^G;QSo-Hbn>)ZAF5<|imJ?W|_+`9dSschHo*z0F6vYTxw@ zO3tyHn}UaWlozjc`{%3gtk1Rd*f@<^-AR)-3{+C~T|Kn+$(ae7yLP62{Qi$rucO^W zMNHTEyT_DiZ8P$c-04(8{v92PiqQ0JLp5$gZ|%7rVPGmw$<{tKFV6Z%)WgDPE#Eas zBNueiye;ExP25&WzUi2kU_NtS_p)QP{qjbQUfEYOwhq_nJKL37VE&sMW4f9ydAD^n z>7eHC9i=Io25QQZFI25oC4Kh!Ck}jV-@Z+se%jJD`~xo55+8}R{DL|EqQH&FC{3C; zO_L@~wHw~RH}#0~)S*64892q^=>f5pI19L<4zZtj&f_-#3r}^B@ADz{4xXL>5Qy2t zUh0s~HT`kQ!z(m=>z`94--q9q(1X2?f3p!#M7*beUrq|3Vb9>i%Y!$@KtEiwj{urD zGyp*Qy#}V7y^1fT@mQ9}h3pf^Mh1HFnVWfZWZwXU`TfMp;J^TI2gt-$^g&zXcw6wz zNcKK#N;$+>*n1fl`#g_b!3y9CWRvfiv0_JT!9L2ramjw|`#=w_>GxIBD+6B)kRMt7 z{qKM801FdKinCIN5g-i4Mh}t&6ya1D6oWGv-pT!QY);2$@4*JhmpUA$0?ho8Fzx9B zSxg9yj}Cl$#7`>qs6$;qn1At|esOThJfj1Pghd9bhNy#l7#--FI}@J!1F|Sb7X46% zK5$@;Tlvfw(8Vu$^zbiJ@{SjE7%O#PnDwR~h{W?6s6*Dpq@Ti2dCcJjF5lkaK7(B7)^_HVS% z`d!_nt1c~GDBZhjfagpBgdZZG= zcWBdRU3BpCu6i(QzSgw)Os%Vx(>w3{N;_9AS8k#KB?Co!r_Ru^ofTS6`VCX& z1-sLYw_tYP>fC#1avtf%$|X9~sjH53?WLP5*UJ3{So}TPz!P-i!byGJp@SNH)=hJE zoYsVGr?vBHvisR5z9G2lW~|1BpU{HSiCT0%S;IG<(4rI9biL@Esj~?Mnz#S1hOfV% zHIW&beejN^N1V~|=nUO56>i$xY`S_!lMY_e?2Ad7bTUCh!mnuMnM7SpvEXIHIDRM7 z+Fa4>qlsF1ElXc+JEO8KJL!$e)pYh&RN&_jhl z8|j7GcqL8K4##QXksCT5lcYEUS~g1edu04p*uGfP^~6I1Ycbk%G10w87MpE1AXXl0 zd@VCi^N!v#8A)1t`hhMaW%H{GGAv}9YN3{`+oWcdYHLp0L0Z;&gf?`aqJ;ey4XD_i z_NhC%FlDpCTMXCzNfEj}XoVKk?X8$_yX&{{6&R4ZyZN-1w-}<+eHSZs#sO{qc%*jq zpQ8syZkYnvy1(bD_6}d713l&{e%gNR?>s}>I!;j1*0Y9cvy^r&T4&~M*0#^b=>E7Z zN}94m8@rCvAAbBB_2}GPx#kmv_cE2T?YxegT=>qWW99=E==mWtkZrQr)!7#ZW`Q)Zu-!UiMW|HP^9k1ydhwEbeLEV0M)&SQ{Z8^4D zUo7dP?NO^W|KvmsS=mi{u5K_juDMgNeb;ts_O^*yuxqR~pPQ=*s|RZNzPY-S6{)y_ z+d3V8K(ix8YjXHtZM(iqvvz!`iR(vMyY23u1iGDiQHLToYt-Vd3coO45f_)L=a|p+ z^WXo2`q@oTQg(s?p?f+OwL^1uf2mpfzSRD^JC#&;U#W!;9H2@oOwi@T6Iyk2lIHCi zrnN^GDlsdNpP>W;V{r!T?rP(?`I^0Jlosrms4EGltSnUz3+`K4teN|UPTt$3`TIs` zW`xc6wTx^;d{PfGIo;!F5AW2G@8`q! z!(j%m(fHFp+Auyp9>&fd%@a5JKyOYoTefWJuF=Ia@?JH)GVsL)juC$R;~zWZ3F5{f z7_@gBjK-vbWC1>)Z}PoyxMtG$i3C6oj*PKsPg^FBesCP#YXWpo#zaugHBA2hpS`zW z&nn5uJ4@dJKuR_UYY6fnRcVoxCRIzXmBUEySuwW=AwmccVk9BN-QC^Y z?z8SERPrP|fpqr_ZF_MQ`^m1VRaL82t#y~|y}24iz@i?RWgst>Lp04pjy!9|6)*B6 zDJ5d3s#P^E?J_U(u^go!oGlR0@R3@j7^;nI4?&LF^XEV%F`ji`J6H}^2i3<$S*EHd zi99&#;mm>{l66)J$GnUu$RuduAw~{J#b3#izj+pbE0Fs2Wc^tVf2(C<0x!7%S`(VX_)o^hZfY{oM>=H3j2e)I|XCGnPfB|^8b{(qYWELp1+{UId z)Mun3^56;F`{-NT`2YS0Z<8sgaDF0SrVLHB;=n2d0C{@DuFnu$`pq9<{ml>rp1C5R zMFvch=t6k~Y6VF8Z`y*3fBY*f|N0U9mM%y2O98>Pyque+S#) z!?0)a1Q>nwDIVOlMqOn&n$nVS!o(C8|Kmek_{~R1wZ1EPYtc~m+8E{+AoRd7T>iH| z;mU9S2G2F?(3p^nmImoZ0TZnPYziJa;(ovWIQPH)4{VJFpgcGXbs}F8Et*TkA(j`w z&SEBx|3CkRTOWOmki)0M8OyA#p%mh#5tJH%Y3tUYkNH9@KVyq)uTqdCpowo!;M0Iv z0y=D>^0C-D08=k`VE5w~JWVb{z5rmFWcu@`na$Ydl8A|?J+bO$0PF>bk>XvMRnQp~^P1@o&>*yxmsI2jT=Zqz7oJf9VwUya?)v6ynnAFFQr;b~%?ZuP6G zsUFo*SH8@Z;BM;qSD10m2j>OI70La|`U=#Dqa!%;DX7Du>j9X2ISi}s28n~O1izkB zEy6CTsm1MER+#+Nw^;k}Fx)cVglv1B>1#l3V=bD?q!D2SaG!b*xBof|7yfG;Vt3s~ zOPb8c1t2!EKQe2Oc*GIc{x%KQ|2P?sC+$Yz^H}K*=}Q54d{gasKgsOg=Ca)6R{MzB!EIrZgG9H7IXw z5YV0l+pybMe0m}l92<#~wwn==8Gwq$3RFoY3!C%co8gMBcjjaE$zhmxYCK$GY^97M zNRNQ;0n4n6hLy)&SR5aLWhcjD!A^4w7||OC4;?_g)H9Kf>KYGtk#iMjJ;;^R;L zhWQq=Ws>VEW4Fzp&_TBWf)=rTDLAnIkPdj|WasPN55=uW+ENAr9okU(C9c-cw(8qj z`WgBq?mj4BrhEafwAq}*b3uXW=xcbNJZOiRo&bXOo`LqB@#M`wKCCOBIOHx0w*$$8 z`FLd-UgdS$FX}IV?dGbgR z%U~bqUNs@ufN9B3@n+rLH@(+0UtE3R$`=L8PE?&nAyD{q^i({85~5lqY{pSY1VP;Q zrNFsbqdJT{*r61#I{c@$-^hc4MGL#<6bXPd;3sBG{nfaBEY)gLq}9 za*K|rUoFR~Ht@Pt;_z?gBM;Rk zDiW2C%BfZl$)EWt7q*Sd!32n`C*vqT=2tv8KnW13q>N);65}Wn%9MkY4wB zDxQFcva6~p5fd4Y@0p*wE;LM(_nEayXRTnbTM zSB!e$TlvrpuSS}~_Fw;qxK-QG6qkY)>7P0=d@a=#;(!v6yl4fi{`GfwG}shnA#rG} z7CAPxpschE&C+H*ZRpyoH=MpQLbibQ*6a+iB2}m_uS9)T8LGXa@M6+ZSpNI(5xH;? zZY^JdfuDVjM>hA+AV9A*HwVsB=D_ZM{~eEh-y4ljUZAUkJioMB6SGs+yC@qExw-1=Ytil9;EsE zcpk3(Kfi&?$GwqvTbwap(%Mjn0-5E%5b!l&?HYVNb{^JWcEO`$nPCfmsRk-#cAYQ5 zzoHhaABMsFyeBS)79w7N72o3}rc<0C5L(lS+lghEdd?SH?4oo}7V?Fk4T3mIYpanV zPQoFz3=8c9fLVvbGNuHn1T>;gwbIvR0)j#XSnPC5!jucX*!L_ArptEV8{<((&P>z2 z=j(Y^J!V|-$EYjO*zHw>Gyw^<(#~c<6+Ac|mS2l~ZYh{z6@m>9W8jlhj$(0uHT9Kf zXlX)`@VFWzb-Wyo>E~bKesmSe#`w1CL%y zPmGRg&0^U7$2deUJBNA!TXp4Pq2k&_mq+lK{vs7a;Yhz3yFPjdWs-mB`J{!t(X2@bREe zF?;I_oOM2onBpLjcOhz8ME4rYP*$G@=O}B;IWt;hJ`OJ{Tu|MTC4EsWRjfsBQwjWY zy>aN#dMr6J5_i3ip`bbyHOl^+BeCJkLVVr#Gwj~ETWnAhaw=1B&GVQJIIXxj5l@pGQQlIADxSlv z6Wx@_+KWU7tT{gla}M{`z4ju%E?2j*Rn=G`dR2m)x+v_pKL=Bf^u^Z8bC6OHB=$*c zhyc+VNt4$U3%kfuun_RIrZe;AILl;reQr;Z%)uzPi`lwb7G8Bb)}zS z`CReh>!VcrRDS-=-7GFTaDhYBUDbj72y`h=f<*dPB`c<5ewINH$`wTVI8{FTiBCJO zSh1p=r^?It_f7Bh%oiKYH{7!W)jc+xoy>b`6^9+jdsHf3Nd!|AI6;j9Bor8Vu=Cg{ z1a(v#0x$|(bt;Up-8uB6FV}61&mPch^9oV6aXIi3t4iave@*c}2 z@yaqdh=}?LTGZ2q5Bl7?_{w2@1)dvfx0Ztd*?l>%}R`tkBuX z1)Dc+fs?J1?tWQyjX23V6c^>;=;jSr(SHyQ4j&EcIrCBO=PhWW04){8$a~=j*TpOG zbo4|#8#)U2`VU8vH1|qA4^4S4_s>(!YNKn@@)!^PUsYfRsURU5EPkM1<}>g3EvW5*I)H8lF40qB%*x zGFMr|>7%R$*$*6WYtS%U_~7qw9yJja{y_rl#CYMp7of@)u@*G8z%#V~M_dE3%_$sf zZ9}o!B?_Kd;-tli6o~qUHaIDNA?_n!XHuM^8em^htJOE1VK5F!Q3j z?hW^Q+>()8A)*q%q;}K-1?=v77>F5XU9tX-4?NNf`R!}n`?)G5U7CQ=E55nnsC{8^ z`Y|j$;{`wpuo8Xa`E-6l$TzDND=j@R?ZOMJyXk|_v|QbTgXB{v&h)a!}$+JH||;>N5wW4}-Yu)wUd3 zCC)6i2(i1Yapq5BVD;Hl1n#gxLy|~I05o;CI4c*c*RO-o$N^Y!a2>W^-Uj=CJIJbv zM_yejit01q9qWqy*EiyX<94jQJ|FuYtVL2~01E2)x`rJ1XTQJ+=L6V#Zw+?cT7X^G z7QrLjP5_|vNsH)CT@D;x-Nj+s4cKe91S>C3$7T1U$SjXTWm6uC1gOR4zr=3ql{oCQ z0lV+4#^OCQ@pdk@ ziOpxHV)+phTyWTrtm+hrFO*OqX>yU@5Qm+&7GeG&6Kps+4dBoL`d9Lxk77In%VM2bPs)mZ ziHji0KT}RDkH6`odESixjrquz@vI}`3CsxY=$GijSP#}gwSx;0-1;TB3PN zI!y_WJgC4t8^t*0=au={G3->%Ovr~Ii+R~ujH428d6b9y2{@?Ws?!yJb|SYcxr|AG zr3L`6EQ88J(8NJT1tUM^RfB}-ST4a1+d<`I9Lr#Pn3icc5UJn_Z~jt*A3TL> zuK?uSxCOr*I}v*F1S;L1AW!<#Y1s-qU$Gv=cb!mb{}l1ZFTr=$L8RTjkEXy7xC>}s zI%xuWfBrF^h#@QX@kOfusaH2|!DrtY_#V56OabqWxmhR_a9|4xhQhdUn0u=32t^YnUnXIJBX zNE)nP#=s+^1cCYWxZ|6GlaCYOlvV}L(nj2jD1fzZ1iTV5kyz3Q&!}8ndK4vja`99^ zoLgE6?gS*lB{CfW0+9HguuIQFamFhaE*a%`B!K5`bTMwdN=86tITDKN@H8+6R?&cfygG!H3ZN*ig;!FpIM5_GN2DUG zs0wj4O$ZTwp%P*QrFo=O!Y(i!4lkndGBFpK0_p+^>JVJsAp9E;EA4R%O2Xa1G(3&Y zMovXN5~~~FSyl^w0lXJ&95H#+c-%j98osBk;k@Q3l1|#8@>v2>t-Rs0_ZD7WypQ_u zbmZFxzC)e(N@9w5Ty1*$SiQ5~6& z5|0FwhvlFpz8E2wo$%t64W6I7hsua7G^JOe$S)D4eo3eg%|`xHnOq!`ad7G$GM~!q zKC>E?!P%m7Nht77z}h8iFns((+?zYno)=L$q5 zze0LhJpAHC#xHH~*zY#NGyITNpN#ObAOsfsA-z5gA!$Ky@wp9$XP4m>?5sQBpIsG= zs3LDf6ni7TJ^{`F)_CZB6Oa7ukX9Naz%T|e1)hj6@wNUn-SJ_(PpNr+=Y+CNVGVCBXw11ZZmsz-UKFj8pcOzJ@C_oM_X>sJx7$?I$Rr zt>?p3T%b^3h-r9LD@pWiT#Zt|i*}sxtP_D3K@nGj=zHl8l#gT@+I#LO5!BF+Dqq7Z zd66fdbVR_A@V*2!aVE*u2gZklz@btM1fHOn1<=8FjQ~?2Cf7#o_VRfEQjZv zxMD^HV+Tr}C-SUhuw> zDFXo+XAP{UlA(TEIMbsXIoJujSbyGU;2@+zKYiwj?c4Xj{poX5Rmv=_Sq3`a7Stkx zwx$A6p<&pzY7OR^juA%?h*9$tQf^! zK6pH58SML+!f~(}T&K@PvGf&6iy;+9gUnEm?AeaNy*|b1IrCw=d>yKyV*!2!i0|N% znQTjSCDNT7aDB*d+#fv_5m(Ox#iCDj+y)S!++2<7P;m@vH{A9Yd5l2-;Y z4=0t%04^v+@R5_S8DIh@vuUUlpbN>5N=c)8bABO;1HAA=oVC5#EZDBtfX!2;V#A6R zNXW>;%hU=Sbxy!m`$Vj_3C8K?Q37D9`IQ{q3Q>GnGcNk%VBP(AtaVJo2D?za$mBu{efD(IwdRFdnP#$6}LR1aA5#Ayt5oj2ubVf{^?&92dST1&}PUjlyA{On7CM zp-6yrV@op%#i=Y-__MBZRU$qUv9kuJCikd zwCo6KgEK|I;;1DVLu+}HfJuMcn79@WvvwlQ##@v@1V|xONErf*^97haUv^q_ZYv(I zKZn_)r(u}L$}>0w*%kSC9At-`cNXLD(-l}}JrjbZ#Y`ruaHZRU1t3f6sB9Ow`65MpUiO+_7gz*bU;q2YR2u=5w>KCF(QZ%(x zpj!9@WO?DJ>vn9p!#CbLp`f7{^{th<^Ig?V#VBpchK=`GY`I^~{9`)1P1{Nv%0RnH zP{dUz+FIIVI)2(?+FD-8kA8`hWC9iiXp}9d&!L~>IWivmP+)_8fbrx*U&d7^u4r*p zihe@bauRvcXRr(|Y|xjgGSrp6N-YR*Taxz~R5`Ty^mzoK1aHd!vaB|lH0$cdMGLhu z$9#+@f3}rAnR)4#C@a-g6_|$LRRLY*S73<#hdxKGc##L|$@{FMYOj(7Ait3HkQkxpMU~E9K*r9nVhVAfO^E zKtw??KmR7E;XXIhshI;iMJW$w1MCpSb2W#oxfQg6@%NEMD9v)c%N6clQJV< zqO8=Cu2MXf!M5|sO}3TGtsML;pXpcz(-2s4mPHWCfyn$SFfC_5Ji9=Hqs}fcj(N$4 z^?Cl>1KYOm#v|8fl7~-AR-?9FAumY!#?uF^MUt!OXQP^WN6globx|grEinDI56IoT1An4>t9QxM}aPE&E!E48M zam0M0s6iZr^mknqirt>#(I|5q{kK2CX~Jxj`h*B?0dHjz%4GoOmcV<(dYt^_J z{)VJ`c2Yk&QgN2m0#a*=5P$DBPW<^R9Qo}hIA<~jo5zgC)|JbUE`5?LPTBHhuI?qP zb1t~!c2pkHxr5o%EdI7tx7GMCu^tO712N&0C$5Ja;)IpI%&db z2h6o}!TiG)F?9S4*jn46rKk}_&Jl1Nu>oiPYb@>?Z$`m7!>Lcr5p?*jZktjE`dLq@Z=!P`t_)m)ga2)YE8{j`q3KMF7$Jbr%N^xS zWeCak!nQl}F=79=SbJ?6BFeoadx5lp=Nl_g+K>S&|HGKFzdx28AB6{ACs0zCC|ck4 znV&+W;(3}4*4>;uB;7RnuC5mnl!M>FPYp+i!;T2bZAlz;7^n&U794YHsESsI%Jv3;hf2 zTvHS6U<<0N>QPo&F23M74jedymoEc!fJE70+DU>70xSA0`W*${Xrq~ic9r&={*cF4 zXp0%oINDpt$FL_P#X z+zDbCoM`i&;=%TiC;cwlLBGIy(U<7^6@o1;T5wT-0Ezh+&%k=JT;}CgB!L%YKtIB| zFrL2&rdS47@RV;Q9K@dQ21&3%^9qyx`C=?2pib2pru)!r;b`p6oo`Pk1 zb|!%WA2+3d8LyOr9l`-X#o)@BTJd5aF&%*t6`W}Z{&XD#`_gOcV z!+8EC@M3<}fdfVU5^QRz5%IM~&S7w@x;N*0{G5cR92XXaP+ zU^=dN@c{xV9|sHDuF7XT({lNnvLYY0i)AoB1LHYRSw8!O^;C5v4_+0xJAC+vw8s%e zrJ~?0Uv#!v96!&2MaIV9`1w=VeSAL_uUvpxV@;9b<*9pJ!{d2NVAXE~?hZGD_v&@1 z4-H0hQNB1asY`MyLU$j)gFz!jME2q!sOd8abof; zT${NB<&iwZF95f=P(WNUT1xVeasL5s^)Z3%@QDb&cvw`$#dX<8-CIX^nT?j9! z(XFU$atOmp8_^5T6y4TfiSVu$;8ZDTXRg|UKlU@l*2}iA@eLQ8(u5KLR=MJU_!%L- z;r`aM2&}#2hNA+)BJxUguaqFj<2N011Tfk~6l23Jslzo-cqSAeM}Pz$6ew+MMqz!E z?sXLh?!CZj%jY=vEKc_xurg^wMQe)=|72D-;I@AR!cOU7_ zPQ_h*4!eolanEEuEKSxS!O{y&nF5N+q!qxyOXF2=T6Z3+CoaG!laX-oag=5x<8jO#Y`0z{`Z6C|t}GM) zB9pwPbX3#}xDXJQULGO+xE&j>EWpmIOL5KV5OT^QP~DOzRV+fTfEwG7>)3v8DK=Qo z!V#yn2+naseqA!Enu`Qy%ETqr6T7ah#AYiCY`wk^_CZ$!Pzm^I&PSyHBm3tz`1{~L zVc@iHaqRY91Sk0j04x@~Tr60*Omrs)UP(?kc7HXtU6}#?xXax=u%MvJ4j)J>E*8KwOr@rg%1-B?&qiiZv^ z0$9$8-R4$e8_=MQWFTPSt^<#-5KNE<<7tO!Yw3s7?gIgZ;?Jw{f%Hqf2JlX-$F+H(cWSU+BwhW4H-ax8-j6w2SQeDdMson_E(@puXs zDO4MopJ}<mvC~NUJP7EB`Z+tGvZ^vz z4_?(iH+isAnTLV-8PCoo@ZzC#^++wtVI7nLP%)@jT#@4Jgn6lSj8_UwK*NEop7128 zc5u*eAQF*tcA)aBdh%~>iE;);UXPgP%*!-2sqQ!XzP z)bgGh0Q}8Eqa27-Z~|7!LDiAG6bNlQC-xBKm1U@`t3qwFD7kcTqd4Q7j9lzLa1^Jl zF2gG_0Ef@+#q7~T5peYq0uCR8`_HN$a(r4MbEtv zc={Y3OBo5)w~+2&504`U;dkK-lAWc#&z~bfjKH>qb1>k`PhfZSBoZGz6Tnr5oZweT zc5y_CyDJJq{82AJH_7TD(ruogB2;FBiLpq1=7_|n&dBn6iMr@S367JqZlD!Q= z?QdeE#Y`+%vI4GA$+#90hpR85#0eGRS$rO>Uqs7HJ^`K?Wq4Us3&*4aSc;={j?6|t zN(t;<#N&Q&9-I>M;8W5FxAYQN`Nre+%T#z})WRjE2-f}ya1mZUd6n?Yt%OZ@2CQBr z;BjIx+!6}m7%4_FOq`Ygq|m%7_@$O$?Bb31Y}j}_^p8YzL5cWy0c|-2@JK6xS4uH5 ztC|pzQH(`}_$@3%zq zomcSR{Qwc?T#@4%hJbU9@IUboA=kZ7?4OQY0do;Y?cu)e0ty^LkYgK&fc?~n1ayIARIcx*X~&AR&kV# z6jLg{+rWa`<7YT>_&7X0d8~uLt8F!j>1dPrDhICOaQjRFF9zCE+EOkUsNDzt%`#|j z`J48dXR-*qXp0G;lux2Pr#)sJXy@ruc%^M7Z~79}f$7PEWpFEy{($$%gZX*of&hUb z0V0pUs5&USPd~-o6K(@?WlWX9{3;E>8+|9s;KGHfrz(SOXZ`r_8D+wHGoPvp+e*+! zKtvzOGI*bLQGDpD2p+kcLs{^iiszL)xiG_c`e?S5ag-&mtdqhC#2fV2Q>IM8$`vc6 z9%>P#0~5S&>I}Z##7u9$lJtLr`=$&;k&NiLvXN`nti+dJej&m*f{Pa~ASE?f*C7-V z8&9EeiIz)EQd1-4i54l zpkYVyzCNJgOYR6Zh^EO?k*X_Kqqu6vEKcUG>M3|yo!sa zW8gAl4sMu@$FptQfwUAf*GSoUg(z_Mg5!c^up2uCkEYCp-K>SkaB_u=K%l%B6|s?U z-@6w!=F{+8;_sMF#ERj=@y+KS8^h&c0LHjF8e6#7jQCY z+6sI=a0C)_i*+kv5rwrlE&yc1y&$P$95Sn0b&EILVdIKdd{r|n1G2E{rVsW%c!5{x z1t^pu%fK`|2j&o0iVe2G*m&O`Hw7@1HivSLd-elt~?e#-IUWsmz zipS+jrJgq(oM6`91lvX~z>R5p5P0MfYNLwLQYI6#^eO?}!MH#3AY7&%hP~M~JhnK3 zs-P_0wj4jlQxlQ}-;Gz`Fm@|^W*vpg>;nRLp0}+u6-#_{AtJ9lf#a-$csA`29476= z%LBLDUV>UGMp|T$>k%P*58|Q8dbmy5job5f!noH!SXeAVQ;m$P%yLAWu)|HWwXmJM z4Ut#f+RlD)-o=KN0~t>v;5=&|9t>WI7aK04B0OLCOI(>)OA0Hq9?w>u#m!+Wam{QU z3SA>b2y$Q4hOfnF$*e_&r3Y@0T8G;v>kufQu{pa&^s*T(o>oH)Y5w=}i zh9eGZVH0oyxi!(kq7>E5C3qRA2P}W+C+{Sdo z6a?V3(^l-bJ|72dR$}p<$@py0U$OnjM(NWc`YsGQtY;`?sXHquk0y(hT4hYL|T8Ph=Dep_MWzy_LjC;*>mQl zk0GF;&!WAiUt&JmViL>Y4hL6xSO!4{c`94acrF;wFVU9MuaLL0=lsnw=u=ofrqTCH zOvB$?IpW&{SO=aXBTxDY=2vau4i8t%$b;Lmyr=vL>p_1=zr=cS@q}?I4Sf{r%}G9e z3Vk0}0~xR6K;nV`cavBT`Y^?Vb!2|#A#ci)WhtMj`h>jb&sb0TPlCJh@-mDaI~t2D z7D)d|n_Adz>0<$6&GNT2l9HC|YaG*lmHUh$_4L{UdJ}wo-_Q=a7^pCvuWaP1)ywe7 zryt_V)eA^YPC!Fr+u_FMmNw-flI7MG5jnTd)Y2m3cxB)cA_dOb0g*8~gB_zfjw?`H z@uGsMgYT+C_?v)*D?nT-<*FO=G9ML(fy$xZsr;LHNlKZCps83?4wgqA49w4X4m>{k zOK_*2f>CYYmFWl|)fq1;FnO!l3+qGhM*dvcW1AIk#fQqrRXx^|gGHSuU_9%>-^|CE z1wks)t9UgK3A`u^^59@#8H{6oHAo0T$%8AAlpQ~sOyI@G!OO*X-kj5s6}0w48&^DnY4VQoj8ZP|MLe}{q`^L-+oX4n}9=+Pfc?j zni?umrg+l9DlP<#v2IVKp{fc@9T$#JN&@g&22k|8Zx@JG%~>?L#r`tTRq|$04Cc^u1M# zWlJ@9J}RNH1$&+dAFCiNx*LWkIZeordxiCN;`bYo-q4DB@#UCzD-u(z!f+w96iH&^ z>Y7EDBwc+=EBvyXu*D$}vo8l?yF)xiFWQD)1BM|rGY5j>@I1W^i?0V@;`spVdlZj+ z;aMg1E0^KT7o>)jHsZkJWK25o1e>i1zKV74?jr8st0r>gdPT~eb|V;5FMHx7ck-GaKto||+*ZwjCh1UXfph~(6Re}^-3L8*j7Y@h%t6=%Z$?#ut z4vmq;l2^ty!Hrb5A*28Si!Z?XuQT8>dMgTC1o#kr@=PBal2wbM^G|U7f0c_&6<*|BN(X6Pr_v3Db?8wJ2s zN8_sZ9!x(u2#c)7;Zgh@p6U{pQGr&eLw##8Jfk0C&BaNWd9W|exok&)fWAiLi_akB zuSH>PI=0_fin)h}W8;PCh{$~=clj~yDgk(vB9>IxzPf;=C&ps&u`#;ODitqUdbp(d-DjjVpfegV2ffem4Z7A(D?I?e9 zi;k0d`UTo*m6vIhy{D}wP+(eR?-`gz*^O|8GU%`4Tuj8OKLK1w1v@=@f%Vn*t~Jp}?v9Dp0Wc3QpzXJ=HM;YE)_}9#?tT z(W*0e!$9E0LzYx74kG5^ zeWoFiCuc}ha1Llye>Fguo--h|&rM*a@-vQC0x5zvf;-NpSZ@_i;%_dua_O1diIfZP zF{pS2yf_dkS1K&;^U69>p}FG4K}1KE3J{7-PsAz9^Eh(q1d2r#)P?%$ zT9k?Lzp`^TW`6W3j*poLkG%&`B{Mll9zNYzog9b6)0g0DG93>;9Ej%vj53`bqoJ%& zK#LgOl04);dzX~PcLGaqX4L1D-;l9y8_%C0N zs(=sycA`@f8dB1ca`g^eM@@s{#{=MQY>oqF6VUIA&){l*UmRTt5FG={0YhQ+?|;Vm zKYogIS7)@!B%z+~ORAH8%gjT>z9YEy?|*>h2cN)m;~q3+$;_OG(#6ELRF@#n<^djj zI~*7P--#i@wQN?T~;45`XMPDqz3A9 zknfiYuchbUI&2f}d^`ssJMN)1gLXhfUfYEF^h$)Dbb{-U^>FR860Vc?qSQA{^sQBQ z#;Y}_4jHzAcs}(Y9`{)VJChBFy8avuIf9({B!j4UEWVJ2k!;PQ5l-0 zJ2+oo-K+y?HDUR<-ggOZ{9y{Nd^{8NPg8Yy*$$bfqA9Hsky~%$#BWC9+Fz$5bjKaE zWJm$JFT{%@&&$QqH7j5=x)0{>o{e4C*1$8y9z_kQGF>W1abrHB^Fna>`4OzUG7W1l zn&ZxkW5}*clxmhre-|K4fR$^=bsV_8OhC;noU+}4@SK-z=dJ{R71b9YFwGOk9<0Tt zYtyjd+FU$}d4QbSOo=a(a;lM76ppJN`?2NbENs3u2Mcyj!nej>V%Nd#sB9=kMtLO8 zKi-1bNBU#gmCD>}5H^as2$sPnXR^xTS5wpiJHt`yOp6S#50&lMY{QSr2;JoZ7KL%*Ov zlPZVyl=hwzZSqinhWV5~U>&$9!6PmNN6J?yzr`y-3jF~AoLa3S50!>~iC~95g-2aj zHwG2Yc96H4Xe*z=vRFr^V>{?y2}0?&$e($cjy{NfiD$g%GYGI0s8i|Kc5XGY4%~KS zoe1jKM#l3>zr!;4)W3Qy27M39XPa41;sb(E)|2;G4$Egf`J1bT+%e*!1N)TsxX4pg zR*DH@Mq|y2rGlr#{?>6BS;mZn<^~yfVr#k&1YlwVdK!8_UBDO7-S-IXt6oycZUVvA z>NU&Jr|&mNNQ{x03(+voP|0kxq)4aO>=ZhB1!@@BDHI-8aj1OiV7me>>Plsyz=_BS zvUrbyJlH9`$0be<0)h>8D3ylsyt0!CHdqF?8r2gjBq|So69^GB@ySIF7%GbjG6 zaL0D=6B8_h`BWK9$Jqd9Cj>cs`Pql|>3B1&b7iGovF_0Ip z1YTVI<19-V1I95>i8)9Jyg19EEGR>k!8rcrl`{(N*K-!bK|;Q|cGk;mK|*>`B2J$< zjk6ceAtfsVb&UkmGU#ioQJ#|vD*;?f28_TJixse5xDvtVFQY0l9E}NaNWOU+-pe*4 ze#>cO?Y@l1=8NFEYCTGW{bdH9ib5}U1a8@fm$TO)`+@^r%vq1yGv*`9`4NzrjoPRP z_?|fd+m%ZZbK)q%_U(cF)TszOco@~;5ok$DN5%sexGmp;SDOwX`@|L4Pnd>vg9c;x z7oWq^`ZlU#6VMuy0O#dv@o4O9IL}y!RFNy6ibO`9)T0Cq(#LUEui?>{X>gfh0l!n1 z#POvA`B`Yq7pI+_in2$~;JI)EoF>f2v!xqR8WN1wLNVfbX=qAM(XEtuY}|?GW6j|+ zYYq~{0JfHvqd6rDjTr?<35&zRC7Up6-g=yJ4Z=zHDBOw6MudQy)N%ppQJJuM7K59? znYbC0f#c3Eam^J~&5R>LtY z9hW@gaX+pUmg49SJPybGh!n&KP)-#9=#`o$Jfd(jFa!3{1-RlKjXq-+px4mx2#iia zzTg`_0S!CsqOjQ^5thCg$P<8CRV%tw(AmG9}rV`tqqzF(9!+og}!C8J)9SQ{~^26Z4g;hA{5`;}IiMZgGhPaY4WH;9% zuCWP8^^Le8;A@KU7+hSk5%(7F!qfHV+TK8)RF4Ah6!@L7hug*rNV9x_sMVIZJ#r0_ zY<$t2R*u@_B1GNyfzzTRNZ#*&j1$lBc;*54AGnJ`pA@tt2%vZz4ZrQz1zcGp>(q0& zE2_y#){twU9Iv4F2qgzmWs z*Xg_9zThyDZ+Qsd5(A$uhMouYlgp9j;1Bnu$KX0?I|2?`qcS>I(nx%cAglthcToj+ zyyz&N&pH6d+51p0U|F{`$Zt0mh{F~>iC3QD{)EkNo4Fqe^1Frnv&tnDqAVo?t5>eT zu!$pa(E13DJ~$|SA`UUn6FDtO2rGPv2maS#>2@6MQ8u{aa}xV+tb|8`Ez;`4kX#vp zN1?ZH*W(Nv{4e2Qz-64b--Ekemk?JLj*NyRyiE7PJ#Q;qe{>Aq(f1{O2QE7wf_MC5 z|b1xxFi%erJ%SWP4q4sdG%>H>$n$(Z*9U= z`x8jY4M%O0Oiro<+}EZerzQrjVKz8=e;bZScpmGZd(T&4Lpmyje^^v7Oif2&{`~pv zt1z^Gv~{$}w9^C|Jh!Cmxy}xXO{ZTXkRfQ|iV}Sc^DBGHbo3*Pr_bPT=3yMK47BeA zEA&g;GUPqwvv{Sw=b{9C3Rk?;4u&e9b)^mGB$|Lme>aFk{scV)emsjtztq*IFtB~B z2kkw};63tD?I7@CJLrFTY=`$04_?(%jjSjA66;N0!l3wYF@gY*vZ4=X8&&yi2Z0s+ z9(mB;lPGVdQ@oV_qz|P3WM1-C^5E(pWk~?XI+L%GX?<;tfG<-lwwNn;O8U4_CdUeV z)z?U2f>pW=1YfW5PESG)sLO$S0;qpZXq5(7NTd7q`&NJpUo}D0&o}&vp?UmBCvZA^ zb{d7rK%rA`R2arnfeCrX{%JKx7%LCuPMrmc>B1aK=G^NYu{(!TXBHgCJF37HlK$Gq5ZUJPsa~ z!I=dIgi>BzedL-b3Vz|_X`GRepU2OM2!O1W!B)>VQAwZX=VHgIHLx(9gfQF32)%S0 z_OqA3W5IH~T)hdNOV%O7+8zxtnLtt=@*SVz$;!2OzHAx7cWj5#ocV}7dj<7@u>xLX zhUF86_#@}wU_K2AyY|6n>2f^ZxE0yY+yx|wJ|smW#_A$m7cN4;^7V+>d;mU+HX!QM z6#-*00@$*Ua5<*$NJ8Wf81_$1UsMkD_GIlS1m1qqgxs0$23RY)vK0wPf!7>?%bOeEgF z1@G-!;I(}_8e$Vs5fzK-;8&>f_eMivENX>E@SdZ1vEvB5PhP_Mne(xH?Ir}}mf~Jy z1`fD|;jCXGE_p=Z+LKWD#O5Kpu8Bv1@FczfXFU>d)H4ldUS(sibF|zmLqJ-E?)45~ zMNP00aCGc(46Fija9+|{dBr0jr$!tr5LeX*r-WP__YB7ozjz$=Pr@lF%ONHk@f8ia zhv?$6%V2J?5uXe)$3^=W@J%j8mH@2aoLU4HG$OjB5qUKY@QKdAU2i(KG;y{yNU4xG z0SJi#`0{ERC4D*W1}5RIUjl-pA0sP)V96UHAS=159vNc$9tNl4PCz;y3s_94Z$U^w z6+%jy5m(uaGy!+MdBwOIo&@XAWb8a^jqzir!{zE-pN&`GGxrRl*4x5u@p-&D zZim7bacJS!zN3nfc*X^`=Gzdq-Vy=pF2iN{ab!3I0*MtmFqLcL5AT&{;j!=pBDURv z$BNU4IN^XAz7;=JfTeG$=*b4-jIi@;5nkSzePE;bkCp{b%*$*7UOs28A` zc*O-F+bt1%#!mFI0HyxPs0S82*2WhwbSNf+=Q`ke(4JT%onhFaSq3yY{zB41333|FYE%YAS~5W zMyrg!+C)4KyNyE+R^XcNegV-Za9Kdr%OrPXSH%g?NkVAGGgv)6gfnhCaoOhx&ObdY z{cekl;y6^-6L1jyx zfIUatdVU5E{B9z#GzzIj5l9x$m7E`sl6sLtZUAhaorRs(IfQ3CM^;4w67nLEkROfQ z+7u*}1;HiQTEN^j+_b%d5hI6V(V|7Vl@{7V+G5&gzW9_YF!VpPfwX^&uo1@)yb$tBE!N34sFhk(9lst)`tPDB|J-{S56n`H+~NfJQwj zPd~^ss*a3jJ!$XhcbHcBHdPn;9s(~u(a%*YPUab>0(o$kh`@_JmTjVpNcuboytvas zS-f10wDRf0o?Na!@H>q_+saO-@pQi_zZ`- zx*9BBz7zun^pnnv7GZD?x==ctTXe^Cz)LN4QdsOfUX?%zY>1ZG2~;S?Q@8{m8~|K~ z9p$=nG!S(m!RUN2IRB-i%eb$qCRT*jqMCBwXQiDXr^EVZo?NBoyH4s@o zul$<|&cUqq(n+cg{F?xg?O<7IX2H5Lp6#L$Id$p;E}lD&gxCa8+BR@n*HDe-)*9p& zXW;g|o0v3d62_U1N5abp)J3KtaNQnU`_q@W`{B0;*>Vt#sX3^w;AfGt}EtVTLjRL(RgsOu%1jMGcx>Md7)rIqX0B0@wfg33AR@i32P}U3C>2>ja1= zMs5j^~;H*7!n3V{pOp*AQ2^`%9quPH-qRSAym*@6kZzQj?JNjN^t9K}9CXswX} zECa8pu?j6!MM$x{hAaR1DQ^7P2rmyF1xop*u^P!8xSD~Rkl z*_eGV2;;B$VZVPif=e5~4{h_q>6PVGSiE)*e*f(_tTy~uaX)(RhP6W$Na!XhhgEW7v^k0bL?&?r144Zp=$E`U9@ z3fOepAJfk~6%ZMQ3ys={c4GcG%4ci;`Xil$0 z$=x74H{ON&A6UR?=vL%Dib9KkK%Qgci&T+XiIAB`aqoX7!tT%0k+k&|TJuDotHkJv z9Gg?Bka@uak9se~-M>$V&-`O3_e#`(w-#CE~9=(j9tltP>j~We9RXs&fFWhc3W{zl?_ewhL%T zE0j3NEb?Hei_3z?^c_-%Nw_wAF{-!?Dd4k?Tf0(DYiT1g&N$)17n5V^!lD>*2yDL`Ib94>ln#@rLbu;J=_-1EI5pe$Rr^;d^t6gI}gHOdO>uTRH} z#X%nIf0wr%L8fwK>iNKQ!f^h8aN~}IJ8XL}yhj+qVR5ldIq>N8z*Td1x5g+yc z0K=w#h20lcz$5S>8f9EGH`k+~wF>-XkaxTj)?b{3IR{4Jw$BY@R2QJUxe|4))u?PL zM^RlCPTbyxnOlcr!-d6&FAqaQllYA$ZZpcnuQ3nK;Wx4L$QZ0YH4%?r-9&X0KP4n% zyj8$RYbgTLMBi>L$FgISuwnmF3^g9yY2}NynEr;qi}sNAjYJ#DKzm60NuNWz-*%>` z&4w~RZKgUp!pS;UV`y6y;NWip7Eb1A@3|GH>^+HmIO*kr0R0Yu7i}@~lQ-j85Bf&( zC-745*iyEhfj)yrTWIgOVx;oZUof6&xlllR&va}*;}s94qfccS^i9eyF`jK;J?M|Q zn4kb6+r@Z&d8jQ>%8F(1K4r+fEQ3Ck+okkfe6Wl>lq^^ewq3niL#=oz->=G`j9Ewe zKFXfHiuF)!<=<9TS21|d0IXlPMrTinOPYAzt3}dqKfeoR=^R)ers-*TH~oXbml%_7 zLSthCHgDd9FTVI(9JtJu#38x3IE!)}5zzBQCvXasfkLAaaArZ}6z{1 zKx92RIP}Y4+h|a@9jRVu%lnE4>rF$$da^7UAl9AtDL0nKfpO~0X&gCy9C67>s29M& z?yV^0_p=&NQkshg&NkS*Z!64aPs7B?QxF#zj;gQ(crV?AOTYUB)_?vQ!K-(mJ|P(u zHRY%h(9_ybi};gg;PC0Uxc|Ek;W%gns>HC+pqB6@to5~Mdj1lR2ASg2|Mwf*`>HRJ z_n${=h8R_Gay+zMo0X2>o%?Y2_g{#!{S3hi)}SFY9F5iG0(|OGRa=46$M#`tug|et z_#EhOhN2g*bZ2B5TWWP5;cclYMB?SEIRF3t6_&sI5-;}b6Xz+$LL5V5vw*Ye3KTtZ zgQKw-j{f%_;5c;#iUR_4^>3Csv^I*zFUWz%%H=rm$G>6kAO4OEzNx>iS{y)y@DO-X zR)j(uTb%mS=Q#1fN4Pz10``s@jqNKJBUyAfvAh|Vy;HIDx-aHg`rz`*G?}@Jp{o-I z#HSZUPza#PV7kb&0@~<8Ih^^95d|mFU11F%LhqT`ZvDdQcW- zUh&1k3s2w{k&7boXcc2ATq;DL!li4MTlr$*X%Fmljzwav=)L4`l(;f!OLA2sE_fzj z#tBEPzv_)O`)x4XbUtjX90UN#xVRMvw}IPW`}+m3>9q_6b^@l0+iXN#t&H=mY6Q~54Dt*u(fTy`c zK&^nUhr`z5uEbydt2uJ7`JlCsGvzjr84?kVDI>>Ywt%mT!!3|;>zU{Y&&V{0UPu|G z^@w}miE~ENaO!s>;Jx8AYLf(nOZ{~3X^~5Ptbnhvn{n$uO<^^3A*#bN1)PbK*MV-a zH%0YGK6D?4CI6X^CxUPGC-`cp6+1@pzSPCq-nTvN{J<4JF8}PsDlmEtqrE7>iF#!%cTfl(m+j zq>=C8%0p3866}L6V#UQtm~+w;dmgMqaIQZp8u)=`(VhBoq!owa4l$;L9UU>Um)zX6_q+ z>z?NYe92@*fLD#AC~p#YR+pm#UvqYt2>4ov)LI^4;qjGvDXSK_jcKq8zl^yDhhh1# z(Rk>8RdB4>G6DPaM76Dz0>0d_?b-s&-e-c9yXIqri7_lJEOd65lU4!|0xwS16=2b~ zwX}n@*Yqu%tm`J95@;)FGx-n}C+hSW1O?<17-pW@q z4gC>!rMO6<7GD?`$Fw}2LvY811@cqvXIZQd<;@2OHf&gr&p-bRYu2omxHjKMT+%8w ziF~?Zmd@cP4ZesDyC({QZ=&zjtCtR$QjlCORV!W;lD^Q`X`B@(Bun8?*i=HsQ)xM~ zpz?4qs7_<&FrJD+G|kxs!H+`fEQdK>tBo&+>O2sq3QgF6`O3vSmV_j8UC>z#~%BNQ5SU<&|X$ZWid_2cR z-t?I6FS)`*L$(QE<86URFK1=y{>O!_1dsj4W4#hHzMSNT*)IicWuiVWF3Oo+}Vvs z1~|1a{ybykO`AmaUdqkvkca-vk>bJ6pjaQko?dp6+}T5oHe|G_-UxH_r{{@Qexa=IVW6$Nh|uGw^T5al z{m$e7gb!WD`PU*YpQ-9^&vY=1Wr%3I5dx=qNZH8&G}=68Euu|lGAK|eZR3Y2I&n>q z5p74AY!D5y5+TuYy-?y7gZSm82n53aLFp5a^p<%bEyyZx+b&XK z{egl4L1U;EDy*j7kCgV*v6$aiFoW*dshqO0yYO;k?_lv4V15@gXp`tDKsRns@9@~c z-z{xRE;TybSjJAsw@IptGz3L)n0{a=ti2nL=O{mpL98n6>u!<#>c&OTf*=V^R z_J32W23uoM#$iw3oPj@1x?9!H@Djg5PW;WXvQ=fqP1cXt>*bLlX^|d0T8|dqk911= zX`Xt@(AHi5<(n4;*$a6eY$mTOifE#eYWD3*2JPHLn8sRa3eYv-VfP!ZuVZX0FS!f1`%31_+05$SOsHP(F-=I~JA;nRE(3|Y$@I+*%69?$E_qX8 z^P%%(*Z_uPi8r}UwSQ7313r%>d5yo35N6bFx-c&rphTOS#$9G?FxqDExN91B5BlE6 zx90KY#WAZnjrj|GjPUr@5i9Bn25cO}OJGIavk` zGy2XP&%$frRnxEczE>m9gIOa_#D`;V2ZgovxM{$+t{10~Lvx2!d_`kN?1}R{1R(JI zY`Jrc;$_e51utl#Rwq3yX@TEuRY#q_q-Yb?ZO~E1J2ZEIe*%q6M33I}J5fgb_^{6+ zWtV2b1y8NLhQ6{%oX z4aD*QnRjiJsc606;S~HjZ8qRp=;cl$=XF!!0k~xO)xLm>6j$yq3IJT5LQx?g^I@-( z;8ux>0`rAMI=6=^SO=WzK0A&jIF#J)>)=kb)1x1cgh(+-J)R6dtP*MzX^9JuYGQDX zsl;W^NbEsG5=<5(u-G%#*wl-QEw$I?8^0*lw-(gFy>ayqd#qYUl8=*AHO51`-bzH= z4hr{(%k1@ARg~H4iXa*@$W9M|f&4n9lsVwA==Z~M6*ZfY8_Z>bs5F6vh-qLzz6sw> z8K}<@K&-G~>-U}2+{hBdk02AXRltNM!HPK{ZgutF3V5kr57`0R^4OfA$QU-tsH79b z4)T-;iifWcZ@T6+k=zQS^?UVcR%27I9~X=FK919B)6o_3(j$M;Ck`0Bh#NIPDNMEO z2{h3LGZAq&s%K_LcG)EDHkoqf{WXc#wV5iWWFu1{v@2Irk?>F@`qeLWYk%x4@{>m_ zyS0#s2LqK*Vb3#d7LWs@txdIi=k=m$@B<&u0n^Sde96#ld@j+Nk(zY}cZo$WvEp8L zKQ@h=tqrbEkPf*4N)?OgY&ZW~qSADc*&`RWZh)5CBqv5oC}T8JC2rYTd|Q#CA!f4M zyM{ouRIJ;YFmBlf)ozAnEDNM0qt&Bp()b`_nYtnR=#W(p3pi9BEItt#%;cx6DMFOo z>#Y-w8-#5oSb@dg0X6vmrq)8HLBFUN_`(Gs%xM1#+_J#J=UMOlTA*#JBz(otw@|(}TemcXvyLVw2n%lH2Bm#DZ1T>JMixJSYX!Q z!-?RN%FV>Um&Y?E3&dm!wOHyvMI;~y1)%5k5BSbf@*p6%{KY-a)1VU4ViOtHI3Pfo z)+yU8n_Ob6ff@>@2#P^drZHp)N`Kn_2Qz zz|!rTfh+S4PpuDWe;>TTjmVS&glZSWgO3kg+s?*7VB1L}`ZJ7UuGdBaJa8F9mxS^5 z)FIuMmQNc>qDlKXNY8r{pJ0FLgg$8TrMJKgWa{_Z_ib@R>Vt zz~GSM95Z$Zt9^Mfkf=b7`<5uY2Q7&;o~Ts88(I zl&xau`Wa)RHOey1U&2CKEN55G1wLHa*#yaDWLh#q`aBP`2Px|K6nX==-nsI2&ziV9 zrg24MyrleUnl&WM%)H>B!c0t?vly+XawuTE`Lp3*Y}|&jfTTc}i*TQ%`8)bNKa0P|KYY;F!AKMHInIO% zFU1Au2)<{h1%T9`*q6csGSn#1mvXCuAMQ7H=Uk#H(a*8)pPPZEBD$)bBNC(qRjev%<={N`etYv+*k}kv z=v%APq_3^9E~J-EPu3^tPF(-aam45QvG}=A9z!~5X}a!jO4HpZ!i;o9iQRIZF06RB zjOcKgZv9Mf*~~kGDQ|SS08$8pn0-}>sWfXVm$-0eE)AOMVMV^?|PF!mvIxBecbZvgu;t=$TJfebv)q17i*QH;&U{3#D|$G28Ym({e`E zNOv$I?dT*C!r*j@BsYFx|1vsnMnt(wwUo3Q+PI|z@K+PUSMqmKZ@)*mC2F9=AHA7B zC*N`*CVnu;;&Uo;5%k8t z@$Vkrr@;>X8&{JjIaZwuZt+)xNTy{uS3)5y-QYJH0fOwJjcxQARIc?5H|P}HzU8=A z=G~j%K!{fHN6CfNY}*>lef5znYt&TiRLZ=$=KZIVRGZ({yFL~-G+A{CG&5QpbR zgf(L7@P={J9clVnHsERl;@dPhHMk#aM|5?-h0w#zO^ROBHGNwZ+4yJArl}@`C{a6` z`?nGkLLMXC?iBrcYho94O9JzaMEbW0)wfqw{wxzd+@<0LQMAt{s}04j@G)7M?Yl2& z2M!gsUjij-l*z`E-Dc3x#qty0@|ERIDm?)2yAaiX^eWy|EiAslntwGJ$`Dun;gtV7 zTKFEJ!`tcvZ9{}UAbn0=B=duT{qv||3fCzH~>wKDG6 z1FVE4rj$^K6-7HarSG_NC1_uRbK`~cr=)hC&bcVdlkbL7cy0n^t@JwFQT-BL;NqUA zh9%E=5mdd>gRpE2Q<5T&+$}Td_p0B5^bCo@t-u)-x(gAc^Cr)A_us67qxR8ZavP)< zK#R}}d^!Y)wV0E4U9MB6`R@JNt_B=Q!fCf&Ge$gPvdBko>weC!y{^R&t4m0m!X2^p z*tZ;eB6#^^5xn?irn6ULC;STto!(cHHSx3WL~gxeWu|UZI7+|KT6Xz+lPo-tdm1V< zeQ^4jKgE`eNRxa=;1PXYLKKf`NRe zQnnJuP#GC6px{#bdwS?p{&xT{;d_>^tu&#W@Hj3L_%PD}3L8XgAqTw}2LP2TOCb3*+|zdK3~@G#R`b%RU{A3yDk%WOHQjuX~3&pNv3< zQeMjFBpo*aryQUHVevKFLJHrR@9!1K46~@q_mC)bTfx2yfXGl}RFFjGr3LAz!7KkB zG+SQz5N0VQ`kgtrJdw?@oNF}mnUFyX%B=QtR<7!kBL8-O7zQ;LjVyhb;nh z_po9Y7B!}{+ioTO0%E{oToVRC(c6dz4{LuibfH2#^EKy`>xp{ERdl|&UQZA;=;@Lj zX@|WD3Mp+prC&0L149DCO)KV6*OY)ky%tBqF4}VS7Kh=wDsev}cUbKd!>0mGH&^Wo z*svx%x=I5^U~>BH0;QC8XCI>Q4iks74$4Y-A`2EB&v~Owqijd!$DvvqpIH$EffA%DmqT5x1a{9NAV1+(=ku>Kr$x$0KgFkyK!k%h zs_Ngf3(Ua>EU&TJ?3}zb#ZILHimC=AmRinWckl=K#@j~}!b+h0nntA16J~yDMTN}n zhriECr+D?}eyb0kJqwd`Ka8Op9mC;r9DPlBzm0x)K+jv2)O5`*iswEET(f( z!RQrQH^&y^*N@FOCL0heggE6g<|57>oQ?6v#7k-lh5a7GA$S=czU3QTft8#2X@`-l z%SgejF+4-oF22QubMIKR`)gK)oSmW(^S5Ru&#qavHX`!5I;40|8;O1hOuH_fg>Ewu z>|a&{7P~&Q5d@aDv!u;LL;@jiem`_hIlfk%p;`f2{=Rob7+J&kf$z)82VY}$?NUF> z8J9yB%lnBgykkZdkUv*UiJ^O{6}6+Kcoq>WZL6j2q?v1hO#MIN>Np0tAf7E`%7}*` zc%oGi0mqb|A$xEvo!GIn$6@ueoOqbO7t8mSS{CZGhet%$-vEw01oy!{x zq76MTvBil(c#&ZPbYj9|!6zMO=WS0WP;_Dq5_5=c>ZYOqo zW`|_m3^=9h0YK1K&_g668PZCX?a!F%_@1M0?R@xs%u{g8>8v*%%KUqQd??`WkA7&9EY z@NXTzC1NaFoi{7bNnoSXv6?K}VHA7&A$t?|0*`+0j78nbti!mHa9qfLN6AQfMYI(d z)q|&U80HqApg_N)vE4@^+pi#qw-L(tDW7+#&g|VK_i3*acWFvk4d0imiJ}8H?+!O8 zIr!V?s92LTS5s^}wn|4^?4#TB&L(@6k8MQrYkEY7+Gi|2x~DsZCLWA2nBC2!pUN)D zhO3wR#e&qqLEi+jqCLwsVDE;Hyh46*V--tIokG3QdjvswVP_s^bn?XXH}sir8f;eDRLcYK#v(R+ zK}1wGlY@_;ANA%EE+`*I9s)?FHTVPSZ(I=g337X*|6bK{K5r}r#oB1WE;rX!5{SJO zD#}sYPq_k*+5h@)(LWK6Gl*vZsnn`pQ~FD znVhVm1*)ctP{U^`Pr5$-dncYkmbe#j*UV}6F@yXyw<;eSKOhx{O2Fws++uv+k9lm` zR)$Ym)sE}?hZRAUbx2{^^};_d(Mxqq@4GNTBIghTo~s_?eyI$}l~)~yV*_%3q}-UE z19=4ZRYNpeC9YvVx_)afeK8Ka5mo&^J1#y^lo4xx6Oq46KP2#R6cJdN1|p6rSN1VN zq?0V_Pk+I~sp1}s1~4^pHU7@Q6N#T%T*urAxx!7x8awd&UM=XUVYe2Q(}=B-d$)rQoZhJAx@e9sZSHw>5q-1Dt`CIAd9uU8wZtp5=Q_XRO0@o@rvU+^^R0zKwJT$;kP^bW7^ z2LE<6;5Ysbk0tCCpjslq1S}N^JM$Ev} zzgcsN8A)rQc6>tIAZR9;I-e?HVKMHQyoc>8bmai(Lm&&}hR1%9jeCKFcg@6ox&xi`U9$q>7SR z8&1Y8bNt=0vT(C((_<8zj0lZo#fPp8lfFQuZ3r35@An6Ix>|}HibdP z%uRs1Bg2s~S<+h{zq&SSuT-y}L)vH~CHxb6t?AIJ8^G5UA#rP+`n`$br;%g&%F{1R z%Zy>O{l_nWW^at893DB-qO_MM zU_UIRm5IWEWcEZ1pKhw{^*UXfld04z^pyaHPXo!Hfx-(xa6W_#>et_F{`0TCdhEmJ z>}+6_J^9Sm`L?dz;yB5rXee$V@qUKO!4>*_BMJ~X{?#|XivjzNqOF+ZMEvx41@3TL zUh(S#a{w*uzP$3tJ4>7}r%2k6$G7pi1~!)POFD**O=)pnNQT@beF$Q1*txuw5Z2{MmJ)S9dnh;r6}X!;l0+QB~WR7TF6U z^|;R`>25C&>mQwqvyHn!T6k2K4(V7@c$RwsmInrBUWpQQ(-Ejt$mhk^^m54yAyHH5 zVoo@9V~GK`#VIVN^4z zx<3Mz=|}$nBPQX!HB#^re)b1wi=#{bP2*^mr7Jdsb3J2aF4^o1&%tM({bdx{SRhd1 z_fkwHYaP`vJL=XfxA$1Z;Q3v~<2&20w8rGqPb}Kc6kFCxiH;`hyP7(x%Qf1~_SU04 z&GZ*g@ya^>nDcbK^%mEpaSOCsaje?}J)t)Y$BXsXUHt$`664>!v;vqKLpsrzruL-i zacOL`K13#o(K$o{Z$I`5T?jIbbiL%DAt6@xx+d_X?l`RqcPS- zxi~Y{!VmV}>9CNM;_bVAht1Kl4ERz)RW5P%Z64zJhDX_;fjIcZ9ic0%NS#5Vv7i=~ zea`-dAqI?FmQb)jZUmb&>a6^*gybiL!U=ajzhP;>3bNCYuXB`&3|U!`;=E`-WT4M0iza8?y$%^J4M}DPMYC$n51C0B@i>Z=JD%>3__`>c>iYPT zwe*)t=)Rr952GNM<3BbSK39~nUFMjsi)d5+QxuEC(5Sb+%b(&0_7lo>Tb^KkZ4}Mi z2q1mJyHLCoiQ0$Fsbfyv2YH*do^fE+ib}To^FU3Bg^aj4Y!cQD6I5g-u)n10^jJJ= z>|n*-oIBqL`N212=4fE+hjiQ+u8?(y?S4d>4{gxOKO=qduqIVBq)zr2LC1yiJP&W0 zW%$r0Nez|yN3&4+vrt3`|Ml6Vuy+m_cT1sTnv54*^F1jF=OsyK`%{b=yEoTu9h(sS z!>W-IyLa+i`WtP*o)y-&FOeCPS)zHF}?7Y$w>R}Ddc|8M(w#J(_g&^AQXK6@=XOQ%tOTOV;6D5T_n71QuhWi5Kh>e zSOBz2MYV47Y|L_8aNhQD0`uOVgPD7P{+#(#ALtx`U!f{rff^w7&6*|N=ouq z-&uJzWQ>B$_=P#W7p0AR7`Z_lnZn9;qKKhWc?Dd;W4hvw3JkL>;~Pa+3DY%;bY6t* zH58dLIVwSRLf^$Kc_yTAwQA(|v^HZs(M!9x$Y0s#qo~c{B z$6DA{PJ)cjGSmwxz57N5aj2;ZoOF~9dp#HyBoY2@2#>U)fWwmc<@5!SuPy1Xq{Nrw zKs1=GGAviSwDMf$FEF&)WK4|0u}V2I>xPW`ikSO|@(AAu%-QsdP&Lk&hJQOBr?oAxkv|W&S_1URP9GGOcdL zxxh!Ly^iqvt7u17A{jr|LpGR78q>rl%m}N|;c?(GZ8WOs?>X~gC;8m1l6q4b4=#SZ zuJRq(_$p6?jylPP@jG8OqA8E?xqe9)9{70WW-;g{K__ua(MnGG)$xsHyqB?(LGr5x zSwB{Bz0X*HGMO04DiA2|<@aNv>1c1SnXrw^7mwtp6Gqf&k}PABpg1~g5c{p`qV-00 z7Xo@I+wkix_m1}m9g$+3MrMBa&q11lZMXgyN((blZ%Q`hT*T!X{}~cWQ$}`tRQwaS!} z-wCnI=R6n|bEMa3%?*Wxd_%)SY~yIMGgDKx;_?BLnPW^LLW?c<1$MNiT3X$Yc1jS& z{Q6IsfZLnk_x$ddkaC$4{GUZ_g|IPS7JYDX;`jOTR(uy>qprn9{@C;(j4|TVe+xf| z6?!Q>*h{}hzVO?LNZ{YBKfmG@iTf+1XvgbrX*e9Ke8jpPjqXouF}+Ic`h+H{_?4_N zjyZ)wf|0KWZnwg>?VK!(^lNQ>zylH_=cznvwTz!Wv?lBzEpmC|b6o$e|5aPSG%7n3 z6=uH1kA>84CHVK)ynmxr#)eUa-PZUG-S$tJX>ii1%ewINe?Q8z*Ia)60pN}pFKfL6U@zX;h_lUF+5Ds0+HjmwWk7V_xHp4uSTd7t)1uN5HXOcA{BGcWw zx^7{$Y`Xqo|J391f=_ z)dTp@sb$e3sxnDak)h1)4@l4q*W$x}`ZpY(QEoidORIk)xU0HL{s~sPAh2HucVp7m zT@D~tQMUy=Q-$q^C+pI7=w|(R*`V0)=!~V#{JwW`*xlxH+#J$AGFqz$#v1-|<{cYb zM(k8`9GL}MCoZ5|$TMT$fvyHyD%H?o(i!R=X`nzT~-Q?3~^fL09f6nX={V zxibMX!uzRjG+laZNM2_WxmiCb@7;N0KO@A#A1Pc8wGeDy5=_}p>QyJ@{HK}c=lSQh zJm@2VNzW(DfK0ddY=cr5mj|Wh>uTf=s1IVWG$APtt(tzq<_%X*6I|$bl6^9J9~&J%{9|ms-gL|zCq2EmSu-S{LfNy@Uc=D1;;nPt6yp8_ey_Mukx{N* zt7c_4Po4hekK2T^axSL{+z5(t{vU~F|G5Q009POxomw{XJ!4ZRViSk&9g4EA62%Ru zRF^yeG?obvv|t-f;2p7@cLQ()aYdpKMixp(odO$pWvwaG=+*GT`81!i+0PHm6x-3?Fe6d7~u)_vy#9}vi;HgSGjnC zP|0vOvx}96%V$86T~?G^;M>z;hM?0L&t`_%!^vz1k8~tTAOChh@mu!ktM*X2MzQBR zAWsAyg`mIzex93s!c^4Pifk$L()8Pwu9JnRzW1l~dL$ZYW#@=bsgk04QtJ%ebuVpfKOSp5cp6Xb%4efq3qWhXEB% ztrz91ZG3Lv2Nbt|VB~3cPhYbJ9e~4{N?A7AaX8!Jm0)+aj(yTUFeYaEso!y510ZgO zM3g0!ntoM=EgOwf)kicmFVLctV}RRd_+~OPiGBq=EB5=|0SPIXAUZ{ z1F*eMTC&8ywV+SRq2TI2NnM+TbJ&9%;{lGLK^DhF*KNK8wz8|Swep|_3uR8T2Zl+2 z2<|@pR9|cO$nJfR1?Q+ET)bRD_!yvpfbNn+%$ZC1hurpVnkml=4s^){qy_ze&$u#5 zt^n?EnziYVSH}lpQPOU?>A?_Aj~SZ-ocOE`h*IoQvloO}6UZ_0z$ZZ<9$^r#CkY%t zah(pJ1c)vy#Wtlnl}*T|dY!zjxW#!O;zOfWDGAz_Ns>V;)ig$gFE;{KkTqY$-_rOrPwEnr9zr3! zz)00W35ENHg{pt`L38Zp!ZN|7kA&f`viqEmRT_GxLZtULlX$O5{S2r3tJq(b21d-^ z`K38pmMKp8wUqg>eUbEjQGoaj);QM}NYX$_y(N&;oNhM^$|RIeHV>A{86Z`jG&f;u zAv!doIJfQikg-f@4vXdu?(Fzo=tv9D3L}8|`)w;2!4~koYm=&WM(JnH#^Vdlr@j0kCT+S_)ss%mr|38?KO1w)Wqquim6)~vr3?-=lJj!sX19nu{APFA z#JstEkR3p`9C{*p#*LCUhc9aZj2PqLR!+SYwODgh&f~y6O8aZ(=p2s@AM^uQ{APM0 z&=8R}^i?DOZ~X7+k}Zo!#H79x{wwPk@!rvE?XkMq<6UP_@2S& ziUAJG3kc<3oM_hjvSwlJ&GVBu`A;CIZ4{pVXt!YwQgIY(3-~ye$bQcY4is`x7-?B_ znS4x>z4cua(}MV(K67cg1a90;E^SYbwv)dCD13bV5DN3_FAgX~i|}-%;ilF?P^HBs zCiJTP^7Dl!+%HNGq##B(v}@X~1kUgMwiWxf02KmCKR$V%;PArYx1xUqE@qYw2~$93 z1I5n268ieCGC)t{UhX#blm0!S7UPeiBtTV6Lmt{-Bgrtq;ZuF?3EdMTTOpH#dlZv&grYZ z^zrt*{PFiqd7{Sj&K$sL0S5$~F_V%nrCEX9geJDZ^c8*lLl?r)?AMWaY%=cSo$26z z1i>FCT9YQtI88^0!zuo0rGFPfxjYCxHsKobn-wB&ryVB&-55jJQ0Ez&CmsCKhPn%&?NXM(+581g~e`L(%VO^Xhgl23`okP0|GA zE6R0uspNGR5_dZgMR%!Dni4;UR1aJ-zAi?bRs_h(%66d9nrvC9Lx%_Gh>pbtlr4^cpyB!o={D(2GV^s;N2OG~#Z&!2s-i-%zjohsSWyodJje}{wR^OJ=P8qnp zl6rh~tT?(W*?lVlsH2iXvIeupx2YqOWLzLMi|G>ZZ)S8o<#OU;P^2tU>LAc9EbPKn z=>kppE{Fl>Aec0`;0QPAH{|@36Mh*`&=11MM2SCCaU-EB}Pm!z1Kmu{ic=sMip+F)QKOUcG0r-7Pf^{_#tzg2Py-{VDWE3vK zD9WOq((oaMXKd&VlX&O4I#b1V^=G$6Lq)vQNVyh0w5rF(gsQ47j~3!TstFq!u)ROipAh z%c0VozHK3Olt%ztE*+4xB~`Cmzbkhf0eaBw5f?+;ybB^N>trz)Co&c#GKnN~778kAOyHc`vU$`f zr!yqfY#`Di$^j6}%l$TrC(Bv=oJ$TLSPBktGu2#)sDp zUg*3JJJ7^7%&sPL6?6{-Q!$7@^#GsN;_HO9a4x6vbDsEaU z10rSzev2P`-lRZ9!9|+-nL?%cCH{cG)^!O#c z;7FG}_UTfK;fKttc`Ev#rL{bfCj@9unNbG3}RC?3&T^@)idu=BrP;k3>Iq?iAEdl{6 zAYk~=R03`;FSam)7YFH<3CIFtc&x;!IsQ)y)J3Fn@-6ElftZFw_ru7j2K8?zsD+Yg zIyIbpOFF)w)D^w^zPY8sIqw`meBVtdS0Tw39MNz*aU>`9P-)UxoJJ{?K?68XkZ^b{ zNg(Q0A0lqIu9p(JVDS>o_fI0bECBhky|JeGwfWCMU+;F8T=tjqQUW$LyQ zhOjBYTQlq)4epZj$|sRVcP=>BpTILGPyN3ypY0|8ulL2z@>lEZ$zcN?7hGxD^L|9kI+Rt0y*s(h{qcv-K8Q`jlO;`*z&~(_OLP5* zSb5CdwO!3a0WJ-za-yAYQRQ^r& z#zqlX{SLoj^ukyj`wo3l1`A9L!jgUU4`04un-trWtS_lsaC_zcaJbr1vz3y_wRcctQMGAGnuc;J?ag{x;C(u~zE-W~lKBUy zY)D%Z^!AzJvR||f4*rU+e0pNe(611)p`nby7@T6T)fV?hZMK``k2-wsBo&E zEpIdtpexKfCtrMZS_Th%m`d{GN4{Dy4iKGryz_L33zB?b8+co~Tz(QEjodb!`F*ZH zB>i}*56mk&SB^~hJfFGJ7Rs3>E_CP?hCLM7%I#q$JXnSe@In$26JHbB(bVLEht-SRHiGt^Sz$mI{D&{=&9NP*|(cZ#eyDhM%*T@;$K@E%*i>6k}5 zN3yt|BJ#_2aBJo>-pyj3Nrp|YX;tH^%uTTZZdrtIxs`MVejiqa7U`I=aM%}BT ze(s6zXqN%m<$}iYcjL(67~>9dIN+9JnJkgrg6K!vPL%_PDMknKWuk7yu48CjxsS%p$2{E{R`lUDoThA*Du@`C3z;hB)XJ& zz5Vm*uHw#bX(?~H>8<4~!)hk-^!SwIVIqJS{flUt&h)xv+vL@HMT#tumzuc7%@@t4 z)hWC9cot*v6bnFV>L7uquMJkN;I{t#Pe;;7MZ%xo%U()n-^Z#0yion__OU&3bA%uh zfDl_}4<^u4c_o;B^9;}b>G*%yH1CfgEmwguv6(XF(0e|NMM*-TTN7FukhzP~0Do|A6Uiu{eugQPokD%C+&^i;= zKTZmsYg;o;LnkiNPc(ng3xoNB{~M)%PE+83|4+cOMg2e1>AxSGh^GF3@gm47rRvK_ zR7V2K4hZx#9iHksS6*`^OaF&G?%#mCXVGQxr8s}!%hiGX?YC!EZ6zbKLWfRFo(%AV zC?D;EVTbv&WY)oA#TsYrQbt!%XmwYf))uWIVGY%BnZk6xMz7aaP#26^Hhl?)Xbu9Z0%gXB9uqr5>A=C`IH!7Qoiq}0@s(R?)@xy z|3@9-D}KD`ZKQ{thY(XjO2myi_tE#D$OIpMlfZm;M50G9$=M4eq~Px_1Uq0512+!@ zM-0Wr1W^1=25Nqi048c_Ep-wU`fDFfIl5w@gS%>E`lEY^#VLc=LZe)jsu98C}=P zd0$?B0>QWU!~RSX8t@=#IZ`H=ZpAEME%oI0H5S-+0~sPHbb$^1qvfnF;FMVJgD@zw zz-49Kmk8e%9!_=oY~lY3=!`ES>+a-=v;BuM2+ z13czv5BuTl(rDeA0xghS;c&k<)#Gkc2@APOjU1=gQ&EU-mkZO}E?tp8Rq%#_3z>C6 z3(RH;boyfEWi2s=lTt{kLu1L;DU>^KNv!C?_8eU47xk(VzMvTyc5?AUYjF^ z`VtwcNo-O}1_VCy(Jwn?ccjm=PUk&2=z=IO3k+5Jc@^rq(u~$_!$D2QPG>;zPEGjf ztKQ}H%c19mq}EfZ*2`dnPQP#HqGU!yOORVzEV|$|!S5eoeowfy|BMM_8%Bm}#JDY95AmkU<hw`;zBk5cTd-A+S?r9#!w;7qILuFg(aq*w{q}sNWLm7r6ZSj^=dMBEC&A09wYA2hwXHv2^=is7zazu{{`|cboCztHFZanG>AS$X&w%_L zrMhZWuXDxCC#~s+0n<-sU#`l8k>}<4>j7zSFMv2t${>Lc@$&w*-Y=Vk>1g3L4Abmc zYlnr)TZvAvq9f~9mK`3$brqW&-m1?7eaph*i^V0X@V$?Bf%s*!Dr?@tC2Wri9#c;G zL6tjI$9GP}9?mw(qCBMbS`{L0DU)lOcEkKKYneg8|>dQ7t!Y$1`KQt;A)uvMtT|oJ8t#C`4j3H#)TOfdbWFUE zAQJI#sdAiI*=Qu|w7&y?CMRd0BUI?T{_p4a$2PLf`x8rclmA`(L_lL9b*gZsab|wp zAK9}1r+RDuXL|qRLpVZ3a;Z?FiAt%6HN#@0Gs-u*&E&W{vx*I4(~0=%ghJGp4QFgr z__}A9N+FdybIDXE?c%bH&5kkqew^<=@cs4s{`vKIydUq^`}uxe-jDZt`r&^5xrK;4 zrAYf!Y+qnkxIh(@0D&Lr5Er1jGA~ z73~<*UR@q$Vew`e4Afv)wm3Nw17;7CxaVOd#^kOrmeBFj_W6Fni|1;xdh13y5q^;H z%d}7Yr?qr$_a57k3(~(4@0Y!p(3aV}$sZd$x(ZXA`4ystXnnL8>;rjl6|7Q$SXk9l z;M13AO6#jtNg6x{526v5VmS9bd@^)}TyDOEojI7Zt~;}F@)G^_q@SAOkY|xqvlo$# zTAaI-xf1`iTW}m-{e-;}tA*`q&UFcs(l%l(oEqt9_30ZTv04^l;p*Z#4;R z^=JuCy@~2eK19u}=`K3A+__c{#t{6I@n-Oaa5_suL?q1k!x+}Btt$!u99f8T%zQ=< zAi&gQCqS#bsKx3=YAwKOV$8JT+l=o-0;&&F15}zC4JiL^xh@w{l_yu`vDhR4*@rd- zo1YKZ&q15Jq)}^F->MnDV#pif z4PA}Ba>z@U;%+QDgD4+2!jGgGr@U?$66n{=jq5)M94xQ4GF_8mUX_tMNb&7_=}{BU z>NGy^5lo$!(1L$tFa@Vak9?hP?e)pl8uRTgsFg`#9yefl1{b$~m#Vdw!#vYul|MTX z63k;q=+r)x(zTqPvvKHTNh26XLKwH^lsZb^(i(;#b7eD%rM1K?12@4~bKKmE*LG2x z$cvKcG#NwoHtmOxxMO!Gq;$zy=eL$H^AXae!QArFf#?CrnwyO!Da~*1q<{y}RM~dc z2E_^-c+XW=+14G%U`dkpWaEvD0I6<+2c+Ho%`r!7%#AZ*G&M}p;g_yE4nt(QhuAmy z)8B8z!_#Ee2{X<8GpO#q;F7(@lDD*LLO~p>JxtaW*$xe;CvNtZYC8MTzq{8D z@#UE-xO0f&UiA2*N#dD$`QwMS;|oYCaiylH)r=VCdd1eZvh#~|3Y*f=S$TUbTI`;L zFpa%^6kC?KGniX*%txJ(PZy-JTNo47rm}rsFlWR?A+6PoRY8sA_FL|2P5UNk_YCa7 z`S#oQ^76y_XIUA5p>bUZY20qr`=|N!Tyd|%MEQoA_)DTRVLN~PspDUGH8iGeia(*_ zIF(1~txcCN^)aOXm|@fEF~Nqyzt3|RU?U5%7{Btku3+kO>=tx7K1vY<4jG4Ny=1mI zLTJ&8ajL2Wqy+sytI8yHcDOM)faNA4c6#Crv`&{#*c2Q50GfzB#0s_gV^3ORn* zCMBu05)S6ueUfqwQc9x|fpoG~Uuf5EQh?2`HMqPkNHXn?J=&V-BvgONZ2Y9u^Cmu>MBbji1KEj@7@vT6E>G5U`BVP?IbPN`S zax0Qqj}70^$Yu@)%-a<1D~RJUW_3ggAfl4QA!y3FRKiYp6c zaUZBqVgZ5cFxzxEZ8qc~*1IUEIf5{5Gvh*RUJSPT;N3G zs(0cJoJbjYM-#t9DoR8_9{FYV;!Mw}jYXuO5rY6IcXn`19UYX%V6OWp+S2M^WWOuo zZ!@8>Q_DZ?L|Lh*`9m*tfj^Qc;--mY#P#(3g3=R%63zZKZqPlg$5hThtan0t{_~vr z&r!L}%v|nude&~?y4SU*d^T)X63?MMi@+t%MsSwf<({CNe!4KzM--9(~le0~c^>lj%qrV)kqQ?!$e~ z;r340TYBUo=deg`YS`yp0y`(;GzllNhkZ(u_7sEv1{(B8U&?p93J z)SQqB4zaxFmh3dPV{F34yM4i*%k4*zg968mLyYHacj4msRxz9>zc<;Y6VOb5ZVeN^ z&gPV3+wLtRyNGkRz%$9h`afkq$2|3+QDvQcJ5PPh4~aU@!Lm{OboB8I2zn0MRn+sZ zowqLQ1<=Jum%KU-v-&vxz%!bc+*I4Q_ZBLWf6#k_ieYPIq&E_(Td4m=!5EZAm)^f~ zJhT0eoSAKCuW6RFu#b$LGG!iwF8D`EIakPR)_KfwebVAHM}3zn_Gn^6K}*a>xAcW! zimx9uMD~MI4rL={H|iB;TOSCD*EyOc-Jjm{+!){D4o*^nuZE|`-i&)@{W(LZ`e4?s z)n)GJjHsXS>Sd}8=+4E$PkD)Dg;Fg)FmXRBQU@BRm95j#Nu literal 0 HcmV?d00001 diff --git a/docs/source/Plugin/P092_DL_bus_displayclock.png b/docs/source/Plugin/P092_DL_bus_displayclock.png new file mode 100644 index 0000000000000000000000000000000000000000..1bf4d21333060e6e28d3892b19b764330886961e GIT binary patch literal 4423 zcmb7Ic{r4B+n(Z=okCIBvm_yk3|VF~59-N*f0=Xo9XaUJJz+sxD8R$kBWFa%*<)3qcam5<^IWnK$9e+MnFi?8mxm5a|eB53} zXRF`#s{(W0?`fz|4$wU}dopJ@E5v^s0EqqolIH>dzFauXfdi!Goq_J{?!=nN9p;@_ zRshNGN8}&{EdkD_Q3m8-pT}TMy?hhZI{RtS+(E-{v#|#NCI_qhZT3;+V(wNb??Yit zitdPsYXblla{YyT`%H@1xjt^R;MrdrQi!$Dt+z#hWhu3Z>Qh@gqYINEwYWdDkH6Gi z)&?2b?ZW7Jt11^w=Gx3F%KB(+_l~$!z`QbPLhOKg|J`2yI?}J;E!u0GEuB3%6w%uCt1!KgL5g_H1kt@;QifByFN>cg z*+ClFJ0tXerdDnZ+2de^hD<;%w{ z?8(IEe-3ZBxsVTYEF;441}T z>SAJ}H2zU(`>6_=u>~Sj=evm3)4!e4twLrbN{O~pZ^OQB>U02azu9e*)au)`Ty%(f zVpNX1Bumramz`%BHjyTgLimX{)XVJmM+Cy{?k}EDIrih@Wk)-hwODO#)f~9593|KO z0?eqHP&7CVZFaeD#uH6+xa#yXDi1qjW3!Zd-aJp*be(_DLIvKIlyy&iT1ve-{*j}6 zF0g>)nKOv=U>XEvsR8$uaSuoM|f{Wd()uX z`C#24bFU;p{^J8YnYovZLe*yIYnqmWYho_m&ua}G$j|W=?oFo_x}EK`$NJkKG_5no zp2F{-3z9teDy%pi!9O-Jk|}Ww7+!tlLd<&6zrvl03!;+kL@U;3RFm9{Q8`#=Ee{qn z{%QAQ@^0ZD>*Rh0+j;@r5g|xVW$-et?lFR#?uw!3|Na?oV6nr~v66nlB_-*K?Q!-q zuWq26j4HIStUAW12GcH;UfO>t4YxOmE=Uot6Xk6A1UxPNLe%G%D7-4-<4Vf!Q|kz) zEq$j^D4%N^^1=+W%g$h&H(fwCkl)md#tq-@pt&W%yUGWDJ=#v1x}~K$Rp@@<2>psY zI|z!EOvZiDyQ9_=K9z!;EXa6eHp(4+&tG;2_(nP41K~3^c%9n^MEB}kvlQJip16Qa zMpz24`|c)+w$Vz%E?k$;9_~NGFRFu^-d2pK7m2Y^V2UP|V ze#eDHQuF!wS?<-W!UjY1*>&OmUs3PWg-Q;ZXpfM>l6Z%OQlkfVzs1FF-AA|fixvEp ziAQJROt-DKC2qbHN4Z~mp>Fy?q{SRFQ5LIUd1KeSqyZy57xrqdbtIs-#EC9=QAYVs z+A{r{yEg6I>PT+{A&DbIfaR1Zjeg)o2b771(J<+`k6W)QN3iPbR;%tZ^T4{BMGtNk z=%YD$w`pmVHaFrxZed!pUXBkr1@r$i`(K0&01)NqqqYl~qn+Fbfu$U!*pEta7Onf5 zIV$|0Yvq4I{=4K}vL|nrFR~VLqB0>O_7KZ#$b|FA)3TbL!u1p|Y^4yQ93cifq?A8W z@b)m`t zCe?r?B9nHiy)E?xsbclU(?Si~kbIlG@>xtR7{*e!*3H$SbTD7W4rc0) z^~#6r>aCU?H=YN1B*l9$TbK--D&^v{zc1g*RMI>Rg<_!gM<=2TiSUnN;)5}n*@uN8 zN@Th2@cZM#taDd2vo0DWCwme|JnLEs&xETxl7_3jkGE?2&1{jB zX?BBemF9pYNmisJMe2!mRz~J}SdHgL#Dtdva^PvRlo)AokjcnWWy&`8DtsX(r-^G* zMI>s;3%Ar4=L{MLxW?x3Khf2eBb4ce1;$$sDHrXs1yIj$$hKkw`$VHP zLv_(%3UM|h%%yn^lrtSx+Bb2Y4|$#9!Wb~lAj&3XuaKT>bbqs*H|h=&?maH_XZDlX z@Lmo!J#L-#tjbgDRiHl5`8Jn}QMQPIw2k7PUkSBjq(EfvtZ}b5W14zzK4yBb$u|TbqWBtDR8can)CF%t^bEGN7#x=EOUDo&Y1Q&e>{MX5fidY5AN(3 zCwLqC`G~+oE>(_d?8v*k(S(BZJl~$@bLwxFG%By}?`2VG1s-3WgL7|f#l4Muq-#KF zk7X4{GdLwwYZf&;wuJx>5nw+((AG*#7Fx%4uH4+N=*^mHXY3e{KLd^NZM=0m_h{_5g;cHA zW3=*tjx&d!G?wGIQV0&RLd9)j!35qdPi=;<%Js0u95AG!N^IhLN@;AM%hP!Xo7I8*z zCLkl@Nr-r9UF1ep9I|1|&I<**J^IebmTkp9h;(`Anuuatd+Qb4*|1~25Fb$CvNPs` z70WE1?!lx3hD#F4XN{#~X6gxf*w7rZNPE++&9EWak$ETRiKs$sp(+0} zt`mD&*_6PoV=lxt(v-77|Bl9}E4fQ0I_gJ_eh0lWDnVm(%ELgeraq#hYNm{x15PzE zLfM#s@#CxN)lnIk1unF&4Uxd{%ypOkpLV(%EqE}-L=Jl@q46xoSuZdAj|b1cpA!Fx zF`tM5r$S9nbPCdSWbKeI(Ln33}QtJ6fH&IgnK>y zYo3t=dsmUA?p%x*w{>64b4^3<-uboI7q;x&2rd&OTyoR%g_QHIfo>|nG&FQwGLW4< z?$%Qj=|N%(|)DRcu2&4o5u1@$W!`8C3TG<&1_(L#up+$7 z5b_BYw@6zZ;R=7@d`Az2m6QIq_3Pl4gmx?VisK36(;?ruN|pzJ2fx_Lf1kSKJ|R`D z>kSKZuT+JS_W2z5`TnXLI@vY!iRMzVkh=2q-PMELqV&}vymT?ufG3nUvUS$y_aZ(s z6dJpm6=bi|mEk%wToULacqeeOv1mr0 z{bGoE9UqI_7~E1Wp}7S7arYhX4HZ7m_gv;C9~ZtElT3`Lw&8XUjCEP zozjC!yi^)fq0GeKPcYj#Y<$+@+RJCiuEKom+5k`KGJSgDkPl9Bj{#;Fytg~VqgOyV za58%IcLjX7Ive}KA{1k;vh>o?NA_3pD?Z*y+{~dF_FMo?D?+42?_;AAFrs_>1qJjvDUHD1x znan{!*O`cjx{mPQv3mOqGa@1txZ<6gTJA=3gQOohwPOz)C)Id0M(W5I9QKT~#8 z54TTh!L*ae2RlpE6Uv8MR^C`l=&0>=C!-gM#E&HSBt8Rf_dRqMc?PO6Gbe ziQpt3lqjHZW`>#FFM?7T^=y=$j(qQ>v0)u!U%JNTUS(RWIF-z4PV~3fp3=Ip;?9F5 z5*#ICXVR0C^LtnGbg={i=@`9Y-BG8a>duI`8U*ndO!KIuLp))yMz_}bpy<9fENVcm z|0I`aBO%cr!+ZGTY(-9gt(=u(x&*&im`EJXh^{GGuOIoKyZ-GuiZN9^ zzenO3&Z|OK;IrGrgVIY_6D+y`+^RGnQb(a-DeG6e+Wt1Qms8C!px zdd+|wzY!jfVL@H&LZ`=eIk+d=(b%BAmL$F@!f4tUcAP>Xr>83;?{_&nTzn%xvHwW8 zOrkwf?9(s2NxXfEX_5ZC=drb)QbT0W8!9`EGRb^cg;MxhLGbjD6)H-xi!7~SlPs2} zrOPky*hN<)SJ^cbvas}(+xn&7NA7ezHpBFH3uH#u>7-kxjC%YKeQ~&}n>!!7HN^l)><{&kkSLgQF!0 z%Sw=MT{~`-e7N1{#S?HcC|uS#`II^fimqzTEYj8QiiFRtf+&l0IQN{=P4fQ2(0gPI z2CSuQdA>iAHL#l^BY0v-4SnpP9*@G~(0xuZ*GNn2RtT;5)66t=;lTO`Uf1PoOb9bU zy_>nY?*n6la%|}nES9FzZPFXcALyG&zDfcPVHt1t2{p`EE^Fu} zL2@oUT;(W$7EdSK{Tum2h0anoI1t|sf2UV>xBv5q281PHUBR@kb(Dl@ca2;#SX3>`lWDw%bp-%1}MCKkq z$JQPi&bCi^8Aht+-?sD3b@Za7qMlmo&ULJ$l!I|@h_s_&rcBd&JC{6FxZm4S40bG8 zep44Nk^MDBL#exdZxwy7-MUdSF_dM&!%Rw2EPr%L&{Q(jxm!G+WO7Y?9P#*-(QxWO zx0&pn(%5kCoi9N!{F(dLs#~V?2|nR@nu2ewWJ0 zsHIt~=h}h@i<)vN=C*`I!pgUn1fR5h`-nn(KmYiH@E=72zxs0w`_={PCUfPV&gqY^ zbT_Vx)b*@#VvEmRuWAhqYu5sU1T3&P$+r17>ts^qn;Tw%K3&YEyu zX`w4UQ{2c@mvn6#9T+{Df@iMEh-`{U8^*UwxW|7@wlw1uU0GdgHrFLV74FJyK78~T z^;-9Q`>;%l*A+bN)xPRh+6A+?1@>mA@k&Ik>37QZI6I5{ghJYSv#jFLwin3OzGz|$ z61r36DD^FUuw&2&*COrr}FWB>q$lCZ?4{+KJ7VvD6 zuu!N%V22BC*-oDm8JHR#&?y(`su0OAn*Zj?YZK|>X>59 zvyaPJL61&|SoF%=8^uKGU1FQ(Lb_I7VcZL~8J;K)w?d=LRc0YYKSv`=sH@CE={r9> z!$&*444rB=oL;3CJeDuMgnws! z@NPdZf-!wA&{TJ7ilW_zp=Z_O;K6#hrBH%eS2zFO*H#pNe-3W;o}=9qkYQS+sE<;7F#2-G#97luj3b!WPm`f4O5J5AWETzc22 zjMK{l^RG0y*iII3!}80D=ji$uYZR6#Dx=4rV~WT426V#bPAA>gM2&sL)}>WIOa~Qm z>7$JGgb(cT`RVjk{z}H1U1X^}PhaO(<4vPm``8tw?RnDiEBk^1KVO*(lvhpDHktHv z)fZml8}EK^=(01d7JI*o>s7lfat~X6XTwl=S;VyKir!nB!DJlNXJs%-2f9+k=k_ob zTUaluweD1!N@Y>rkAXS);%$HSxHh+pHebKe6zfXq;uV$}4$x&IIrZ}&GRNNHxsVc6y^G`v1@XV zj_-0ab-0H}FlxNTcvxz#>1{E6;VZxMSF8Ekd?5pA;j*d)3JDhXLD(&Cmy-Kmb9QFD z`}jTe(ps2i@kqRgo_OmQWz+y`IzP|2e`zVO`hO2{3P$E}s(SJtOSw}T|EM_l<~ z)Q?fT_QwoHA>=`_9b1SbprL3{CtvE)Az9VBJ4at)^d>s;JhaFkhXqZvLE= zBbQyzMO?B+{$!(j=G7%8wJO)h+}Tat{N?~9n}}q*HEM@R$zeUN$!KF$Lf@>+r8LZ& zQMSHBtbbi(&t|z!#lMm_-0*l*(*4-YnA6--7^+A5OAU*jjh&TPFD5=8;>1e&(iV=) zBs`s|YtA&xT^?rXjk|A(yU3>Cl_GPstf~wj)mF^|Pg_BTu!Sz;pEOkDf}~}G*sR=- zGwADFIIGJ1a*vtu@{UORMVKl3idDs>2P*i4OsnOu3MGTj&wgkSq>s07?iZ<7W_44H zw!9L;&S-R(irOjdtY&7eMR~PHm`m8hM;Bv-!S8ZhEV!LQ-# zySr3hW9T;ceqUz%m8KtsKqbU|rCH2ha-kA>eg5NE$A<{%bu^Rc^zKRvtWG6K#?b91 zq0R+&Z6z{SI_zUL?6n+~L@BeoSZCr-C3@;x1REPx_F%W>V8{1B;DJNUN&mp}Mh{NX zGujP&bgVIYJomod&SUz0jFv1TBF50Q)v(pN(7WA88I-*Y<{h0g?rWVe|LpuKi5~Bb zLI0EI9^9CVr-vB`USI3b)OL@xNc8aYm`o6R;MB-fx8LTyH68;yNP@s`Ew;+DO=pVi z&05H6)+wCcu4CJOTanytwv+xT`V@5W2XB5QZCF^?34zK*zxm@@%*YZ6{xV$TqJc$R zKX%P8kU?=KePe*&SVxJQd=U`dIsR6-sKn)7R}M&*rT~)4KeP+5Q9_kD6Bfw2r}oPQ(QbM|lndw)acdddq4r9h^wgOQQ9tn8-{Ki*`PD<`1f5KruW;U(;6@vQ+p{?_jWJST6GKNp^k z_987FbnOouH3RE9wccxyWRh1lasTAxQ&QHSw@c7&Dnfi)PHZE`ktK0m#=hPq_Gv1y zw6mW!hO!2I5B9Q>IzsKe#+b7(4V|&R2OGXLq5}@MMRt=z`I)++-o3jd5++P0%OG7i zcerua>AfeRmTjpcVbC9^sAV=y*3{%*+}(PZcqz%b>BGeJ*N~OPI-2aa?8hcQ)KRzJ z7L9dNac+@zb7;5}Je7Cj;2tcyF@SLkeMM=e?R?c@;G$}Dz=bkDuep-$tccjuLC5+F zRy`tJ4{lQx^;uJ%vFW4;Jn zHv2fcF&0{%8NhgnO|Wse=~_|PcK^$WJhSrqFKyU#kL}$u%uO>x$4WnTb@&y+lT{AS zqZX)`EgY5aVDnmhngv^)P|mw7yMl$z#Hb7H0z2jg)l3PN3jncjrtM0Q*r>&CO(D0gRtUYPJn2CQYk7BA6w-j#mEQm1^+McGW zc}&hKyo0Xn{~+@SCb#VfSD z0fO{hRmyqW2-*FQth^dXxgndz4--u_4BmyGj@*Q&n*93ITYoJ<)R;Q|LSE4ii5hwI;_W5Ke!@5*VfjVTR!9_(!(*}}Mchb;5CK&>SONk0VFNhnx5-uI)Zdq%6hfRb(CK@HO^Y`s%6l zM6#pPN(kl>^WY)bTK?|m&t0j;!q^6RjW$)L2!ScKqGn(=2c;@vQyIC)Y>4l{&M-2G zd#em1y!AfP68Jqg%mT;#;30s}Qv!QRQz*--z4iVqwnNhmd2bjZIn+G9Jl&1GK> z=-YoXpL@}2I#WdjCsCWLT=_BT$iqg}DDX1b7GNUH1U5D$*e=q6qfWjW%E8Id*vSC> zlv_Haw{dJBa_r0v@ia{TX~f8@vdZ|*NZD`$Gt^zJjb^c712;=S*}-Um{UNWF=5pSV zXqG6V?}C#j2nf~(!myM66#(*~KG#0WbPP|&clFEWZ=8RK%ez^YEq~|rx5e~w_t=&W z_T^0xvO|} zZ{w0sS~CK~b=o#^#o&JYdU15&i|V-|EoPCJUPSz~%#Ag01CA}y8yUQi<=IkvezlQz z4j){OHD1W^*B$L(*I{orY2ocFguB)7aH9V7-UY{RR3CUF z$M5=-t@c^xXWF$wIB-{bg~FtskAq#-8vMydFowU<&Q}4ScjO_JbdgDlN@sK}5|ABq znDGaL?qlI=FK-|L*e*o)?wW2cwF&rcDG!!NV;iCho9k68=F78Zg7zD}Uk+f@>IxO8 zVz^ehSex~c#qrCT8B?w+7eQ>;EpCoQWIq7`;yL}^lk#mG02ppI0o7QcyM{}zCu{C< z)rCFt8TdkMyAuo{7O*X!PRsh(pw2m-9toDKCbMO>wsDJs?=1F>xF(V~>sh&;Eh(GV zhb%6quj6ao#@&YTHgLIydevpQCQ)iRQaH&FYJ@$;Ydj%hpz^y*Xb_{v)%BU|{Ji54 zyEe2LS7)q{gUD{ft2qh~6feJ`C7gTPQFGbq@JJ(+z*<~H435G>P6+#~p7rrHw0+f< zRzcZfEd>(xRu8Ovb$@3eSoZQuUOrJvxEwknK9z)ErE*?53OEVjcqKCeP8S|WGt!gyeMHifle5H_*9zQ+PvZ=#=y@mKFI zFDAS&*bfJKe33;9wT_X8IsFqtvK^$)pq{Z>Q}9OZv5Rowl`B2q-@FDm+xtMCL&Cy> z2%dV=Tw&IouX(3Muc9toj)jmRrhtW8q*lV_$v?`2{09KL zN6$L>c>p6y?7}N~^v&_cPY<#6%5DRW!ShTp=MjhGE|6YFgG~(JjVHhmR%EB~-8xD+ zHaN-a((hNZGfeG=y*D}y`^EzqFUgLH))#Ckij6RVUj@X@KuQR*s?tmO88&CEU`@qB zRdz)&FD>Fr*<>QK)Z%C2ZGq3y05eWOJ8z@ zf1M>nJeF|;zQ~T%0u7~-8|bI`8QDH@BGx((;5He1z%lBl^Nw(R1T@*a06Mhp_tQKv46urmM}Kdc?Je?G6&uv@t`r8IO)56zo-$7y1Ag#|fB@O9 z->;-+j5&8|!%Eg$tO*>#==j^}jO=|h)I#k;r;dK6z}^qBVXvB!Zlmm-&n1UJG8{XW zGi5Ty> zr4ST>{b_iQ>kyu+p!JM!64R5&&fIo2N!2}flW>u)pN7AxRuUF6m@diICCYf0&p*#< zB*5@$g7}Y9PzGLbUhf&rr2FuRblJVk`8Fp&oHI^y%mKa)PJH)2PMpA#^0G*nKEYSn|PirnQ zX>{sRf|NqCn>92pFfCmjxuZLlL)SdGX*d^tu)lDi)9=)49@A;KOhEs^-T7ak0$qlF zBdhJ|uuF0?wP)m6-c=;eV9V-2@c+5%5;0D!0z}vGD?KvCCPHRA!*i~wc>&}=zRtPX zq84iZFfU`0qa5_FoBz~mi53S8zY`N9Pxox)hok_d&@u%#Gnw@Abz-duakrk+h@Wl~ z*Ez5zIdAjU<ez zDG@SyYw{)NJ=6c;EdJCI3bq?hpB|&vGOJ8*8xr3f@u%r{9Y-bFbHgwbWh|j6>mh-W zikbG^pY#<<8b0CnKN#wH5F;6f^0k5h@~g{zF^-~rk2uz(V+qCdp6zxn;LJ65&l{et z1dP(tMoarYcPJS?LF2pWPtIF7I6fSBPVe%r{If)S=-2IN~<~$Vj3cNVH;8DxDb z$%XJaMQV#fj~Aw8GD80|9xUM#D0$X<)%PPW76F$@_wl9nY5Mmt`~;_f`ht-02d3BR zd=6?-4lfeAnM3mSw+9Mg6{upbJ0@q*W#^S!EpFrUv*$C?e_t?10gW0>Q%}lcJ&n?_IpP5r!!Pgb?G%Nchkz(I(k(E&kp3T2Uv z<{oS0Ye*SP{dfkU0mPFb2psYK)s>q2%6#wrupOD2{xL?LiZo9ppp(@9AReFyL9swC z$x(cSik{`KqeW8TfOCZB z*@M#Ry*ZQd*Dz{d*DH5b^7_00Fp;khJ+{{#G3zN#dPs{H(KE!)go_PjBwpt;uAGyP zm-29WARDcVU|j344!eLD24xDtSitjsMeEz$lP!HEup8$XX$zc26NcdYkO~A15pf;7 z!h8-do*SmL-HHnj^O#!z(C>K#qJ#FfKZ>_&yx4}^`f;T&N*)*-mmUMEY6{nWTd_`D zFK=73m*Rtc)g3Nk;CP)SdHZwrz7%sa?O6!$xaEExoGoiIaf>TLoqd2zVY% zkKhNPuoh)qcGVd;Jw9&^WI-m8Ft0P4hm>m!lzZU-IVUJSFY|J*pjN7O=CgN_=L?0% zf1ApA)a8^;Vm_X9(ZsjrbTAwMA8=4qV{o1!v{h}V3qvmq$o=0LwEPFE9C_izwp1}Pu~p};~?CPV0WvOF)< zrR`lO^7)g{!HF0x-n^?~<2WWaFSHG|JF9-T$(64@5{N) z92p5DgQf23eG#uhOy!mbU^p&po8R9^+WZFK*ae_bTA?2iq3RhF#I|BxJIHx+-j*Nq zSMSBo)5@ctT040qSE|*9xr5r>-#o@p=Ok0v^Bs_^@iL33$`@?}0rsEU1SRA9yzdS2 z3U0&RrJm0*0cRN1S!FD%dN$gW1v25d?^uG=^Ji%iRM1}_E1gPHOUODNzUwd&!jt&Z zdxZH9T7j@i^xfZDY^tW!NqrKVWY#oH`>0FbUV5$RWP1duYH}9v@m5t}d&DCEEIMnq zSv7VDdY;T;$lqz|mR%gra4>4|q1_9fu||4kD3v9xXVqG+{d7SeFjE{$`sMt72*(g8 z;Y^xEy0xCl4N*4QvW=YAT=^$af$C(bLsR`^d%8M}n$*&lkr$Hl8iPQ9NH!tp$S`xx z9+tPjm3d|H_Fvw~0tlv64?&yV`_1K)37ZMbo>GxiV2Rze8K5i}f+ z`pn+!)xmkUVb?flG|eMJ2smb90Ap|TGR1o#To*O7ePsc;@Upk0#{;e`^>yz)>yV>p z(?O%+jT+?@+PZ+AKLSz?O*JnRUV8!=I05pocG6Sj4=7$?w?Smg9}KvZ?^wn-1hnb* z6)yJcv%NK7S8~A~GA+kh=e2rkX#Yv70BQ;9@QiZxaue~EOjspHl>RH_it%XuRgLEO z3B?AKa*OPCYlKVp^}`6ziRy?pbnWG;Y~KXVmbUZu`Ck}WG@TZo1;Azp>7S>t{oJ@=A-WF|gOaVG~X4tA#HL{XoL<2UV%E z;cHY&sT&ZnM)o#_VKE`&dDY7ajFyuLZi&BdxRYnN75a37M|LY@{`u9vA~MX&i!*}n zWyDLIq~OGkP#ezv%5_>Btm;ZMLHgU}J__sYn?7b2pUTAzP#^Dn_~Y0gU?0W8CEaeuqItn}u< zq|A90Ao+M-ac@gioEb|~<}bVBJ@5)>TLAxk#6eBbNpDOhy!=yN>tF6CjD2+%1a^n^ zLBqzn%G+Mk2x%dEY{-AIXP?L{O@o%svXwO!_y>w`vSC< z@*DY4<&S!O?+D8j<00_c3^Axc*%tkXAB*oI9XLRR@1GPsk$jBbVRkDNqIp3V`R2&+ ztNQ_q$c!PH5)j`X;i*+YqV?=<0|_Rta#?BZUTZl%FS~-s=WX6L;iv${j^l8Ws^tH@ zJ~d53R)DB?5@_z44giX>MWv)zD)+bX<@vtlU4Xmtg1zt}hk_yj{$YD2n{@13I0d%~`m}-X-deeOlSsD#-L=97b}KZ< zP1@mO6hNM-0V`i_5+I#S^7Z)uRJIe$b|2x3&GtS}LiOx#k>srd_-9Jqc2hdUxlNHL zlS!N)Yl1#rt6_g*XFMoP6b#>O)zJ97tFUSI`*S@g`Gr7vTOmfw-O(3*1Q+WU!IXAO(V7VWd6P_ zAqt7@H_svnIy$n%95gY@l`;81d!H$B`*KEpia&#nu&rA^u%M}%GIYAJP-btnz1+II zp3T>Qig&a==JAgsx%(1aj{hBh5msnMxk%e?SxwPM85k+XXxnDlF)AQQ-FLgaoMI-R zd`2Ltis+jCYO0(MUVpgFu#M1evU;$Ed@pbq*`S&*eR0pYkH2CzIYuUaYk4SLX6?%0 zNhEvy@m-uIdTVdNH$Pgt@8{2#^L_J#R@ItZPz5Nwk=-*;WGCpY*`pyvxJYFZ@SXkp zc&|#%COzDR$W73@{_#4N>ByTns3oS}LNXMjQQ36|YsLrk24Jx@iI3+Qb3kV)tGXEA zp-#kjFo6I9V{iWmD+{h8u%ZgHejtl>ST6vM(P5~;19ocb971M)({xQ)Y3rDucsft~ z>P~NqPg?zAu&xil{>o8JbgZ~@+Es?-z{=_NbbOvG@QETOwK#$5t2ZowO0~>~WpG-E zB~)ut`SF;gZ_K2=TTRBR8a{$}lYch*7tqdOcQtOQ_O%p^FXs>F7<4JKBA<8yENbe8 zXvza<^0SA7)~O!cn0_Nnp7h~>UWW(V6(Yh9ymR;fu|EL=3fD@&-|%Ryih0MZ@p z+o(SJ4DBP_kf3Ffag)6A@ZP)|kcu~NL_C#<^rn(MgUG7uP(8d2Q?wusYE_2(=n<|M zCBG`W-ec-{s)O;jPTNi}{U!?ng84s3aUJxW$xQbH6zuACa5w%@>M~_1qCUIsB?koA z$NHes72v?s`y0APfpUa$`m_(RTe-uwpfmSV`Dr0mv;>r#%mIv>&&y|Ygt2eje}#Bk z5<2y9!?Fh}vUqSff(_^s|EQfvUM9r$IHB1X#|BSxD_p+>Iu#eOpJ5%^rKg~4FH301 zej{-?5UzuBycK{80(7QFcJkG#NSn>w22KUq1VC4{JA;_HWX%T3=5R(R0$hS?CQCmc z*0Z56IDpZ86tpO4&gq(=ObF8xgsyMJagfUXob~4TAON-*{x?qAh_Cc8N+YkOyMv^Q z#D87q>YP~hmg)xpk69N9{qvIq(3vOR^e>+|2Tx-?T>NX$soT5yz~t#kt(RM1f`Ykn zYa+g!X5{=|Ytd>0t(Nmxf(C2g+)PhNNqJ(SY9|kzDfsU*5hUD`K%>hi7h<+8z6SxF zaj+n|zZW!KOCdlx5o^IpZ-xO2B0xI0mcZZF`bGdmKP(`w7iJ5a_-nvGMd}WbPs(3+ z4r2vc*2v4-)MP-fk{W#f1|YF^AcG}90T_XM<7J*4{AJ#sufb4>-UVLkoPwbFwogF2 zlb{qLz2Ne4p1gzfuho^a!{vO0_R3nk)!e3kfP##LB-ZqWxSZR`nLywi>F^1VsHtQ& zM~L@g1__fh2Nv?^=}&|$z6tvt#JI&U-9NnV%3!7@IVU_wn!yHcDvOVo2V0Ec$ zq^DYB4=O!n42FtNK|jTm(3lz)k(@~W4jS4I7YIAG7Rp5?1O$N>^TZv%Y`JQ6Sa5?m zL4!_BeE#Cj6B%~PBq~;&ppBMlHT)%nPJ2T*Aa zDgb9We{_}>pj?^kZ%x8BD*E8T7YIWt!ViG8I#aaGn4Bz@iK(yOpt1ee&6JZtml;<< z)rk~IJR5Sb8FBE_`-vymg3jjiPt+x*Qz1Xmj$GKBs_mH?KufZNmHu@sC<=ib;Pat| zggL_zCrBVRQD7x(U?q07VVnCK)%nN688^TT(q*syQ?)7!=7f+aZ&O4AcXsm=@L3AA zaxas5yfasdm-!4dQ)IRRI#$qB?!&?UPN@hqF(9s4wEx;HKg>bSQX~OF zT^6|z7=Utc0HXthi{3iCs5p=>JDCLtXmB5boYB&*=EU8JKOBbe6Y!o^_EeGlv;4^O z2qX8=Koby&S~n4(kF8lvLiFt_@PNCZWv@OPBe2B}_|uG1;jXcd_ZA4}sY`KU+pne@ zAi77+Kn511gC-RC9g^qCgq+4QQK&P6qzv)Elj+HzAOk0LxNVy;lto^H-?c*T#wi{T zhu303VV+w79vb*G2QOY+=czc~R-+ESTqaw0kf z%>x!V*v>!5n&;wpcXwXPXEgA95G?K0yQkkFao{{+^8DR=vLwff~haIXY>}HAFB)>sejVp2S{wN(S8nF-Zm$xkTge z>bz-nACT7ajC#`c#$@+XJk5?haRnF;MC?nYuX;dbTl@JTkgwRFUI0L~?T2t+qFCkJ zKmMSi`o?E_+G@D5BE$y_bxpYUnnkI0+~z#ia}PFnl?m~Mpx+-V3aUEUIJrJnLAAl^pCbg zqB_JFUqIS@kFLvE7Y63_P90YJCf(+!l`T9t!XTSDay z19Ii{u`p=u4QDWvML6y*IPMV|wa{Pyh8<_J!UA3c=}~8c%nuY7CuR4h)jI{^%_N*& zb5p?6HV(6`VIxq!2|6ZmxYSDODORyrJgjDtv zad>5l;>s5~^#B_CsHEG+k+;ExyWwg7LeKl0*k>FsuCr4LJ8gBzu?Aig8;+Vx7yy!Z zIj;uWU)*F$3D}%k9Cw-?fs0X__@=4YZ&$%5;MH;N??ec|_{{QWQAVTV%>*s70%HKg zqZuC5awT2jN*Aqutc#+gJ;9>Wkeidb`s1>NNd0b*|8nB zkKAn#bb(Hf1L>2MBn}jeH#aQ%9)|LDEb)kC948bQe~5|UG&lAXnJ}naikM(BI_1D~ zkVzB5T(}1RA@}2A|M6Ql#A|>4=C8O<_Tk)9fIxz^}hP4#NP}H1_ZqV_7>ho_6TguXJ-J-B%nnaJ>Mt% zczxC+N>%jUQ@N^LUK(V@ujjlS@~X=pz2EZx+rH}~Pq zZ(1#Y$o$u4Zch*-S~ZZg38g=Iga{cQ zkO5R305?7X=6dqB^<|tQB}vrdgcT#m{_VovJTPlJP=J`UtBO%Yh+EPcflf~BqW#v# z>Cs@eF4JTCkzj;CH^;$%5VQwOqSlSw%j??(y_i@z^VTdp^i!s1CSJFimb~tAtQte{h#rde`J{d`{}nJ^Ti!XTa-&;>49AE@;cGItDZ0z3BYxx><{q?-Er2vJFMeK<3$Ja#2H*Eqdd zg<`O=&j%D*{)b~mJNW0kd8b4{qBbdN7UdlTGl6v`eZ`hFY4LVebHj>J=6xWOtlm%7 z{G%fh9s(G7<<;c{l%r@neVc+n2^k*MIJ3E7%bghCt(XzeQ*Koz3u6V32^bNyP?L_> zv8?BFfOB>cz83EydSyC;0ln6gc`zkSLk%XPzKfJSTm?CA`uzzxn*a8*oBux^_xzuG z2vP?o51tQIKjB}utxg15qeLuLot+2`!4ga^6{SefqBwSHjUxnp7Tp~J?wd$XSI_VQ zYjMIR8B`lFY%w18P1ulOZtWtL=*ewU9&862ocjX!nN>~&1j<4=6So_pPI=-sM|o*- z{*!<`QvX#=1!sw+>BhxYOBcxAXw8>J#P&9LcpNEVUo^k1{%*ozVz{}S(>zCiVmE3` zB#ud=yh$phNy{anEzL5DL6n8xdV40~o0CYih5Ka&jj=d$Ro5tZRFi4HC}wTeOuF16 z&Gt6>*pqwFItMrtYv~c(s zl;m4D=}+d%ix(#Sek8&Y*=e-vtft1XY*&uFWf>WzSs33c<#;!}TXgtKqe!OoHIa02 z$Z2Uyv9IZa)0LqK=umZmnmz%E=E^Po2@B@*RbjfEoq;K@c-@L|R+#jIh)BXC!5Ry7 zDn&Xx@q1EjKEJ+G5n((y^IV1VWrUBb{-R_~a!p^E-~IBYg8yEZPphS?b1f!J(=(1t z7vJ$!w8*tdI?wY1D_87z0eJZP^JV4i?Dbzs&TS1|F?Q{6qMtk^j}|bzPz3rWqd?WQ zB}=#K3;b%>-ge~=>!E5z@pKsTH$5^lH%~PTOeWYvtxE^SvPkjwXbFBYV~K9v3r!N1 zpd_+|r-}RYyYZ|NS?OgC$4@y7&9tm96{%r8+C$shLn)2Tw)&$5Twg2MM<|?r=4+7_ zZ^>P<;LKRR8!NrHZi`rmb~6y!srT$(H=OW%1@@09*pnF%ApTTNzt~r6CnVdpDr7o7 z;$>W}Vw1v;_$4T91LB8)n#Pg@c3_jv5dE(U(jv~HUGtWP20>jOz!Ig zR^^+7lbwQYx9B~}i|U7H*fIWsr_FAMwXK7Qx>3T3x7v{$yPCKvX`JSh6SI>|o{&%} zZ{g8&@>wf2R9e>pJcF)90hc@IB~GEEmQ$yXaVw6=fKHECiDr+h} zYTp6Eu+9t~36C=sx%xQe@z}!XJCloD0^*+@EtQ@K!I3@uq9V}ut6j}FEyJ!`*(~?A zR-e>&oA|Kt`~6pi_CITwUTe=@a&xKE3s%)PLY3H9;^|;EjI)tr-wy2TqBb$8@lbwe zuUNe?w~8NB1*QdpdzT1{Q!32EBs{CVH7uc+0k5Tt6fY=FdfBh0Gzw|nFX;VJtKu9- zj0l=Bqm@=1=hLkC(VgvmK`w|y;*I<^CWQJNn}9`GALg!sja~v}c5!|Y6L*2}FMNAm zl(~Wuzvk`&Znt?jcP=w1Vm4)VI;3*%&8+<}$zjSSO1Y*BYk%&Y6UF78x*?WaH?9KZ zsw@s_(NA-|kRP+gc@6(l@%jfFW{UnssP|x8JEgzTEiXn1M$9F*YI^-7wdhM%%2Y6x zcPEodse9Y48~R%?`_XfE2pe{l5wZHg1BO_h>}^}}%=8d#k!(E2%#-ZR8g0vA)6UO= zxZ_;j>^R2LS8RS+*k;~GSvM(wa6)mr-G%k7$=uuPt4z!5MYiz|%3~dmye|@2lG}5h zl6877e9GZ#n&nJYanFZ9wM|E`*trWHFV;OCV8UfQta$j%OW=f`cTIoeeJ#Jt?z*i*xmB=aFlF$aDJ4 z+%P&i&K`f_U7pUJdi&xoDG903&==jxQ*?%Aj1uv|-u+*|O9LLp7}tZr;+X@)03wu{ zS<+*YvcIa5-Maey9RA~r=u0(BGPF(SF35^|Is4>#cXSPx{}A61mw4d<^R15{h9(}R zDSEusiW!@%E~ona8?Ol={qB2E?3dRp)}N1E1#fF0qSh|TbKP8`9zlz%0oHjK|Nrfn z{ud1Bkw(j3T-C}?m+fon_dSA!KC+d8WSl>3l-L%&m1-aB9PZSz9l+RqIK)K2;;v2% z>B^-JFKq3NmtHePeF#*&0O!Gcw2FnphX!b-Co^?l#IafxRuD+n@1U&P@5)?k#NJig1?N1>6WMv9>X5XqtaFLBk$cY#uY8~p*u&kimnlS@lU|x! ziUvJ{zEOz$&c+N8K?jAHOrya>G%Wr?sWS5eckzrh9}!781||S zo%NPHiqkS{L*{A{Y+(_R{U2I8yo%C?Ulr{2ubOyHa9nSHh;M5wTn&niIkJ0UUfL(# z2v^Oz)WnO}5T%3O(@AOKt;K3aOFR!J*Ti@}PwlS62zuVKH?C(H)uvrJC^m=2HKo+5 z_b+4AMi6I`o4Q{01eL)&oiMuk=um#+iuJj6nY~RR{65NY7T(yPYcwcZeyYIy`v7YK zzq0*dTZJgB(9Fxy`;bA>*EFHAr0iGHi|x;kTa` zeG$aNRX}O`+_t?KsQ`xl3)EW8F>2})Nf)lS#grQEGPLcqi7vf}c@G)^L?b^l0vJI$ z@0$G}P6OQz=$VRUCBJ6Y*Xp*`7-c?R*&oAU&m2E)W1R^*zg%}ynDUGN&5HS2m4~{> zP=Tm>7qMonx0A)aij2*CT`I4Af=_@!RsuoE$$noKCKG#S=c{^RG@b6Xi{L?MY(;}m z-1z-!>Z|+whPDyk+`G8xBKYE?iz<8jubcPxP0%UzBUa+`JjOkgT#%vYSaNDox@`V(Kc0&2Nf`498!}0l}-rg}60) z8dBBirXHV%_SF59B-^-{BDHrI2uItbt^QCBq`ga^_MAqX*#)Miv-`EmdQObY9bRqe zY*vyaSQ*Q8oxWQ!LoY^m-}gpq;{@y{1kJiQ+J0qs9Qt0wk?$Sgv&O$LM0K+PnO<-e z%nlH-uw%n6%vi~{@@h<-`sXu!^ITu6K$!*u;q(90CxhAWR$X-r$IcU+<}{q-=*2E2 z-JKIqFO_E7K$0eCR1hh19VJP#T3yXsDU`>9MC`S(@9nX+gJwNnq-rfsLD?9)SJj#G zTTh8(5IIX7VfR;j7BvOx$wk=BINx(*(EI5rHD9`Ny;+yi#p6FeJg(x*n5_PI;yYy) zXbBQgf1R0mW^mIo@Y%%i#VUCN7rr|Gst z<%)xW-+jUQ4@XAK$&;uMq65V;m}UUnvocTA|Bmow1qX=lx7&B187?e{Yb(!q84&El z@5s^_@g%D>hj^c#&7C@RPMsd*6YlUXuh4}F5kSp0TD-c-zE@bQGMjQ$X{JHEofd5NUX doj71ye0{4{`i21+cykw#;$5{ndACgb{vTZwt8M@Q literal 0 HcmV?d00001 diff --git a/docs/source/Plugin/P092_DLbus.rst b/docs/source/Plugin/P092_DLbus.rst new file mode 100644 index 000000000..232419bd1 --- /dev/null +++ b/docs/source/Plugin/P092_DLbus.rst @@ -0,0 +1,50 @@ +.. include:: ../Plugin/_plugin_substitutions_p09x.repl +.. _P092_DLbus_page: + +DL bus +====== + +|P092_typename| +|P092_status| + +Introduction +------------ + +The DL-Bus is used in control units e.g. sold by `Technische Alternative `_. +The DL-Bus serves as a bus line for various external sensors and modules. +The DL-Bus is a bidirectional data line and only compatible with products of Technische Alternative. + +The data transmission looks as follows: + * In an infinite loop, a logging data frame is created by the control one after the others on the data line. + +Up to 4 sensor measured value queries (master/slave) can be made between the individual logging data frames on the DL bus. + * So that the beginning of a data frame can be detected, a SYNC of 16 high bits is sent before the first data byte. + * The data transmission is carried out as Manchester code (EXOR linked) with a display clock of 50 or 488Hz (depending on control type). + +This is necessary to ensure the supply voltage of the logger and DL sensors from the data signal. +If the receiver is synchronized to the display clock, the correct bit value appears always during the second half period of the data bit (inverted in the first half period). + +Wiring +------ + +The DL-Bus consists of 2 wires: DL and GND (sensor ground). +The power supply for the DL-Bus sensors is supplied via the DL-Bus itself. +Some DL-Bus devices can/must be powered via a 12V source, e.g. that of the CAN bus (this is explicitly noted in the operating manual of that sensor). +The cable routing can be star-shaped or serial (from one device to the next). +Any cable with a cross-section of 0.75 mm2 up to a maximum length of 30 m can be used as a data cable. +Over 30 m, the use of shielded cables is recommended, which increases the permissible length of the cable to 100 m. + +Protocol +-------- + +Transmission of a data byte +.. image:: P092_DL_bus_databyte.png + +Transmission of a data frame +.. image:: P092_DL_bus_dataframe.png + +Data frame on the DL bus +.. image:: P092_DL_bus_dataframelog.png + +Display clock +.. image:: P092_DL_bus_displayclock.png diff --git a/docs/source/Plugin/P092_ESR21.PNG b/docs/source/Plugin/P092_ESR21.PNG new file mode 100644 index 0000000000000000000000000000000000000000..0da32e442ff39b5fe002292e6396bf8ecd559e3c GIT binary patch literal 62014 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 Q!A2Oy&G#FDOUO_E0$ijD=l}o! literal 0 HcmV?d00001 diff --git a/docs/source/Plugin/P092_UVR1611.png b/docs/source/Plugin/P092_UVR1611.png new file mode 100644 index 0000000000000000000000000000000000000000..d9cdabfa06b0764183df49ac77c400d4317a91cd GIT binary patch literal 31557 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%0Dt(766&?P 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 literal 0 HcmV?d00001 diff --git a/docs/source/Plugin/P092_UVR1611.rst b/docs/source/Plugin/P092_UVR1611.rst new file mode 100644 index 000000000..efd456823 --- /dev/null +++ b/docs/source/Plugin/P092_UVR1611.rst @@ -0,0 +1,80 @@ +.. include:: ../Plugin/_plugin_substitutions_p09x.repl +.. _P092_UVR1611_page: + +UVR1611 +======= + +|P092_typename| +|P092_status| + +Introduction +------------ + +The UVR1611 unit is a freely programmable universal control system. +The UVR1611 universal controller can be freely programmed using function modules to match any system configuration for heating room management. + +The DL bus runs at 12 volts. +The data frame consist of 63 bytes (excluding sync and CRC). +The data are transmitted @ 488Hz, therefore the transmission of one data set takes about 1.4 seconds. +.. image:: P092_UVR1611.png + +Wiring +------ + +.. image:: P092_12V_Wiring.png + +Protocol +-------- + +.. image:: P092_UVR1611_Protocol.png + +Setup +----- + +.. note:: A new device task must be created for each value to be read from the DL bus! + +.. image:: P092_Setup.png + +Task settings +~~~~~~~~~~~~~ + +* **Device**: Heating - DL-Bus (Technische Alternative) +* **Name**: Name of the task (example name **ValueN**, where N is a number). +* **Enable**: Should the task be enabled or not + +Sensor +^^^^^^ + +* **1st GPIO**: DL bus input e.g. **GPIO 14 (D5)** +* **DL-Bus Type**: **UVR1611** + +.. note:: The settings for **1st GPIO** and **DL-Bus Type** must be the same for all used DL bus tasks! + +Inputs +^^^^^^ + +.. note:: The description of the **Frame data** and the related **Frame bytes** can be found in the section **Protocol**! + +.. csv-table:: + :header: "Frame data", "Frame bytes", "Value", "Index", "Decimals" + :widths: 16, 8, 8, 5, 5 + + "Sensor1 ... Sensor16", "9 ... 40", "Sensor", "1 - 16", "1" + "Output A1 ... A7", "41", "Digital Output", "1 - 7", "0" + "Output A9 ... A13", "42", "Digital Output", "9 - 13", "0" + "Speed step A1", "43", "Speed step", "1", "0" + "Speed step A2", "44", "Speed step", "2", "0" + "Speed step A6", "45", "Speed step", "3", "0" + "Speed step A7", "46", "Speed step", "4", "0" + "Current power 1", "48 ... 51", "Heat power [kW]", "1", "2" + "Current power 2", "56 ... 59", "Heat power [kW]", "2", "2" + "Heat quantity 1", "52 ... 55", "Heat meter [MWh]", "1", "4" + "Heat quantity 2", "60 ... 64", "Heat meter [MWh]", "2", "4" + +Data acquisition +^^^^^^^^^^^^^^^^ + +* **Send to controller** 1..3: Check which controller (if any) you want to publish to. All or no controller can be used. +* **Interval**: How often should the task publish its value (10..60 seconds is normal). + +.. note:: Intervall not less than **10 seconds**! The reading of the DL bus happens twice per intervall. diff --git a/docs/source/Plugin/P092_UVR1611_Protocol.png b/docs/source/Plugin/P092_UVR1611_Protocol.png new file mode 100644 index 0000000000000000000000000000000000000000..498b08584269f51281b7ecf200b6bfb278e12d8a GIT binary patch literal 24059 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 BG)Mpd literal 0 HcmV?d00001 diff --git a/docs/source/Plugin/P092_UVR31.PNG b/docs/source/Plugin/P092_UVR31.PNG new file mode 100644 index 0000000000000000000000000000000000000000..9365ba1a11e244225fc39e99b62cee05eeebdafd GIT binary patch literal 28083 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 N002ovPDHLkV1g9xHXsy12da(eNjyqOu~PuLHL^ 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 literal 0 HcmV?d00001 diff --git a/docs/source/Plugin/P092_UVR61-3.png b/docs/source/Plugin/P092_UVR61-3.png new file mode 100644 index 0000000000000000000000000000000000000000..830c22b398248040e3d27012f73b66a986a15fb1 GIT binary patch literal 79317 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ⅆ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 literal 0 HcmV?d00001 diff --git a/docs/source/Plugin/P092_UVR61-3.rst b/docs/source/Plugin/P092_UVR61-3.rst new file mode 100644 index 000000000..1995671ac --- /dev/null +++ b/docs/source/Plugin/P092_UVR61-3.rst @@ -0,0 +1,76 @@ +.. include:: ../Plugin/_plugin_substitutions_p09x.repl +.. _P092_UVR61-3_page: + +UVR61-3 +======= + +|P092_typename| +|P092_status| + +Introduction +------------ + +The UVR61-3 unit is a three-circuit universal control system. +The UVR61-3 unit is designed for an energy-saving and cost-effective drying of cellars and other parts of buildings by means of fan control. +The UVR61-3 three-circuit controllers has various thermostat, differential temperature and speed control functions for use in solar and heating systems, too. + +The DL bus runs at 12 volts. +The data frame consist of 34 bytes (excluding sync and CRC). +The data are transmitted @ 488Hz, therefore the transmission of one data set takes about 0.8 seconds. +.. image:: P092_UVR61-3.png + +Wiring +------ + +.. image:: P092_12V_Wiring.png + +Protocol +-------- + +.. image:: P092_UVR61-3_Protocol.png + +Setup +----- + +.. note:: A new device task must be created for each value to be read from the DL bus! + +.. image:: P092_Setup.png + +Task settings +~~~~~~~~~~~~~ + +* **Device**: Heating - DL-Bus (Technische Alternative) +* **Name**: Name of the task (example name **ValueN**, where N is a number). +* **Enable**: Should the task be enabled or not + +Sensor +^^^^^^ + +* **1st GPIO**: DL bus input e.g. **GPIO 14 (D5)** +* **DL-Bus Type**: **UVR61-3 v8.2** + +.. note:: The settings for **1st GPIO** and **DL-Bus Type** must be the same for all used DL bus tasks! + +Inputs +^^^^^^ + +.. note:: The description of the **Frame data** and the related **Frame bytes** can be found in the section **Protocol**! + +.. csv-table:: + :header: "Frame data", "Frame bytes", "Value", "Index", "Decimals" + :widths: 16, 8, 8, 5, 5 + + "Sensor1 ... Sensor6", "9 ... 20", "Sensor", "1 - 6", "1" + "Output A1 ... A3", "21", "Digital Output", "1 - 3", "0" + "Speed step", "22", "Speed step", "", "0" + "Analog output", "23", "Analog output", "", "1" + "Current power", "27,28", "Heat power [kW]", "", "1" + "Heat quantity", "29 ... 34", "Heat meter [MWh]", "", "4" + +Data acquisition +^^^^^^^^^^^^^^^^ + +* **Send to controller** 1..3: Check which controller (if any) you want to publish to. All or no controller can be used. +* **Interval**: How often should the task publish its value (10..60 seconds is normal). + +.. note:: Intervall not less than **10 seconds**! The reading of the DL bus happens twice per intervall. diff --git a/docs/source/Plugin/P092_UVR61-3_Protocol.png b/docs/source/Plugin/P092_UVR61-3_Protocol.png new file mode 100644 index 0000000000000000000000000000000000000000..359648f8ddd092573ac5231bab38e9a6d104e926 GIT binary patch literal 18339 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 I3Kp;bANqjM7XSbN literal 0 HcmV?d00001 diff --git a/docs/source/Plugin/_Plugin.rst b/docs/source/Plugin/_Plugin.rst index d86d6af7e..212b7694e 100644 --- a/docs/source/Plugin/_Plugin.rst +++ b/docs/source/Plugin/_Plugin.rst @@ -114,6 +114,7 @@ There's three different released versions of ESP Easy: ":ref:`P088_page`","|P088_status|","P088" ":ref:`P089_page`","|P089_status|","P089" ":ref:`P090_page`","|P090_status|","P090" + ":ref:`P092_page`","|P092_status|","P092" Internal GPIO handling diff --git a/docs/source/Plugin/_plugin_substitutions_p09x.repl b/docs/source/Plugin/_plugin_substitutions_p09x.repl index f9d9fba8c..cb74d283e 100644 --- a/docs/source/Plugin/_plugin_substitutions_p09x.repl +++ b/docs/source/Plugin/_plugin_substitutions_p09x.repl @@ -8,4 +8,15 @@ .. |P090_shortinfo| replace:: `.` .. |P090_maintainer| replace:: `TD-er` .. |P090_compileinfo| replace:: `.` -.. |P090_usedlibraries| replace:: `.` \ No newline at end of file +.. |P090_usedlibraries| replace:: `.` +.. |P092_name| replace:: :cyan:`DL-Bus (Technische Alternative)` +.. |P092_type| replace:: :cyan:`Heating` +.. |P092_typename| replace:: :cyan:`Heating - DL-Bus (Technische Alternative)` +.. |P092_status| replace:: :yellow:`TESTING` +.. |P092_github| replace:: P092_DLbus.ino +.. _P092_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P092_DLbus.ino +.. |P092_usedby| replace:: `.` +.. |P092_shortinfo| replace:: `.` +.. |P092_maintainer| replace:: `.` +.. |P092_compileinfo| replace:: `.` +.. |P092_usedlibraries| replace:: `.` diff --git a/lib/DLBus/DLBus.cpp b/lib/DLBus/DLBus.cpp new file mode 100644 index 000000000..e041af332 --- /dev/null +++ b/lib/DLBus/DLBus.cpp @@ -0,0 +1,372 @@ +#include "DLBus.h" +// +// DLBus reads and decodes the DL-Bus. +// The DL-Bus is used in heating control units e.g. sold by Technische Alternative (www.ta.co.at). +// Author uwekaditz + +//#define DLbus_DEBUG + +// Flags for pulse width (bit 0 is the content!) +#define DLbus_FlagSingleWidth 0x02 +#define DLbus_FlagDoubleWidth 0x04 +#define DLbus_FlagShorterThanSingleWidth 0x10 +#define DLbus_FlagBetweenDoubleSingleWidth 0x20 +#define DLbus_FlagLongerThanDoubleWidth 0x40 +#define DLbus_FlagLongerThanTwiceDoubleWidth 0x80 +#define DLbus_FlagsWrongTiming (DLbus_FlagLongerThanTwiceDoubleWidth | DLbus_FlagLongerThanDoubleWidth | DLbus_FlagBetweenDoubleSingleWidth | DLbus_FlagShorterThanSingleWidth) + +extern long usecPassedSince(unsigned long timestamp) ICACHE_RAM_ATTR; +extern void addToLog(byte loglevel, const String& string); + +//#define LOG_LEVEL_ERROR 1 +#define LOG_LEVEL_INFO 2 +#ifndef F +// Create a no-op F() macro so the code base still compiles outside of the +// Arduino framework. Thus we can safely use the Arduino 'F()' macro through-out +// the code base. That macro stores constants in Flash (PROGMEM) memory. +// See: https://github.com/crankyoldgit/IRremoteESP8266/issues/667 + #define F(x) x +#endif // F + +// Helper for ISR call +DLBus* DLBus::__instance = nullptr; +volatile static uint8_t* ISR_PtrChangeBitStream = nullptr; // pointer to received bit change stream + +DLBus::DLBus() +{ + if (__instance == nullptr) + { + __instance = this; + ISR_PtrChangeBitStream = DLbus_ChangeBitStream; + addToLog(LOG_LEVEL_INFO, F("Class DLBus created")); + } +} + +DLBus::~DLBus() +{ + if (__instance == this) + { + __instance = nullptr; + ISR_PtrChangeBitStream = nullptr; + addToLog(LOG_LEVEL_INFO, F("Class DLBus destroyed")); + } +} + +void DLBus::AddToInfoLog(const String& string) +{ + if ((IsLogLevelInfo) && (LogLevelInfo != 0xff)) + addToLog(LogLevelInfo, string); +} + +void DLBus::AddToErrorLog(const String& string) +{ + if (LogLevelError != 0xff) + addToLog(LogLevelError, string); +} + +void DLBus::attachDLBusInterrupt(void) +{ + ISR_Receiving = false; + attachInterrupt(digitalPinToInterrupt(ISR_DLB_Pin), ISR, CHANGE); +} + +void DLBus::StartReceiving(void) +{ + noInterrupts (); // make sure we don't get interrupted before we are ready + ISR_PulseCount = 0; + ISR_Receiving = (ISR_PtrChangeBitStream != nullptr); + ISR_AllBitsReceived = false; + interrupts (); // interrupts allowed now, next instruction WILL be executed +} + +void ICACHE_RAM_ATTR DLBus::ISR(void) +{ + if (__instance) + { + __instance->ISR_PinChanged(); + } +} + +void ICACHE_RAM_ATTR DLBus::ISR_PinChanged(void) +{ + long TimeDiff = usecPassedSince(ISR_TimeLastBitChange); // time difference to previous pulse in µs + ISR_TimeLastBitChange = micros(); // save last pin change time + if (ISR_Receiving) { + uint8_t val = digitalRead(ISR_DLB_Pin); // read state + // check pulse width + if (TimeDiff >= 2*ISR_MinDoublePulseWidth) val |= DLbus_FlagLongerThanTwiceDoubleWidth; // longer then 2x double pulse width + else if (TimeDiff > ISR_MaxDoublePulseWidth) val |= DLbus_FlagLongerThanDoubleWidth; // longer then double pulse width + else if (TimeDiff >= ISR_MinDoublePulseWidth) val |= DLbus_FlagDoubleWidth; // double pulse width + else if (TimeDiff > ISR_MaxPulseWidth) val |= DLbus_FlagBetweenDoubleSingleWidth; // between double and single pulse width + else if (TimeDiff < ISR_MinPulseWidth) val |= DLbus_FlagShorterThanSingleWidth; // shorter then single pulse width + else val |= DLbus_FlagSingleWidth; // single pulse width + if (ISR_PulseCount < 2) { + // check if sync is received + if (val & DLbus_FlagLongerThanTwiceDoubleWidth) { + // sync received + *ISR_PtrChangeBitStream = !(val & 0x01); + *(ISR_PtrChangeBitStream+1) = val; + ISR_PulseCount = 2; + } + else + ISR_PulseCount = 1; // flag that interrupt is receiving + } + else { + *(ISR_PtrChangeBitStream+ISR_PulseCount) = val; // set bit + ISR_PulseCount++; + ISR_Receiving = (ISR_PulseCount < ISR_PulseNumber); // stop P092_receiving when data frame is complete + ISR_AllBitsReceived = !ISR_Receiving; + } + } +} + +boolean DLBus::CheckTimings(void) { + uint8_t rawval, val; + uint8_t WrongTimeCnt = 0; + int i; +#ifdef DLbus_DEBUG + uint16_t WrongTimingArray[5][6]; +#endif // DLbus_DEBUG + +// AddToInfoLog(F("Receive stopped.")); + + ISR_PulseCount = 0; + for (i = 0; i <= ISR_PulseNumber; i++) { + // store DLbus_ChangeBitStream into ByteStream + rawval = *(ISR_PtrChangeBitStream+i); + if (rawval & DLbus_FlagsWrongTiming) { + // wrong DLbus_time_diff + if (ISR_PulseCount > 0) { +#ifdef DLbus_DEBUG + WrongTimingArray[WrongTimeCnt][0] = i; + WrongTimingArray[WrongTimeCnt][1] = ISR_PulseCount; + WrongTimingArray[WrongTimeCnt][2] = BitNumber; + WrongTimingArray[WrongTimeCnt][3] = rawval; +#endif // DLbus_DEBUG + if ((rawval == DLbus_FlagLongerThanTwiceDoubleWidth) && (*(ISR_PtrChangeBitStream+i-1) == (DLbus_FlagDoubleWidth | 0x01))) { + // Add two additional short pulses (low and high), previous bit is High and contains DLbus_FlagDoubleWidth + ProcessBit(0); + ProcessBit(1); +#ifdef DLbus_DEBUG + WrongTimingArray[WrongTimeCnt][4] = DLbus_FlagSingleWidth; + WrongTimingArray[WrongTimeCnt][5] = DLbus_FlagSingleWidth+1; +#endif // DLbus_DEBUG + } +#ifdef DLbus_DEBUG + else { + WrongTimingArray[WrongTimeCnt][4] = 0xff; + WrongTimingArray[WrongTimeCnt][5] = 0xff; + } +#endif // DLbus_DEBUG + WrongTimeCnt++; + if (WrongTimeCnt >=5) + return false; + } + } + else { + val = rawval & 0x01; + if ((rawval & DLbus_FlagDoubleWidth) == DLbus_FlagDoubleWidth) { + // double pulse width + ProcessBit(!val); + ProcessBit(val); + } + else { + // single pulse width + ProcessBit(val); + } + } + } +// AddToInfoLog(F("DLbus_ChangeBitStream copied.")); + +#ifdef DLbus_DEBUG + if (WrongTimeCnt > 0) { + if (IsLogLevelInfo) { + String log = F("Wrong Timings: "); + AddToInfoLog(log); + for (i = 0; i < WrongTimeCnt; i++) { + log = i + 1; + log += F(": PulseCount:"); + log += WrongTimingArray[i][1]; + log += F(": BitCount:"); + log += WrongTimingArray[i][2]; + log += F(" Value:0x"); + log += String(WrongTimingArray[i][3], HEX); + log += F(" ValueBefore:0x"); + log += String(*(ISR_PtrChangeBitStream+WrongTimingArray[i][0] - 1), HEX); + log += F(" ValueAfter:0x"); + log += String(*(ISR_PtrChangeBitStream+WrongTimingArray[i][0] + 1), HEX); + if (WrongTimingArray[i][4]!=0xff) { + log += F(" Added:0x"); + log += String(WrongTimingArray[i][4], HEX); + } + if (WrongTimingArray[i][5]!=0xff) { + log += F(" Added:0x"); + log += String(WrongTimingArray[i][5], HEX); + } + AddToInfoLog(log); + } + } + } +#endif // DLbus_DEBUG + return true; +} + +void DLBus::ProcessBit(uint8_t b) { + // ignore first pulse + ISR_PulseCount++; + if (ISR_PulseCount % 2) + return; + BitNumber = (ISR_PulseCount / 2); + if (b) + ByteStream[BitNumber / 8] |= (1 << (BitNumber % 8)); // set bit + else + ByteStream[BitNumber / 8] &= ~(1 << (BitNumber % 8)); // clear bit +} + +boolean DLBus::Processing(void) { +boolean inverted = false; +int16_t StartBit; // first bit of data frame (-1 not recognized) +String log; + AddToInfoLog(F("Processing...")); + StartBit = Analyze(); // find the data frame's beginning + // inverted signal? + while (StartBit == -1) { + if (inverted) { + AddToErrorLog(F("Error: Already inverted!")); + return false; + } + Invert(); // invert again + inverted = true; + StartBit = Analyze(); + if (StartBit == -1) { + AddToErrorLog(F("Error: No data frame available!")); + return false; + } + uint16_t RequiredBitStreamLength = (ISR_PulseNumber - DLBus_ReserveBytes)/DLBus_BitChangeFactor; + if ((BitNumber-StartBit) < RequiredBitStreamLength) { + // no complete data frame available (difference between start_bit and received bits is < RequiredBitStreamLength) + AddToErrorLog(F("Start bit too close to end of stream!")); + if (IsLogLevelInfo) { + log = F("# Required bits: "); + log += RequiredBitStreamLength; + log += F(" StartBit: "); + log += StartBit; + log += F(" / EndBit: "); + log += BitNumber; + AddToInfoLog(log); + } + return false; + } + } + + if (IsLogLevelInfo) { + log = F("StartBit: "); + log += StartBit; + log += F(" / EndBit: "); + log += BitNumber; + AddToInfoLog(log); + } + Trim(StartBit); // remove start and stop bits + + if (CheckDevice()) // check connected device + return true; + else { + AddToErrorLog(F("Error: Device not found!")); + return false; + } +} + +int DLBus::Analyze(void) { + uint8_t sync=0; + // find SYNC (16 * sequential 1) + for (int i = 0; i < BitNumber; i++) { + if (ReadBit(i)) + sync++; + else + sync = 0; + if (sync == DLBus_SyncBits) { + // finde erste 0 // find first 0 + while (ReadBit(i) == 1) + i++; + return i; // beginning of data frame + } + } + // no data frame available. check signal? + return -1; +} + +void DLBus::Invert(void) { + AddToInfoLog(F("Invert bit stream...")); + for (int i = 0; i < BitNumber; i++) + WriteBit(i, ReadBit(i) ? 0 : 1); // invert every bit +} + +uint8_t DLBus::ReadBit(int pos) { + int row = pos / 8; // detect position in bitmap + int col = pos % 8; + return (((ByteStream[row]) >> (col)) & 0x01); // return bit +} + +void DLBus::WriteBit(int pos, uint8_t set) { + int row = pos / 8; // detect position in bitmap + int col = pos % 8; + if (set) + ByteStream[row] |= 1 << col; // set bit + else + ByteStream[row] &= ~(1 << col); // clear bit +} + +void DLBus::Trim(int start_bit) { + for (int i = start_bit, bit = 0; i < BitNumber; i++) { + int offset = i - start_bit; + // ignore start and stop bits: + // start bits: 0 10 20 30, also x % 10 == 0 + // stop bits: 9 19 29 39, also (x+1) % 10 == 0 + if (offset % 10 && (offset + 1) % 10) { + WriteBit(bit, ReadBit(i)); + bit++; + } + } +} + +boolean DLBus::CheckDevice(void) { + // Data frame of a device? + if (ByteStream[0] == DeviceBytes[0]) { + if ((DeviceBytes[1] == 0) || (ByteStream[1] == DeviceBytes[1])) + return true; + } + if (IsLogLevelInfo) { + String log = F("# Received DeviceByte(s): 0x"); + log += String(ByteStream[0], HEX); + if (DeviceBytes[1] != 0) + log += String(ByteStream[1], HEX); + log += F(" Requested: 0x"); + log += String(DeviceBytes[0], HEX); + if (DeviceBytes[1] != 0) + log += String(DeviceBytes[1], HEX); + AddToInfoLog(log); + } + return false; +} + +boolean DLBus::CheckCRC(uint8_t IdxCRC) { + // CRC check sum + if (IdxCRC == 0) + return true; + AddToInfoLog(F("Check CRC...")); + uint16_t dataSum = 0; + for (int i = 0; i < IdxCRC; i++) + dataSum = dataSum + ByteStream[i]; + dataSum = dataSum & 0xff; + if (dataSum == ByteStream[IdxCRC]) + return true; + AddToErrorLog(F("Check CRC failed!")); + if (IsLogLevelInfo) { + String log = F("# Calculated CRC: 0x"); + log += String(dataSum, HEX); + log += F(" Received: 0x"); + log += String(ByteStream[IdxCRC], HEX); + AddToInfoLog(log); + } + return false; +} diff --git a/lib/DLBus/DLBus.h b/lib/DLBus/DLBus.h new file mode 100644 index 000000000..5e8ef99af --- /dev/null +++ b/lib/DLBus/DLBus.h @@ -0,0 +1,65 @@ +#ifndef DLBus_H +#define DLBus_H + +#include + +/*********************************************************************************************\ + DLBus subs to get values from the receiving bitstream +\*********************************************************************************************/ +// one data frame has data bytes + SYNC, e.g. 64 * (8+1+1) + 16 = 656 +// 656 * 2 = 1312 (twice as much as a data frame is saved +// so there's one complete data frame + +#define DLbus_MaxDataBytes 64 +#define DLbus_AdditionalRecBytes 2 +#define DLbus_StopBits 1 +#define DLbus_StartBits 1 +#define DLBus_SyncBits 16 +#define DLBus_ReserveBytes 20 +#define DLBus_BitChangeFactor 2 +#define DLbus_MaxDataBits (((DLbus_MaxDataBytes + DLbus_AdditionalRecBytes) * (DLbus_StartBits + 8 + DLbus_StopBits) + DLBus_SyncBits) * DLBus_BitChangeFactor) + DLBus_ReserveBytes + // MaxDataBits is double of the maximum bit length because each bit change is stored + // (((64+2) * (8+1+1) + 16) * 2) + 50 = 1402 bytes + +class DLBus +{ + public: + DLBus(); // constructor of DLBus object + ~DLBus(); // destructor of DLBus object + + volatile uint8_t ISR_DLB_Pin = 0xFF; + volatile boolean ISR_Receiving = false; // receiving flag + volatile boolean ISR_AllBitsReceived = false; + volatile uint16_t ISR_PulseCount; // number of received pulses + volatile uint16_t ISR_PulseNumber; // max naumber of the received pulses + volatile uint16_t ISR_MinPulseWidth, ISR_MaxPulseWidth, ISR_MinDoublePulseWidth, ISR_MaxDoublePulseWidth; + // identification bytes for each DL bus device + uint8_t DeviceBytes[2]; + uint8_t ByteStream[DLbus_MaxDataBits / 8 + 1]; // every bit gets sorted into a bitmap + boolean IsLogLevelInfo = false; + uint8_t LogLevelInfo = 0xff; + uint8_t LogLevelError = 0xFF; + void attachDLBusInterrupt(void); + void StartReceiving(void); + boolean CheckTimings(void); + boolean Processing(void); + boolean CheckCRC(uint8_t IdxCRC); + private: + volatile uint32_t ISR_TimeLastBitChange = 0; // remember time of last transition + uint8_t DLbus_ChangeBitStream[DLbus_MaxDataBits]; // received bit change stream (each bit change is extended to uint8_t, containing the timing flags) + uint16_t BitNumber; // bit number of the received DLbus_ChangeBitStream + static void ISR(void); + void ISR_PinChanged(void); + void ProcessBit(uint8_t b); + int Analyze(void); + void Invert(void); + uint8_t ReadBit(int pos); + void WriteBit(int pos, uint8_t set); + void Trim(int start_bit); + boolean CheckDevice(void); + static DLBus* __instance; + void AddToInfoLog(const String& string); + void AddToErrorLog(const String& string); +}; + +#endif diff --git a/lib/DLBus/keywords.txt b/lib/DLBus/keywords.txt new file mode 100644 index 000000000..d0c8c4bb0 --- /dev/null +++ b/lib/DLBus/keywords.txt @@ -0,0 +1,6 @@ +DLBus KEYWORD1 +attachDLBusInterrupt KEYWORD2 +StartReceiving KEYWORD2 +CheckTimings KEYWORD2 +Processing KEYWORD2 +CheckCRC KEYWORD2 diff --git a/src/ESPEasy.ino b/src/ESPEasy.ino index 27fafd955..e4efc7acd 100644 --- a/src/ESPEasy.ino +++ b/src/ESPEasy.ino @@ -81,7 +81,7 @@ // BMP280 I2C Barometric Pressure sensor // SHT1X temperature/humidity sensors // Ser2Net server - +// DL-Bus (Technische Alternative) // Define globals before plugin sets to allow a personal override of the selected plugins #include "ESPEasy-Globals.h" diff --git a/src/_P092_DLbus.ino b/src/_P092_DLbus.ino new file mode 100644 index 000000000..71ee90b62 --- /dev/null +++ b/src/_P092_DLbus.ino @@ -0,0 +1,947 @@ +#ifdef USES_P092 + +//####################################################################################################### +//########################### Plugin 092: DL-bus from Technische Alternative ############################ +//####################################################################################################### + +/**************************************************\ + This plug-in reads and decodes the DL-Bus. + The DL-Bus is used in heating control units e.g. sold by Technische Alternative (www.ta.co.at). + + The idea for this plug-in is based on Martin Kropf's project UVR31_RF24 (https://github.com/martinkropf/UVR31_RF24) + + The plug-in is tested and workis fine for the ESR21 device. + The plug-in should be also able to decode the information from the + UVR31, UVR1611 and UVR 61-3 devices. + + The selected input needs a voltage divider as follows because the DL-Bus runs on 12 volts for + following devices: UVR31, UVR42, UVR64, HZR65, EEG30 and TFM66 + DLbus@12V - 8k6 - input@3.3V - 3k3 - ground + + For following devices just a pull up resistor is needed if the device is used stand alone: + UVR1611, UVR61-3 and ESR21 + + @uwekaditz 2020-03-01 Memory usage optimized + CHG: Moved arrays into the class DLBus + CHG: Moved arrays to PLUGIN_092_DEBUG + + @uwekaditz 2019-12-15 Memory usage optimized + CHG: Moved the array for the received bit changes to stativ uint_8t, the ISR call uses only a volatile pointer to it + CHG: some more defines and name changes for better explanation + + @uwekaditz 2019-12-14 Timing optimized + CHG: Removed the while (P092_receiving) loop. + CHG: Starting of the receiving and processing of the received bit stream are now done in the PLUGIN_ONCE_A_SECOND call + PLUGIN_READ call just uses the already processed data + + @uwekaditz 2019-12-08 Inital commit to mega + +\**************************************************/ + +#include + +#define PLUGIN_092 +#define PLUGIN_ID_092 92 +//#define PLUGIN_092_DEBUG // additional debug messages in the log +#define PLUGIN_NAME_092 "Heating - DL-Bus (Technische Alternative)" +#define PLUGIN_VALUENAME1_092 "Value" + +#define P092_DLbus_OptionCount 8 +#define P092_DLbus_ValueCount 1 +#define P092_DLbus_DeviceCount 5 + +uint8_t P092_Last_DLB_Pin; +boolean P092_init = false; +boolean P092_ReceivedOK = false; +uint32_t P092_LastReceived = 0; +struct _P092_DataStruct +{ + uint8_t DataBytes; + uint8_t DeviceByte0; + uint8_t DeviceByte1; + uint8_t DeviceBytes; + uint8_t DontCareBytes; + uint8_t TimeStampBytes; + uint8_t MaxSensors; + uint8_t MaxExtSensors; + uint8_t OutputBytes; + uint8_t SpeedBytes; + uint8_t AnalogBytes; + uint8_t VolumeBytes; + uint8_t MaxHeatMeters; + uint8_t CurrentHmBytes; + uint8_t MWhBytes; + + uint16_t DLbus_MinPulseWidth; + uint16_t DLbus_MaxPulseWidth; + uint16_t DLbus_MinDoublePulseWidth; + uint16_t DLbus_MaxDoublePulseWidth; + uint8_t IdxSensor; + uint8_t IdxExtSensor; + uint8_t IdxOutput; + uint8_t IdxDrehzahl; + uint8_t IdxAnalog; + uint8_t IdxHmRegister; + uint8_t IdxVolume; + uint8_t IdxHeatMeter1; + uint8_t IdxkWh1; + uint8_t IdxMWh1; + uint8_t IdxHeatMeter2; + uint8_t IdxkWh2; + uint8_t IdxMWh2; + uint8_t IdxHeatMeter3; + uint8_t IdxkWh3; + uint8_t IdxMWh3; + uint8_t IdxCRC; +} P092_DataSettings; + +typedef struct { + uint8_t Idx; + uint8_t mode; + float value; +} sP092_ReadData; + +DLBus *DLbus_Data = nullptr; + +// decoding the manchester code +// pulse width @ 488hz: 1000ms/488 = 2,048ms = 2048µs +// 2048µs / 2 = 1024µs (2 pulses for one bit) +// pulse width @ 50hz: 1000ms/50 = 20ms = 20000µs +// 20000µs / 2 = 10000µs (2 pulses for one bit) +#define P092_pulse_width_488 1024 // µs +#define P092_pulse_width_50 10000 // µs + +// % tolerance for variances at the pulse width +#define P092_percentage_variance 10 +// 1001 or 0110 are two sequential pulses without transition +#define P092_double_pulse_width_488 (P092_pulse_width_488 * 2) +#define P092_double_pulse_width_50 (P092_pulse_width_50 * 2) + +// calculating the tolerance limits for variances +#define P092_min_width_488 (P092_pulse_width_488 - (P092_pulse_width_488 * P092_percentage_variance / 100)) +#define P092_max_width_488 (P092_pulse_width_488 + (P092_pulse_width_488 * P092_percentage_variance / 100)) +#define P092_double_min_width_488 (P092_double_pulse_width_488 - (P092_pulse_width_488 * P092_percentage_variance / 100)) +#define P092_double_max_width_488 (P092_double_pulse_width_488 + (P092_pulse_width_488 * P092_percentage_variance / 100)) +#define P092_min_width_50 (P092_pulse_width_50 - (P092_pulse_width_50 * P092_percentage_variance / 100)) +#define P092_max_width_50 (P092_pulse_width_50 + (P092_pulse_width_50 * P092_percentage_variance / 100)) +#define P092_double_min_width_50 (P092_double_pulse_width_50 - (P092_pulse_width_50 * P092_percentage_variance / 100)) +#define P092_double_max_width_50 (P092_double_pulse_width_50 + (P092_pulse_width_50 * P092_percentage_variance / 100)) + +boolean P092_GetData(int OptionIdx, int CurIdx, sP092_ReadData* ReadData); + +boolean Plugin_092(uint8_t function, struct EventStruct *event, String& string) +{ + boolean success = false; + int OptionIdx, CurIdx; + sP092_ReadData P092_ReadData; + + uint8_t P092_MaxIdx[P092_DLbus_OptionCount]; + int P092_ValueType, P092_ValueIdx; + int P092_OptionValueDecimals[P092_DLbus_OptionCount] = { + // Dezimalstellen der Variablen + 0, //F("None") + 1, //[0,1°C] F("Sensor") + 1, //[0,1°C] F("Ext. sensor") + 0, // F("Digital output") + 0, // F("Speed step") + 1, //[0,1V] F("Analog output") + 1, //[0,1kW] F("Heat power (kW)") Attention: UVR1611 in 0,01kW + 4 //[0,0001MWh] F("Heat meter (MWh)") + }; + + + const String plugin_092_ValStr = F("p092_Value"); + const String plugin_092_IdxStr = F("p092_Idx"); + + + switch (function) + { + case PLUGIN_DEVICE_ADD: + { + Device[++deviceCount].Number = PLUGIN_ID_092; + Device[deviceCount].Type = DEVICE_TYPE_SINGLE; + Device[deviceCount].VType = SENSOR_TYPE_SINGLE; + Device[deviceCount].Ports = 0; + Device[deviceCount].PullUpOption = false; + Device[deviceCount].InverseLogicOption = false; + Device[deviceCount].FormulaOption = false; + Device[deviceCount].ValueCount = P092_DLbus_ValueCount; + Device[deviceCount].SendDataOption = true; + Device[deviceCount].TimerOption = true; + Device[deviceCount].GlobalSyncOption = true; + Device[deviceCount].DecimalsOnly = true; + break; + } + + case PLUGIN_GET_DEVICENAME: + { + string = F(PLUGIN_NAME_092); + break; + } + + case PLUGIN_GET_DEVICEVALUENAMES: + { + strcpy_P(ExtraTaskSettings.TaskDeviceValueNames[0], PSTR(PLUGIN_VALUENAME1_092)); + break; + } + + case PLUGIN_WEBFORM_LOAD: + { + P092_Last_DLB_Pin = CONFIG_PIN1; + + const String plugin_092_DefValueName = F(PLUGIN_VALUENAME1_092); + const int P092_OptionTypes[P092_DLbus_OptionCount] = { + // Index der Variablen + 0, //F("None") + 1, //F("Sensor") + 2, //F("Ext. sensor") + 3, //F("Digital output") + 4, //F("Speed step") + 5, //F("Analog output") + 6, //F("Heat power (kW)") + 7 //F("Heat meter (MWh)") + }; + const String Options[P092_DLbus_OptionCount] = { + F("None"), + F("Sensor"), + F("Ext. sensor"), + F("Digital output"), + F("Speed step"), + F("Analog output"), + F("Heat power (kW)"), + F("Heat meter (MWh)") + }; + const String Devices[P092_DLbus_DeviceCount] = { F("ESR21"), F("UVR31"), F("UVR1611"), F("UVR 61-3 (bis V8.2)"), F("UVR 61-3 (ab V8.3)") }; + const int DevTypes[P092_DLbus_DeviceCount] = { 21, 31, 1611, 6132, 6133 }; + + addFormSelector(F("DL-Bus Type"), F("p092_dlbtype"), P092_DLbus_DeviceCount, Devices, DevTypes, NULL, PCONFIG(0), true ); + + // Calculation of the max indices for each sensor type + // default indizes for UVR31 + P092_MaxIdx[0] = 0; // None + P092_MaxIdx[1] = 3; // Sensor + P092_MaxIdx[2] = 0; // Ext. sensor + P092_MaxIdx[3] = 1; // Digital output + P092_MaxIdx[4] = 0; // Speed step + P092_MaxIdx[5] = 0; // Analog output + P092_MaxIdx[6] = 0; // Heat power (kW) + P092_MaxIdx[7] = 0; // Heat meter (MWh) + switch (PCONFIG(0)) { + case 21: //ESR21 + P092_MaxIdx[2] = 6; // Ext. sensor + P092_MaxIdx[4] = 1; // Speed step + P092_MaxIdx[5] = 1; // Analog output + P092_MaxIdx[6] = 1; // Heat power (kW) + P092_MaxIdx[7] = 1; // Heat meter (MWh) + break; + case 1611: //UVR1611 + P092_MaxIdx[1] = 16; // Sensor + P092_MaxIdx[3] = 13; // Digital output + P092_MaxIdx[4] = 4; // Speed step + P092_MaxIdx[6] = 2; // Heat power (kW) + P092_MaxIdx[7] = 2; // Heat meter (MWh) + break; + case 6132: //UVR 61-3 (bis V8.2) + P092_MaxIdx[1] = 6; // Sensor + P092_MaxIdx[3] = 8; // Digital output + P092_MaxIdx[4] = 1; // Speed step + P092_MaxIdx[5] = 1; // Analog output + P092_MaxIdx[6] = 1; // Heat power (kW) + P092_MaxIdx[7] = 1; // Heat meter (MWh) + break; + case 6133: //UVR 61-3 (ab V8.3) + P092_MaxIdx[1] = 6; // Sensor + P092_MaxIdx[2] = 9; // Ext. sensor + P092_MaxIdx[3] = 3; // Digital output + P092_MaxIdx[4] = 1; // Speed step + P092_MaxIdx[5] = 2; // Analog output + P092_MaxIdx[6] = 3; // Heat power (kW) + P092_MaxIdx[7] = 3; // Heat meter (MWh) + break; + } + + addFormSubHeader(F("Inputs")); + + for (int i = 0; i < P092_DLbus_ValueCount; i++) { + P092_ValueType = PCONFIG(i + 1) >> 8; + P092_ValueIdx = PCONFIG(i + 1) & 0x00FF; + + addFormSelector(plugin_092_DefValueName, plugin_092_ValStr, P092_DLbus_OptionCount, Options, P092_OptionTypes, NULL, P092_ValueType, true); + if (P092_MaxIdx[P092_ValueType] > 1) { + CurIdx = P092_ValueIdx; + if (CurIdx < 1) { + CurIdx = 1; + } + if (CurIdx > P092_MaxIdx[P092_ValueType]) { + CurIdx = P092_MaxIdx[P092_ValueType]; + } + addHtml(F(" Index: ")); + addNumericBox(plugin_092_IdxStr, CurIdx, 1, P092_MaxIdx[P092_ValueType]); + } + } + + UserVar[event->BaseVarIndex] = NAN; + + success = true; + break; + } + + case PLUGIN_WEBFORM_SAVE: + { + PCONFIG(0) = getFormItemInt(F("p092_dlbtype")); + if (PCONFIG(0) == 1611) // only UVR1611 + P092_OptionValueDecimals[6] = 2; + + for (int i = 0; i < P092_DLbus_ValueCount; i++) { + OptionIdx = getFormItemInt(plugin_092_ValStr); + CurIdx = getFormItemInt(plugin_092_IdxStr); + if (CurIdx < 1) { + CurIdx = 1; + } + PCONFIG(i + 1) = (OptionIdx << 8) + CurIdx; + ExtraTaskSettings.TaskDeviceValueDecimals[event->BaseVarIndex + i] = P092_OptionValueDecimals[OptionIdx]; + } + + if (DLbus_Data == nullptr) { + addLog(LOG_LEVEL_ERROR, F("## P092_save: Error DL-Bus: Class not initialized!")); + return false; + } + + if (P092_Last_DLB_Pin != CONFIG_PIN1) { + // pin number is changed -> run a new init + P092_init = false; + if (DLbus_Data->ISR_DLB_Pin != 0xFF) { + // interrupt was already attached to P092_DLB_Pin + detachInterrupt(digitalPinToInterrupt(DLbus_Data->ISR_DLB_Pin)); + addLog(LOG_LEVEL_INFO, F("P092_save: detachInterrupt")); + } + } + +#ifdef PLUGIN_092_DEBUG + if (loglevelActiveFor(LOG_LEVEL_INFO)) { + + String log = F("PLUGIN_WEBFORM_SAVE :"); + log += F(" DLB_Pin:"); + log += CONFIG_PIN1; + log += F(" DLbus_MinPulseWidth:"); + log += P092_DataSettings.DLbus_MinPulseWidth; + log += F(" DLbus_MaxPulseWidth:"); + log += P092_DataSettings.DLbus_MaxPulseWidth; + log += F(" DLbus_MinDoublePulseWidth:"); + log += P092_DataSettings.DLbus_MinDoublePulseWidth; + log += F(" DLbus_MaxDoublePulseWidth:"); + log += P092_DataSettings.DLbus_MaxDoublePulseWidth; + log += F(" IdxSensor:"); + log += P092_DataSettings.IdxSensor; + log += F(" IdxExtSensor:"); + log += P092_DataSettings.IdxExtSensor; + log += F(" IdxOutput:"); + log += P092_DataSettings.IdxOutput; + if (P092_DataSettings.SpeedBytes > 0) { + log += F(" IdxDrehzahl:"); + log += P092_DataSettings.IdxDrehzahl; + } + if (P092_DataSettings.AnalogBytes > 0) { + log += F(" IdxAnalog:"); + log += P092_DataSettings.IdxAnalog; + } + if (P092_DataSettings.MaxHeatMeters > 0) { + log += F(" IdxHmRegister:"); + log += P092_DataSettings.IdxHmRegister; + } + if (P092_DataSettings.VolumeBytes > 0) { + log += F(" IdxVolume:"); + log += P092_DataSettings.IdxVolume; + } + if (P092_DataSettings.MaxHeatMeters > 0) { + log += F(" IdxHM1:"); + log += P092_DataSettings.IdxHeatMeter1; + log += F(" IdxkWh1:"); + log += P092_DataSettings.IdxkWh1; + log += F(" IdxMWh1:"); + log += P092_DataSettings.IdxMWh1; + } + if (P092_DataSettings.MaxHeatMeters > 1) { + log += F(" IdxHM2:"); + log += P092_DataSettings.IdxHeatMeter2; + log += F(" IdxkWh2:"); + log += P092_DataSettings.IdxkWh2; + log += F(" IdxMWh2:"); + log += P092_DataSettings.IdxMWh2; + } + if (P092_DataSettings.MaxHeatMeters > 2) { + log += F(" IdxHM3:"); + log += P092_DataSettings.IdxHeatMeter3; + log += F(" IdxkWh3:"); + log += P092_DataSettings.IdxkWh3; + log += F(" IdxMWh3:"); + log += P092_DataSettings.IdxMWh3; + } + log += F(" IdxCRC:"); + log += P092_DataSettings.IdxCRC; + addLog(LOG_LEVEL_INFO, log); + } +#endif // PLUGIN_092_DEBUG + UserVar[event->BaseVarIndex] = NAN; + success = true; + break; + } + + case PLUGIN_INIT: + { + if (P092_init) { + addLog(LOG_LEVEL_ERROR, F("P092_init -> Already done!")); + } + else { + addLog(LOG_LEVEL_INFO, F("P092_init ...")); + if (DLbus_Data == nullptr) { + DLbus_Data = new DLBus; + if (DLbus_Data == nullptr) { + addLog(LOG_LEVEL_ERROR, F("## P092_init: Error DL-Bus: Class not initialized!")); + return false; + } + DLbus_Data->LogLevelInfo = LOG_LEVEL_INFO; + DLbus_Data->LogLevelError = LOG_LEVEL_ERROR; + DLbus_Data->IsLogLevelInfo = loglevelActiveFor(LOG_LEVEL_INFO); + } + P092_init = true; + P092_ReceivedOK = false; + addLog(LOG_LEVEL_INFO, F("P092_init: attachInterrupt")); + DLbus_Data->ISR_DLB_Pin = CONFIG_PIN1; + pinMode(CONFIG_PIN1, INPUT_PULLUP); + // on a CHANGE on the data pin P092_Pin_changed is called + DLbus_Data->attachDLBusInterrupt(); + UserVar[event->BaseVarIndex] = NAN; + } + success = true; + break; + } + + case PLUGIN_ONCE_A_SECOND: + { + if (WiFi.status() != WL_CONNECTED) { + return false; + } + if (P092_init == false) { + return false; + } + if (DLbus_Data == nullptr) + return false; + if (DLbus_Data->ISR_Receiving) { + return false; + } + Plugin_092_SetIndices(PCONFIG(0)); + if (DLbus_Data->ISR_AllBitsReceived) { + DLbus_Data->ISR_AllBitsReceived = false; + success = DLbus_Data->CheckTimings(); + if (success) + success = DLbus_Data->Processing(); + if (success) + success = DLbus_Data->CheckCRC(P092_DataSettings.IdxCRC); + if (success) { + addLog(LOG_LEVEL_INFO, F("Received data OK")); + P092_LastReceived = millis(); + } + P092_ReceivedOK = success; + } + else + success = P092_ReceivedOK; + + if ((P092_ReceivedOK == false) || (timePassedSince(P092_LastReceived)>(static_cast(Settings.TaskDeviceTimer[event->TaskIndex] * 1000/2)))) { + Plugin_092_StartReceiving(); + success = true; + } + break; + } + + case PLUGIN_READ: + { + addLog(LOG_LEVEL_ERROR, F("PLUGIN_092_READ")); + if (WiFi.status() != WL_CONNECTED) { + // too busy for DLbus while wifi connect is running + addLog(LOG_LEVEL_ERROR, F("## P092_read: Error DL-Bus: WiFi not connected!")); + return false; + } + if (P092_init == false) { + addLog(LOG_LEVEL_ERROR, F("## P092_read: Error DL-Bus: Not initialized!")); + return false; + } + if (DLbus_Data == nullptr) { + addLog(LOG_LEVEL_ERROR, F("## P092_read: Error DL-Bus: Class not initialized!")); + return false; + } + if (DLbus_Data->ISR_DLB_Pin != CONFIG_PIN1) { + String log = F("## P092_read: Error DL-Bus: Device Pin setting not correct!"); + log += F(" DLB_Pin:"); + log += DLbus_Data->ISR_DLB_Pin; + log += F(" Setting:"); + log += CONFIG_PIN1; + addLog(LOG_LEVEL_ERROR, log); + return false; + } + success = P092_ReceivedOK; + if (P092_ReceivedOK == false) { + addLog(LOG_LEVEL_INFO, F("P092_read: Still receiving DL-Bus bits!")); + } + else { + for (int i = 0; i < P092_DLbus_ValueCount; i++) { + OptionIdx = PCONFIG(i + 1) >> 8; + CurIdx = PCONFIG(i + 1) & 0x00FF; + if (P092_GetData(OptionIdx, CurIdx, &P092_ReadData)) { + UserVar[event->BaseVarIndex + i] = P092_ReadData.value; + } + else { + addLog(LOG_LEVEL_ERROR, F("## P092_read: Error: No readings!")); + } + } + } + break; + } + } + return success; +} + +void Plugin_092_SetIndices(int DeviceIndex) { + // Set the indices for the DL bus packet +int iDeviceBytes, iDontCareBytes, iTimeStampBytes; + + //default settings for ESR21 + P092_DataSettings.DataBytes = 31; + P092_DataSettings.DLbus_MinPulseWidth = P092_min_width_488; + P092_DataSettings.DLbus_MaxPulseWidth = P092_max_width_488; + P092_DataSettings.DLbus_MinDoublePulseWidth = P092_double_min_width_488; + P092_DataSettings.DLbus_MaxDoublePulseWidth = P092_double_max_width_488; + + P092_DataSettings.DeviceByte0 = 0x70; + P092_DataSettings.DeviceByte1 = 0x8F; + iDeviceBytes = 2; + iDontCareBytes = 0; + iTimeStampBytes = 0; + P092_DataSettings.MaxSensors = 3; + P092_DataSettings.MaxExtSensors = 6; + P092_DataSettings.OutputBytes = 1; + P092_DataSettings.SpeedBytes = 1; + P092_DataSettings.AnalogBytes = 1; + P092_DataSettings.VolumeBytes = 0; + P092_DataSettings.MaxHeatMeters = 1; + P092_DataSettings.CurrentHmBytes = 2; + P092_DataSettings.MWhBytes = 2; + P092_DataSettings.IdxCRC = 30; + + switch (DeviceIndex) { + case 31: //UVR31 + P092_DataSettings.DataBytes = 8; + P092_DataSettings.DLbus_MinPulseWidth = P092_min_width_50; + P092_DataSettings.DLbus_MaxPulseWidth = P092_max_width_50; + P092_DataSettings.DLbus_MinDoublePulseWidth = P092_double_min_width_50; + P092_DataSettings.DLbus_MaxDoublePulseWidth = P092_double_max_width_50; + + P092_DataSettings.DeviceByte0 = 0x30; + P092_DataSettings.DeviceByte1 = 0; + iDeviceBytes = 1; + P092_DataSettings.MaxExtSensors = 0; + P092_DataSettings.SpeedBytes = 0; + P092_DataSettings.AnalogBytes = 0; + P092_DataSettings.MaxHeatMeters = 0; + P092_DataSettings.CurrentHmBytes = 0; + P092_DataSettings.MWhBytes = 0; + P092_DataSettings.IdxCRC = 0; + break; + case 1611: //UVR1611 + P092_DataSettings.DataBytes = 64; + + P092_DataSettings.DeviceByte0 = 0x80; + P092_DataSettings.DeviceByte1 = 0x7F; + iDontCareBytes = 1; + iTimeStampBytes = 5; + P092_DataSettings.MaxSensors = 16; + P092_DataSettings.MaxExtSensors = 0; + P092_DataSettings.OutputBytes = 2; + P092_DataSettings.SpeedBytes = 4; + P092_DataSettings.AnalogBytes = 0; + P092_DataSettings.MaxHeatMeters = 2; + P092_DataSettings.CurrentHmBytes = 4; + P092_DataSettings.IdxCRC = P092_DataSettings.DataBytes-1; + + break; + case 6132: //UVR 61-3 (up to V8.2) + P092_DataSettings.DataBytes = 35; + + P092_DataSettings.DeviceByte0 = 0x90; + P092_DataSettings.DeviceByte1 = 0x6F; + iDontCareBytes = 1; + iTimeStampBytes = 5; + P092_DataSettings.MaxSensors = 6; + P092_DataSettings.MaxExtSensors = 0; + P092_DataSettings.VolumeBytes = 2; + P092_DataSettings.MWhBytes = 4; + P092_DataSettings.IdxCRC = P092_DataSettings.DataBytes-1; + + break; + case 6133: //UVR 61-3 (from V8.3) + P092_DataSettings.DataBytes = 62; + + P092_DataSettings.DeviceByte0 = 0x90; + P092_DataSettings.DeviceByte1 = 0x9F; + iDontCareBytes = 1; + iTimeStampBytes = 5; + P092_DataSettings.MaxSensors = 6; + P092_DataSettings.MaxExtSensors = 9; + P092_DataSettings.MaxHeatMeters = 3; + P092_DataSettings.IdxCRC = P092_DataSettings.DataBytes-1; + + break; + } + P092_DataSettings.IdxSensor = iDeviceBytes + iDontCareBytes + iTimeStampBytes; + P092_DataSettings.IdxExtSensor = P092_DataSettings.IdxSensor + 2 * P092_DataSettings.MaxSensors; + P092_DataSettings.IdxOutput = P092_DataSettings.IdxExtSensor + 2 * P092_DataSettings.MaxExtSensors; + P092_DataSettings.IdxDrehzahl = P092_DataSettings.IdxOutput + P092_DataSettings.OutputBytes; + P092_DataSettings.IdxAnalog = P092_DataSettings.IdxDrehzahl + P092_DataSettings.SpeedBytes; + P092_DataSettings.IdxHmRegister = P092_DataSettings.IdxAnalog + P092_DataSettings.AnalogBytes; + P092_DataSettings.IdxVolume = P092_DataSettings.IdxHmRegister + 1; + P092_DataSettings.IdxHeatMeter1 = P092_DataSettings.IdxVolume + P092_DataSettings.VolumeBytes; + P092_DataSettings.IdxkWh1 = P092_DataSettings.IdxHeatMeter1 + P092_DataSettings.CurrentHmBytes; + P092_DataSettings.IdxMWh1 = P092_DataSettings.IdxkWh1 + 2; + P092_DataSettings.IdxHeatMeter2 = P092_DataSettings.IdxMWh1 + P092_DataSettings.MWhBytes; + P092_DataSettings.IdxkWh2 = P092_DataSettings.IdxHeatMeter2 + P092_DataSettings.CurrentHmBytes; + P092_DataSettings.IdxMWh2 = P092_DataSettings.IdxkWh2 + 2; + P092_DataSettings.IdxHeatMeter3 = P092_DataSettings.IdxMWh2 + P092_DataSettings.MWhBytes; + P092_DataSettings.IdxkWh3 = P092_DataSettings.IdxHeatMeter3 + P092_DataSettings.CurrentHmBytes; + P092_DataSettings.IdxMWh3 = P092_DataSettings.IdxkWh3 + 2; + + return; +} +/*********************************************************************************************\ + DLBus subs to get values from the P092_receiving bitstream +\*********************************************************************************************/ + +// sensor types +#define DLbus_UNUSED 0b000 +#define DLbus_Sensor_DIGITAL 0b001 +#define DLbus_Sensor_TEMP 0b010 +#define DLbus_Sensor_VOLUME_FLOW 0b011 +#define DLbus_Sensor_RAYS 0b110 +#define DLbus_Sensor_ROOM 0b111 + +// room sensor modes +#define DLbus_RSM_AUTO 0b00 +#define DLbus_RSM_NORMAL 0b01 +#define DLbus_RSM_LOWER 0b10 +#define DLbus_RSM_STANDBY 0b11 + +boolean P092_fetch_sensor(int number, sP092_ReadData* ReadData); +boolean P092_fetch_output(int number, sP092_ReadData* ReadData); // digital output byte(s) +boolean P092_fetch_speed(int number, sP092_ReadData* ReadData); // speed byte(s) +boolean P092_fetch_analog(int number, sP092_ReadData* ReadData); // analog byte(s) +boolean P092_fetch_heatpower(int number, sP092_ReadData* ReadData); // heat power(s) +boolean P092_fetch_heatmeter(int number, sP092_ReadData* ReadData); // heat meters(s) + +// heat meter +typedef struct { + uint8_t IndexIsValid; + int32_t power_index; + int32_t kwh_index; + int32_t mwh_index; +} sDLbus_HMindex; +sDLbus_HMindex P092_CheckHmRegister(int number); + +/****************\ + DLBus P092_receiving +\****************/ + +void Plugin_092_StartReceiving(void) { + DLbus_Data->ISR_Receiving = false; + DLbus_Data->DeviceBytes[0] = P092_DataSettings.DeviceByte0; + DLbus_Data->DeviceBytes[1] = P092_DataSettings.DeviceByte1; + DLbus_Data->ISR_PulseNumber = (((P092_DataSettings.DataBytes + DLbus_AdditionalRecBytes) * (DLbus_StartBits + 8 + DLbus_StopBits) + DLBus_SyncBits) * DLBus_BitChangeFactor) + DLBus_ReserveBytes; + DLbus_Data->ISR_MinPulseWidth = P092_DataSettings.DLbus_MinPulseWidth; + DLbus_Data->ISR_MaxPulseWidth = P092_DataSettings.DLbus_MaxPulseWidth; + DLbus_Data->ISR_MinDoublePulseWidth = P092_DataSettings.DLbus_MinDoublePulseWidth; + DLbus_Data->ISR_MaxDoublePulseWidth = P092_DataSettings.DLbus_MaxDoublePulseWidth; + DLbus_Data->StartReceiving(); + uint32_t start=millis(); + addLog(LOG_LEVEL_INFO, F("P092_receiving ...")); + while ((timePassedSince(start)<100) && (DLbus_Data->ISR_PulseCount == 0)) { + // wait for first pulse received (timeout 100ms) + yield(); + } + if (DLbus_Data->ISR_PulseCount == 0) { + // nothing received + DLbus_Data->ISR_Receiving = false; + addLog(LOG_LEVEL_ERROR, F("## StartReceiving: Error: Nothing received! No DL bus connected!")); + } +} + +/****************\ + DLBus get data +\****************/ + +boolean P092_GetData(int OptionIdx, int CurIdx, sP092_ReadData* ReadData) { + String log; + boolean result = false; + switch (OptionIdx) { + case 1: //F("Sensor") + log = F("Get Sensor"); + log += CurIdx; + if (CurIdx > P092_DataSettings.MaxSensors) { + result=false; + break; + } + ReadData->Idx = P092_DataSettings.IdxSensor; + result = P092_fetch_sensor(CurIdx, ReadData); + break; + case 2: //F("Sensor") + log = F("Get ExtSensor"); + log += CurIdx; + if (CurIdx > P092_DataSettings.MaxExtSensors) { + result=false; + break; + } + ReadData->Idx = P092_DataSettings.IdxExtSensor; + result = P092_fetch_sensor(CurIdx, ReadData); + break; + case 3: //F("Digital output") + log = F("Get DigitalOutput"); + log += CurIdx; + if (CurIdx > (8 * P092_DataSettings.OutputBytes)) { + result=false; + break; + } + result = P092_fetch_output(CurIdx, ReadData); + break; + case 4: //F("Speed step") + log = F("Get SpeedStep"); + log += CurIdx; + if (CurIdx > P092_DataSettings.SpeedBytes) { + result=false; + break; + } + result = P092_fetch_speed(CurIdx, ReadData); + break; + case 5: //F("Analog output") + log = F("Get AnalogOutput"); + log += CurIdx; + if (CurIdx > P092_DataSettings.AnalogBytes) { + result=false; + break; + } + result = P092_fetch_analog(CurIdx, ReadData); + break; + case 6: //F("Heat power (kW)") + log = F("Get HeatPower"); + log += CurIdx; + if (CurIdx > P092_DataSettings.MaxHeatMeters) { + result=false; + break; + } + result = P092_fetch_heatpower(CurIdx, ReadData); + break; + case 7: //F("Heat meter (MWh)" + log = F("Get HeatMeter"); + log += CurIdx; + if (CurIdx > P092_DataSettings.MaxHeatMeters) { + result=false; + break; + } + result = P092_fetch_heatmeter(CurIdx, ReadData); + break; + } + if (loglevelActiveFor(LOG_LEVEL_INFO)) { + log += F(": "); + if (result) { + log += String(ReadData->value, 1); + } + else { + log += F("nan"); + } + addLog(LOG_LEVEL_INFO, log); + } + return result; +} + +boolean P092_fetch_sensor(int number, sP092_ReadData* ReadData) { + float value; + ReadData->mode = -1; + number = ReadData->Idx + (number - 1) * 2; + int32_t sensorvalue = (DLbus_Data->ByteStream[number + 1] << 8) | DLbus_Data->ByteStream[number]; + if (sensorvalue == 0) { + return false; + } + uint8_t sensortype = (sensorvalue & 0x7000) >> 12; + if (!(sensorvalue & 0x8000)) { // sign positive + sensorvalue &= 0xfff; + // calculations for different sensor types + switch (sensortype) { + case DLbus_Sensor_DIGITAL: + value = false; + break; + case DLbus_Sensor_TEMP: + value = sensorvalue * 0.1; + break; + case DLbus_Sensor_RAYS: + value = sensorvalue; + break; + case DLbus_Sensor_VOLUME_FLOW: + value = sensorvalue * 4; + break; + case DLbus_Sensor_ROOM: + ReadData->mode = (sensorvalue & 0x600) >> 9; + value = (sensorvalue & 0x1ff) * 0.1; + break; + default: + return false; + } + } + else { // sign negative + sensorvalue |= 0xf000; + // calculations for different sensor types + switch (sensortype) { + case DLbus_Sensor_DIGITAL: + value = true; + break; + case DLbus_Sensor_TEMP: + value = (sensorvalue - 0x10000) * 0.1; + break; + case DLbus_Sensor_RAYS: + value = sensorvalue - 0x10000; + break; + case DLbus_Sensor_VOLUME_FLOW: + value = (sensorvalue - 0x10000) * 4; + break; + case DLbus_Sensor_ROOM: + ReadData->mode = (sensorvalue & 0x600) >> 9; + value = ((sensorvalue & 0x1ff) - 0x10000) * 0.1; + break; + default: + return false; + } + } + ReadData->value = value; + return true; +} + +boolean P092_fetch_output(int number, sP092_ReadData* ReadData) { + int32_t outputs; + + if (P092_DataSettings.OutputBytes > 1) + outputs = (DLbus_Data->ByteStream[P092_DataSettings.IdxOutput + 1] << 8) | DLbus_Data->ByteStream[P092_DataSettings.IdxOutput]; + else + outputs = DLbus_Data->ByteStream[P092_DataSettings.IdxOutput]; + if (outputs & (1 << (number - 1))) + ReadData->value = 1; + else + ReadData->value = 0; + return true; +} + +boolean P092_fetch_speed(int number, sP092_ReadData* ReadData) { + uint8_t speedbyte; + + if ((P092_DataSettings.IdxDrehzahl + (number - 1)) >= P092_DataSettings.IdxAnalog) { + // wrong index for speed, overlapping next index (IdxAnalog) + return false; + } + speedbyte = DLbus_Data->ByteStream[P092_DataSettings.IdxDrehzahl + (number - 1)]; + if (speedbyte & 0x80) + return false; + ReadData->value = (speedbyte & 0x1f); + return true; +} + +boolean P092_fetch_analog(int number, sP092_ReadData* ReadData) { + uint8_t analogbyte; + + if ((P092_DataSettings.IdxAnalog + (number - 1)) >= P092_DataSettings.IdxHmRegister) { + // wrong index for analog, overlapping next index (IdxHmRegister) + return false; + } + analogbyte = DLbus_Data->ByteStream[P092_DataSettings.IdxAnalog + (number - 1)]; + if (analogbyte & 0x80) + return false; + ReadData->value = (analogbyte * 0.1); + return true; +} + +sDLbus_HMindex P092_CheckHmRegister(int number) { +sDLbus_HMindex result; + + result.IndexIsValid = 0; + switch (number) { + case 1: + if ((DLbus_Data->ByteStream[P092_DataSettings.IdxHmRegister] & 0x1) == 0) + return result; + result.power_index = P092_DataSettings.IdxHeatMeter1; + result.kwh_index = P092_DataSettings.IdxkWh1; + result.mwh_index = P092_DataSettings.IdxMWh1; + break; + case 2: + if ((DLbus_Data->ByteStream[P092_DataSettings.IdxHmRegister] & 0x2) == 0) + return result; + result.power_index = P092_DataSettings.IdxHeatMeter2; + result.kwh_index = P092_DataSettings.IdxkWh2; + result.mwh_index = P092_DataSettings.IdxMWh2; + break; + case 3: + if ((DLbus_Data->ByteStream[P092_DataSettings.IdxHmRegister] & 0x4) == 0) + return result; + result.power_index = P092_DataSettings.IdxHeatMeter3; + result.kwh_index = P092_DataSettings.IdxkWh3; + result.mwh_index = P092_DataSettings.IdxMWh3; + break; + default: + return result; + } + result.IndexIsValid = 1; + return result; +} + +boolean P092_fetch_heatpower(int number, sP092_ReadData* ReadData) { + // current power + int32_t high; + sDLbus_HMindex HMindex = P092_CheckHmRegister(number); + if (HMindex.IndexIsValid == 0) + return false; + uint8_t b1 = DLbus_Data->ByteStream[HMindex.power_index]; + uint8_t b2 = DLbus_Data->ByteStream[HMindex.power_index + 1]; + if (P092_DataSettings.CurrentHmBytes > 2) { + uint8_t b3 = DLbus_Data->ByteStream[HMindex.power_index + 2]; + uint8_t b4 = DLbus_Data->ByteStream[HMindex.power_index + 3]; + high = 0x10000 * b4 + 0x100 * b3 + b2; + int low = (b1 * 10) / 0x100; + if (!(b4 & 0x80)) // sign positive + ReadData->value = (10 * high + low) / 100; + else // sign negative + ReadData->value = (10 * (high - 0x10000) - low) / 100; + } + else { + high = (b2 << 8) | b1; + if ((b2 & 0x80) == 0) // sign positive + ReadData->value = high / 10; + else // sign negative + ReadData->value = (high - 0x10000) / 10; + } + return true; +} + +boolean P092_fetch_heatmeter(int number, sP092_ReadData* ReadData) { + // heat meter + int32_t heat_meter; + float heat_meter_mwh; + + sDLbus_HMindex HMindex = P092_CheckHmRegister(number); + if (HMindex.IndexIsValid == 0) + return false; + heat_meter = (DLbus_Data->ByteStream[HMindex.kwh_index + 1] << 8) | DLbus_Data->ByteStream[HMindex.kwh_index]; + heat_meter_mwh = (heat_meter * 0.1) / 1000; // in MWh + if (heat_meter_mwh > 1.0) { + // in kWh + heat_meter = heat_meter_mwh; + heat_meter_mwh -= heat_meter; + } + // MWh + heat_meter = (DLbus_Data->ByteStream[HMindex.mwh_index + 1] << 8) | DLbus_Data->ByteStream[HMindex.mwh_index]; + ReadData->value = heat_meter_mwh + heat_meter; + return true; +} + +#endif // USES_P092 diff --git a/src/define_plugin_sets.h b/src/define_plugin_sets.h index f06951ec7..01bea5b0d 100644 --- a/src/define_plugin_sets.h +++ b/src/define_plugin_sets.h @@ -723,6 +723,7 @@ To create/register a plugin, you have to : #define USES_P063 // TTP229_KeyPad #define USES_P073 // 7DG #define USES_P079 // Wemos Motoshield + #define USES_P092 // DL-Bus #endif

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ⅆ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 literal 0 HcmV?d00001 diff --git a/docs/source/Plugin/P092_UVR61-3.rst b/docs/source/Plugin/P092_UVR61-3.rst new file mode 100644 index 000000000..1995671ac --- /dev/null +++ b/docs/source/Plugin/P092_UVR61-3.rst @@ -0,0 +1,76 @@ +.. include:: ../Plugin/_plugin_substitutions_p09x.repl +.. _P092_UVR61-3_page: + +UVR61-3 +======= + +|P092_typename| +|P092_status| + +Introduction +------------ + +The UVR61-3 unit is a three-circuit universal control system. +The UVR61-3 unit is designed for an energy-saving and cost-effective drying of cellars and other parts of buildings by means of fan control. +The UVR61-3 three-circuit controllers has various thermostat, differential temperature and speed control functions for use in solar and heating systems, too. + +The DL bus runs at 12 volts. +The data frame consist of 34 bytes (excluding sync and CRC). +The data are transmitted @ 488Hz, therefore the transmission of one data set takes about 0.8 seconds. +.. image:: P092_UVR61-3.png + +Wiring +------ + +.. image:: P092_12V_Wiring.png + +Protocol +-------- + +.. image:: P092_UVR61-3_Protocol.png + +Setup +----- + +.. note:: A new device task must be created for each value to be read from the DL bus! + +.. image:: P092_Setup.png + +Task settings +~~~~~~~~~~~~~ + +* **Device**: Heating - DL-Bus (Technische Alternative) +* **Name**: Name of the task (example name **ValueN**, where N is a number). +* **Enable**: Should the task be enabled or not + +Sensor +^^^^^^ + +* **1st GPIO**: DL bus input e.g. **GPIO 14 (D5)** +* **DL-Bus Type**: **UVR61-3 v8.2** + +.. note:: The settings for **1st GPIO** and **DL-Bus Type** must be the same for all used DL bus tasks! + +Inputs +^^^^^^ + +.. note:: The description of the **Frame data** and the related **Frame bytes** can be found in the section **Protocol**! + +.. csv-table:: + :header: "Frame data", "Frame bytes", "Value", "Index", "Decimals" + :widths: 16, 8, 8, 5, 5 + + "Sensor1 ... Sensor6", "9 ... 20", "Sensor", "1 - 6", "1" + "Output A1 ... A3", "21", "Digital Output", "1 - 3", "0" + "Speed step", "22", "Speed step", "", "0" + "Analog output", "23", "Analog output", "", "1" + "Current power", "27,28", "Heat power [kW]", "", "1" + "Heat quantity", "29 ... 34", "Heat meter [MWh]", "", "4" + +Data acquisition +^^^^^^^^^^^^^^^^ + +* **Send to controller** 1..3: Check which controller (if any) you want to publish to. All or no controller can be used. +* **Interval**: How often should the task publish its value (10..60 seconds is normal). + +.. note:: Intervall not less than **10 seconds**! The reading of the DL bus happens twice per intervall. diff --git a/docs/source/Plugin/P092_UVR61-3_Protocol.png b/docs/source/Plugin/P092_UVR61-3_Protocol.png new file mode 100644 index 0000000000000000000000000000000000000000..359648f8ddd092573ac5231bab38e9a6d104e926 GIT binary patch literal 18339 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 I3Kp;bANqjM7XSbN literal 0 HcmV?d00001 diff --git a/docs/source/Plugin/_plugin_substitutions_p09x.repl b/docs/source/Plugin/_plugin_substitutions_p09x.repl new file mode 100644 index 000000000..1286c23be --- /dev/null +++ b/docs/source/Plugin/_plugin_substitutions_p09x.repl @@ -0,0 +1,11 @@ +.. |P092_name| replace:: :cyan:`DL-Bus (Technische Alternative)` +.. |P092_type| replace:: :cyan:`Heating` +.. |P092_typename| replace:: :cyan:`Heating - DL-Bus (Technische Alternative)` +.. |P092_status| replace:: :yellow:`TESTING` +.. |P092_github| replace:: P092_DLbus.ino +.. _P092_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P092_DLbus.ino +.. |P092_usedby| replace:: `.` +.. |P092_shortinfo| replace:: `.` +.. |P092_maintainer| replace:: `.` +.. |P092_compileinfo| replace:: `.` +.. |P092_usedlibraries| replace:: `.` From 2fc704fc130d6b903068e708b3774fc861240020 Mon Sep 17 00:00:00 2001 From: uwekaditz <55511593+uwekaditz@users.noreply.github.com> Date: Fri, 20 Dec 2019 22:50:41 +0100 Subject: [PATCH 11/14] [P093] Documentation updated --- docs/source/Plugin/P092_12V_Wiring.PNG | Bin 12864 -> 11193 bytes docs/source/Plugin/P092_24V_Wiring.PNG | Bin 9279 -> 9837 bytes docs/source/Plugin/P092_DLbus.rst | 4 ++-- docs/source/Plugin/_plugin_substitutions.repl | 1 + 4 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/source/Plugin/P092_12V_Wiring.PNG b/docs/source/Plugin/P092_12V_Wiring.PNG index 7da46885dc6805c0eb240b05a620d6827c8fea84..35a2a84340c719a43ee9a5d1cf3c8de38a76242e 100644 GIT binary patch literal 11193 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%0A`N#~y=65~8jcl`&`>GC z_R-^Y4nIn!8LvwZEF*~*8XkSBz%5{j*IsS~@%tc#7#bdqS0fOY%uuCc1?a^7M+!(5 z9UZ~R5juu@kx{|<=K6B49l3i|>(p7{ay(mXkSUyB1)_8?gUGY#ncVdKb_qWK_LPX?@>!e|@@|x6f{lFBVgcf5#QlPb#*xLNR>_P0 z_a8wSrUgV(Q;RE_dA!N>DH`c==09vxn{x;6&~f{`9~biebqBBy#S9>-?=CQ3j*Tn| zSxpFt{Q8009jWM8iVL9|IJPKibDGb3(}uoc%&Ap$Q^+zdzkLfR9KTs}T zgJ#Ki599>qUMHglYEvkn!!ISy_ce4#Ay51qF5qv{=jJa?w^j6<){<-}zJyufwiOz) zKtVlQmcNq#l$>M1bTeB~GY4F6o%G~-0%EYL=i%G4(K6*^x5|O8xiM3#V_kdjf|8Tq z>djkaWo2l5NR7SY1>K$ffDiSnul-JIQ7wT61z`Pk$FpSER8lNuTGFI_vAQrC3gKH? zJ9Ctk+5Q$^XzZ^4_|MPU7z7bhX^ZjBzn6-S&eA28A;n1w> zF;HN`-T>{LR1&SSH_@~aQ$QfaiiNvpd%crT2od|UmEJ+6cO9w`k;1^wLLB!v*Rf%Z&BEHlgj`&2-M_f;lnE9U^1@+bOs&dklhdaD9G#Ev zjr?C*AOWp(|H%#3T3|3O!?v)w0a!YtPGVMUCbtgy*&j&_qM7%13rm6#5BEvJo32Uf z_B>p;inX@#l_n}t*_E0Hjifw_u6LxO|H2YTjJ`=1LRV1ebc=KQG-74%uFW5`Wst8r zQORCWlLTMYK!8nQ;f#{INBl_l`1eAnRel>OPYu#~P!uGc4sIIVUzm-yY?iS(P3~mA z_(eGGb$Q->&OK6~XR!vnJbu)Xa;@OQavYw}VL@@F3REn`cgxQY6y;ynmh+j91UB!o z+)&H`LdsxuvL>;%@T1%7?6I3#-zVyNjT}GiTMlS6a)%83Z{DYxfs^M)vo>&&TI#}? zA$jKS5)P}X{0Uges+#I)6Q(U0iHtA$XRFkz=y6o=h4?LmvD4up%58*Ie@VUVWIU$Z z2dVbIljNxowLOqdCK9HY-u{x_`@tt}uECstFI)fXo2emF)K z4g~Vf_a7R32|FY1DlV>m4vl$-OE~dDwlFM2WIDH(Zcc~Yp{TD;oZ^K&Tae61p;=MR zlaQZr^W;yY8=4HvW+ol2+8Lu%1OM)Ho3Ed;c`%(|N7AFYBfuQvbv)KhGTpv^OK2|C z7k5P+ZB6f1&z|?3Eqt4kQCS%P+Fb21bWnd$l03*YG%rGFnM-k9^0&Q^S3U3SA zrcvz%BV6FxmnA1NXlgoG2mICCHG+%qIEIEh(%J9S)9^x0BV!lp(F4S4uXyTX8os0TFf;&TLyjC+rBnOw zOg<}w3dMd~lN^D+QG5B)Oot-ccqJv%sEZPIgOnA1C|fN;%lE8^Xu{v%_WCG0Vv&d( zAD>hq&Pb;CtoO2vmm20YvWYH(bfnMw`WYSXE-ka^&~X<4L$>!hYoNTn%Pb9d7l&+y zgy3daCaz;lCp|3UpfX!p^G|OT<%Z?)@SMd5S>@dh;5B3He zj%;92WE#qBH|8>q0HwNnm?aRwdFxA%u&nW=$rc%#vRRT=BfhuH2+yzYN!S0Wn;PJ9>eZK$TBb04^ACe1kBJ57_ZnLaJ- z^iE^iRBLF33oeThPxIL;2Ut-FctV)jddUVHZ@YsK-PacNG0_#JyV{t}E7h_-setI>nXYBCpxril?`PHgXZ!a86_1C~Ru|L7h=?y6|>- zQ_V3C*iTT<2i+<-TwD!sA74ZtpipI*L#QDiq;$F}M^uu@;K%Ms!m|MsAry)@Sd$XBYoLbY3?H>wYFEQm`sLRVpP% z24niK&OujKp8zi{51Yx4La)Nb5ysQ{`t4R(lKdNo8*aJDb~sN=iEMqI^&KH*(Z5bH z)Sbu%;901?%_O4=5lepAgESPC&*!*>z#~7+mZgB*5NoBdcb8_lpR&n%S3#i0(K?qR z)Z3_M_{HpkDR3WDU$h%^OF!BncJ+}f*;6b{%%%(=hDuM`T1XWUt?p~wA%Tk2i$+h# z|FBzn!@ukCvH>{4SYeqG21yHld|`j+7?!o5IFy}ry~M$x$3FMqyW>>*iSEihj%k|h zs@uL&GQU>eolgyg1WfDix=ep2{##6LpYGyC>sq~-*(3}yDH^MB_Os~H_r!#zl45f#r-uUv=jM;GZ_ct-# zk$K&Q=xr^wq_GeL*2xa^cUtzlRJYNMkY?d%Ui#y7ODvDNdAJS#ykj)PR)h7-*M@_D znaYR>&xQ=`X!#(VS9mPhi9lc%` zs7g#$;$qc$f#SLA!YAPlGT|xYM49zajvCfU6v>2mf9d2+oPm`s8Ih4`4UQ!iu zS%$9P`AL5`2wdR@(c%cPlhw}yXe%AeP;MlaV1Z&NY)4!1&m$^OkJ(C;8Me?<-=q_m z+T5~w(|?eB#BbJ9nhG8k`Ix)W@CwvqC7>E~UC%FH>=vFC_)L6~eR)t~(kWBEjt0fv zn+t~+yNR+@t_CpRPRlL>_CbPp>{A12um3-;k7X|;OZ7c4TfZN3f`=I(Pvn$k3uKT! F{|8EsCJO)n literal 9279 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 sdpIcw0)bc)@A>b!#{cu9=gT8G`_. The DL-Bus serves as a bus line for various external sensors and modules. The DL-Bus is a bidirectional data line and only compatible with products of Technische Alternative. @@ -31,7 +31,7 @@ The DL-Bus consists of 2 wires: DL and GND (sensor ground). The power supply for the DL-Bus sensors is supplied via the DL-Bus itself. Some DL-Bus devices can/must be powered via a 12V source, e.g. that of the CAN bus (this is explicitly noted in the operating manual of that sensor). The cable routing can be star-shaped or serial (from one device to the next). -Any cable with a cross-section of 0.75 sqmm up to a maximum length of 30 m can be used as a data cable. +Any cable with a cross-section of 0.75 mm2 up to a maximum length of 30 m can be used as a data cable. Over 30 m, the use of shielded cables is recommended, which increases the permissible length of the cable to 100 m. Protocol diff --git a/docs/source/Plugin/_plugin_substitutions.repl b/docs/source/Plugin/_plugin_substitutions.repl index f449e8965..ccbe8c4db 100644 --- a/docs/source/Plugin/_plugin_substitutions.repl +++ b/docs/source/Plugin/_plugin_substitutions.repl @@ -7,3 +7,4 @@ .. include:: ../Plugin/_plugin_substitutions_p06x.repl .. include:: ../Plugin/_plugin_substitutions_p07x.repl .. include:: ../Plugin/_plugin_substitutions_p08x.repl +.. include:: ../Plugin/_plugin_substitutions_p09x.repl From 13f4f46f51711755410551ed7886a52438d311f3 Mon Sep 17 00:00:00 2001 From: uwekaditz <55511593+uwekaditz@users.noreply.github.com> Date: Mon, 2 Mar 2020 18:15:24 +0100 Subject: [PATCH 12/14] Memory improvement for _P092 plug in Moved arrays into the class DLBus (only created while using the plug in) Moved other arrays into function Plugin_092() --- docs/source/Plugin/P092.rst | 36 + docs/source/Plugin/P092_12V_Wiring.PNG | Bin 0 -> 11193 bytes docs/source/Plugin/P092_24V_Wiring.PNG | Bin 0 -> 9837 bytes docs/source/Plugin/P092_DL_bus_databyte.png | Bin 0 -> 25701 bytes docs/source/Plugin/P092_DL_bus_dataframe.png | Bin 0 -> 10954 bytes .../Plugin/P092_DL_bus_dataframelog.png | Bin 0 -> 86185 bytes .../Plugin/P092_DL_bus_displayclock.png | Bin 0 -> 4423 bytes .../Plugin/P092_DL_bus_outputwiring.png | Bin 0 -> 19660 bytes docs/source/Plugin/P092_DLbus.rst | 50 + docs/source/Plugin/P092_ESR21.PNG | Bin 0 -> 62014 bytes docs/source/Plugin/P092_ESR21.rst | 76 ++ docs/source/Plugin/P092_ESR21_Protocol.PNG | Bin 0 -> 35034 bytes docs/source/Plugin/P092_Setup.png | Bin 0 -> 36203 bytes docs/source/Plugin/P092_UVR1611.png | Bin 0 -> 31557 bytes docs/source/Plugin/P092_UVR1611.rst | 80 ++ docs/source/Plugin/P092_UVR1611_Protocol.png | Bin 0 -> 24059 bytes docs/source/Plugin/P092_UVR31.PNG | Bin 0 -> 28083 bytes docs/source/Plugin/P092_UVR31.rst | 71 ++ docs/source/Plugin/P092_UVR31_Protocol.PNG | Bin 0 -> 10784 bytes docs/source/Plugin/P092_UVR61-3.png | Bin 0 -> 79317 bytes docs/source/Plugin/P092_UVR61-3.rst | 76 ++ docs/source/Plugin/P092_UVR61-3_Protocol.png | Bin 0 -> 18339 bytes docs/source/Plugin/_Plugin.rst | 1 + .../Plugin/_plugin_substitutions_p09x.repl | 13 +- lib/DLBus/DLBus.cpp | 372 +++++++ lib/DLBus/DLBus.h | 65 ++ lib/DLBus/keywords.txt | 6 + src/_P092_DLbus.ino | 947 ++++++++++++++++++ 28 files changed, 1792 insertions(+), 1 deletion(-) create mode 100644 docs/source/Plugin/P092.rst create mode 100644 docs/source/Plugin/P092_12V_Wiring.PNG create mode 100644 docs/source/Plugin/P092_24V_Wiring.PNG create mode 100644 docs/source/Plugin/P092_DL_bus_databyte.png create mode 100644 docs/source/Plugin/P092_DL_bus_dataframe.png create mode 100644 docs/source/Plugin/P092_DL_bus_dataframelog.png create mode 100644 docs/source/Plugin/P092_DL_bus_displayclock.png create mode 100644 docs/source/Plugin/P092_DL_bus_outputwiring.png create mode 100644 docs/source/Plugin/P092_DLbus.rst create mode 100644 docs/source/Plugin/P092_ESR21.PNG create mode 100644 docs/source/Plugin/P092_ESR21.rst create mode 100644 docs/source/Plugin/P092_ESR21_Protocol.PNG create mode 100644 docs/source/Plugin/P092_Setup.png create mode 100644 docs/source/Plugin/P092_UVR1611.png create mode 100644 docs/source/Plugin/P092_UVR1611.rst create mode 100644 docs/source/Plugin/P092_UVR1611_Protocol.png create mode 100644 docs/source/Plugin/P092_UVR31.PNG create mode 100644 docs/source/Plugin/P092_UVR31.rst create mode 100644 docs/source/Plugin/P092_UVR31_Protocol.PNG create mode 100644 docs/source/Plugin/P092_UVR61-3.png create mode 100644 docs/source/Plugin/P092_UVR61-3.rst create mode 100644 docs/source/Plugin/P092_UVR61-3_Protocol.png create mode 100644 lib/DLBus/DLBus.cpp create mode 100644 lib/DLBus/DLBus.h create mode 100644 lib/DLBus/keywords.txt create mode 100644 src/_P092_DLbus.ino diff --git a/docs/source/Plugin/P092.rst b/docs/source/Plugin/P092.rst new file mode 100644 index 000000000..1b87fd993 --- /dev/null +++ b/docs/source/Plugin/P092.rst @@ -0,0 +1,36 @@ +.. include:: ../Plugin/_plugin_substitutions_p09x.repl +.. _P092_page: + +|P092_typename| +================================================== + +|P092_shortinfo| + +Plugin details +-------------- + +Type: |P092_type| + +Name: |P092_name| + +Status: |P092_status| + +GitHub: |P092_github|_ + +Maintainer: |P092_maintainer| + +Used libraries: |P092_usedlibraries| + +Supported hardware +------------------ + +|P092_usedby| + +Change log +---------- + +.. versionadded:: 1.0 + ... + + |added| + Initial release version. diff --git a/docs/source/Plugin/P092_12V_Wiring.PNG b/docs/source/Plugin/P092_12V_Wiring.PNG new file mode 100644 index 0000000000000000000000000000000000000000..35a2a84340c719a43ee9a5d1cf3c8de38a76242e GIT binary patch literal 11193 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%0A`N#~y=65~8jcl`&`>GC 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 F{|8EsCJO)n literal 0 HcmV?d00001 diff --git a/docs/source/Plugin/P092_DL_bus_databyte.png b/docs/source/Plugin/P092_DL_bus_databyte.png new file mode 100644 index 0000000000000000000000000000000000000000..0a456c607812e686d5c1efb1a518ddf8467afdae GIT binary patch literal 25701 zcmd43c{r5s|2M26MbW27k)>7TgQAc%$-ZT07($nbv%JX zcFs@%W7||Sf2HHc_snev4;e2mJly-d^}zOtzSx~0 zM-kJwDf3E1fO8AB;1^Zi(AS?8oJ1}3{6mjW^(fs)6#d?|a zZ5H^;arCK^DEsxrXgK&Ik#~Rq4nKT+#+I9X(DTQLQzX3{HdK(PP8~({bgL|QryG4~ zF>H3re(+_!eoBnR*YA^qTzhBt;r=GV9cAy=gm(;|yUvn9DvU-1k^Nej+YP~b;aPq) zL-%V~I}8S5#-9j948_SdPlFSN(a>((qQNhtxSfjPPgaOWZj7xpEg)r6_WbzJqwXb{ z6Y(AzGUVEPZqv7g8KSb-y3c2AcBq-NUt7okF^a66YglM*=0pz=2&tsGZB&|LVB6L) zQ`IrUK23P@WU4)m)&FNQ4Oa6)abz$%jCu){#257EM*z7~N5tp1VV_psqwWHi#|Joy zzP)MN;?~&EY*_jtVu8r*eFQa8o;k-L5u5)w7C(xnf8ta5ksY=3U_FvaCn8t{aK{Ie zg2b@GU$mmPzGrN6E|jetRvi90SMH(Q{J0}k6fxYpvly#UNA$>>__klf`{j3KBG;D? zvX5J$>heFb#<8LygKc8rvsZ-{i_qQJ#>(ccG8LV@Z|q$5({RXQ>qph!?tfUL!C1=J zHXIc>`8}m(u7I`D@w= z$G}lZ4#Bxi!;#Z4*=fN4WM!)Mh8_ z0O8TOJ5|j!Ltd3l!F$YkqTyh)YAGT19$?5(#tK7)0;hfeky0~wH?9wF1DiAKJ6(4(5Z=sO zBQug#f6A4Q$kzSZ3x0&8Q;p^n3T@_WHOf~!@gL&w`Ts0P|I@)=fnJBA+>YT zyBuBf{)GbR>&W6$#lhCrhb%AU;h-M18lq$P(1o|&ci;Lo*NX;zJ#GDW5v{6Z!MTOG z_MvHggq$5Zeh`-7(88San`_<2U)`lZ{()zZN7fV=Gp12gR)$!|si1iKwG=6vt)$;u z6XGoQ4zchGpZdwv8W4T<;o%KP7Grchit7SqaMX*0 zc1Y01!MR6uB_3Tn61MhJi+@N`ed%DsYM&v~_FKp(a(zgXTlAg=YqMt#OLY8@<{0+P z7dLZ(cECiz<3N}e5f;^CpBBE*L_}*PF~O|_(!&{Zwd79OmRTyab7wt@wQhZ}aB4Ml zDholXZDIP@V?9&Un5+HG*V3zvOCr;x?eF(!uo|TpU4D@+;@iKtecau@HgR7ltGc`Z z!+)KU));h6H;RSxo66l4pI>W>ilv*{|IB&Eb%Q0RBKz+hAGh$@Y8au*yuI#ajecI;Awstx z1ds(uCO0MpY*;;N>zNH3hRPIul4}}tSUX$B7Or?gp(f#q5V^Q3ST~~w zIudGgUc5a_KC;nZKx4=4nsxQgyxx|{6=)QS-V%@yYPP~#TzXP@IHJ6tiVRS~MbJ}y zF4L;!C2V1FrSPz^k57E{cqa#YNXdA0 zkHs8i&B^>3AeA^>Eljnboc_69b+?@dmZ4e}G%4Yw5;Y+*`sVrZk+Csnvj3;U6sRmd zX!`Rp(~9cV5%3zsDm(MrOf7_VsF(*xY6+ouI4u`Q-5~stHW(FM+^?VN{u3`0adHw0 zb7~>hb#XS!ErLJqSCk{}q{~^gy=@zb=MU?UPwBa6N>(|Me&r3O*6Y~|{6^*QcKn~I z(L_n{zjZIv4VK8j9t@QsPK=kt!uPdpL1vi?Q7!Bg>U+o6Ti7A++j&firE~)iBx(K; zx0t^s1~U1lCuhO1Glb+Jx!wX1e?9w3S1bU*Ay6^Br~hYm`25Vg?{xIpZx3iZp_Prx z2DMo*umQ|B=qaoHF5xhvi=bD)qMVx#|GB=j_=%s+$$19Lb@V3_ ze8F4qmoy46<2?3%VkR75dCER@Z{UZ?Nh8a*hrVCKH|(#^OM0<7p#P?K86U4w7qNQ2 zt&rd>s#V2j)W$9?qP3v5-XFRYnyY8wmElU#6VIQ5sg*87^pI~t$Xw0!asTWxeIZ`~SF zmvY}+RSt`Fp7a!d-0^{rwl^B?#1ouk$Ak;7)QO8>Y_PIMsJP?~GWLoZ10 z74^C6cuZljqEAxJUxzcf!=+z)@TwP( zzsyz@Au%Znx|2RbJQ{ZkpG58qUm<0eC{dl~biwF63M{0zX6%L1(?tbq`sNx}y60Ji zB;SU)VV1$vCWx2?$GB7&w~5+f9i3p$F#oJcFAcM*5;JbP^WAdL#bTpLLJU_$SgVLF zN_i^K*KQUngMS_`xkwmxzSR`IA?d5 z8OlCpum|3g`3uuYALst0;7Z2`ZE;T`A-k%k>7m7+NvBG@-#q&Fl zf_XK%L@8f0Yej=KVb~S97$aWCEs7^$V%`1{r_)8%C66#Q#qcdPCnv`wkq!E9_wgy^ zE=$ZHnpZ?&o(ghunari(YRPBqruqPatKSD7i*j`_FHy2%U9NK zbYWut>vl)fb}YmAF>HHWsK&kbOqxAU(aPcFkx%h?b9q|cw$q+=tgrNuZ$%YhE$ zU>W9k)46`GcAMs9L7^YhLbmjkb%-xIaXErL{{4yRd?doB#)WehiMnM$_!W)qPa2$( zJ$wj7uyk5bc{XofQtgF8^ox0a4t;QIP|=}Y2wG@b51H}W5*zUOTL|?gLz8A6_K&zj z?GucuSA8DJdggCbkS40*7}GXMq~+)U@t*{dqMVY2PtPKB)MVz`WxeEQ{!V!qxvE^Y zuo|#J5lN>iS7?E)?XN9V+cZnR*uinGj)y~_@m%^|x;UtlYrr0c8`uwbDL&4PN|^5O z?YsG?^NEn-bl)C!UdC~pxg&#N^!0sIi8>?WT;>Pi{^5XYcN(Thz%Y&Iz5s&hsj=$F@~o^_29ExERJP=@^%JbQrijTiuq+ zSnd+sKn#9v(9Zd&T;UbHj{tG2Y+5rU?dgK0_TF315(AZuUg2 zp_X`M_WutmYm0SIi>5@beaNW~WA*3k{5G5r;zXf-easD}<82s8!Ah*{6=)Xso*LP7 z+^>)MtDr1+9}Eh!R59eL8BAD1`U902%`3BbekRxFHrc>`&x~OeMrzd+>fo9xbyzUM zIrmEP%B1!8!<)B0C#1q9E_l8e0fmDD$#5e^&!a$0ejo`WK4lhm2x2Nt^K`Xo>Zf(D z-igCSp73BX*Ncgwxd&6kd_3)mHfiB7U9Z0?_Hl6J<{6ZkUL&fVki*YARCKR=_~&4o zGAQ?jJr_=1TJIE_t2Ikb)3B`isAsyFX3%?-6JT?W6R&A$$a{r-J_RDt>tUg(H=D5k zcaZv@>i_?aVE@+-mZ1d}D~ZCO-mRs8|7vE6-jcZ07xw_51?KJj-FNO_lYOoRAnE@V znT4;s9rgC{@u>kN{ortY5EJ&(zy=CW>B_j?DbunYXkX`_Cu`i?1M0%H^qz<>!Go%6 zgDyx9<&y5&!MnT-v+p}+rwbC-P~Q-stRGBw%T6aL!~B})!yzlBrpWJU7e=oW9bCkj z)4Fq;Q#q#4EH9NI5JGd~ak6XYTOl{wwn+CubvnSMR~FkL9yMHfco(o$*s~6y#TADA zKlOpyp4Rd#*tRh=fCAU=%vEjy_<%_&`~=Pi(Cx5mx}2RTy;I2TPJETRCr-ItZ}FZ^I|PO`&@!)u?|6*d`j^nZPJ|95}WQ;KVwhW!GN zm1pg6U|iE?mtPGVE~FKGs-MdC+A>H`rd|y1v>yQ&Z2?r;Po!bZ!wMszE{uU<^-05i z=b1j#8e^0-!l(3$BYc!GG6g<2Q=C(?vlF?FYiJKH9dx}r|z%| z#<>>O4nXnMFTCu9<_btQ{kJ-fi@Jc2;{P|&VuQMGbTBJ}UUlnx1c0ng0<|-g9Ncd_ z2gZ5@#c}^}G#%SDb{Z+%Q| zFUW3wQ4F#{)+m6&&DTWL8ACm|Nj^4LAg1|}mdZ>rlvz4I988hVd?=6xb=vY*;-&3j?_|fK~jA8WD3?VR50)6_6Aub85!XPDEzU zRb-e4Yal?h^~V{v{|UYIpMyYnMaT%;;wTB+;nXOqgT1YaoH$X%#`ets05ST4L&4$s ztpI{-I>1M5VEmg`vK9ux`tbuBK?d`;q{b3zCKqH?y_XpHiK0M9_V$fw#NyP8%CMFthC>3LTe5rdVl2b zD4Yld*Q!AFmhZeLwLrm$?wq@VwxdpdSDe@@j{Sf{_hW&{T zo0h*zt%0nBBbKc!#y;)4*@>PsC0~UW6RXs{zGEK@3S&bE=xzQ zH;fJe%5oAS!UAZ$qsb($2RR?K2Ci--gaWsbIvxkY9Q>jR5f?f3LM_Z&pQt>TxwnUmf-GDH)N` z=L~m#Rn!oFQ~t{#LchVI)*Dlq6MdnetXF_3XZV&zg76C2#G9(olRLGn5;jCe7WZrD z44q9>9gofjMBL{|u`k-SLJNR@U598|zlqG-XB_H8%z9C}0T@HbH*p(`n|!U4U;X59 z`}#nXPgUFgkYA6uNsSLywqajF+68R}J2Z9z5P>{?Std^)I_#3*t-M>p+`A63=IVFF zIguo5Gz7o8VHRfci=C_{18=NXe7eovs@C3)ZhuiAxt}Gww{!``t$IlOXxG>TPZ;#=m@WkD`Wg)%u_N<#m&;z2UrbT!72Z2Jzuo;xEh}ulyYj3hoEj=pz4Y6q+E@KOOfA1N6 zZEdS>$%7qzJ|^|p7w%-g0p*g(Y$KC-{-_Ntgprw=dqb996~;%K9B+PTHS2{geFes% z!`8rk_ljEJ{qy58znOn(U!LrQcGnUL>@uSA?)Z~yYgQn=F28NrNqF7+>unGF{zkYF ztB191sb)9=KgPusXb6?o6n#LjfL$YfHR(RrAVJjXl!Z ze{9O|ZBW0lqE)KOfsYX$$hLO9OLa#satVd|I+An%!~fR&$hFO@7v|-2HsjwSj%;iu z{qYd#uTFCad?xGB{Y^4wmY~_cU&yUFc)VsLjArit==#{EP+Yq~R-$6m976M@B`BNM zN;F+HTcEnvLE_>ns%r?OV@hDutc&={`4=Ac0}AFp~Z_1hfmLC|63V>JSJ)!9Pc1;`lY%KXX2+d+W$B_J22KSRT#$tPe1T z&0p&EI{Mg2HqnYeBu?#M7W|YQA~z@JGf%A7^S6FR2SF9f@ar$N_yVK_+O`@9V%Y9d zxE6X2#-!RvE1lka*Ez6!!&++a-X#hO&rjsyCKZWg%+Ak;NE>;2n0vjXYQY6FC1wFo zS#~iNM=Iu9XT2+V0+GJyIhlFM(~5uZQ5HrWyV$hew1CwBj(ZYRXAwR!7{WNDcXBM zbWwe)HxWnf;@8-&Vr~&zLTVB4h6S+tQ$=j{JlnZ&nfOdcGV3D6ym@^j96EyLdvB&3 z;316SAC6)%=WD9|6dz0fe!Y3GViQ3Qo6&cDKs)cxNz~+kvX>|V&|J0gJi~&&%V*=| zyBA%$4{_P@+@~XN&)m8TfK14Pl(LC)cV5x~u-Zac8EpP+Puv>|x<+K_N^`l7$^=?^ z;bbI8d)p0{Q7$vLv^pQKiDIzZ8rD|e1S@@_@;$Ty`r8w-74Q7&|EK0{)K+m+ppe*W zeOLDs);en^2h4FxnaIo72ixC!**nvnlk;^Ge2kAm&A)aOEUKG4qYj0)KQk9=NsuHt zuAX`lm<7)h@Ri*qAUiTo8cdlr#R`cUT*9q%tLWn2?N^IBiyQp8Lwf!tgI(dy*((cO z$};GHq9i>|ri`P)tc8lr7aS}Z-Y?fi7r+F_peolK3OC(_k>aEpOv_GK?HoRVTOuzy z1|ZIgYi~elh!BBZI-ocbS|BUU09Q*b>dz&A4xfD&8;-W`ajq{)`*qV!8DwpW4;-25 z3-twC6{;MA`_6=3WBKEL{kG!S`=k%-J{GuN(Yy}nzHXjBX~=a7(YSz!a}~A`j{j5M zGt8!&Xuk?4e2r!8-hWQCy3F+m*I8l|W-L zEx9X8g_uHPJN5$ z?C0aRwFCHBW?!uOYM%L#jjeZOBaD%CT#Hu(I){KL>T{~DAmvo^ZNWx!)V-F*+aoLF zqzh`we|`LlDwzqDx3bWW*?ilwDPj}Vt4w^iAno_S@KT-AvP;VFdTGEalv79-CGizB zz3$Ecruc7BQ1qevB3Ir<{&<#dARJ%gW846Mk7Z2|9$B#ZL81!Y5$Geo5XE93XMS_G zRlTik?jc<}fvkn_Wocj<=9OWPA^`#8Vomr4p|%;{l#m^loPVjU{gq1d^oP|Z_n+$# zps~`>(g`;Hr{9CeLW-9{h68jF*(I^pPDtD!)ThGLE*9Encsd`5_E~RDG=~km-vOIc z4~A~1Wa^a*$VpX z3%h8hQB#st5cL!llMFk+Y`g20a$%KgvFU%4kTErpv z`ss~{L`27apM9Q7g!)UWLYJ)MR5jeg`8^tX!x}+>AB}NB__|=eG#Zcezt0|c>q8;S zcS*SMC1vLBtA`}h`_Sck z%d(Nau3PHCd-50ba*F4SghrJ4 z_v&H5Rwsn5xm0V8RHfZ4X?5UMn1nwBr=2tD}f?v4k zZrPg8Ysoby1Py-Gz?(~$u7WET(g)UZAO5|~(%6~M*oGD7K$!H!^0m<`wKn7`+(v&$ z!Te4&A5Um?;)N%BWqkJG+zIbzrdF^_ck-Ru?66;V7)3RQnLnCk^ajSu;w(h%2aLUkrd50xZqG@D!ACuD<>eD^v(x%i=~-THtqPt;dvL9|^tP8KbWuNA zA*bVnQ>#tOyWx8<$kT-r36MoA$*rAWZ{m9K(<2<;u-#lVp6r3=xsiDK>(4l!^5X}& z`gy8@o%-j3u~padAKFWv&$@@tNBl{5!+GRu+6@>LDg9%zm-_5n;jz?cX|5Z}mr7hs zgOgr3x=;Tui^1(>kkq4!a5Y#BE=!a zmQCZ@teJadyt-NbUb4wWaj9oXtm^q9_lBR#)7Ci1Y4}GQp7<~>bJESIs21J>)s8&T zpDZymg_Chbzb<|~Xb;C4)6SfU(6eCF&ELIvld$D^YL3N|>K46srMugNg&7_%cjZ~v zRkJKxX7iOPiXOWaG}R4fmA6CC)g+yGxMotT4bXxIX3c&!5&MhK@@}lp^ha1n8c8gAKrh!N;mg}u zg>u)N?`vYdLU~uv+Oz@{#Mn;dwS<>DMJh^iLklX65|)OGw>@?szIdn}qqydDO6=&9 zdE04ha~x^)RcRT*!BRM`TaB7xR2?;Q@-mcTYUM$#w0l#Bvd|L^Z^0tbC&6i2{nUm8 zF|AMHGIX-(DY_>t@+^+uoz=T>Ic{XrJ+(#oGV^WV6Fan!JnU>lo0o43CtIDnH zF96bqmanADpU`b!;YAP4bz~IJ|9Y~jYBku0;r9I$_Ab?4zqI?MYT& zewA3~+rFx-lzP-- zBBU0a>6js!KKK(V09y!`D)u9mf7`fQSO{rFv*)JrIF|bE#iMkY z6Sw%)R_~x#)BX`zSAxfumOEt`?}|(ZTM%`pwqTu=3#VscN|$G)kf6i1e!gF;Evznc zOyNkgwNvg*=%e`WmJ9U#SrLM_O(eN!WA8m15@l+)&hxjd2swu4tpdeU@q1=$jLD+P zLgNRrP?3F|n)`wE+A6+uR-J|?QXrmYdklgLE+s4EGYSZ1 zjER-2tM%$;V}2%&JM&mp>m-Wf0`)Olt zv6XbYrluy}Qyky$MN!dNAz207dMO1Z*=Gkt9{Mt*Qnc%ze{{4+ zmdP8|Me(>lNK_jC=elntwWh|mNow-6l1KgO38u2Uf8U~uk+_;hE^L|X94qR;yvWq% ze{v~Bv#EHXPuf?y#g|MC&y<1aNPGGB19*0Ty?n^WXGUGp|jKLee{u!BTc|}wOI|@{Z&*1B1>wZ}UTHf@py`R)FF+R2) z9%CVxK(jEtH%Ieh?|Sv@K^IO*1+SYm}OesRX!zwx^P)duX@|y zlf_p2+9P(O&u8K^+^?K@TlCWOiBedSReE32D&q`Cl26uQAS1RFdfbM?6kZ z>|uqGQ~}i*@>7$0D2#@khm5gB$L!Wyg4&ub>}VppA;VT*iug6YlYK^nv9@f;fX|!* z33m1Tk}V+VMIZcrRkO22V7?eVAIcsFNBZMYSNTI z?^xqKYb9#O)R4B#R(jg|*0-}e9N8a_} z5!p;4{JdI$Mt8Nm#evk)wgwapwi+K&soNGgTgk}ZXT_J!FHJ8j)B-_hl;6Wzia2Mk5(RDK?HXh7Ylz2RX9_IGyRec_=Oak5W*eTZ>Fsx=K?=obBZkcl;hBii zYFP6;yfSEX;&kk(qYU+PY&8J86AEk**vGs>#pw`&BH8c;{Bk^v_ttXHfLivUXTjMKU3H6O$2NC(t-J51nGGyJu8It4ZrzdDr?GcJZSux zB(8_u1V1W{t>^(#k2&1{UYWlQz`}C%0IhI8{m!r>*KiZ#AP0;Yj;~-4O`Z4$>}JJA ziL2UyX#>q8f52&gZlg|__`WvZ6^d}K=BGrgbb-s${5hT4kRnZ6nd(_TzXSx$%@b4y z#vLgL0j_w5F-^snBWG|WcZ9!hHtZQ{{skT8K{b0zX+&KvavOr!xAZ4+8-eV4p>%L` zOpc3iLRq<@Abjw-w#HrUwp9MDv`wov6({dqsm*Ik+m!W6&)+Ml;(d3Oo%=g-<>Znf=bWry=~9du{g~jS)T5MZOav zY*o+AA0!oS@4}x``$9gnwKJ`KVX}}Y-8YwyrRv`q5!El9nXcL~h>L({B<$o1#xl?< z+wnDgG`{a&Y^uk0d}$>{LWkN^%lZ`{GS9ZrVR$oGKDx%+jRFZ?^Cl6bW`(|10ek3k>ES}D%WA3^9fHnuYi_Hs&96FdfL&Z`{!1Z?3 zNi@G(o3!4D;n>FjcORxY@?5M-k7NgjX}dO=7;ACROi* zDo27LjcvJn`H1s-U#II{={ndn#(tYgN23^wzO z#fkS0N*>AibHgtMKL&gpAGyAd0kJc-S-hmw>yd``m!6r6m8lpxXzR$V9)Iqtsr0v< zeW?4yO+=`^pKD`tUI3xsOx;VR({j+PNs(D9rh@!=>Z&*8q=xa45+U<9VYk^g{_;pn zd35WLc6XM-6*;G@$??lvnftOPAIhI_GlLxy+SfLycJ{nTZ?JQru#x?PpVtMNj$Nr6 z=KiW}Z{}eQbARDNAM=z|tp89U>D?4UyLwmcMNwQ0XO5o{F`O>E;7I}s)=N`frhj9V{mQ@0a=&-~L=i0rBs6?%Rm}fzw2eQ*%OP=pKQF(} zsoCQ;+^69~Z%XB`JmnFF^+VhB1sYAr`3TncO7iWgR}0t?1OFDMF5aBv{~AY6V!{gg z!f{blQ0|c#%?tm?ufz~iN{gb5Ui8?B1F@=IWpR+^b>_K$2ycxa=@)wE(57IVCdpOQjmBd%E9mp3@4 zcHh5V`k+SC4*{S~c2QhPOij0`ziDUpy2HW&>Y)pBp=4xr;6nE4X+=E=w#4Z6Y++)?P_2{L|~P?^xZ2{+WN*nn<-w z4lm|(|8?7g13_A^xFtmbJY*xc3|{7Z;G*A+V9HTTmcAS;DkznPre{1D=&k>HxhF*V zaH>mk2(5I@!lNk#KJ$L$YLH)k|6!e?IEU%K4-{WRf$(GuP){jReImeZbU+!5s5EKq)B zs=j+?`atqm`uky`uuil@lVqROUF~|2_GKkJVR0=xusKYL`47&=`^bb_gm3tRVN%?q ztsL0=$dyc;C|-4qH&enB5AfNx0_BQ=WocYOVg*wLVI>u=OxI(h%)72QrxPcqOJUqD z-C9c#wqj6LwrAE0r0Z*?f8~U(b$xl8C-^aUA-lmMab|f!>)15cezYcgEj=t7n>_x7 zTK_Kcz`_3L-TChQ@|Et(rS^GdrJh(vw#bUX%bXx?GC;N(QnPLsG$e|x+*{S4BlC!XSG;AHf3Cx(io(ywz(E{hHZ+P^3I8TH{4n4nJcx`vMj38~+o3`>QvKEnMQe?L$=HCnop8geg z?IU-9*O6+RjU7#DBY+3lrt-~x;o!lqPsAPXHbIEq-GP%_<$rOm#39vRPI{NT7t?CS zDhqR%-W#4tNuRQjY59@#v(AJ)5m)R!bs}H-C`8TQ`+zUMv5=}#F8sN6eb5g76~5it zTikow!XR0vU*j_B+<_#O?@<*-7DpxDt6H1(s4(<5kkp{kP)3-AW zq!vOS73?+3(K&{?mNA0)QQ~y1(DF4VV@ag6dVA`rcdj$W^xRJ|2Zt^d{#0r2+m-4M zRbB-Y+uhG@DR8a{r2kMv|2qZdd3~y?qrwUmQ{mFbJldfXdA%RYo<8`6w;p+SJLp@1 z$2EL%QX6K!^pxfz)TH;Md!`@kU~Wv0^yqftn{zgprMfDHjpRUC8D2ma- z^)W4!dX+fQzt*rLVCec#CY?SRVW2;PniyEy-@jVt!jtM_speHOVrAQ3C0%-(O79Dk zv;L-Tz_FWFJbHbz_PJTbeBHiW{vyXKsL!^9rM-#{Ms^=wwGm@1_X`-f{L_{Y;Wrw!nNpO<66r%47nbGM+s8b6F1i#|+%D=_mnp5$5n{|et~#jN z@RKj=_T9CNQdQwI{BC7dsuzO}54?(d+BVrMkmH_1-N|=8Gx4Q}#QZJHpQ583Hsvvh z*txa~ir*Ao4f@EG4M?@n{XTOx1#^_HrJo`YALtc$BecujuShkrNNRS>wJ~DJ-D}m! zb*suvkgEx4SUh(6yP1$^ub6+Chy2juX*?K>G(E2!VYSuUD?VRB_d8wq_pYoz2_&0{ zTs&k4ld<1yc-;l@EpdACD&tpuP^-=W{_f&>nG?w&=dfUg9`QgC0(w0m!*Ne#kvP+< z6n)I$TD*X_9{=+M$M|2!?yYFL*fYo6YijeW88cIyp4gP&h5Sd1g_cn;2% z?%zO$#f8@oFJ3&prF~~qxPq`uk~nqgb>l+N4<~5bJfJ+)YF*m(KSa!+(j5GWW#G;D zRF&?ShKti-JDXGX!WDjvOJ98ddA&C+4Hh|s*Da5Rb2Yy8#d*xaF}Y@Y{G?*&z>HgR z9*$`>Vbxx?B{mnjCN^|qqdb*>vc&#)h13;%yH2JhaaY3%hy@S3DhyMvQxuWqRS(Y_ z`R)Wgd@f)=EI*8JHGqb$^#zA*8p__5-uZuk#KLo{8Yk+x7} zbOZOH*~6<{$Lo-NElU&S4RhYB@nb;QMNBjJVeca))qsxc)Ax#7O{7K8xeumS1b^eZ z!^>i#Ii4|oiSSfrQMYELr$u+m?7Th(^iVLNO%6L8S@3i5V zh3b*UV!7%qRe@|N$UF4o9Li!`0O65zVwEbVkPc%saj8EJT zKh*fknf|V6eIrdH+gY=%Q)p% zqpQpI+%GzWKqQNcofo{&UUuoq(D2Xr$sa^v`Q1knTnU1_?qrjNPT&7uae@4Q!7uJQ zPm1x0k*jCl=Gk?CL9eL-cI2KG!&o*`xBGkr%ykl(?2`r!Sy~tm0PO%W$XwhknJjiY ziM*?k4;=<_?=_IHHW27{pnE?AguC}yGMj9ohw;rca(ook4>XXzY~e1m;WvZrLuapZ zWNKBo%sz;PDXPM`?rk$#1R!{jQHU za8pzP#xfaPWNI`$J=c!AEo=seh`{vvg9m=#T={ps9&KFa9-Y#)e^c0=f^+IXp$)xM zcj6*6bnFRu35Yk)DhxsDE2{$8G>T2NT?=2E?E_osnBl|+5X@=7`!dnD%m0oS;H*k=2{-OtAU+S??+*@yxH zzzy&)iK|!ZzFvd^=`NV{&}qJdKgE)*+*7&%4t5dOa1Q;LI~q2&xfD*YXDu|!+u;sW%&A@-E4Tl zbue{xi$k95ru8H##h~rZ#lbr=UPH^Uy>o;czgP-=#~MEk1}YTdmbIKOPSNE4k4F#? z{spzK%^ZBBn4Pm9wb1hMAIXB5iGyEn7R$P4o`uc=Gr#+H-Fwsi4@B`E^k$_~@#2xz z_ObBFR}8aiXXJg?OsDA*#Su<{SaeHx@N)xQ-CBC0=VbPDph9I6s0?|KDRDV%?Mr{s zg&c$}3S50wDKE^#(B--Fy2Sp^|Dr=3hQr$h*q?CIH~!C`8s^Q2R`35N?)7#3{@?wA z@vw9WzZgwBEXr=ry)U@c^n&++-zQRHSO+h!+3T{AsjjT6x`unxVMu)ktXtoG;oXOi zmibC6J1b3u$-Xz+;Vl)f%cNke0_x?G$0L~Y3Mp2SyI4Ef#C|}iWy|IQO zrA0sQF?iIGMWnDyk;_ARrdf~E0e|QDMbtrES>T6frh!5CORKxXu2LDcm=cK%)jT51 z=pMSV+l?;-PUOG+*0%fE_aD3(9w>CS(cct3SG%)tyvj3tUdx#K@bRYGjVU!!Ut=Ja z|05agcJ9FPb(8bwi$84n({5`=_jr$*mpiC%=GZmql^#<{Y{)z)=V{krS9$P+gP_9+ zkF8(w+&cTCJ8|FsB^aXDviFEw67(*);J(mx%^jXmT<7JC8n94lykv(Mwf~lex3NRvMkdw z;r^;ap03-UWWBnMLzx~s|bb?{Un2#;WjakHSfs20H?(05^bUWc!o-pCuq^ZF}znEfRkK6p3B)3{=&J#pXUDe<1k zn%on#yJ1X@f6MrxUy?Plvu*0)LZthGT$gqXQ3UXqOhbkVm)<*Lq0*@<)7B< z?rel@0n8QY^$1RUeK*mp^lUeixv31AC(&K;%iW~`x_E1IXQ+!{9?`!I~9OfK}E&XE>E!wrs2;C_p|o`R*i zu~1!~sBuT$z_z>p7HOJO{$Vg3Y2NpMf2&?{E{I8R(mmr9cIoMfeG7+<#WRKFIim z-R=hk)9TW+>tt4e=W;6l_7L%Z8b8)1ZF`w91^#q_Ra4bRYC8%$o0WAie@)5-e`CK> zy2Vz5_vs4&B2zokKMdzMl_K0%5;a-^HD&=7VFSeJ{@#cm0^}O)fD&$+n$-n5$vPl6 zCRkQ8gFnlN=h*|U>f$Tzy^&w@jT+Y)Ne6_HZ=jP!H;KWy!Ar4Lsf|fcbgvGG3|x{) zqcjwBbg(E{`YL?q4ZE1<4a!1_Y^Mg&$~_p)9rlq}t}92&F@zkyqN_TE0R238CfY%b z7aPB-u!`0o9IwD~Roe&cZ7xtd{U(zrlcA-Zot-Hva|rlnkbs0~p{yp4X_gj`0j+)i zT{B>Afhj-+%nyD54*G@vx&J@E6USM`fo{zMA!Aczd9BO6 zg5^M9RV+p4DgByHJG(Ato6h8G5rw@}$A_G*5LX}3*$QSyaJXeSWh_ep3D2#OdCmg@ zdHL!TKB_6`<3q<~!7$|*;c4><+kU6J&>wZLG0MIBb;&SzDU{!aDv(Yy)RxR{fM7Ev z&$hFt`5K)xpDKK+3}O<$;C(%l=9;QXh>sMrx1b&RC!RF*V*q_fcNm?}McK)7Z!j_-xcbw>{^vARFb5C9j8(i)l#k7exVDP1raaQuucOQsSGSZl6(6f=XQjpWc`s!-hOO2=bjZa0@Ngn5JrZ@aHC zJM@O!@SyVK=U@vYFHLWJSlC@7!}72e8~u3w7UDA9^*ew|%MUjfM7$yZZ2vL>`3@kt0?6gQc3fFBgfs zan*={`nqosXOn_h{T?Lr0>|7qSJSvWyDR}q;Op7d->4Z1gw3%DZtNrX75SMc$NCT znVC$h$A0>9VEZ}FUQtxx$8)9=w`X(T%a?Y+Xlaq>vAGOc7EFB|Myc6}PJ9s7sE5S{ ztG(u$;-b<oo&LNzRGhp(VYJ*&eI7@m&jSsjLpk((NG62i=lDQvi$Ay z>Tw_b3c0?9|vT$0X(>>i1K@kq~aN*aA3G?3Jnf;gKno6VsHtpAsjN$;=RZnmZUX&i?6`lRuCABQokT$TDv0M@;j z?Cl)$b^V*doccAa7BhU_YdQb{=L|KLtc^a5JpzyxV*sTEn;f}RsW#7_A zv6^Ks1oFOH2kANX@5jQp^NPF^+1C=l@AF5Nwwj8GwJ(%AuQdVX=e6gm=HIqb-;aN* z)OASbPI#1ME>@sMLwvHBb^B-L@wSNdH{|CT2)AY#L&F6zL2j}xe2`F?n8Q%GKo385O(%uSycp#1NTa|vwiB%nm6%zQq8{_= zwp}SL7IVJBNhEMP)5_0@6xLqYnvmL3{q?f*lWwK#)VLbFl=DvF7aa+ViEFq^&W;}G zq}YsBgbHiTepO(3?Ch3}%WldOXF~ImQCI*3(m7(;>tFMEgc!yg*@Lzhml&+`tSxC> zeX3ZOX3yJeRCGaqDNKvBR&`z^@RYUguE$*TjcHU)o9iL?-t<;e^Z9EzpeYTr7gjSz zY&Bn#)PZ^kO7y2bw#-7_4+vnbVcBz)M73@Bd^cGam$+0Xh_peQz`~(A`~j2%dTjT8%)GOpIDr zR|=G;+WlrV^W8KKo7Xm_+sJab^|s zwIJ5z1u`>-_BBsi#$RsiR#!?YWf=xkJD}PBgqd-8^|Xm zC)P@E(v$%HQS0hmj6|%=H(H~Xc?}d@=b>IfCa9lh3cuKU zixToWw?xBr^Ho6!y*f_$Y6EHa9*&K)Q z>m`r5)uAU~D*Ykl_PT41E~y`Pa9?v)8uwupnI(?-!`0p|0FKM;=6yr_MvqA@%U4Ez_#TWCQC|vyR84A zu8M;bk|0?NyNKRDg#z+CO&dkBWE<@!EAJ9rtPC;Fo9cI#P>N(fU-P~S z3S^W0YQ@z+B;<_)h+;F(Muqk>=q%)P$TdcV-z=&8wzm9hEa%FJUz8}^d0S(={X69Q z=x+<*Ye$IL%Ovk|^})K9T&7)(FgUDrcvW=A*XTDppL17f>4ZCa=*BXA>nbWBSMG=tFG%T|hs5pn3K_+KydRN(DIfxE-n_NXQ5SF=9YX?Q6 zG}-VoZVJb*uy;o9%?Kpfw8{|NfjJ8*CD&MrUKba!QF{NlKp^BXT)Ln0M^9=im))Lm#Mjxs@ETjUw+<9uB$XB& zm_aHqVC?b`~rH+IVM=P=*1?y4{<( zV9F?6*NW7n-Hgh2SMx%VgAZ1^l51PS3UQ5;+_uk579Cxd$sjrM>{WA24OBs6l6M6z{PX^F>Q|mL#FnQ+zgE|Ek&JV})`-F;n69yt|d=)8cCUy7@fUu*P9sZ`i*s$OkAMvVl%oi<>4C@kr`697wXLVq3I}mLzpH=A@*3GL(v5^ zw+uZ_RA_0Qbj)5Esy~Ro@oJx@ICwW)^(SU*zf8z#LUMi)x^?_P(yQc+ht9bq+2?DQ zui2@P4c7x)zo$5W%1@gg@-aUVl0RV}bfQdaDv88A+48V0&dlYyspCQSn|>zaBGK)n zDrBb+OM{J&N^Ng~D0xLS{k>udsMGO0vn*|!5yGUiLN4_;R2v?cc{|nc#t)Vk4@M$6 zW28q@&_~itSj`Y<-9v5m9BE?r1YC*`M>?^ceb8n`J|z~Ku}WR>k?0v>th>%+Wt7)c-|;T z+tet;H^$;jpLN);Sk`p1u)#B<7?0oaJyRlVWu}*HnxHc{vKgp8*zHN#DCw>;ZImuE z+~em)GO(rma~NZiIm1>Kk*yT&7l-}CV>FP_;lh{1R(i;20mHKj*vL8^uI7$k-|D&yp6?UXfy9*&tp?omgQk~wb~aieiEXj1#R)H1T@Wg~{r;*0+h zZp{B%3jKd%-#Tdoq!}p}AY1~!vA9dlH#g~W!29s*-0$bYx=C9_>2^In2JSiP7L`j~ zFcm+#lH3I6!95jHhpe}$zU%Ex+veO8Ht=n2RZib$I4Xsu@u)iJRT-|iguBUF-c?!e zXbJ864m!;emo1TwfH(%h-KrZ%!ziFZfwMkB{Zppbs@-nnzqizs{ zRK#RUSdvzO4Ul+X7+$|Z^(G{<(`2}9wuGPb$&TJ|O2VF$G+`Emm_PVE@k9eqCh(6c(PAr`s`b=rSQzJs?X0pXiVYp6xu(MhAp{z8}TC_i(s7T~+DL~ryPIvkm@O)v1an(j`kSmL@u+frJbf;IY!o~cPS z0iB%5@q$|Tp=d7>BRvIv_K>42;oWiU#>>5Uu5p%z<#Vb91XQb|b`afBie*jU_8TS* z;qzKSla#r7+tClX=~;Zp(0$sv$p3IfhL z=pZ^S{e*6I(BG_KJayG+%M}w+U~S4+tCX8R$SFMWAQNL+)#j*i!J)r|Bh7HDL_?u% zS>rE3Ijgw^%ovx?Tg8?4mhG^6Oe((?)Awm0PUabxeU7*xj|(r{?@9H4HY#3#KlR;l zrUF@qY&e%qF!<8h%#6ANR+Sf;L^b9Zimd=JCsKJaQho8^F?b&A9^Ieo3c){1GD>Y* tkgD`h(0MMjE6oDANBBR&%f9?LVt^0i8#m3oAEu5=HSg=GVN`6w{tJ$%fT{oh literal 0 HcmV?d00001 diff --git a/docs/source/Plugin/P092_DL_bus_dataframe.png b/docs/source/Plugin/P092_DL_bus_dataframe.png new file mode 100644 index 0000000000000000000000000000000000000000..03bdf8c1e1215935f8035a816648546149b1f3be GIT binary patch literal 10954 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 literal 0 HcmV?d00001 diff --git a/docs/source/Plugin/P092_DL_bus_dataframelog.png b/docs/source/Plugin/P092_DL_bus_dataframelog.png new file mode 100644 index 0000000000000000000000000000000000000000..64a7e32170ec475d7f076d3dc2578ed8c23c3629 GIT binary patch literal 86185 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 literal 0 HcmV?d00001 diff --git a/docs/source/Plugin/P092_DL_bus_displayclock.png b/docs/source/Plugin/P092_DL_bus_displayclock.png new file mode 100644 index 0000000000000000000000000000000000000000..1bf4d21333060e6e28d3892b19b764330886961e GIT binary patch literal 4423 zcmb7Ic{r4B+n(Z=okCIBvm_yk3|VF~59-N*f0=Xo9XaUJJz+sxD8R$kBWFa%*<)3qcam5<^IWnK$9e+MnFi?8mxm5a|eB53} zXRF`#s{(W0?`fz|4$wU}dopJ@E5v^s0EqqolIH>dzFauXfdi!Goq_J{?!=nN9p;@_ zRshNGN8}&{EdkD_Q3m8-pT}TMy?hhZI{RtS+(E-{v#|#NCI_qhZT3;+V(wNb??Yit zitdPsYXblla{YyT`%H@1xjt^R;MrdrQi!$Dt+z#hWhu3Z>Qh@gqYINEwYWdDkH6Gi z)&?2b?ZW7Jt11^w=Gx3F%KB(+_l~$!z`QbPLhOKg|J`2yI?}J;E!u0GEuB3%6w%uCt1!KgL5g_H1kt@;QifByFN>cg z*+ClFJ0tXerdDnZ+2de^hD<;%w{ z?8(IEe-3ZBxsVTYEF;441}T z>SAJ}H2zU(`>6_=u>~Sj=evm3)4!e4twLrbN{O~pZ^OQB>U02azu9e*)au)`Ty%(f zVpNX1Bumramz`%BHjyTgLimX{)XVJmM+Cy{?k}EDIrih@Wk)-hwODO#)f~9593|KO z0?eqHP&7CVZFaeD#uH6+xa#yXDi1qjW3!Zd-aJp*be(_DLIvKIlyy&iT1ve-{*j}6 zF0g>)nKOv=U>XEvsR8$uaSuoM|f{Wd()uX z`C#24bFU;p{^J8YnYovZLe*yIYnqmWYho_m&ua}G$j|W=?oFo_x}EK`$NJkKG_5no zp2F{-3z9teDy%pi!9O-Jk|}Ww7+!tlLd<&6zrvl03!;+kL@U;3RFm9{Q8`#=Ee{qn z{%QAQ@^0ZD>*Rh0+j;@r5g|xVW$-et?lFR#?uw!3|Na?oV6nr~v66nlB_-*K?Q!-q zuWq26j4HIStUAW12GcH;UfO>t4YxOmE=Uot6Xk6A1UxPNLe%G%D7-4-<4Vf!Q|kz) zEq$j^D4%N^^1=+W%g$h&H(fwCkl)md#tq-@pt&W%yUGWDJ=#v1x}~K$Rp@@<2>psY zI|z!EOvZiDyQ9_=K9z!;EXa6eHp(4+&tG;2_(nP41K~3^c%9n^MEB}kvlQJip16Qa zMpz24`|c)+w$Vz%E?k$;9_~NGFRFu^-d2pK7m2Y^V2UP|V ze#eDHQuF!wS?<-W!UjY1*>&OmUs3PWg-Q;ZXpfM>l6Z%OQlkfVzs1FF-AA|fixvEp ziAQJROt-DKC2qbHN4Z~mp>Fy?q{SRFQ5LIUd1KeSqyZy57xrqdbtIs-#EC9=QAYVs z+A{r{yEg6I>PT+{A&DbIfaR1Zjeg)o2b771(J<+`k6W)QN3iPbR;%tZ^T4{BMGtNk z=%YD$w`pmVHaFrxZed!pUXBkr1@r$i`(K0&01)NqqqYl~qn+Fbfu$U!*pEta7Onf5 zIV$|0Yvq4I{=4K}vL|nrFR~VLqB0>O_7KZ#$b|FA)3TbL!u1p|Y^4yQ93cifq?A8W z@b)m`t zCe?r?B9nHiy)E?xsbclU(?Si~kbIlG@>xtR7{*e!*3H$SbTD7W4rc0) z^~#6r>aCU?H=YN1B*l9$TbK--D&^v{zc1g*RMI>Rg<_!gM<=2TiSUnN;)5}n*@uN8 zN@Th2@cZM#taDd2vo0DWCwme|JnLEs&xETxl7_3jkGE?2&1{jB zX?BBemF9pYNmisJMe2!mRz~J}SdHgL#Dtdva^PvRlo)AokjcnWWy&`8DtsX(r-^G* zMI>s;3%Ar4=L{MLxW?x3Khf2eBb4ce1;$$sDHrXs1yIj$$hKkw`$VHP zLv_(%3UM|h%%yn^lrtSx+Bb2Y4|$#9!Wb~lAj&3XuaKT>bbqs*H|h=&?maH_XZDlX z@Lmo!J#L-#tjbgDRiHl5`8Jn}QMQPIw2k7PUkSBjq(EfvtZ}b5W14zzK4yBb$u|TbqWBtDR8can)CF%t^bEGN7#x=EOUDo&Y1Q&e>{MX5fidY5AN(3 zCwLqC`G~+oE>(_d?8v*k(S(BZJl~$@bLwxFG%By}?`2VG1s-3WgL7|f#l4Muq-#KF zk7X4{GdLwwYZf&;wuJx>5nw+((AG*#7Fx%4uH4+N=*^mHXY3e{KLd^NZM=0m_h{_5g;cHA zW3=*tjx&d!G?wGIQV0&RLd9)j!35qdPi=;<%Js0u95AG!N^IhLN@;AM%hP!Xo7I8*z zCLkl@Nr-r9UF1ep9I|1|&I<**J^IebmTkp9h;(`Anuuatd+Qb4*|1~25Fb$CvNPs` z70WE1?!lx3hD#F4XN{#~X6gxf*w7rZNPE++&9EWak$ETRiKs$sp(+0} zt`mD&*_6PoV=lxt(v-77|Bl9}E4fQ0I_gJ_eh0lWDnVm(%ELgeraq#hYNm{x15PzE zLfM#s@#CxN)lnIk1unF&4Uxd{%ypOkpLV(%EqE}-L=Jl@q46xoSuZdAj|b1cpA!Fx zF`tM5r$S9nbPCdSWbKeI(Ln33}QtJ6fH&IgnK>y zYo3t=dsmUA?p%x*w{>64b4^3<-uboI7q;x&2rd&OTyoR%g_QHIfo>|nG&FQwGLW4< z?$%Qj=|N%(|)DRcu2&4o5u1@$W!`8C3TG<&1_(L#up+$7 z5b_BYw@6zZ;R=7@d`Az2m6QIq_3Pl4gmx?VisK36(;?ruN|pzJ2fx_Lf1kSKJ|R`D z>kSKZuT+JS_W2z5`TnXLI@vY!iRMzVkh=2q-PMELqV&}vymT?ufG3nUvUS$y_aZ(s z6dJpm6=bi|mEk%wToULacqeeOv1mr0 z{bGoE9UqI_7~E1Wp}7S7arYhX4HZ7m_gv;C9~ZtElT3`Lw&8XUjCEP zozjC!yi^)fq0GeKPcYj#Y<$+@+RJCiuEKom+5k`KGJSgDkPl9Bj{#;Fytg~VqgOyV za58%IcLjX7Ive}KA{1k;vh>o?NA_3pD?Z*y+{~dF_FMo?D?+42?_;AAFrs_>1qJjvDUHD1x znan{!*O`cjx{mPQv3mOqGa@1txZ<6gTJA=3gQOohwPOz)C)Id0M(W5I9QKT~#8 z54TTh!L*ae2RlpE6Uv8MR^C`l=&0>=C!-gM#E&HSBt8Rf_dRqMc?PO6Gbe ziQpt3lqjHZW`>#FFM?7T^=y=$j(qQ>v0)u!U%JNTUS(RWIF-z4PV~3fp3=Ip;?9F5 z5*#ICXVR0C^LtnGbg={i=@`9Y-BG8a>duI`8U*ndO!KIuLp))yMz_}bpy<9fENVcm z|0I`aBO%cr!+ZGTY(-9gt(=u(x&*&im`EJXh^{GGuOIoKyZ-GuiZN9^ zzenO3&Z|OK;IrGrgVIY_6D+y`+^RGnQb(a-DeG6e+Wt1Qms8C!px zdd+|wzY!jfVL@H&LZ`=eIk+d=(b%BAmL$F@!f4tUcAP>Xr>83;?{_&nTzn%xvHwW8 zOrkwf?9(s2NxXfEX_5ZC=drb)QbT0W8!9`EGRb^cg;MxhLGbjD6)H-xi!7~SlPs2} zrOPky*hN<)SJ^cbvas}(+xn&7NA7ezHpBFH3uH#u>7-kxjC%YKeQ~&}n>!!7HN^l)><{&kkSLgQF!0 z%Sw=MT{~`-e7N1{#S?HcC|uS#`II^fimqzTEYj8QiiFRtf+&l0IQN{=P4fQ2(0gPI z2CSuQdA>iAHL#l^BY0v-4SnpP9*@G~(0xuZ*GNn2RtT;5)66t=;lTO`Uf1PoOb9bU zy_>nY?*n6la%|}nES9FzZPFXcALyG&zDfcPVHt1t2{p`EE^Fu} zL2@oUT;(W$7EdSK{Tum2h0anoI1t|sf2UV>xBv5q281PHUBR@kb(Dl@ca2;#SX3>`lWDw%bp-%1}MCKkq z$JQPi&bCi^8Aht+-?sD3b@Za7qMlmo&ULJ$l!I|@h_s_&rcBd&JC{6FxZm4S40bG8 zep44Nk^MDBL#exdZxwy7-MUdSF_dM&!%Rw2EPr%L&{Q(jxm!G+WO7Y?9P#*-(QxWO zx0&pn(%5kCoi9N!{F(dLs#~V?2|nR@nu2ewWJ0 zsHIt~=h}h@i<)vN=C*`I!pgUn1fR5h`-nn(KmYiH@E=72zxs0w`_={PCUfPV&gqY^ zbT_Vx)b*@#VvEmRuWAhqYu5sU1T3&P$+r17>ts^qn;Tw%K3&YEyu zX`w4UQ{2c@mvn6#9T+{Df@iMEh-`{U8^*UwxW|7@wlw1uU0GdgHrFLV74FJyK78~T z^;-9Q`>;%l*A+bN)xPRh+6A+?1@>mA@k&Ik>37QZI6I5{ghJYSv#jFLwin3OzGz|$ z61r36DD^FUuw&2&*COrr}FWB>q$lCZ?4{+KJ7VvD6 zuu!N%V22BC*-oDm8JHR#&?y(`su0OAn*Zj?YZK|>X>59 zvyaPJL61&|SoF%=8^uKGU1FQ(Lb_I7VcZL~8J;K)w?d=LRc0YYKSv`=sH@CE={r9> z!$&*444rB=oL;3CJeDuMgnws! z@NPdZf-!wA&{TJ7ilW_zp=Z_O;K6#hrBH%eS2zFO*H#pNe-3W;o}=9qkYQS+sE<;7F#2-G#97luj3b!WPm`f4O5J5AWETzc22 zjMK{l^RG0y*iII3!}80D=ji$uYZR6#Dx=4rV~WT426V#bPAA>gM2&sL)}>WIOa~Qm z>7$JGgb(cT`RVjk{z}H1U1X^}PhaO(<4vPm``8tw?RnDiEBk^1KVO*(lvhpDHktHv z)fZml8}EK^=(01d7JI*o>s7lfat~X6XTwl=S;VyKir!nB!DJlNXJs%-2f9+k=k_ob zTUaluweD1!N@Y>rkAXS);%$HSxHh+pHebKe6zfXq;uV$}4$x&IIrZ}&GRNNHxsVc6y^G`v1@XV zj_-0ab-0H}FlxNTcvxz#>1{E6;VZxMSF8Ekd?5pA;j*d)3JDhXLD(&Cmy-Kmb9QFD z`}jTe(ps2i@kqRgo_OmQWz+y`IzP|2e`zVO`hO2{3P$E}s(SJtOSw}T|EM_l<~ z)Q?fT_QwoHA>=`_9b1SbprL3{CtvE)Az9VBJ4at)^d>s;JhaFkhXqZvLE= zBbQyzMO?B+{$!(j=G7%8wJO)h+}Tat{N?~9n}}q*HEM@R$zeUN$!KF$Lf@>+r8LZ& zQMSHBtbbi(&t|z!#lMm_-0*l*(*4-YnA6--7^+A5OAU*jjh&TPFD5=8;>1e&(iV=) zBs`s|YtA&xT^?rXjk|A(yU3>Cl_GPstf~wj)mF^|Pg_BTu!Sz;pEOkDf}~}G*sR=- zGwADFIIGJ1a*vtu@{UORMVKl3idDs>2P*i4OsnOu3MGTj&wgkSq>s07?iZ<7W_44H zw!9L;&S-R(irOjdtY&7eMR~PHm`m8hM;Bv-!S8ZhEV!LQ-# zySr3hW9T;ceqUz%m8KtsKqbU|rCH2ha-kA>eg5NE$A<{%bu^Rc^zKRvtWG6K#?b91 zq0R+&Z6z{SI_zUL?6n+~L@BeoSZCr-C3@;x1REPx_F%W>V8{1B;DJNUN&mp}Mh{NX zGujP&bgVIYJomod&SUz0jFv1TBF50Q)v(pN(7WA88I-*Y<{h0g?rWVe|LpuKi5~Bb zLI0EI9^9CVr-vB`USI3b)OL@xNc8aYm`o6R;MB-fx8LTyH68;yNP@s`Ew;+DO=pVi z&05H6)+wCcu4CJOTanytwv+xT`V@5W2XB5QZCF^?34zK*zxm@@%*YZ6{xV$TqJc$R zKX%P8kU?=KePe*&SVxJQd=U`dIsR6-sKn)7R}M&*rT~)4KeP+5Q9_kD6Bfw2r}oPQ(QbM|lndw)acdddq4r9h^wgOQQ9tn8-{Ki*`PD<`1f5KruW;U(;6@vQ+p{?_jWJST6GKNp^k z_987FbnOouH3RE9wccxyWRh1lasTAxQ&QHSw@c7&Dnfi)PHZE`ktK0m#=hPq_Gv1y zw6mW!hO!2I5B9Q>IzsKe#+b7(4V|&R2OGXLq5}@MMRt=z`I)++-o3jd5++P0%OG7i zcerua>AfeRmTjpcVbC9^sAV=y*3{%*+}(PZcqz%b>BGeJ*N~OPI-2aa?8hcQ)KRzJ z7L9dNac+@zb7;5}Je7Cj;2tcyF@SLkeMM=e?R?c@;G$}Dz=bkDuep-$tccjuLC5+F zRy`tJ4{lQx^;uJ%vFW4;Jn zHv2fcF&0{%8NhgnO|Wse=~_|PcK^$WJhSrqFKyU#kL}$u%uO>x$4WnTb@&y+lT{AS zqZX)`EgY5aVDnmhngv^)P|mw7yMl$z#Hb7H0z2jg)l3PN3jncjrtM0Q*r>&CO(D0gRtUYPJn2CQYk7BA6w-j#mEQm1^+McGW zc}&hKyo0Xn{~+@SCb#VfSD z0fO{hRmyqW2-*FQth^dXxgndz4--u_4BmyGj@*Q&n*93ITYoJ<)R;Q|LSE4ii5hwI;_W5Ke!@5*VfjVTR!9_(!(*}}Mchb;5CK&>SONk0VFNhnx5-uI)Zdq%6hfRb(CK@HO^Y`s%6l zM6#pPN(kl>^WY)bTK?|m&t0j;!q^6RjW$)L2!ScKqGn(=2c;@vQyIC)Y>4l{&M-2G zd#em1y!AfP68Jqg%mT;#;30s}Qv!QRQz*--z4iVqwnNhmd2bjZIn+G9Jl&1GK> z=-YoXpL@}2I#WdjCsCWLT=_BT$iqg}DDX1b7GNUH1U5D$*e=q6qfWjW%E8Id*vSC> zlv_Haw{dJBa_r0v@ia{TX~f8@vdZ|*NZD`$Gt^zJjb^c712;=S*}-Um{UNWF=5pSV zXqG6V?}C#j2nf~(!myM66#(*~KG#0WbPP|&clFEWZ=8RK%ez^YEq~|rx5e~w_t=&W z_T^0xvO|} zZ{w0sS~CK~b=o#^#o&JYdU15&i|V-|EoPCJUPSz~%#Ag01CA}y8yUQi<=IkvezlQz z4j){OHD1W^*B$L(*I{orY2ocFguB)7aH9V7-UY{RR3CUF z$M5=-t@c^xXWF$wIB-{bg~FtskAq#-8vMydFowU<&Q}4ScjO_JbdgDlN@sK}5|ABq znDGaL?qlI=FK-|L*e*o)?wW2cwF&rcDG!!NV;iCho9k68=F78Zg7zD}Uk+f@>IxO8 zVz^ehSex~c#qrCT8B?w+7eQ>;EpCoQWIq7`;yL}^lk#mG02ppI0o7QcyM{}zCu{C< z)rCFt8TdkMyAuo{7O*X!PRsh(pw2m-9toDKCbMO>wsDJs?=1F>xF(V~>sh&;Eh(GV zhb%6quj6ao#@&YTHgLIydevpQCQ)iRQaH&FYJ@$;Ydj%hpz^y*Xb_{v)%BU|{Ji54 zyEe2LS7)q{gUD{ft2qh~6feJ`C7gTPQFGbq@JJ(+z*<~H435G>P6+#~p7rrHw0+f< zRzcZfEd>(xRu8Ovb$@3eSoZQuUOrJvxEwknK9z)ErE*?53OEVjcqKCeP8S|WGt!gyeMHifle5H_*9zQ+PvZ=#=y@mKFI zFDAS&*bfJKe33;9wT_X8IsFqtvK^$)pq{Z>Q}9OZv5Rowl`B2q-@FDm+xtMCL&Cy> z2%dV=Tw&IouX(3Muc9toj)jmRrhtW8q*lV_$v?`2{09KL zN6$L>c>p6y?7}N~^v&_cPY<#6%5DRW!ShTp=MjhGE|6YFgG~(JjVHhmR%EB~-8xD+ zHaN-a((hNZGfeG=y*D}y`^EzqFUgLH))#Ckij6RVUj@X@KuQR*s?tmO88&CEU`@qB zRdz)&FD>Fr*<>QK)Z%C2ZGq3y05eWOJ8z@ zf1M>nJeF|;zQ~T%0u7~-8|bI`8QDH@BGx((;5He1z%lBl^Nw(R1T@*a06Mhp_tQKv46urmM}Kdc?Je?G6&uv@t`r8IO)56zo-$7y1Ag#|fB@O9 z->;-+j5&8|!%Eg$tO*>#==j^}jO=|h)I#k;r;dK6z}^qBVXvB!Zlmm-&n1UJG8{XW zGi5Ty> zr4ST>{b_iQ>kyu+p!JM!64R5&&fIo2N!2}flW>u)pN7AxRuUF6m@diICCYf0&p*#< zB*5@$g7}Y9PzGLbUhf&rr2FuRblJVk`8Fp&oHI^y%mKa)PJH)2PMpA#^0G*nKEYSn|PirnQ zX>{sRf|NqCn>92pFfCmjxuZLlL)SdGX*d^tu)lDi)9=)49@A;KOhEs^-T7ak0$qlF zBdhJ|uuF0?wP)m6-c=;eV9V-2@c+5%5;0D!0z}vGD?KvCCPHRA!*i~wc>&}=zRtPX zq84iZFfU`0qa5_FoBz~mi53S8zY`N9Pxox)hok_d&@u%#Gnw@Abz-duakrk+h@Wl~ z*Ez5zIdAjU<ez zDG@SyYw{)NJ=6c;EdJCI3bq?hpB|&vGOJ8*8xr3f@u%r{9Y-bFbHgwbWh|j6>mh-W zikbG^pY#<<8b0CnKN#wH5F;6f^0k5h@~g{zF^-~rk2uz(V+qCdp6zxn;LJ65&l{et z1dP(tMoarYcPJS?LF2pWPtIF7I6fSBPVe%r{If)S=-2IN~<~$Vj3cNVH;8DxDb z$%XJaMQV#fj~Aw8GD80|9xUM#D0$X<)%PPW76F$@_wl9nY5Mmt`~;_f`ht-02d3BR zd=6?-4lfeAnM3mSw+9Mg6{upbJ0@q*W#^S!EpFrUv*$C?e_t?10gW0>Q%}lcJ&n?_IpP5r!!Pgb?G%Nchkz(I(k(E&kp3T2Uv z<{oS0Ye*SP{dfkU0mPFb2psYK)s>q2%6#wrupOD2{xL?LiZo9ppp(@9AReFyL9swC z$x(cSik{`KqeW8TfOCZB z*@M#Ry*ZQd*Dz{d*DH5b^7_00Fp;khJ+{{#G3zN#dPs{H(KE!)go_PjBwpt;uAGyP zm-29WARDcVU|j344!eLD24xDtSitjsMeEz$lP!HEup8$XX$zc26NcdYkO~A15pf;7 z!h8-do*SmL-HHnj^O#!z(C>K#qJ#FfKZ>_&yx4}^`f;T&N*)*-mmUMEY6{nWTd_`D zFK=73m*Rtc)g3Nk;CP)SdHZwrz7%sa?O6!$xaEExoGoiIaf>TLoqd2zVY% zkKhNPuoh)qcGVd;Jw9&^WI-m8Ft0P4hm>m!lzZU-IVUJSFY|J*pjN7O=CgN_=L?0% zf1ApA)a8^;Vm_X9(ZsjrbTAwMA8=4qV{o1!v{h}V3qvmq$o=0LwEPFE9C_izwp1}Pu~p};~?CPV0WvOF)< zrR`lO^7)g{!HF0x-n^?~<2WWaFSHG|JF9-T$(64@5{N) z92p5DgQf23eG#uhOy!mbU^p&po8R9^+WZFK*ae_bTA?2iq3RhF#I|BxJIHx+-j*Nq zSMSBo)5@ctT040qSE|*9xr5r>-#o@p=Ok0v^Bs_^@iL33$`@?}0rsEU1SRA9yzdS2 z3U0&RrJm0*0cRN1S!FD%dN$gW1v25d?^uG=^Ji%iRM1}_E1gPHOUODNzUwd&!jt&Z zdxZH9T7j@i^xfZDY^tW!NqrKVWY#oH`>0FbUV5$RWP1duYH}9v@m5t}d&DCEEIMnq zSv7VDdY;T;$lqz|mR%gra4>4|q1_9fu||4kD3v9xXVqG+{d7SeFjE{$`sMt72*(g8 z;Y^xEy0xCl4N*4QvW=YAT=^$af$C(bLsR`^d%8M}n$*&lkr$Hl8iPQ9NH!tp$S`xx z9+tPjm3d|H_Fvw~0tlv64?&yV`_1K)37ZMbo>GxiV2Rze8K5i}f+ z`pn+!)xmkUVb?flG|eMJ2smb90Ap|TGR1o#To*O7ePsc;@Upk0#{;e`^>yz)>yV>p z(?O%+jT+?@+PZ+AKLSz?O*JnRUV8!=I05pocG6Sj4=7$?w?Smg9}KvZ?^wn-1hnb* z6)yJcv%NK7S8~A~GA+kh=e2rkX#Yv70BQ;9@QiZxaue~EOjspHl>RH_it%XuRgLEO z3B?AKa*OPCYlKVp^}`6ziRy?pbnWG;Y~KXVmbUZu`Ck}WG@TZo1;Azp>7S>t{oJ@=A-WF|gOaVG~X4tA#HL{XoL<2UV%E z;cHY&sT&ZnM)o#_VKE`&dDY7ajFyuLZi&BdxRYnN75a37M|LY@{`u9vA~MX&i!*}n zWyDLIq~OGkP#ezv%5_>Btm;ZMLHgU}J__sYn?7b2pUTAzP#^Dn_~Y0gU?0W8CEaeuqItn}u< zq|A90Ao+M-ac@gioEb|~<}bVBJ@5)>TLAxk#6eBbNpDOhy!=yN>tF6CjD2+%1a^n^ zLBqzn%G+Mk2x%dEY{-AIXP?L{O@o%svXwO!_y>w`vSC< z@*DY4<&S!O?+D8j<00_c3^Axc*%tkXAB*oI9XLRR@1GPsk$jBbVRkDNqIp3V`R2&+ ztNQ_q$c!PH5)j`X;i*+YqV?=<0|_Rta#?BZUTZl%FS~-s=WX6L;iv${j^l8Ws^tH@ zJ~d53R)DB?5@_z44giX>MWv)zD)+bX<@vtlU4Xmtg1zt}hk_yj{$YD2n{@13I0d%~`m}-X-deeOlSsD#-L=97b}KZ< zP1@mO6hNM-0V`i_5+I#S^7Z)uRJIe$b|2x3&GtS}LiOx#k>srd_-9Jqc2hdUxlNHL zlS!N)Yl1#rt6_g*XFMoP6b#>O)zJ97tFUSI`*S@g`Gr7vTOmfw-O(3*1Q+WU!IXAO(V7VWd6P_ zAqt7@H_svnIy$n%95gY@l`;81d!H$B`*KEpia&#nu&rA^u%M}%GIYAJP-btnz1+II zp3T>Qig&a==JAgsx%(1aj{hBh5msnMxk%e?SxwPM85k+XXxnDlF)AQQ-FLgaoMI-R zd`2Ltis+jCYO0(MUVpgFu#M1evU;$Ed@pbq*`S&*eR0pYkH2CzIYuUaYk4SLX6?%0 zNhEvy@m-uIdTVdNH$Pgt@8{2#^L_J#R@ItZPz5Nwk=-*;WGCpY*`pyvxJYFZ@SXkp zc&|#%COzDR$W73@{_#4N>ByTns3oS}LNXMjQQ36|YsLrk24Jx@iI3+Qb3kV)tGXEA zp-#kjFo6I9V{iWmD+{h8u%ZgHejtl>ST6vM(P5~;19ocb971M)({xQ)Y3rDucsft~ z>P~NqPg?zAu&xil{>o8JbgZ~@+Es?-z{=_NbbOvG@QETOwK#$5t2ZowO0~>~WpG-E zB~)ut`SF;gZ_K2=TTRBR8a{$}lYch*7tqdOcQtOQ_O%p^FXs>F7<4JKBA<8yENbe8 zXvza<^0SA7)~O!cn0_Nnp7h~>UWW(V6(Yh9ymR;fu|EL=3fD@&-|%Ryih0MZ@p z+o(SJ4DBP_kf3Ffag)6A@ZP)|kcu~NL_C#<^rn(MgUG7uP(8d2Q?wusYE_2(=n<|M zCBG`W-ec-{s)O;jPTNi}{U!?ng84s3aUJxW$xQbH6zuACa5w%@>M~_1qCUIsB?koA z$NHes72v?s`y0APfpUa$`m_(RTe-uwpfmSV`Dr0mv;>r#%mIv>&&y|Ygt2eje}#Bk z5<2y9!?Fh}vUqSff(_^s|EQfvUM9r$IHB1X#|BSxD_p+>Iu#eOpJ5%^rKg~4FH301 zej{-?5UzuBycK{80(7QFcJkG#NSn>w22KUq1VC4{JA;_HWX%T3=5R(R0$hS?CQCmc z*0Z56IDpZ86tpO4&gq(=ObF8xgsyMJagfUXob~4TAON-*{x?qAh_Cc8N+YkOyMv^Q z#D87q>YP~hmg)xpk69N9{qvIq(3vOR^e>+|2Tx-?T>NX$soT5yz~t#kt(RM1f`Ykn zYa+g!X5{=|Ytd>0t(Nmxf(C2g+)PhNNqJ(SY9|kzDfsU*5hUD`K%>hi7h<+8z6SxF zaj+n|zZW!KOCdlx5o^IpZ-xO2B0xI0mcZZF`bGdmKP(`w7iJ5a_-nvGMd}WbPs(3+ z4r2vc*2v4-)MP-fk{W#f1|YF^AcG}90T_XM<7J*4{AJ#sufb4>-UVLkoPwbFwogF2 zlb{qLz2Ne4p1gzfuho^a!{vO0_R3nk)!e3kfP##LB-ZqWxSZR`nLywi>F^1VsHtQ& zM~L@g1__fh2Nv?^=}&|$z6tvt#JI&U-9NnV%3!7@IVU_wn!yHcDvOVo2V0Ec$ zq^DYB4=O!n42FtNK|jTm(3lz)k(@~W4jS4I7YIAG7Rp5?1O$N>^TZv%Y`JQ6Sa5?m zL4!_BeE#Cj6B%~PBq~;&ppBMlHT)%nPJ2T*Aa zDgb9We{_}>pj?^kZ%x8BD*E8T7YIWt!ViG8I#aaGn4Bz@iK(yOpt1ee&6JZtml;<< z)rk~IJR5Sb8FBE_`-vymg3jjiPt+x*Qz1Xmj$GKBs_mH?KufZNmHu@sC<=ib;Pat| zggL_zCrBVRQD7x(U?q07VVnCK)%nN688^TT(q*syQ?)7!=7f+aZ&O4AcXsm=@L3AA zaxas5yfasdm-!4dQ)IRRI#$qB?!&?UPN@hqF(9s4wEx;HKg>bSQX~OF zT^6|z7=Utc0HXthi{3iCs5p=>JDCLtXmB5boYB&*=EU8JKOBbe6Y!o^_EeGlv;4^O z2qX8=Koby&S~n4(kF8lvLiFt_@PNCZWv@OPBe2B}_|uG1;jXcd_ZA4}sY`KU+pne@ zAi77+Kn511gC-RC9g^qCgq+4QQK&P6qzv)Elj+HzAOk0LxNVy;lto^H-?c*T#wi{T zhu303VV+w79vb*G2QOY+=czc~R-+ESTqaw0kf z%>x!V*v>!5n&;wpcXwXPXEgA95G?K0yQkkFao{{+^8DR=vLwff~haIXY>}HAFB)>sejVp2S{wN(S8nF-Zm$xkTge z>bz-nACT7ajC#`c#$@+XJk5?haRnF;MC?nYuX;dbTl@JTkgwRFUI0L~?T2t+qFCkJ zKmMSi`o?E_+G@D5BE$y_bxpYUnnkI0+~z#ia}PFnl?m~Mpx+-V3aUEUIJrJnLAAl^pCbg zqB_JFUqIS@kFLvE7Y63_P90YJCf(+!l`T9t!XTSDay z19Ii{u`p=u4QDWvML6y*IPMV|wa{Pyh8<_J!UA3c=}~8c%nuY7CuR4h)jI{^%_N*& zb5p?6HV(6`VIxq!2|6ZmxYSDODORyrJgjDtv zad>5l;>s5~^#B_CsHEG+k+;ExyWwg7LeKl0*k>FsuCr4LJ8gBzu?Aig8;+Vx7yy!Z zIj;uWU)*F$3D}%k9Cw-?fs0X__@=4YZ&$%5;MH;N??ec|_{{QWQAVTV%>*s70%HKg zqZuC5awT2jN*Aqutc#+gJ;9>Wkeidb`s1>NNd0b*|8nB zkKAn#bb(Hf1L>2MBn}jeH#aQ%9)|LDEb)kC948bQe~5|UG&lAXnJ}naikM(BI_1D~ zkVzB5T(}1RA@}2A|M6Ql#A|>4=C8O<_Tk)9fIxz^}hP4#NP}H1_ZqV_7>ho_6TguXJ-J-B%nnaJ>Mt% zczxC+N>%jUQ@N^LUK(V@ujjlS@~X=pz2EZx+rH}~Pq zZ(1#Y$o$u4Zch*-S~ZZg38g=Iga{cQ zkO5R305?7X=6dqB^<|tQB}vrdgcT#m{_VovJTPlJP=J`UtBO%Yh+EPcflf~BqW#v# z>Cs@eF4JTCkzj;CH^;$%5VQwOqSlSw%j??(y_i@z^VTdp^i!s1CSJFimb~tAtQte{h#rde`J{d`{}nJ^Ti!XTa-&;>49AE@;cGItDZ0z3BYxx><{q?-Er2vJFMeK<3$Ja#2H*Eqdd zg<`O=&j%D*{)b~mJNW0kd8b4{qBbdN7UdlTGl6v`eZ`hFY4LVebHj>J=6xWOtlm%7 z{G%fh9s(G7<<;c{l%r@neVc+n2^k*MIJ3E7%bghCt(XzeQ*Koz3u6V32^bNyP?L_> zv8?BFfOB>cz83EydSyC;0ln6gc`zkSLk%XPzKfJSTm?CA`uzzxn*a8*oBux^_xzuG z2vP?o51tQIKjB}utxg15qeLuLot+2`!4ga^6{SefqBwSHjUxnp7Tp~J?wd$XSI_VQ zYjMIR8B`lFY%w18P1ulOZtWtL=*ewU9&862ocjX!nN>~&1j<4=6So_pPI=-sM|o*- z{*!<`QvX#=1!sw+>BhxYOBcxAXw8>J#P&9LcpNEVUo^k1{%*ozVz{}S(>zCiVmE3` zB#ud=yh$phNy{anEzL5DL6n8xdV40~o0CYih5Ka&jj=d$Ro5tZRFi4HC}wTeOuF16 z&Gt6>*pqwFItMrtYv~c(s zl;m4D=}+d%ix(#Sek8&Y*=e-vtft1XY*&uFWf>WzSs33c<#;!}TXgtKqe!OoHIa02 z$Z2Uyv9IZa)0LqK=umZmnmz%E=E^Po2@B@*RbjfEoq;K@c-@L|R+#jIh)BXC!5Ry7 zDn&Xx@q1EjKEJ+G5n((y^IV1VWrUBb{-R_~a!p^E-~IBYg8yEZPphS?b1f!J(=(1t z7vJ$!w8*tdI?wY1D_87z0eJZP^JV4i?Dbzs&TS1|F?Q{6qMtk^j}|bzPz3rWqd?WQ zB}=#K3;b%>-ge~=>!E5z@pKsTH$5^lH%~PTOeWYvtxE^SvPkjwXbFBYV~K9v3r!N1 zpd_+|r-}RYyYZ|NS?OgC$4@y7&9tm96{%r8+C$shLn)2Tw)&$5Twg2MM<|?r=4+7_ zZ^>P<;LKRR8!NrHZi`rmb~6y!srT$(H=OW%1@@09*pnF%ApTTNzt~r6CnVdpDr7o7 z;$>W}Vw1v;_$4T91LB8)n#Pg@c3_jv5dE(U(jv~HUGtWP20>jOz!Ig zR^^+7lbwQYx9B~}i|U7H*fIWsr_FAMwXK7Qx>3T3x7v{$yPCKvX`JSh6SI>|o{&%} zZ{g8&@>wf2R9e>pJcF)90hc@IB~GEEmQ$yXaVw6=fKHECiDr+h} zYTp6Eu+9t~36C=sx%xQe@z}!XJCloD0^*+@EtQ@K!I3@uq9V}ut6j}FEyJ!`*(~?A zR-e>&oA|Kt`~6pi_CITwUTe=@a&xKE3s%)PLY3H9;^|;EjI)tr-wy2TqBb$8@lbwe zuUNe?w~8NB1*QdpdzT1{Q!32EBs{CVH7uc+0k5Tt6fY=FdfBh0Gzw|nFX;VJtKu9- zj0l=Bqm@=1=hLkC(VgvmK`w|y;*I<^CWQJNn}9`GALg!sja~v}c5!|Y6L*2}FMNAm zl(~Wuzvk`&Znt?jcP=w1Vm4)VI;3*%&8+<}$zjSSO1Y*BYk%&Y6UF78x*?WaH?9KZ zsw@s_(NA-|kRP+gc@6(l@%jfFW{UnssP|x8JEgzTEiXn1M$9F*YI^-7wdhM%%2Y6x zcPEodse9Y48~R%?`_XfE2pe{l5wZHg1BO_h>}^}}%=8d#k!(E2%#-ZR8g0vA)6UO= zxZ_;j>^R2LS8RS+*k;~GSvM(wa6)mr-G%k7$=uuPt4z!5MYiz|%3~dmye|@2lG}5h zl6877e9GZ#n&nJYanFZ9wM|E`*trWHFV;OCV8UfQta$j%OW=f`cTIoeeJ#Jt?z*i*xmB=aFlF$aDJ4 z+%P&i&K`f_U7pUJdi&xoDG903&==jxQ*?%Aj1uv|-u+*|O9LLp7}tZr;+X@)03wu{ zS<+*YvcIa5-Maey9RA~r=u0(BGPF(SF35^|Is4>#cXSPx{}A61mw4d<^R15{h9(}R zDSEusiW!@%E~ona8?Ol={qB2E?3dRp)}N1E1#fF0qSh|TbKP8`9zlz%0oHjK|Nrfn z{ud1Bkw(j3T-C}?m+fon_dSA!KC+d8WSl>3l-L%&m1-aB9PZSz9l+RqIK)K2;;v2% z>B^-JFKq3NmtHePeF#*&0O!Gcw2FnphX!b-Co^?l#IafxRuD+n@1U&P@5)?k#NJig1?N1>6WMv9>X5XqtaFLBk$cY#uY8~p*u&kimnlS@lU|x! ziUvJ{zEOz$&c+N8K?jAHOrya>G%Wr?sWS5eckzrh9}!781||S zo%NPHiqkS{L*{A{Y+(_R{U2I8yo%C?Ulr{2ubOyHa9nSHh;M5wTn&niIkJ0UUfL(# z2v^Oz)WnO}5T%3O(@AOKt;K3aOFR!J*Ti@}PwlS62zuVKH?C(H)uvrJC^m=2HKo+5 z_b+4AMi6I`o4Q{01eL)&oiMuk=um#+iuJj6nY~RR{65NY7T(yPYcwcZeyYIy`v7YK zzq0*dTZJgB(9Fxy`;bA>*EFHAr0iGHi|x;kTa` zeG$aNRX}O`+_t?KsQ`xl3)EW8F>2})Nf)lS#grQEGPLcqi7vf}c@G)^L?b^l0vJI$ z@0$G}P6OQz=$VRUCBJ6Y*Xp*`7-c?R*&oAU&m2E)W1R^*zg%}ynDUGN&5HS2m4~{> zP=Tm>7qMonx0A)aij2*CT`I4Af=_@!RsuoE$$noKCKG#S=c{^RG@b6Xi{L?MY(;}m z-1z-!>Z|+whPDyk+`G8xBKYE?iz<8jubcPxP0%UzBUa+`JjOkgT#%vYSaNDox@`V(Kc0&2Nf`498!}0l}-rg}60) z8dBBirXHV%_SF59B-^-{BDHrI2uItbt^QCBq`ga^_MAqX*#)Miv-`EmdQObY9bRqe zY*vyaSQ*Q8oxWQ!LoY^m-}gpq;{@y{1kJiQ+J0qs9Qt0wk?$Sgv&O$LM0K+PnO<-e z%nlH-uw%n6%vi~{@@h<-`sXu!^ITu6K$!*u;q(90CxhAWR$X-r$IcU+<}{q-=*2E2 z-JKIqFO_E7K$0eCR1hh19VJP#T3yXsDU`>9MC`S(@9nX+gJwNnq-rfsLD?9)SJj#G zTTh8(5IIX7VfR;j7BvOx$wk=BINx(*(EI5rHD9`Ny;+yi#p6FeJg(x*n5_PI;yYy) zXbBQgf1R0mW^mIo@Y%%i#VUCN7rr|Gst z<%)xW-+jUQ4@XAK$&;uMq65V;m}UUnvocTA|Bmow1qX=lx7&B187?e{Yb(!q84&El z@5s^_@g%D>hj^c#&7C@RPMsd*6YlUXuh4}F5kSp0TD-c-zE@bQGMjQ$X{JHEofd5NUX doj71ye0{4{`i21+cykw#;$5{ndACgb{vTZwt8M@Q literal 0 HcmV?d00001 diff --git a/docs/source/Plugin/P092_DLbus.rst b/docs/source/Plugin/P092_DLbus.rst new file mode 100644 index 000000000..232419bd1 --- /dev/null +++ b/docs/source/Plugin/P092_DLbus.rst @@ -0,0 +1,50 @@ +.. include:: ../Plugin/_plugin_substitutions_p09x.repl +.. _P092_DLbus_page: + +DL bus +====== + +|P092_typename| +|P092_status| + +Introduction +------------ + +The DL-Bus is used in control units e.g. sold by `Technische Alternative `_. +The DL-Bus serves as a bus line for various external sensors and modules. +The DL-Bus is a bidirectional data line and only compatible with products of Technische Alternative. + +The data transmission looks as follows: + * In an infinite loop, a logging data frame is created by the control one after the others on the data line. + +Up to 4 sensor measured value queries (master/slave) can be made between the individual logging data frames on the DL bus. + * So that the beginning of a data frame can be detected, a SYNC of 16 high bits is sent before the first data byte. + * The data transmission is carried out as Manchester code (EXOR linked) with a display clock of 50 or 488Hz (depending on control type). + +This is necessary to ensure the supply voltage of the logger and DL sensors from the data signal. +If the receiver is synchronized to the display clock, the correct bit value appears always during the second half period of the data bit (inverted in the first half period). + +Wiring +------ + +The DL-Bus consists of 2 wires: DL and GND (sensor ground). +The power supply for the DL-Bus sensors is supplied via the DL-Bus itself. +Some DL-Bus devices can/must be powered via a 12V source, e.g. that of the CAN bus (this is explicitly noted in the operating manual of that sensor). +The cable routing can be star-shaped or serial (from one device to the next). +Any cable with a cross-section of 0.75 mm2 up to a maximum length of 30 m can be used as a data cable. +Over 30 m, the use of shielded cables is recommended, which increases the permissible length of the cable to 100 m. + +Protocol +-------- + +Transmission of a data byte +.. image:: P092_DL_bus_databyte.png + +Transmission of a data frame +.. image:: P092_DL_bus_dataframe.png + +Data frame on the DL bus +.. image:: P092_DL_bus_dataframelog.png + +Display clock +.. image:: P092_DL_bus_displayclock.png diff --git a/docs/source/Plugin/P092_ESR21.PNG b/docs/source/Plugin/P092_ESR21.PNG new file mode 100644 index 0000000000000000000000000000000000000000..0da32e442ff39b5fe002292e6396bf8ecd559e3c GIT binary patch literal 62014 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 Q!A2Oy&G#FDOUO_E0$ijD=l}o! literal 0 HcmV?d00001 diff --git a/docs/source/Plugin/P092_UVR1611.png b/docs/source/Plugin/P092_UVR1611.png new file mode 100644 index 0000000000000000000000000000000000000000..d9cdabfa06b0764183df49ac77c400d4317a91cd GIT binary patch literal 31557 zcmV*AKySZ^P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>DdfG`uK~#8N?Y#+* zY}r}gnft!gzP+{gRa>K$Xe}))kYePpF%n>~88h}6V<8Z-!S)#2;Tgijn6YOZj3HtM zOh9-DJ3vT-hs8!9KnP_p~qq@DZ%59f5R{qPuPLp=5jewHC|&Bkw}D?r~$WH3Ct!^ z@d?-~*ezBVG>!bKVJ>gNbEZold9SZWDI9T?prO6};$lT7*hg6*L^N=o$~I z)hbj@r_)mgiFkr`sT`tfh7qVf2gl)Z-v~~2jMo!~CiJyy*D%$7OmYk`xGFgLOml?F zV2$x29*^rff!0{@Y&IK<#mK3lA18!9ffqpw5(Ng(LJeUw;(YqXEoU`idc7Vt7$6gq z$z!rb zgZHWmFbIbuw0oZR>bVbeXY(sB(`YbKk6Zr;{52>h<)7s8O@g;y-X>f1!XdR`Y^!fBBM7Ca!lg!97dA|9k& zFCD2$oF3 zX^1sm!;twR$s02Qf08SE1qQ*D-4Mj02^D}hiJi^F9Te<`j^wEvAru;amT(E@Z4@Yt z{BSb>uY6R{g*T!MfHT|z2m`!HE+|WP(417L=)@ij!QP;cje*ecxL&U_Pt<~0!bnT9 zPay_cEws8E+Ny?5j$s(nf2lFr;tv4e@=>FLJN)&&R5=C#_NWoxllDzR= z%jyM(1VGT%wN@oTTR@gLM#4CtxHAp_UWtgJwg3V2ACFi(u30 zM#HiQ@Ha~35{3lI(p&gyMrjCSqe zJ(Hx4$>f-`0Z^ihL;?=kjx-GKl=({?9FwMA z$KP8gF-ji274n)d)Cjp%J?XXAY-=Sd9}rmRL9-1xo72h>QCOE}{JybXb9tb2r}9FBmD}C7hcC7$<$aWF)^^ z{|LNg{k18)@mOdRx0lUd%A4fsKY~O;T%(anfSx7%7;&+#3*E`RnTb)pA`|b0W?+bb zTMEr_0VXZTNeFfa{V)H?mm7`7qmMocN8u}k_ST}cyRDL{gdRB*x*0}r+=MpmN)xUE zD(ELLBaxyDsv3=)nBfd#1;t3b62+gn+m%DAKi(BapbGX9f6w-sO$~>P+!)cXVL;-!H^BD;4wULk7tC$i~B5(R08;>O^HEvsu;eZq8_vw^hU@8j7r8yx;5q<%v3Kz`(8GCn;$o6qOn zo#B88{`T*F;i;#dLi+TlKdmQFP4Et=2lCm9Wp_h^K*#E}>WyCCj)uZ^U=S8-DIfHX zgp=ZrDh$J|>*aC78^G>>j8533&>6l1!yWL$0k1~P$X=);?TyEw~Rl-HX>#Gm}E`>1(X?Y#PEh7J>C@#7#=^E@3%rI&g^*LQnn4CGI`-Wz}m_L zxbzj5!a#3NaDvwz4u5^X9aq0x4{`vTO&C)8`gyD|emKcKILSUZ$tO6$4Z-2B4^Ru+ zjD^$*Wu@Z>s@Ya*f5{(29A$WVOfRBp_)q)o!D z$7ypMK0X|p)5omOTMo|m=YFUg?c_2bl2AVA!1KVf)(@eR$t1U$HVG6VLn4u&l*(%S z$HFP|n&DLEgOmK0fzxdtoa6(;DRyiSVjTt4$ofGNoF=p^D;kXwqy5^m*y@6~31e~N zoA7aAXoop^9C}MSW_{jrIP^lr2f=GL-^^I@)Xu=}BdY`Hziv^egMS>?4T6Fv*O6R@ zhByprmG!d^?6htfM2>|ib%GOI2M%3cGo0!U4987@!IpVP(RCf@6P(~y#-4?S(1h~Q zv^nQZf+=-^6I=%lU0ySs>JALyF8>hfp-{sUoZto@%nu_UdjzP?~{NgV=td3&V?$6x(<)g7O!`W2Lm-0 zPV%wAX~qX9*#{@t2PfGFIfRXall+B3$U*~+MR3jnK4^v$oIv5w z;-ha>p21vQ3gRbo47G^7DiPXtc7BV!fX9am2$$+G>&{j@xt0Cld|E_!8B(TyB zevN(=ICQaW^+l7RP#Ah6SUp=W+v;=m?SY0|a(d_oyaHD!7#@3#s^MNf9Zs&Bc}=v4 zYP$Szl5crnfYlhIGyVpoM#faTsTgUE!Fb1FF=UMyfmrx)poX!~`rmxe*}rw*sO7`! z<^vr!@D?odqHD-UsQ!Zvgp9}TYl6u`eAoQ_4W*+?N{tcsVjMKj32rq^B(zSaA5QWu zk3=G&CN`ByWwTj5`(lq3$l4cWr<(AwAZaXgH2l!k-+XYocgw(0%ZE3ug@(`^e#_-@ zqtUEH})C=*eUf(i=Zw4CIrJad4VB!7Ya1pM2%N{r>O&J`?pO?~yNU;Q`#=4V`$x-?!;8RdN9ea35|hiPk)zRgEEa+Ege(9YmQ*U^#$)9P&C9*R(QuTZQ!CC|;{8(S# z{FZO|mbbm_ZIV3DFMZsve#{@k)7K9VgE^oHLvu#->CKdm;5eT|$*TA^$sV zc|*W(DHuH$q|zLqbwEc5wds65k4$%9q`NSP(X)X+UcDyb0r4tm3?Uf+IW;pe2yRa` zMm4F|Ybtnw{!FxX1h}07XhBGEOo_XA$czpqeH2>TYX|k{=pi$bZyrJ?5;1HuhEKIx zTwMI|AODA6_`(XtsE1BzZO1}r9VR~} zRI?8bM`$cGBZxCltyZyWWLsKX{`e<8K}RHcm(U_YL2)f0=onS$lr}*~-(8vdDTNKy zkYQBWvZ!P)W;c}g^_cpE*cz{Lr_*!ut22X4OuLPqR3(ee8=B$Vi}CCXa$<2irQp^j zG_s~@s1<2d)AaK4^0$Bcw}0RFec$=> z=dWJ9N%DLD)pa-`P=nxKP($Zsk_GrZ|^x?UGIuF+_q$?dn_`GF67K({>Cdp5Hx zgb-nZ%b|icb+bmF9k2Cf{7%VrChP#4^4DKfaB3Jf?^ zZES47nGb*X!$0*?Kc&>ClvL*f^*GXN1FfT#>fj~x(bNu12gkrkJ~qtF%`s;TB1@5x zWoN{j+oQb7+FS>5H=Gsjl{cSr-B(w0U5@E zJUUOni82t%ig}8JL&C6V1O_Bx(F6>$Epo~xAgm3*1~?J5dJ@kiEFXj(lCM(1l8Uycm&dtrT za7v{eRtLI%;~Rg@N^G||L6YrtxDIEb56|iG`_4ohp3@i`jw9F!%be;EvbmgcQAb|| zjR6`t7FwZmqeX1_#9A$-T2rys0^P(VMvQ`FmW>Y>V<*Glfgh+6m^4P zv;W8%r4@9bT2@9fnN&erAzn5+1DYTvo6T}Aq{zjK7cnmMg$iF6h+jpQ=m4V$5V$2$ zdbbNFubCV2pf`Os-H|`~O$H(#B#fGQxW7?|z|j7HAPdgBFlK(`3?kZ#A)OCv`v zl%Y5ww5DAIz;s~dwSGUe#e>5s<^yUH(kOi=ThHn-MF@wm&~$r$14;%*+QZ>?fE(BX zlqK{{Z$$^Q!1UG+jE8asndzr2MVNT@S+zq9kd7CXkb%^((AsD5knm zzf9T$P@7jkc?75ZBfwBq)bB`RAv^qD1~Q{R!sPKecHETbp`qykufs#gVr-QTA|Z@~ zADZe1b`B^5)UL2)vz2Q|jJ10hQj2H`QS;~pm&RT45s=;Q`7ilsW!x2shV%+Yg8ELN zV2H8qTXuKMWpraP8V^T2U@v2c=KGYp>v)T!nKE4vS&NpihasGra0vCRM%P|rhn0`OSP9`rioF~HE&DKZoq zm=8F{g{%V0>KfhT^IbxE5s!-tI~>O8qjnP@pd-Bi8uOar*nYk73X{Onme2rYQ2uD= z_popm*&7wgV*oEyfRwuNjRmY#>#M#8%*HTtlw4n5-`LpL+S)1>i+F+h>6M<z;*LUvt)p^cs;DCbUJDN+WVLb($Gik3xX^<(;baDDwu(kRx~^y zP=+lIfw|C_n~&h1edEu6<2QZ-oAkc-z3-ui9)cfegJw>;fi5@=!$H}Ou_c5o$ErDj zxhv8?3e1)x4P)|19d3u$t6vUO}p^tHtJ;8RTIWsc@Yv<d1x61rm}+PNGD(xxWF#UV32Q0^ z$q$P0Yy^g`K;4Aj((Vi00|=_hMcNM?2PDX7!=TERly zoiA5m6-ZSW3fKG(*f_5bF=ZShP;J-)LCXTB}@c?UZW7bnRf*9uE7#5Di7+ zdSRbov^?6aUDky(ZaGQh$Tb2_z$agP>B7v+T*v&VMGRy(hy!iD zItXHK!ht9|sg2nUVHyYZMlBMJr8B8PpS96xHd>in24_2&Ote~UoR>&2RIjsZF^0W( zJc(l+4N*fq9E@0YHx!Iu&*Wp>fknJEu;Pgnc`&uu*^VVgLv|Z9q=ue+tO3dTG4n$N z7A&X5L?Vq%x^m@8CY5Z|Yk%o4e)JE&`1|Q(LO!lCy95I=Fg(*PWAn|Kvxj3qk67?# z@du(2){^W$q?rd!`sQPnaM!Y_#ho35i1FH$65j1r+0NPa4xN~M|Tj%B6OoI(4kOsdzl!l7U^6t;RDbp{w2CYu;)5dYeIu7Va_^YA-) z7`Jw()3ti$o9Y<$7iL5vF~Vpp!2;;g@W6)L#L!1pY`4qRDQ<2pEzVxOc;PSqrH}pQ zfBJu?r*c6XUtb1+I<>pDIJf4bEc%5csp1Z?sBjQk&7SeVXk|%n|t8? zyPtdN$&Y;7U-*Up`{%NmbO`Oo5xQ^A81iundZMU!-gqi8vxms@B+MpBv?6OR9FkHI z^JyhbcIA5|^aR`!=_Rxx7>KH`5(>%Fm*qN4)JD-ag<|=k=`C2N7pe~OX!Qv2-w9he(?{A#bPp$Wz z1+krpIk_45|ciy&P>z{1)^b<~Lpg}iXw*LOiBF_b$zASiiM>!2I4Zcc;dVwN@&}TS z%tCAG!69RG6firoSWSTD@c1Ww;-5bL_~RUVP4bY1mIvU%VK{f!J@;O?e63V#|6jlG z%f)hIb$z2_;}iE1=`_1KE?~7*PNn3x7|MXLDd+@&h{F}cq==X4dWx<+-4Yj4e#@&(^ z%9;-=86`pzQ5(g#wzimMvKsp>-}ZCMIUhunM%eKf2B(&xj#DRvalF3CKaYMBhC-=qlKRJ|1+*Xq}6%}%FR zF4gLdRv;Aa4niC%8$Bz6iycpP27yM`4#hF9@n>Fq`O3z6saC7DTbI^WU%h%|eQT@D z))tSqY%7$A$FmtuSWVjsC*qMrDwIgno83S(7KkRSU}&e>V5+-;P^Hl<*IQK#qaAE? zd&O#_+G^vNmzzz5TDwDJv(v4#T08ancD33^&rqm02*B%xWpUxegp({YZu@Kvmu{PdmuBZeVJ#8bqO0av(Xe(_2v zcNv)K#zXU{AgiL+JKFg@6mH7%(8mmhTcP8Kg;PRnqzaNxdK)P3l&p3O9?s3oGJi77 zoP+{{O0~XKEH%5mPOrODE^Y4=VM(psT-)5Jx0Y&NRB zZX17qi&@9G$mdP5DEG_?QyUIrocbJZFwppgSjlWQLn5XPixv%sQt4zem0%TAU~pTO z!}N3kyO>IgS4`=R&9z#!%*m|P!pL^zhX7&BWVc?gTHQ9Lv0UD%R?E1at#+f+ZFQlq z{H&x=t5t|6l%y7C)(&im#%0^aCFu3-xrKT8{wR|XwAZ@H8L-8sbi=hC~9@Q!~qlwRWeF zj`y0?csSUo>?HXoV5gJOR5G@-Ja5_EdbN~ECG)vVBs>V()_r%~Y4tj%R+jqR&iwS$ zOD{ZE$YmOpawZYaq?6ORY`b1tnxD(2k~4*TJRImYYv<3bsE|xVPM=yVC;5MkSw1M?!;eurD7i46MH0ZMW*NNRTTT4X5K#7EUb6QQWrR zSS!%(2hzDL9z5GcZmPi6ku~qc&~5^^%k-a+0b&2af#~(|$m7LQdHM92L1@siy0K*F z^!era<*EF1`rZfc`Od%k@ee-w$kNhME|=r{zyLPPOQ&E6BkWA44`ictLMDRdXk9lA zqrw>IL>wGWF&}7%M&TX;&7lLC!=douEVQ0EoSRz%^i2gu5fgI<+`w zwHs5pH1xgiuGK^67LW z*gw0nOcM+9(jjyG_;r_MKy9G(3pnIE3WzDpMB@_XF}!hq8^$ zbHsS)An3&7p@c(`a=Dt%Phoc%wCS1LsWS`j{pNS}2b~Xo=snq7tllV{J$vfC?|pb- zVS#EXj!TBu0YRxj>%1Zl$ooQg@tyrVPPw4wPZZrZMU(TcDKus zs!_+eD5m4FG{!qcMAYterwTc{*9r8kbTXdHq_UY*-|D5}Z0wOlEIP0))&{N%`2&4B zh%Bd^uPOHy-}Q=$#QD#54z`XJA20+cg)SrQ7vV$&~Vy2 z$dkaz(NGtRMvenX$9RQ5^&>y>#1l`T$I8mexpU{3YSnC_kuz37j}GX~(SdN^4vfbQ z6qx{dMn^2vE}Nfw?)k5LeZ^XYN^y|x3{;px-Fc^#=stQyRG%r^+3RW`Q=x;op!y^fSt)i5}t)4^5u5D zT8HQBS66X-BcX74XXnDJ7gz}wU%eS6~<`l}fYGU`W{kAUA}N8nt2%aBT+qJ}UF!AbtP92R?BA{5hOcP4|U|!z7+) zJS&-|QIb%&Yp)3L`B;`3IRf@&PW4tG*y{Bn7|3v_+3j$svKi}OsB8Db zu{g#oo6R$?=~O-zj_30Qc#_FvXJ_WCjYg%$90$5xtJQ4FH`3vVJiSC1ipo!@EY?*x zmCR)GQ`58ah5Yo~+(Kb$hP!wiQyiy={CGQ=5;X?$hRFH(`MHIq+4;q(nYmoHkV)s_ zi4+vV=1S#ZcAG)doEC9{2f7mrl*3vUG&gTxVlr9cEzK78e)Q_N$RL6_1Bb zf!aYr41kG#eK1PsNekkJL4{-CB)?|pI09ylYWF9!fZaS0Y+H6P9`A?3&2BFkjWNlg zSd!atB;F5%W6@*)=EV~F>H^MFP3Rkm$79K8EIBhh7f+;Vt=+X(SJ!dNYqdr!o@zAP z-EObhYFBH`jg8GlqaBXLD3wSgt)4t85e~&Hyo5nWJ~o3#wFX;4APCPB&{w|ShJ--~ z(ZxYPK!r#w5e!FJQI-uatvbu7-EOv8P?@i!D?U}UP*DjcoX8(3equWPH9 zZoBO)YqKzwZg*;-u)Vr=DQbQR27SqcCtWBMWIdR-B{_9XhM844tKC|JeuILc)Q|~q zKX~zDAfLO3m|h4SzzT*UEgQcz)(r-T=~{zw4O2L%)*E&|*lPEna=F^1NU>BYmdf#D z${qw`i6lHrq%ts=3s1%F2fCIWiNz!FR49_b^zM`@Bw=G)?Jg#~-L+UD*y&Uz%N2@5 zbA>5{bS~GDj~{|nLvF)w`LvkI*$Pmj)?g{gvw8YKaWE7SyKNror#mcNdOE4I3P?|8 zwv=YGRVYk1%*&;gmKJt)wr{`VY^l7(0t|(%^^Gg(Ow8`fhlA=yPESwg^LdOkHSFJn zLZ<*iv&J;$b-^2*(C$Z`@>H}E+I)CC@c;{_`@s+tG!LBx19qSDRR^g(D^!j$p<@fgrbb&mt9^Hkg^8E6hL% zJdOCw-0aNE478vsD3Z_S(&_Zl!XjlCX6MK=KRZVZ@m%D|WwJ~23-5UFZFihKPmG*c zdse7Fh=fAnpzIs*cq)eX!cG#4$;YS|VEBZa>~v8*E4hH-Gl$ofW%cME);1IlOi#}y z5}A6fSFhTQdjG}eFXgf`%?2lnV71=lpczfX>2EY1BLt?_>p&-h@F46zK7@bdM}PFO z#~x$2btceeWJS8vs#O%I?UZ&lHyh;&S7mEE(CgoM$6YVI@ajxqhB=tZ<{tn0*OupJFTV0} zHkFdcMCA!2Ix3%mu>T`O*?+q7#NX|AoTq!(;OVLS{M=k15Xoic+s$C76)lx}k#M0{ ztaI8AM^Zg@gunn-DHsk_%H>+UZXQD@QyF`Ft$Q;s|odveMr>ayUMJ{`~vi z_ejsYXPQ-I2%ubdz9AnA$u|y8vJaZ1#3Q6>Jrst2_|u<${PD+8^wg$S+^+&CaBg$)!b1 zG>uHfWP*W^52GR4Kprb%s$~)5SB1jG;`VLl&s8crY)Q#fihTgqhJrC1 zw0JDbVK@;_CllG(xut5QfrFDwBrMyCgd^A1R-286Fvh%4l+ehAnw&dj*jYAeS%g)M zX8o?a?t0{rZ^p`)NV1SeM&1Y$v45%`nqR350bD}A;eBXjvl{~aqQOb_!u-mJ<;o%? z0|G^G_$Y$eE@O(fx2ughhkAXCfjq=peY@T5yn68hsl+teEly@dtZS)6ww+Q*UOv$4 zRVo!y0kcm1gf!T*ah-$hUYD`P1e1!*BWAO>O(dm=ly}XgQ_#v9^d+)yb0Kgt4MxI5 zVqR;_1_pnpB7ZL?kqAIX*N3JT7?ge3pcaY~AuCD#=prSfQToN|q>ps!!i5V@KmGI{ z8vOAe|1p^GYLzM#CLZ2wY;A6AZ*3QgYj_dGqVNe90^8MYA?)nz!2Zq6O_Eme zPii&F;)*B7%V}rDWE%TqdNv-Ul9T2#=EWoOM0PxmlCW92TdA{1`gS0l z&ay+FJ$s%Ej0~xaD)r<2yG^(aA-J*&odrTF_ov=8yx}c0V8k`lfo2-^Av9pn$v{qQ zIWvb4ibk^R<>@qY$t}Eu0noS6YC*|xBr>}&pDz?Js<^V881O1^D5;3dR7fcrRolkV zjZ+2H0uFOrOfYnmnI@_$o@gSK#8h{B-LBQ+Ko<%}WAS7voz3P7xjc?>A)U!JTb)|H z8HvU#)q11Z&KIVUAtmk69E%4~Ckkk2dNu|Oi<(UGU~vg4E_;gnnybsg+uGV<2{r1i zPP^A=$a-U)qp4Z1;&{D1;VFLC!XG3EB zw5!vSH*>;T3Nq8k5q5dj29}8_O(k&#U^yXYpG-CzPbHyjDx0A=O%w_RwquMXk(7nd zYN4qg+K~Y_gB3ze*=&|Pv_b|bLYPXYQB+94sjFItRaj_vuLd5F2g}VZc_=IDq~u}c z4yV+vJV^#=WObNF$|ky42DD6mG^941duo$*1L0Pa#noloXt$tsO`9O32o0evIbFNX zE%7?MD!8(OTg^lGIun}C9sIgU;4pLWYnRZ3I?zn;?&lw40F~ph7zLPSXlI$PV3=w6 zDu=$QDZ-_d<%OlC>Dk%EmF3gt&L-2TjA1t6`P*;9TE~)!{PYyp(y5hnPX4MVHBcLK zPi=4=9#BtVdMcC4%7=aVd~T{xn3*PIH<+HArK;(f8Cu~WKDW3q!+~;X5rHIR+GXV| zEH6b9@l$8da3M_1&d|GNGk^<(9}gX66EF`asS`C8hQSbC94(j%Whq4w)*H7}!pLz% z?sR(M`_vj*id6D5L=Y6^b%cSAu*!;&TU|LLk;5SA7_Y-w=;P<~ey+kKcnOW5reYHG z2dZQygorXfW*265A#N-Y$4(Q{Q}$q-1oB~2;S-()G?FUhXeGbM0=gui2+;^si)E!k z2&8Htz#&+r&54!mbW{QPtT&Uz{Ohl|2q{QNDhd#?7&vzlLaAoE#cHwGSi16#Nh+ZT z3Q#|l6N+Nv;Hp982ri-751Ng3t=d2nxXS=UB2oRwnVb+BHdBfu+I7cv1a2e(c@VTV zjeK1Y{`BAb%vZnqRR-Gq*iOf2YzIInAn)I1B9V2N7*_IYsvp|V1H+8VVM;JJ=tIci zCY4N~68ikYzx#LR&!0Ex&L{(>7DPhfwmgN@Pv`R0MiV>v=(l|M)k~LOxp--(RH~G# z9R4`;;q^9K&1$Vus#R)@8cF3ULcM|$%~6Uo-%io8t&Q~!4v6{#7TdCrOT}Wd(Wr3- ztk&>SuU)-{ue`CjS+11Zo%ZV58l+s`Sg$wgoo)x`wc4oRBUk0j*r?YV6@*&7RIW4| zt>R7z>Y~gJLI=kH6WYw@3hQfYTN~?%XgHrqUwri?wu4t*ej%65&{Y|1>1#MB4>U=C zZHx8T+t^sY|Ni^%aOhW~(VUtp#1nB0GqX+ZtJhXnR!(IzxiCl0fc%UqYTn^QkC7)v}x`-d?h1~YVCDldCC@>TpG6ejdup=iv1h2>9g1%my7 z-E|HC)C{xtCmb1o4g#fMDvF5}H@<5b z?1p(H37B{y^&;L}=EW=$)9!U~mrHmlmCEJImvMI4m#>#~lKG2AqMQzy2{=SSrhzF};1Gw+6^hEM5To%}BpxG_zv><1z$mwX^Aim*(-b%D z2dshAMiY^sI5Wg6K}n(-{S+^rOdwM{6pm=KzoO(`dK&%1C$J~DbRQ%9t?yzof5)kr6&0i06CE*v#G}o6>f}ih znywxSPO$?+=YT5rf~9mtA> z*6F8CGLWe5huT8yZM)qb;LLD_#?YJMwsCFt8XIm}>K_M`*Jt;1tn`!Pea4L>N--wv z8(K=1lNl>+Av#M!KWQdL91r7NYgt)r##-wjYrG^IxUvo@#fhOFdI6AM7rYrPw2r1b zrjS+R^>##HN&_Ar8rm`Xx&|~4p-ih`n~_CwZaknMnPDDY_|()CE`)ioGz$r+kU56I z$Y@0?#9$!Zc*?4$q0IpVmE9OhjRh5Q2BnXh6U`Bb)KY%npWA);-Juei82uQLQiQP> zgl4x%vqzAZNM)xKG|Qem#JG`u5U;7K1~BXKb^GM*1_*t?BC@7$0(4#hL#cvJo5D?X z1yZen5DQzvW^X~Qo`s7cr(WrsyiF@4hfQOXL^e+wYheSeD49-W^SMkum&l|~ojsGv zW|mf#7f-LuEzA=Mv&k?!KUbKYnVOqT@A$bcA!=+Vup$fBLi~>#u92_!B%wX@O(Yv^go|B;k4;0GlEK~#OoB42uXkuK5 zz6Pd%j1D7dXe}28h$5yGUGiM=naFU=!7fw(7-;K$Fg+;AgaMr}7!ZjD8x8rbk?KYg zIdK^Y)r_#!HfohbEK=OufEqFUNhZ>PDixbid$HM)A6^;ZsF~-6nu3+CLw&U8E{y>h-3} z5OcZnJ8>RWXFp64EjSc1gfwoRfQOSb%7AnjGa5T2#;iOaq`M|m;W(l5hadxKWJ38X zj6M+0N*u^*X1Q}Ri`27F)9Q7MpKN2EVk`kHjXZhLi$x=>+L*kYi1Q$8Br3nJHl~r| zqnH45u#@LN%(o6y3&}J?$Lb|hDdNdvWAe>Meyk2v5(>&A99?l;h=ikJjJxKwi~T{T z)o#`soLt46n!o4CjFA%oDg$KGEnyWrR@o1@rER5B$%UnbYPB*oJ59|vNb>H`lljfbwhk{#=7QB9V zctU&rcEPOxomVr6!cjHSnly@GwV5rQ2BsMyESsnN*h#%=WEh#oE=8j3!?4`!#y0i| za*K&#&S=oGiI=iWC9ZkD59!m%q}GhdW`%T`EvQN6L@dq)U)eo+-EJZpo5LFpg;^n# zg5wC#HyM{l_4BzL3j-Yp$!QkgfF*;r96;rWx!X-*V6Dny!IlsW$7s4-E?agtok=!Z z^<*N}?KE=oN9|%W)7dkp7nfIN=jQY5(GAV1jV7ADNI3nWF>vK z)1h6Aaktfu21DkZy93q|%Y#T-Y1ZoUCPvHZwA-~xwO*~^>r)}MLSM8(J-5I66S~up zUkc)4&CShSym&E}%dwK_9IR`$s^JLxMrRP{Mq+j-(u+hPjnltLDz~v>7E@AMf#l{7cs4B-EMb#&332W)UaJ^^jaO<16BeVn$;TC zcXNFMYXzGR&qn=(~1p_1UMNsg*0(c-$U}l(vhTt810*9W45#3m3Om*S9w| zH`e7x2J9Ow2D>XC@hTuRpbHRsAD4qXY(K2KnVGqlUV2Hs(QG!t3`4*Qh3#l$kjrv# zpx%1DzS(S5D8X{dq|>ZYmJ`dnUa3+)gEj&+9@>iBnki5Ll{Eh5=hUjabF|%TVzWtQZde|8IP3$IVtL^3&_U^i*^#i0P>qi0 z${Y)*to_B@R#BUS>A+5=V&%$qzu)Wj>I;hnJdI42t)j~Tn^RWO>{M9v^>uma3`SZV zah9SV)U2Tr`T!PMvK_kMjU$>o8&|92F(cEy`7x@v*W6-snR4pU zJmR192UGd{bb<5LOt;NyQpr># zmrwS3vdN$xVP&V(Ys>F$aPhrt*3+#c@7gR^Kr!n&J~W&@;B{ym&O+ZHr;iglfwE?3 zo~9oJT8*YIq4Lg7tyZI+YNf(Xq6*Vf;P%?>$XJl5_A(j@o<4p0rI%lzbz9zq9ZjX< zolYyANfZjXd_JAcrl<0`W}_h|PRnMyU@%$U7-}b<>s~XP+QxvKW8owp7}~lY=#1vt3qmFsXHYCF{4l?^(z3Kj2+4x- zX|;S_3qL5Rr9eKHBb=X^)e(W0kb8D!W_oH$9t9o*5U|I~OG`q*cKhtIk)-l7XU;4yFR!euEG#Ub39Zb{%n*YP7+YE-9+r?n9u1wJUznSF=$-Gx z3Z6ZCc4lh&?5WelPft(Zb=O@`kjz+CLTa}9oab7|a(Fdg8t9jl)Mf@lK>gY&4Vf(H zO4A6OSs4NO12poky*OmO@1A>p_jmp?r(xn-%_goID^}jXkj>#KRZ3;LoK2<0#oxtV z{l-qyJ0hu#7%CwNxnbVVB%^K2jSfCCI&1MGfi_3wTCMI>;lKCeKlZ18`lmF1`|Y| zp01EYq;?yDX8VDljjvp-ojH4cZGH3I?|EclY5AGwo@0LOULPY$rS(RG!yK+~qfy`4 zE;2)ndYvO928=_bnz2S*IA#tx~y+CM|iWfAz|hE4as;?d0d( z_{rrmRbhbT0le}Kt}612FTTiGkb`NhTHPwjZ_8`-`c7$Qd#6~c%I^wF=Enu?W(StP z@Z7WMWX$Tc6S2^X&pwk)CrdlUSX5q&E|1I^cbCmWMk6Y}@$Ol@L?UV17N=6oJ&eUK zK!-vh&xCKRubP)6CCl5@W|dW!h9J*8`)sG#qPlcCjg3$yyI)+$I683HVn$fTmjQg= z``!ngB+Y<-CBa}4IZV=6cz87ocX?2jR@8nS|MSqeDaU%5QPbg&0W*DLy)nMPXyC-F zY{pkWDv=C|#fD=(XTa-VP_VN2uUM&bXU;CpFWh$SJjWwUrY?94tvM;DwaG!N5hr~ELh z-Nw+;M?kgBTJz$C%du$E?ggHD;+fgm#jk(uiPBcJUTH-msg=c*rG*7f!?;GQVVc(u zXPA9CFc`Rlso)l^Xoye+b#f+y;s?AAjicNG4h8M}YljZ5nKmIPVA_~qLSi(7LfZvR zePeKBUDWOb6Wg|JvokSgV%wb9=EUYC={OTjY}=XGw$rh{es9&i->vFjUDbWM_UXOX zI?sAgl5snT@O8y00ezd@fQjP}FIkp_MvC-jm+J|J299c5TieSRV~w4?z3|Nd=GM~? zZ>}$B6kN!nGLDeZ*cxoJ370J%b}dRfTRX$JOW^e=0V&RT zt#{81KLtLZs+P}ZA&jN?7^Zc$X-*swBiX0I?;tTzrnei+yG*!*2_>!2j$L&t8DT=R zPQLRb=VfKB=&ji_Grfg5(LJYrzQnF%9*Dlz1o+>B79T8%*DgAr-Vn7`Chw8cGQC}6 zLIeX1#LWT3ma&!TZQm*O0bS}@UtszB8Lim@L;nx2|639s$tDpeQ%9Y=j7aeCLrrHnK|bH0)$ z(rf9C_5N$|&H70NtrQAS$iUCp%A^}mxDa~z#89PFifrj4?Byd~Gj2cbC9Z%NF3Wg$ zuS6H`@Z*XvfgpZVn*Kc~RgR|I(d$Hw3d83k6W0QCJ9u$A<$jS_YG}{>67RS7Ec$wC zYWOjm*KxgmThnm|f_mJD?@o*y)ONch&vqCSwQ!62I8=g7b2wcFSmhAOdJ12+p=W*P z!%#^T%p&N=Y72E=`yno_1mI9X5JOx>^59=RGmfSQ!f5q^)^|J-#qy~IcYb3<=kqP31K zbG?9T_zhW14aY;?UPi-Xg2-zamUr)00irhBR<%beQG!h)mqy;Et_WNo-Z(FwH{s1Q zo9w9&Jdk?ET?+tP2DX(0am84*HcV9J1omnyV~!%SY|okqi7%rW{#K>kTD>+VnP{sU zC}!&I(HGwm(${G)6H;|c(n7GN*ll{$mZw(|o7$Qrd#e`;F`k(7*oOE1Vs^TG^=fhT zb`MA5!`m-at6E{JLA9M_!6Hu@glZi(_ZlVEP!Y$_Pw0w;8f#dM-4-L^Aa~)y7~Vdr z4|{$dR9fqD_OiF|2I|;YBzv~KMB z6_=oJVpBSAZ|DXsD{4U{Y!9}uoa-yxb&`r{heS=Hn8Uyk&XViQ(ST`Ke{b#ryfoy^ zH>UnjW#w_xzMEyx$y}?iv4ejQBO216X_OuhYBIVLzebw!D6NaUd<&WU_;{w>!}>Fr zb}+|8_+~U-XT&2K{x*1uS(??g`d%ip*NGlg`6?6m&^|L0k+9$t-@TsN& z9H)Mq^<`_?o?fr?y`e$8r2$Y9!Wb@=iBy z!f5foTXx*0H+WN>3(au+=QHqIv=nN+PjZsUEN+a_EKB@?+meAA#}iUfjToCFTgcv* zwuY}SVD1cG)QN^n{IbHqk~iqPD_TWcZLR;3ut&PPds6wl&*tr=xLC)s6CW2hr(}%K zLvCcm9!S@=f;2`7lW1l)Dm2UmBMN}tB3}p!M%`f%PLtjxXDUo&G^4DA0~hF>E_>=Q zQlR)&nzFfMqKGqT?tR-K`>|O2T0~oi33ZCYt=oTpdTcJ*kP_@u5r?| za^81W%PKFkGPhw6Vg6>n^eHKt)MIX z3E28G6gY_$cU)e!mbgVAer)(sZ1~dr`EUd-e;(Y~pnC-Sf0S^<(R;1o*~DI^GxFd$ zuBOPx1}>|iNWhW)*8N7nMYQ3|4>CODZv_y~JZxjLCZKKD2oA50Y)}uz5p=@PI%jWB zB`rS7y=Ns0vm9=Qd>#8`wcYH&Ih#%WpnPD;dLqP{Mn> zGApVSc_}ESX8&c9Z?F*6k@g%g`^s}h9$_P(%;;8d$BMZPYJo676FMyU!Mp)Rz&}BT zA2p|l?2yZ71W6Ol^ZfH~WBIYgXzKLuD!DKUlOX`06W_ynuu1_MMa369!ls^*X(zTM$Ij2jix_?v9pIZ_LlW)Wy===#uaUt z4Xc}sW*%_#8FA3bJK_{p(y#gyP@QQ8iT>&HS~GHzPzf=N`0$}noicop@jp-RoEd&= zZE5-Kjt)B|QVt!*wYu-bg)klqz-l#iK!m`2{t^^KK5uyTMWd+0qXbD4?Kp~JHMI8C zb>X|Lr0lN}yTh+kKmzKP{zY{CL{ualkvc4FoJroL4X#?(5=YowEr7?oJ?s8B`+Up$ zWQ`XB!41XXsinpoe#KglN-e|_q=W5>An{kWE}gY&MpWgDQX6`T1mTAY{SJ!a8J1gn zEBF?4;#}05ufsgYVvqi7fnyqSx#>+r41^y7t!agr`Mo&O%62>PX3GY2obcwwR31uK ze;G<_){g_}RTKr6jik}8jVK))(@lc;-N@K@hxp2KI1CY2Axy&PwSeq3+NE8v3Bx*& z%#TZ$8$HOqf+er@Tk^Yj%aZx81#4p@9~UIC6 z4TZ(k)m4q!Wo}kXgiv-j=OGMBHInrD+Y>B%8Hsi@X;HKh0#X6H555o$2eO!9OLDXP zC`)*9&YGC6va=vF)CX;Jfp5F8&NeYox&v}MY#~iM`78fYowQ`%wq5_|RPA1>hSHR2 z^AZtoG{*HHb=^cxT+Cem5Y5LBV?;7#!s*>h6bfOR3QIuS%7#E(As2EfkM%)vH6sgv z(eYOgoTPz*lq1-bx5Uped>agSgrVfBTl8!Q-E98DZUp%^`0f{i1jvNZi?;Xbee>#l z8`U4wPx`@@0?c#pz$203&s6$}7(d7Vd`8<))>W$(VM+IV@JNBjQg%1%GW{nk*>e>5 z&DEfF;0^MfAND>&<7EbL$~C>+Zi=k0z(SiHZWQRp+YI7Gf0o{ZBKLWW2br3g3vY{y zTQNk3o=rCSZa2T4s`=6~NVBcR_B<=502ns0M{4vJ7avW&X}iO$cn{R`!fGk~sWS+6 zh8$YJgEo2B2f)I1!d*u4YaYu8)<51~)ek~E?K?>X1)+xR2k>|-UjD07U7wC`RgSMC%^aV1lCMmd)S;Jy2d}>d z9v&VR7hw*OjlTa~`Ge7VoG$i3kg`ygqW_+W*l#^r;@kItZn6N8#aU>#J@lFaeyYvS z;)z9BPZ}IOL0g?C!s3avwF&>4@Y9H-AxX`f9yu{t!i+3eP8G3MO}AnJEkjU8+%S11 zLSNatxk(rTxjfVR%Zp6OLUKnEn_+f$%FJKzia z64hr;UO9arqxecG{v4O^APE~jEJpIgWd}JCMsztT-9hyao~fawHGDT5_{6X~NBNH~ zag_z?zyn?Zc_@Hb>xF=tV|Y*2H6))%Yt8<7B+k2FM+V@ZM~o^>QKiI-hq5PJk3v5_ z0A%)Zm5mR|g!E|8hfq=B;^D!DK&Jdx_8c?yj0SZ$D?w)~qJA}28q5K=D<*L)PG(XE z5Bx3$qv*+)jluM?e&qjtPwv{d@izSVMA{D@r*h@9^&0s#YnomFiNN#uAYHce{b3Ev ztFTgjdwPp|Sp(_|RY zjcXf0Nafnr;boxNFQ%!b2(49BRpsT7&YcWfqdQeo6Jzr4$tN+)EW`N=7xRRQ9Ci*4 z9EMnmgOh}eF`|>8V;$mBkp6>}3?_|3{0}AHeAWQ@_Jz))E}!Wf{yB%y=s_|rHKR*y z3#2QHpRZ#Fw&&#MR4?BeNgdt|@`vYLKl%ov|K=&ehkMcT=1o_y7hqFM8(RpVrIr4! zTPg2axN6#WtW+BxR1;XVUMjT&MTOdltmz)e6+7r2qW*MU18GM-FAvoHR(=N)US52< zAHPCd9>qjP73sWC@A>iZg`B{;$rZLQ{$iOaBnLoYbof0$g|QlRXffezeLOTL$I9XV z1Z?l)h2QK9#WV`mz=p=n!)bN0MNtK^M-T6llM6h6najSz9=^Mjq|b0%g@OW=a7AN} zD6@45%PZHDnXEY2v=BaFD=!l}cQMXK?v_1T&;^v$HGa z|C~dzAtA;}2i;ECxm6m}YMH=i=JlMv4{EU<$5A5hff~n2KNcMi%6gv4_#>bz)j^E$ zW2B3YkCoSCvsORXQ~dB0XGfRM^*%twnm_34298QB10Fu#T4_Jt%E1~| zhf>KJ{AF~&=jGK0uGybra%wL7#G@8?;*Y2RkaE}4t6_{(fu&O3p~*gfc|;6v=y~_D z$ltJvii+k9cft)c3POG9I%LCyM>rO3TuR(dj=V3&cL~y|y)z%HHGVkAim!Ee$Na01 z|Axw-+b3WsxG3Yjdg?KwhbP;wLZ18P!Dz(&Lv#1u`b9G{6SHM$DaI&Pd5}yB{b@vB zxm^<*ck;O6PU%SV_+bSlK>P)~SLS z&yyx6^DDQRb`F2oQh(9vG`{e5eH>-HfAn}x4^@^a)SugJy>@OD?&I{6|BM6PS$QPL zk7YU`H2^Hu?IZPNgivt_&cc&>ij4ooJj@NW`(44K8IA|v-D00q|&`;0XIGDF9ucH!r`_7w*w zI>b@NbjS;b3cZR|2p?|;Fk5i&jJ-4wwYPiKE2$>8|Su z*<;!u0f$=32YMo1EYtFQ4rQMuwQ4rb8rm*2_?DFi098`OOZH9K$U410tJU4*1}Bx8 znIouh!moDcIS&!W@{BFq^EH<)rzR$_5W;K<$0|>fUvp4yr1+p8UqHGLD8E}>)2s&- z~&o4fsYI!E*otP4iJs^7Rw8(WYngg3_c?!`fg6Nl`i zu5*zf+_S-q9c^1t@dR~^-mYP*wv!f94$t0S&6LA=xI#Fswa9S4^)b1{g5%-dm7svBLf#jP>$J$P`r+0`(z z5ctd2eZ8No?7X|ol9pVq*Qh}%Pu}C{9SQXMMmo=d%O?Ye()=kQbA%~SlB4wJA2p2q z5QWj>T$CrO1P0y!rSUU$XGb&SmZU2SDN}&!|4FC3l`+qoy?x(fx`&UCSrdpxN z%i7@_7OuhSXjgTi)_hhRE9cjqi$sG9LJV^iCt2lExR00!^d(?nZAhK^(dwzQp~OcJ zG;B+FrY!P4fBK@+zBYR3a^13N=hSczCH#*rnIDle|6r* z?bh{A>}a~7bQaiMfK0Ga18B`UNpU6Wojoo7X+FfHFJsF z4DX?CYzx#vgpe7{fVux=t7X^Q0juc!9T>8EoMo&r=yG=}Y|*!N>T_f}+8Ar<=s267 z1)UsVSCVmyVfmpWsap%XA_Un)6=fr#bG*Uq1L0hPVB^lv;b~Wy&-yAfyFMC+yI)d8 zKZlm`T3mNd7si)<=?X##CMX_pl-o6L^gC--xVZ!Y69!e8#tc^|xNJw^t#Kg)cI@`| zCuf>eS`CJO)6!!klLjMe{Ua(=9o6FaX?<@qeHp%23A$8`|7>=x^l&d{%SIIX9JuX% ze-?e2p+vP*jZy>nYvTNp8oSq-d+UiI86_hS9Jx3@uSDV7VUc=p(qDjuCq`O26f4c9 z!lo)&wE0+$f5%e=U3zrC>UQ7j;#<9x+%0iP1kSj3>uq`+W?EiLE9Z$QT7)NinYdDI z1j=B4(O)Q_ygr2RJ}bg+X=a!S-HZdYQND{Gc{24T4H7e?%3b*$NuY|pIRV)eaSoBV zXA*pA=947y$rM%K$vEr#n7J{h1$w!cBqfUuslsid%y334OCT|53qheF$6QEN18&KY zK#Z|f5F-7s9i}q!sv(6Wv&BLNJoGL;bu1BLoiz-!JtX0qN5GxxmH%}AAD#*<(O;fe zixlUyYKYzNiTIg~RTpbl`*7b!u`R~$58Z2Lt;acQ%he7q9yijbsqz9qH(@7zpLdU< zE(g1emP%DzI&SYGk`ckZmb$MqU>m#4Y2WadMpgoXGE9zv`H&vX_`5`1WNYHhf}V-H ziEjYG1F1knJ~*ss-D%;+_4miE>6Of&5Mfs>WJ2wZ9T6jU_;<+$YfU#zBRMrZNfkSC z3E3O9A8~)K!Q+G5_bVS)Z;M}5kbr!u_W}m!N{YEdSfN6AG2xgmDwq|BKNg%)A&P#~ zr$>_!#5GJvC?Wizz$PohmPU3U=WX_^RtR889$XctCveU#Vd6duCdXj;p`vOniH!## zn+1U%WEa{f^-lUZ{dsrka|Qe^W#QxFC>ehwLb|gdIfMN4u6m!&!yxmLD zYO4;jmXF=oOU_`EgJCNmTa;rKEUKH-sF^!RQxmebV}6kk&&nqck91G8POsIl%+lo> zU?vJvXYIJ|GmRI9fdW0hWpY|x4~`j2<= zLB3|*cI{ujpN-eUY?!9*q)vIq_=PX#KP_$kZ5%=s)jE-i67%p&4;%E=bCr zWeonrnXCoW5~ZUk^iqmq@GxaGv{%S%w-F{woCMJ#vNSWO>C)y3p!%+IS|&yv zTGrgv6&F%D9!SNT+vLjkHX{_+G*Y5tT_!swua7+s-)Xc1rcOfQH|(VpOOLoJ?zp4j zrtOYsjpgV)N9{zy-&+){O>EKMP8Xo2w?9n+pjD_M{8^`?nji>=L=U~f>2D! zw_HnpFmYy;FvExo1`E@`Ye&Qp3}pS?rvS?18d^MCB;QDxm#WuHC?BZiC{{j<_32Sy zklh#K=Cwa=x-862f%=3Pb2R9bEUh7_%e@?wHr03__TG^f7Eu+8{dv{Mpe76JnL3SN z%bHMkBw(T5t?0BEt~y>$EB-@2T_lRnud=qja`Ppv2>kBrS1F)de;Z(ARwH4I39LI7 zqd!y-v1Ko<4fwqJd{_Qp73Jm?jrOC8Z<2&LjDgf~g2poYHj@@5PE)VMi5O4wW#I=r zJAw{X2n&W;k`erIR=nPbm<-idc!)KD`B1UY^&fIeUj)CLCTiPCXv}@7a_h~9=f}4( zk2w}V`NKR(PI(LlFqGfw^R%?|iZDE^gQ}{S(|#R(gVkp)aQSOkg*|s-*1CFbRC4ZL zOygt0qG`22s8JL09Tl}w6l}g&m-&q+_3#NxzGT1n{BXyvEgsU2`}5TBo$*EHeN&~E zW?QCTW%3=Z%6(_C5K2b60e1pjalF28TO~A{@W!c3k6ypUY3IM$U^_WKKJlNSWvjK# z8OE5Nsyw7DX^D%B?9<7TKDZ4266mknzwG(D(VjE&o-@J7q+y@ZUxyut-xP%52*crF z=P5)m$ceB)6QMJ4)!)+)S{D{aB@Vtoz_f74(&bCUJPde>GvqsSrepgW+#Ls88 z&r$>IMggrS6}mGR{QThzPH`#xXA&Aj6s%CfV%;g5UZY7UGJS@EUbM;K_DiuO8|(y9 z%NFGn%u6?-sWB$qd9x=U?dWYE_tW{RZ2a01k|Xj3iG8u|$m2V%$cctZ`*@OX?HzsA zx}R`AA^j^f9Lo5ZfZr#WFRLOvzW}4mbWRWpzxn>Pb_;ll2*|iG$$lLGyF?N^H%#!| zN%*zvU@qWO+5l<6?HWxzihn zPej4SWHxxmG|FXZxgYApzHuTW^z2`Zl)^ z*hJQNN@pTgXQn`nK!?+!vyW}Gtg4G#usZ!|SQLd*MG5gKXk47v=AI!M51{(>LLWSd zz9?TB<%*I01*xf7vpq&BrYTJTWAm5W)Dx|Z_?auVYs2g4_uO24$sb-q;0eud^M;dq zuqOWPO-R4QnTbM*Sj0GKq~EE0XL^6Ov+LGNa4<^qw7%ae?9bnDAQ%_?5GogPrP#8= z*bX0=qy5g$acXO^uWVli#O4p3qqw3O96}#IefdZF{@vZtehQVqqsaIe^44^=&j@W^ zg9GahZf(pN5Not{>UXM|7d+#!;f9Mt0EphSptl_*haQZu7{U9-B?Z4cZS9xDBPMNw z!R7WT^h-AMQoD{bKb&X^5=2k9c{ICQ{v5`ydO-(7mCu);{A+0cB8Dpnv8|;A4oK?%WSo2o8$xQESK*D^(pd8I*gvqEsL!NK4ionqX5Bd>wBX; zKk9cpwk}WSb*1CLy<-JP`&OVy9`=b$|KHc$vBIbv08HHt7@HM->Fsu^K=-D|A>EEM z`2kjll!SkWyvwr7z!)O+nNX3S&!?Iht=1UdClB|$A5QU_Xo(4zoh6vi&w%3jRLM!~ z(=8$BYn$jkIR)xG0=m=U4~&Z)xJ9O zWJ~q%>~TRsD>^e5@a)6?MlTfMQ)(12yDt$Mk5^37svAvipa_F}SJM6SvOFx(r~UR{ z-!j)*Qk5Hz3dpVv<+(9sGdAX9NygCODbQ2;{E+_(mRDIZ@q`Wm<}6>t9K5TkBaCtn zBBjDE_l@tl>&H40{aY}RR!NfQiF0ZKXP-QgF>-LrNIo}@)U=u_n@m0J0_ z5i^@2-sGehG5tj!9H1eD@rV^URf}HPITV6pX4Orb#U0_~Vw{NG6pDdA)=C7B3@QdA zEK}jt2)AG-A?~#{e_8qfXf6QW;nv^fM2GsDZ75XVIbOdxu;qVSL&Lzge2if{^DtCQ zcwzX0DZUxvq+>+L^T{I+!4(=oTt!%T!0IP>D_(V#N3s`7y)Q?i2;%!@G?;rD3!H=^ zMMM#XAwBYqWDa(e0%+(H3vh|v6bm_Ivm)O6kqYn#S7c&+uM?6nicttIo47HQe(~ON zmymeDFUw3yxtto4&`TQj8C%7s2K!^O=g|8k+(itO?3@pmL;1+-OO@ zp04pH2v_w#91>@HVNEt_Z8vgkx`z`~d&;LlpU%^;3>02+U zU1m3CjPtdGOAHx7lBjcGo&*$;#@LTnDy6d+ua*P2N_=doztgLDh&s~hf4-&+etkK& z6n*V}zxy=END>7Mn&A-+d6PN9UFALF2|B6t`eF^Pe5nsjI$y%z*mLg*S6b}pa|XKy zW2S96?gfUC>q3LVUi?_X~TQ0#yepN+PM z2iHZ0n82Xt39`XMH5Zacfpp;an?`zI<^%gpKk2QPc~(LQkxyUdoaMwB`HUM`=*N!o zCtHJ-o}L=O_R1!u7;WtewhRce1{7Aj?t3UvYqzA9pCusiojt&#~C495Z}J2m`ho#Zuz~!5Q!GCk4Q_reAf>qWfC4i<8s8=d`vf$%0Dt(766&?P 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 literal 0 HcmV?d00001 diff --git a/docs/source/Plugin/P092_UVR1611.rst b/docs/source/Plugin/P092_UVR1611.rst new file mode 100644 index 000000000..efd456823 --- /dev/null +++ b/docs/source/Plugin/P092_UVR1611.rst @@ -0,0 +1,80 @@ +.. include:: ../Plugin/_plugin_substitutions_p09x.repl +.. _P092_UVR1611_page: + +UVR1611 +======= + +|P092_typename| +|P092_status| + +Introduction +------------ + +The UVR1611 unit is a freely programmable universal control system. +The UVR1611 universal controller can be freely programmed using function modules to match any system configuration for heating room management. + +The DL bus runs at 12 volts. +The data frame consist of 63 bytes (excluding sync and CRC). +The data are transmitted @ 488Hz, therefore the transmission of one data set takes about 1.4 seconds. +.. image:: P092_UVR1611.png + +Wiring +------ + +.. image:: P092_12V_Wiring.png + +Protocol +-------- + +.. image:: P092_UVR1611_Protocol.png + +Setup +----- + +.. note:: A new device task must be created for each value to be read from the DL bus! + +.. image:: P092_Setup.png + +Task settings +~~~~~~~~~~~~~ + +* **Device**: Heating - DL-Bus (Technische Alternative) +* **Name**: Name of the task (example name **ValueN**, where N is a number). +* **Enable**: Should the task be enabled or not + +Sensor +^^^^^^ + +* **1st GPIO**: DL bus input e.g. **GPIO 14 (D5)** +* **DL-Bus Type**: **UVR1611** + +.. note:: The settings for **1st GPIO** and **DL-Bus Type** must be the same for all used DL bus tasks! + +Inputs +^^^^^^ + +.. note:: The description of the **Frame data** and the related **Frame bytes** can be found in the section **Protocol**! + +.. csv-table:: + :header: "Frame data", "Frame bytes", "Value", "Index", "Decimals" + :widths: 16, 8, 8, 5, 5 + + "Sensor1 ... Sensor16", "9 ... 40", "Sensor", "1 - 16", "1" + "Output A1 ... A7", "41", "Digital Output", "1 - 7", "0" + "Output A9 ... A13", "42", "Digital Output", "9 - 13", "0" + "Speed step A1", "43", "Speed step", "1", "0" + "Speed step A2", "44", "Speed step", "2", "0" + "Speed step A6", "45", "Speed step", "3", "0" + "Speed step A7", "46", "Speed step", "4", "0" + "Current power 1", "48 ... 51", "Heat power [kW]", "1", "2" + "Current power 2", "56 ... 59", "Heat power [kW]", "2", "2" + "Heat quantity 1", "52 ... 55", "Heat meter [MWh]", "1", "4" + "Heat quantity 2", "60 ... 64", "Heat meter [MWh]", "2", "4" + +Data acquisition +^^^^^^^^^^^^^^^^ + +* **Send to controller** 1..3: Check which controller (if any) you want to publish to. All or no controller can be used. +* **Interval**: How often should the task publish its value (10..60 seconds is normal). + +.. note:: Intervall not less than **10 seconds**! The reading of the DL bus happens twice per intervall. diff --git a/docs/source/Plugin/P092_UVR1611_Protocol.png b/docs/source/Plugin/P092_UVR1611_Protocol.png new file mode 100644 index 0000000000000000000000000000000000000000..498b08584269f51281b7ecf200b6bfb278e12d8a GIT binary patch literal 24059 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 BG)Mpd literal 0 HcmV?d00001 diff --git a/docs/source/Plugin/P092_UVR31.PNG b/docs/source/Plugin/P092_UVR31.PNG new file mode 100644 index 0000000000000000000000000000000000000000..9365ba1a11e244225fc39e99b62cee05eeebdafd GIT binary patch literal 28083 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 N002ovPDHLkV1g9xHXsy12da(eNjyqOu~PuLHL^ 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 literal 0 HcmV?d00001 diff --git a/docs/source/Plugin/P092_UVR61-3.png b/docs/source/Plugin/P092_UVR61-3.png new file mode 100644 index 0000000000000000000000000000000000000000..830c22b398248040e3d27012f73b66a986a15fb1 GIT binary patch literal 79317 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