From 7f07710e18982c538d51dc268e240e6850e1e882 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Tue, 2 Nov 2021 15:57:58 +0100 Subject: [PATCH 1/8] Aggiunta prototipo Beckhoff --- Test-Beckhoff.sln | 31 ++ Test-Beckhoff/ADS.cs | 324 ++++++++++++++++++ Test-Beckhoff/App.config | 6 + Test-Beckhoff/Form1.Designer.cs | 62 ++++ Test-Beckhoff/Form1.cs | 26 ++ Test-Beckhoff/Form1.resx | 120 +++++++ Test-Beckhoff/Program.cs | 22 ++ Test-Beckhoff/Properties/AssemblyInfo.cs | 36 ++ .../Properties/Resources.Designer.cs | 70 ++++ Test-Beckhoff/Properties/Resources.resx | 117 +++++++ Test-Beckhoff/Properties/Settings.Designer.cs | 29 ++ Test-Beckhoff/Properties/Settings.settings | 7 + Test-Beckhoff/Test-Beckhoff.csproj | 99 ++++++ 13 files changed, 949 insertions(+) create mode 100644 Test-Beckhoff.sln create mode 100644 Test-Beckhoff/ADS.cs create mode 100644 Test-Beckhoff/App.config create mode 100644 Test-Beckhoff/Form1.Designer.cs create mode 100644 Test-Beckhoff/Form1.cs create mode 100644 Test-Beckhoff/Form1.resx create mode 100644 Test-Beckhoff/Program.cs create mode 100644 Test-Beckhoff/Properties/AssemblyInfo.cs create mode 100644 Test-Beckhoff/Properties/Resources.Designer.cs create mode 100644 Test-Beckhoff/Properties/Resources.resx create mode 100644 Test-Beckhoff/Properties/Settings.Designer.cs create mode 100644 Test-Beckhoff/Properties/Settings.settings create mode 100644 Test-Beckhoff/Test-Beckhoff.csproj diff --git a/Test-Beckhoff.sln b/Test-Beckhoff.sln new file mode 100644 index 00000000..f169b6de --- /dev/null +++ b/Test-Beckhoff.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.31402.337 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test-S7", "Test-S7\Test-S7.csproj", "{A0168CBE-9DA5-4E41-82FF-AFD39C982717}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test-Beckhoff", "Test-Beckhoff\Test-Beckhoff.csproj", "{41930054-510F-4893-8973-D50CD2241C5C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A0168CBE-9DA5-4E41-82FF-AFD39C982717}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A0168CBE-9DA5-4E41-82FF-AFD39C982717}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A0168CBE-9DA5-4E41-82FF-AFD39C982717}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A0168CBE-9DA5-4E41-82FF-AFD39C982717}.Release|Any CPU.Build.0 = Release|Any CPU + {41930054-510F-4893-8973-D50CD2241C5C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {41930054-510F-4893-8973-D50CD2241C5C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {41930054-510F-4893-8973-D50CD2241C5C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {41930054-510F-4893-8973-D50CD2241C5C}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C43DB985-D122-49F0-AE6E-DADEFFC1AD3D} + EndGlobalSection +EndGlobal diff --git a/Test-Beckhoff/ADS.cs b/Test-Beckhoff/ADS.cs new file mode 100644 index 00000000..37e5199c --- /dev/null +++ b/Test-Beckhoff/ADS.cs @@ -0,0 +1,324 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Net.NetworkInformation; +using System.Threading; +using TwinCAT; +using TwinCAT.Ads; +using TwinCAT.Ads.TypeSystem; +using System.IO; +using System.Text; +using System.Linq; +using System.Threading.Tasks; +using TwinCAT.TypeSystem; + +namespace Test_Beckhoff +{ + + //var handle = adsClient.AddDeviceNotification("MAIN.boolVal", dataStream, 0, 1, + // AdsTransMode.OnChange, 100, 0, new object() ); + + // Structure declaration for handles + + public enum EnuStates //Stato Macchina + { + Errore = -1, + Ferma = 0, + Automatica = 1, + Manuale = 2, + Emergenza = 3, + AzzeraTavola = 4, + ManualeStazione = 5, + Avviamento = 7, + } + + public class ADS + + { + + public class ComandiADS + { + + public TcAdsSymbolInfo Symbol; + public string SymbolName; + public bool ComandoScrittua; + public object Value; + public ManualResetEventSlim Updating; + public bool Error; + public ComandiADS() + { + Updating = new ManualResetEventSlim(false); + } + public ComandiADS(string name) + { + SymbolName = name; + Updating = new ManualResetEventSlim(false); + } + public ComandiADS(TcAdsSymbolInfo info) + { + Symbol = info; + Updating = new ManualResetEventSlim(false); + } + } + + /// + /// Dizionario di conversione da indice a index group e index offset + /// + private Dictionary> addressList; + public delegate void StatusChangedEventHandler(ADS sender, EnuStates newStatus); + public TcAdsSymbolInfoCollection Symbols; + private TcAdsClient adsClient; + public TcAdsClient Client + { + get { return adsClient; } + } + public TwinCAT.Ads.TcAdsSymbolInfoLoader InfoLoader; + public TwinCAT.TypeSystem.ISymbolLoader SymbolLoaderInstance; + + private List addedSignalationList = new List(); + + private int notifyposition; + private int eventHandle; + private int SegnalazioniADSEventHandle, StatusChangedEventHandle, MessageQueuedEventHandle; + + private AdsStream notifyStream; + private AdsStream newNotificationStream; + + public bool EnableEvents { get; set; } + + private EnuStates _status; + private object lockobj = new object(); + + //private Action dispatcher; + private System.Threading.Tasks.Task dispatchertask; + public System.Collections.Concurrent.ConcurrentQueue CodaComandi; + private CancellationTokenSource cts; + + Symbol StatoMacchina; + + + public event StatusChangedEventHandler StatusChanged; + + + public ADS(string indirizzo = "local", int porta = 851) + { + notifyStream = new AdsStream(); + newNotificationStream = new AdsStream(); + addressList = new Dictionary>(); + bool ready = false; + while (!ready) + { + try + { + //LETTURA DEL VETTORE DI INIZIALIZZAZIONE + if (adsClient == null) adsClient = new TcAdsClient(); + // Connect to local PLC - Runtime 1 - TwinCAT2 Port=801, TwinCAT3 Port=851 + if (indirizzo == "") + { + adsClient.Connect(porta); + } + else + { + if (adsClient.IsConnected == false) adsClient.Connect(indirizzo, porta); + } + + SymbolLoaderInstance = SymbolLoaderFactory.Create(adsClient, SymbolLoaderSettings.Default); + InfoLoader = adsClient.CreateSymbolInfoLoader(); + Symbols = InfoLoader.GetSymbols(true); + ready = true; + } + catch (Exception ex) + { + System.Threading.Thread.Sleep(100); + ready = false; + Debug.Print(ex.Message); + } + } + + + + StatoMacchina = (Symbol)SymbolLoaderInstance.Symbols["VarADS.StatoMacchina"]; + StatoMacchina.NotificationSettings = new AdsNotificationSettings(AdsTransMode.OnChange, 100, 100); + StatoMacchina.ValueChanged += StatoMacchina_ValueChanged; + + + notifyposition = 0; + cts = new CancellationTokenSource(); + + //adsClient.AdsNotification += new AdsNotificationEventHandler(adsClient_AdsNotification); + + CodaComandi = new System.Collections.Concurrent.ConcurrentQueue(); + cts = new CancellationTokenSource(); //Task require CancellationToken.cancel() to stop + Action Azione = commandDispatcher; + dispatchertask = new Task(Azione, cts.Token, TaskCreationOptions.PreferFairness); //Definisce e Crea un Task di base a priorità favorevole + dispatchertask.Start(); + } + + + private void StatoMacchina_ValueChanged(object sender, TwinCAT.TypeSystem.ValueChangedArgs e) + { + EnuStates newStatus = (EnuStates)e.Value; + if (StatusChanged != null) StatusChanged(this, newStatus); + } + + public void dispose() + { + //adsClient.Dispose(); + } + + + public TcAdsSymbolInfo GetSymbolInfo(string nome) + { + try + { + var symbol = InfoLoader.FindSymbol(nome); + return symbol; + } + catch (Exception) + { + + throw; + } + } + + private void commandDispatcher(object tk) + { + ComandiADS comando; + Thread.CurrentThread.Name = "ADS Command Dispatcher"; + CancellationToken chiudi = (CancellationToken)tk; + while (!chiudi.IsCancellationRequested) + { + Thread.Sleep(1); + if (CodaComandi.Count <= 0) + { + Thread.Sleep(1); + continue; + } + if (CodaComandi.Count > 100) Debug.Print("CODA COMANDI! " + CodaComandi.Count.ToString()); + if (!CodaComandi.TryDequeue(out comando)) continue; + + if (CodaComandi.Count > 1000) continue; + + if (comando.ComandoScrittua) //gestione scrittura + { + try + { + if (comando.SymbolName != "") + { + if (comando.Symbol == null) comando.Symbol = GetSymbolInfo(comando.SymbolName); + } + else + { + comando.SymbolName = comando.Symbol.Name; + } + if (comando.Value is int && comando.Symbol.Category == TwinCAT.TypeSystem.DataTypeCategory.Array) + { + var newvalue = new int[comando.Symbol.ArrayInfos[0].Elements]; + newvalue[0] = (int)comando.Value; + comando.Value = newvalue; + } + if (comando.Value is double && comando.Symbol.Category == TwinCAT.TypeSystem.DataTypeCategory.Array) + { + var newvalue = new double[comando.Symbol.ArrayInfos[0].Elements]; + newvalue[0] = (double)comando.Value; + comando.Value = newvalue; + } + adsClient.WriteSymbol(comando.Symbol, comando.Value); + + } + catch (Exception err) + { + comando.Error = true; + Debug.Print(comando.SymbolName + " Scrittura " + err.Message); + } + comando.Updating.Set(); + } + else // gestione lettura + { + try + { + if (comando.SymbolName != "") + { + if (comando.Symbol == null) comando.Symbol = GetSymbolInfo(comando.SymbolName); + } + else + { + comando.SymbolName = comando.Symbol.Name; + } + + comando.Value = adsClient.ReadSymbol(comando.Symbol); + + } + catch (Exception errore) + { + Debug.Print(errore.Message); + comando.Error = true; + Debug.Print("Error reading from ADS: VarName: " + comando.SymbolName); + } + comando.Updating.Set(); + } + } + } + + public object ReadVariabile(ref TcAdsSymbolInfo variabile) + { + var comando = new ComandiADS { ComandoScrittua = false, Symbol = variabile }; + return ReadVariabile(comando); + } + + public object ReadVariabile(string symbolName, Type type = null) + { + var comando = new ComandiADS { ComandoScrittua = false, SymbolName = symbolName }; + return ReadVariabile(comando); + } + + + private object ReadVariabile(ComandiADS comando) + { + CodaComandi.Enqueue(comando); + bool test = comando.Updating.Wait(3000); + if (!test) Debug.Print("Errore attesa lettura: " + comando.SymbolName); + if (comando.Value == null) Debug.Print("ADS Variabile non trovata: " + comando.SymbolName); + return comando.Value; + } + + public bool WriteVariabile(string symbolName, object value, bool syncronous = false) + { + var comando = new ComandiADS { Value = value, ComandoScrittua = true, SymbolName = symbolName }; + return WriteVariabile(comando, syncronous); + } + + public bool WriteVariabile(TcAdsSymbolInfo symbol, object value, bool syncronous = false) + { + var comando = new ComandiADS { Value = value, ComandoScrittua = true, Symbol = symbol }; + return WriteVariabile(comando, syncronous); + } + + private bool WriteVariabile(ComandiADS comando, bool syncronous) + { + bool test = true; + CodaComandi.Enqueue(comando); + if (syncronous) test = comando.Updating.Wait(3000); + if (!test) Debug.Print("Errore attesa lettura: " + comando.SymbolName); + if (comando.Error) Debug.Print("Errore ADS durante la scrittura della variabile: " + comando.SymbolName); + return !comando.Error; + } + + + + public EnuStates Status + { + get + { + var stato = ReadVariabile("VarADS.StatoMacchina"); + if (stato != null) _status = (EnuStates)stato; + else + { + throw new Exception("Errore lettura stato"); + } + return _status; + } + } + } + +} \ No newline at end of file diff --git a/Test-Beckhoff/App.config b/Test-Beckhoff/App.config new file mode 100644 index 00000000..56efbc7b --- /dev/null +++ b/Test-Beckhoff/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Test-Beckhoff/Form1.Designer.cs b/Test-Beckhoff/Form1.Designer.cs new file mode 100644 index 00000000..cee84f61 --- /dev/null +++ b/Test-Beckhoff/Form1.Designer.cs @@ -0,0 +1,62 @@ + +namespace Test_Beckhoff +{ + partial class Form1 + { + /// + /// Variabile di progettazione necessaria. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Pulire le risorse in uso. + /// + /// ha valore true se le risorse gestite devono essere eliminate, false in caso contrario. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Codice generato da Progettazione Windows Form + + /// + /// Metodo necessario per il supporto della finestra di progettazione. Non modificare + /// il contenuto del metodo con l'editor di codice. + /// + private void InitializeComponent() + { + this.button1 = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // button1 + // + this.button1.Location = new System.Drawing.Point(51, 49); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(75, 23); + this.button1.TabIndex = 0; + this.button1.Text = "Start ADS"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(800, 450); + this.Controls.Add(this.button1); + this.Name = "Form1"; + this.Text = "Form1"; + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button button1; + } +} + diff --git a/Test-Beckhoff/Form1.cs b/Test-Beckhoff/Form1.cs new file mode 100644 index 00000000..19f66f55 --- /dev/null +++ b/Test-Beckhoff/Form1.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Test_Beckhoff +{ + public partial class Form1 : Form + { + public Form1() + { + InitializeComponent(); + } + + private void button1_Click(object sender, EventArgs e) + { + //var myADS = new ADS("local", 851); + var myADS = new ADS("5.97.72.66.1.1", 851); + } + } +} diff --git a/Test-Beckhoff/Form1.resx b/Test-Beckhoff/Form1.resx new file mode 100644 index 00000000..1af7de15 --- /dev/null +++ b/Test-Beckhoff/Form1.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Test-Beckhoff/Program.cs b/Test-Beckhoff/Program.cs new file mode 100644 index 00000000..231025a5 --- /dev/null +++ b/Test-Beckhoff/Program.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Test_Beckhoff +{ + static class Program + { + /// + /// Punto di ingresso principale dell'applicazione. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } + } +} diff --git a/Test-Beckhoff/Properties/AssemblyInfo.cs b/Test-Beckhoff/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..b438c3e1 --- /dev/null +++ b/Test-Beckhoff/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Le informazioni generali relative a un assembly sono controllate dal seguente +// set di attributi. Modificare i valori di questi attributi per modificare le informazioni +// associate a un assembly. +[assembly: AssemblyTitle("Test-Beckhoff")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Test-Beckhoff")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Se si imposta ComVisible su false, i tipi in questo assembly non saranno visibili +// ai componenti COM. Se è necessario accedere a un tipo in questo assembly da +// COM, impostare su true l'attributo ComVisible per tale tipo. +[assembly: ComVisible(false)] + +// Se il progetto viene esposto a COM, il GUID seguente verrà utilizzato come ID della libreria dei tipi +[assembly: Guid("41930054-510f-4893-8973-d50cd2241c5c")] + +// Le informazioni sulla versione di un assembly sono costituite dai seguenti quattro valori: +// +// Versione principale +// Versione secondaria +// Numero di build +// Revisione +// +// È possibile specificare tutti i valori oppure impostare valori predefiniti per i numeri relativi alla revisione e alla build +// usando l'asterisco '*' come illustrato di seguito: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Test-Beckhoff/Properties/Resources.Designer.cs b/Test-Beckhoff/Properties/Resources.Designer.cs new file mode 100644 index 00000000..52603366 --- /dev/null +++ b/Test-Beckhoff/Properties/Resources.Designer.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// Codice generato da uno strumento. +// Versione runtime:4.0.30319.42000 +// +// Le modifiche apportate a questo file possono causare un comportamento non corretto e andranno perse se +// il codice viene rigenerato. +// +//------------------------------------------------------------------------------ + + +namespace Test_Beckhoff.Properties +{ + /// + /// Classe di risorse fortemente tipizzata per la ricerca di stringhe localizzate e così via. + /// + // Questa classe è stata generata automaticamente dalla classe StronglyTypedResourceBuilder + // tramite uno strumento quale ResGen o Visual Studio. + // Per aggiungere o rimuovere un membro, modificare il file .ResX, quindi eseguire di nuovo ResGen + // con l'opzione /str oppure ricompilare il progetto VS. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Restituisce l'istanza di ResourceManager memorizzata nella cache e usata da questa classe. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Test_Beckhoff.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Esegue l'override della proprietà CurrentUICulture del thread corrente per tutte + /// le ricerche di risorse che utilizzano questa classe di risorse fortemente tipizzata. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/Test-Beckhoff/Properties/Resources.resx b/Test-Beckhoff/Properties/Resources.resx new file mode 100644 index 00000000..af7dbebb --- /dev/null +++ b/Test-Beckhoff/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Test-Beckhoff/Properties/Settings.Designer.cs b/Test-Beckhoff/Properties/Settings.Designer.cs new file mode 100644 index 00000000..cea3795d --- /dev/null +++ b/Test-Beckhoff/Properties/Settings.Designer.cs @@ -0,0 +1,29 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + + +namespace Test_Beckhoff.Properties +{ + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/Test-Beckhoff/Properties/Settings.settings b/Test-Beckhoff/Properties/Settings.settings new file mode 100644 index 00000000..39645652 --- /dev/null +++ b/Test-Beckhoff/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Test-Beckhoff/Test-Beckhoff.csproj b/Test-Beckhoff/Test-Beckhoff.csproj new file mode 100644 index 00000000..b89f266e --- /dev/null +++ b/Test-Beckhoff/Test-Beckhoff.csproj @@ -0,0 +1,99 @@ + + + + + Debug + AnyCPU + {41930054-510F-4893-8973-D50CD2241C5C} + WinExe + Test_Beckhoff + Test-Beckhoff + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + False + ..\..\..\..\..\..\TwinCAT\AdsApi\.NET\v4.0.30319\TwinCAT.Ads.dll + + + + + + Form + + + Form1.cs + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + {00020430-0000-0000-C000-000000000046} + 2 + 0 + 0 + primary + False + True + + + + \ No newline at end of file From 1c5111e7bddf1c6e6e3a9949d52609c69de417c9 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Tue, 2 Nov 2021 16:14:55 +0100 Subject: [PATCH 2/8] Aggiunta librerie x TwinCat Beckhoff --- ExtLibs/AdsApi/.NET/CE/v2.0/TwinCAT.Ads.dll | Bin 0 -> 393216 bytes ExtLibs/AdsApi/.NET/CE/v2.0/TwinCAT.Ads.xml | 23988 ++++++++++ .../Beckhoff.TwinCAT.Ads.Reactive.md | 131 + .../.NET/v4.0.30319/Beckhoff.TwinCAT.Ads.md | 41 + ExtLibs/AdsApi/.NET/v4.0.30319/ReadMe_Ads.txt | 105 + .../.NET/v4.0.30319/ReadMe_AdsReactive.txt | 29 + .../.NET/v4.0.30319/TwinCAT.Ads.Reactive.dll | Bin 0 -> 27136 bytes .../.NET/v4.0.30319/TwinCAT.Ads.Reactive.xml | 786 + .../AdsApi/.NET/v4.0.30319/TwinCAT.Ads.XML | 38026 ++++++++++++++++ .../AdsApi/.NET/v4.0.30319/TwinCAT.Ads.dll | Bin 0 -> 581632 bytes ExtLibs/AdsApi/AdsToJava/TcJavaToAds.jar | Bin 0 -> 24221 bytes .../TcXaeMgmt/Interop.SYSSERVLib.dll | Bin 0 -> 9728 bytes .../Powershell/TcXaeMgmt/ReadMe_TcXaeMgmt.md | 40 + .../Powershell/TcXaeMgmt/ReadMe_TcXaeMgmt.txt | 42 + .../AdsApi/Powershell/TcXaeMgmt/TcXaeMgmt.cat | Bin 0 -> 10945 bytes .../AdsApi/Powershell/TcXaeMgmt/TcXaeMgmt.dll | Bin 0 -> 3762688 bytes .../TcXaeMgmt/TcXaeMgmt.dll-Help.xml | 13070 ++++++ .../TcXaeMgmt/TcXaeMgmt.format.ps1xml | 1683 + .../AdsApi/Powershell/TcXaeMgmt/TcXaeMgmt.png | Bin 0 -> 501239 bytes .../Powershell/TcXaeMgmt/TcXaeMgmt.psd1 | Bin 0 -> 12334 bytes .../TcXaeMgmt/TcXaeMgmt.types.ps1xml | 16 + .../TcXaeMgmt/about_TcXaeMgmt.help.txt | 326 + ExtLibs/AdsApi/ReadMe.txt | 35 + ExtLibs/AdsApi/TcAdsDll/CE/Include/TcAdsAPI.h | 244 + ExtLibs/AdsApi/TcAdsDll/CE/Include/TcAdsDef.h | 416 + .../TcAdsDll/CE/lib/Mips/TcAdsDllCe.lib | Bin 0 -> 7352 bytes .../AdsApi/TcAdsDll/CE/lib/Sh3/TcAdsDllCe.lib | Bin 0 -> 7442 bytes .../AdsApi/TcAdsDll/CE/lib/Sh4/TcAdsDllCe.lib | Bin 0 -> 7442 bytes .../AdsApi/TcAdsDll/CE/lib/arm/TcAdsDllCe.lib | Bin 0 -> 85058 bytes ExtLibs/AdsApi/TcAdsDll/Include/TcAdsAPI.h | 244 + ExtLibs/AdsApi/TcAdsDll/Include/TcAdsDef.h | 416 + ExtLibs/AdsApi/TcAdsDll/Lib/TcAdsDll.lib | Bin 0 -> 11712 bytes ExtLibs/AdsApi/TcAdsDll/TcAdsDll.dll | Bin 0 -> 257024 bytes ExtLibs/AdsApi/TcAdsDll/TcAdsTest.exe | Bin 0 -> 24576 bytes ExtLibs/AdsApi/TcAdsTest/TcAdsTest.exe | Bin 0 -> 24576 bytes .../System.ServiceModel.PollingDuplex.dll | Bin 0 -> 116592 bytes .../System.ServiceModel.PollingDuplex.dll | Bin 0 -> 186240 bytes .../TcAdsWcf/v3.5/ClientAccessPolicy.xml | 15 + .../AdsApi/TcAdsWcf/v3.5/GacUtil/gacutil.exe | Bin 0 -> 103248 bytes .../TcAdsWcf/v3.5/GacUtil/gacutil.exe.config | 6 + ExtLibs/AdsApi/TcAdsWcf/v3.5/README.TXT | 69 + ExtLibs/AdsApi/TcAdsWcf/v3.5/TcAdsWcfHost.exe | Bin 0 -> 6656 bytes .../TcAdsWcf/v3.5/TcAdsWcfHost.exe.config | 180 + .../AdsApi/TcAdsWcf/v3.5/TwinCAT.Ads.Wcf.dll | Bin 0 -> 46592 bytes ExtLibs/AdsApi/TcAdsWcf/v3.5/TwinCAT.Ads.dll | Bin 0 -> 233472 bytes ExtLibs/AdsApi/TcAdsWcf/v3.5/TwinCAT.Ads.xml | 6991 +++ .../v4.0.30319/ClientAccessPolicy.xml | 15 + .../TcAdsWcf/v4.0.30319/GacUtil/gacutil.exe | Bin 0 -> 118696 bytes .../v4.0.30319/GacUtil/gacutil.exe.config | 6 + ExtLibs/AdsApi/TcAdsWcf/v4.0.30319/README.TXT | 68 + .../TcAdsWcf/v4.0.30319/TcAdsWcfHost.exe | Bin 0 -> 7680 bytes .../v4.0.30319/TcAdsWcfHost.exe.config | 158 + .../TcAdsWcf/v4.0.30319/TwinCAT.Ads.Wcf.dll | Bin 0 -> 47104 bytes .../TcAdsWcf/v4.0.30319/TwinCAT.Ads.dll | Bin 0 -> 245760 bytes .../TcAdsWcf/v4.0.30319/TwinCAT.Ads.xml | 7500 +++ .../AdsJavaScriptLibrary/TcAdsWebService.js | 997 + .../1.0.2.0/CE/CE5_CE6/arm/SSLCert.exe | Bin 0 -> 11776 bytes .../SSLCert/1.0.2.0/CE/CE7/arm/SSLCert.exe | Bin 0 -> 11264 bytes .../SSLCert/1.0.2.0/Win32/SSLCert.exe | Bin 0 -> 68096 bytes .../V100/ce/ARMV4/TcAdsSoap.dll | Bin 0 -> 112128 bytes .../V100/ce/ARMV4/TcAdsWebService.WSDL | 151 + .../V100/ce/ARMV4/TcAdsWebService.dll | Bin 0 -> 19456 bytes .../TcAdsWebService/V100/ce/ARMV4/TwinCAT.css | 1 + .../TcAdsWebService/V100/xp/TcAdsSoap.dll | Bin 0 -> 204800 bytes .../V100/xp/TcAdsWebService.WSDL | 151 + .../V100/xp/TcAdsWebService.dll | Bin 0 -> 98304 bytes .../TcAdsWebService/V100/xp/TwinCAT.css | 1 + ExtLibs/AdsApi/TcMqttPlugin/TcMqttPlugin.dll | Bin 0 -> 73728 bytes 68 files changed, 95947 insertions(+) create mode 100644 ExtLibs/AdsApi/.NET/CE/v2.0/TwinCAT.Ads.dll create mode 100644 ExtLibs/AdsApi/.NET/CE/v2.0/TwinCAT.Ads.xml create mode 100644 ExtLibs/AdsApi/.NET/v4.0.30319/Beckhoff.TwinCAT.Ads.Reactive.md create mode 100644 ExtLibs/AdsApi/.NET/v4.0.30319/Beckhoff.TwinCAT.Ads.md create mode 100644 ExtLibs/AdsApi/.NET/v4.0.30319/ReadMe_Ads.txt create mode 100644 ExtLibs/AdsApi/.NET/v4.0.30319/ReadMe_AdsReactive.txt create mode 100644 ExtLibs/AdsApi/.NET/v4.0.30319/TwinCAT.Ads.Reactive.dll create mode 100644 ExtLibs/AdsApi/.NET/v4.0.30319/TwinCAT.Ads.Reactive.xml create mode 100644 ExtLibs/AdsApi/.NET/v4.0.30319/TwinCAT.Ads.XML create mode 100644 ExtLibs/AdsApi/.NET/v4.0.30319/TwinCAT.Ads.dll create mode 100644 ExtLibs/AdsApi/AdsToJava/TcJavaToAds.jar create mode 100644 ExtLibs/AdsApi/Powershell/TcXaeMgmt/Interop.SYSSERVLib.dll create mode 100644 ExtLibs/AdsApi/Powershell/TcXaeMgmt/ReadMe_TcXaeMgmt.md create mode 100644 ExtLibs/AdsApi/Powershell/TcXaeMgmt/ReadMe_TcXaeMgmt.txt create mode 100644 ExtLibs/AdsApi/Powershell/TcXaeMgmt/TcXaeMgmt.cat create mode 100644 ExtLibs/AdsApi/Powershell/TcXaeMgmt/TcXaeMgmt.dll create mode 100644 ExtLibs/AdsApi/Powershell/TcXaeMgmt/TcXaeMgmt.dll-Help.xml create mode 100644 ExtLibs/AdsApi/Powershell/TcXaeMgmt/TcXaeMgmt.format.ps1xml create mode 100644 ExtLibs/AdsApi/Powershell/TcXaeMgmt/TcXaeMgmt.png create mode 100644 ExtLibs/AdsApi/Powershell/TcXaeMgmt/TcXaeMgmt.psd1 create mode 100644 ExtLibs/AdsApi/Powershell/TcXaeMgmt/TcXaeMgmt.types.ps1xml create mode 100644 ExtLibs/AdsApi/Powershell/TcXaeMgmt/about_TcXaeMgmt.help.txt create mode 100644 ExtLibs/AdsApi/ReadMe.txt create mode 100644 ExtLibs/AdsApi/TcAdsDll/CE/Include/TcAdsAPI.h create mode 100644 ExtLibs/AdsApi/TcAdsDll/CE/Include/TcAdsDef.h create mode 100644 ExtLibs/AdsApi/TcAdsDll/CE/lib/Mips/TcAdsDllCe.lib create mode 100644 ExtLibs/AdsApi/TcAdsDll/CE/lib/Sh3/TcAdsDllCe.lib create mode 100644 ExtLibs/AdsApi/TcAdsDll/CE/lib/Sh4/TcAdsDllCe.lib create mode 100644 ExtLibs/AdsApi/TcAdsDll/CE/lib/arm/TcAdsDllCe.lib create mode 100644 ExtLibs/AdsApi/TcAdsDll/Include/TcAdsAPI.h create mode 100644 ExtLibs/AdsApi/TcAdsDll/Include/TcAdsDef.h create mode 100644 ExtLibs/AdsApi/TcAdsDll/Lib/TcAdsDll.lib create mode 100644 ExtLibs/AdsApi/TcAdsDll/TcAdsDll.dll create mode 100644 ExtLibs/AdsApi/TcAdsDll/TcAdsTest.exe create mode 100644 ExtLibs/AdsApi/TcAdsTest/TcAdsTest.exe create mode 100644 ExtLibs/AdsApi/TcAdsWcf/PollingDuplex/v3.0/System.ServiceModel.PollingDuplex.dll create mode 100644 ExtLibs/AdsApi/TcAdsWcf/PollingDuplex/v4.0/System.ServiceModel.PollingDuplex.dll create mode 100644 ExtLibs/AdsApi/TcAdsWcf/v3.5/ClientAccessPolicy.xml create mode 100644 ExtLibs/AdsApi/TcAdsWcf/v3.5/GacUtil/gacutil.exe create mode 100644 ExtLibs/AdsApi/TcAdsWcf/v3.5/GacUtil/gacutil.exe.config create mode 100644 ExtLibs/AdsApi/TcAdsWcf/v3.5/README.TXT create mode 100644 ExtLibs/AdsApi/TcAdsWcf/v3.5/TcAdsWcfHost.exe create mode 100644 ExtLibs/AdsApi/TcAdsWcf/v3.5/TcAdsWcfHost.exe.config create mode 100644 ExtLibs/AdsApi/TcAdsWcf/v3.5/TwinCAT.Ads.Wcf.dll create mode 100644 ExtLibs/AdsApi/TcAdsWcf/v3.5/TwinCAT.Ads.dll create mode 100644 ExtLibs/AdsApi/TcAdsWcf/v3.5/TwinCAT.Ads.xml create mode 100644 ExtLibs/AdsApi/TcAdsWcf/v4.0.30319/ClientAccessPolicy.xml create mode 100644 ExtLibs/AdsApi/TcAdsWcf/v4.0.30319/GacUtil/gacutil.exe create mode 100644 ExtLibs/AdsApi/TcAdsWcf/v4.0.30319/GacUtil/gacutil.exe.config create mode 100644 ExtLibs/AdsApi/TcAdsWcf/v4.0.30319/README.TXT create mode 100644 ExtLibs/AdsApi/TcAdsWcf/v4.0.30319/TcAdsWcfHost.exe create mode 100644 ExtLibs/AdsApi/TcAdsWcf/v4.0.30319/TcAdsWcfHost.exe.config create mode 100644 ExtLibs/AdsApi/TcAdsWcf/v4.0.30319/TwinCAT.Ads.Wcf.dll create mode 100644 ExtLibs/AdsApi/TcAdsWcf/v4.0.30319/TwinCAT.Ads.dll create mode 100644 ExtLibs/AdsApi/TcAdsWcf/v4.0.30319/TwinCAT.Ads.xml create mode 100644 ExtLibs/AdsApi/TcAdsWebService/AdsJavaScriptLibrary/TcAdsWebService.js create mode 100644 ExtLibs/AdsApi/TcAdsWebService/SSLCert/1.0.2.0/CE/CE5_CE6/arm/SSLCert.exe create mode 100644 ExtLibs/AdsApi/TcAdsWebService/SSLCert/1.0.2.0/CE/CE7/arm/SSLCert.exe create mode 100644 ExtLibs/AdsApi/TcAdsWebService/SSLCert/1.0.2.0/Win32/SSLCert.exe create mode 100644 ExtLibs/AdsApi/TcAdsWebService/V100/ce/ARMV4/TcAdsSoap.dll create mode 100644 ExtLibs/AdsApi/TcAdsWebService/V100/ce/ARMV4/TcAdsWebService.WSDL create mode 100644 ExtLibs/AdsApi/TcAdsWebService/V100/ce/ARMV4/TcAdsWebService.dll create mode 100644 ExtLibs/AdsApi/TcAdsWebService/V100/ce/ARMV4/TwinCAT.css create mode 100644 ExtLibs/AdsApi/TcAdsWebService/V100/xp/TcAdsSoap.dll create mode 100644 ExtLibs/AdsApi/TcAdsWebService/V100/xp/TcAdsWebService.WSDL create mode 100644 ExtLibs/AdsApi/TcAdsWebService/V100/xp/TcAdsWebService.dll create mode 100644 ExtLibs/AdsApi/TcAdsWebService/V100/xp/TwinCAT.css create mode 100644 ExtLibs/AdsApi/TcMqttPlugin/TcMqttPlugin.dll diff --git a/ExtLibs/AdsApi/.NET/CE/v2.0/TwinCAT.Ads.dll b/ExtLibs/AdsApi/.NET/CE/v2.0/TwinCAT.Ads.dll new file mode 100644 index 0000000000000000000000000000000000000000..06de88e33f46ee100dc6f88600d3157376c62c3f GIT binary patch literal 393216 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

)c!|6VT<`&~71CD*&{OLbw6ICH8783JeU69ah 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 TkYOOhK!$+~0~rSXH!$!oOa(5( literal 0 HcmV?d00001 diff --git a/ExtLibs/AdsApi/.NET/CE/v2.0/TwinCAT.Ads.xml b/ExtLibs/AdsApi/.NET/CE/v2.0/TwinCAT.Ads.xml new file mode 100644 index 00000000..f08517d9 --- /dev/null +++ b/ExtLibs/AdsApi/.NET/CE/v2.0/TwinCAT.Ads.xml @@ -0,0 +1,23988 @@ + + + + TwinCAT.Ads + + + +

+ Base class for all exceptions thrown by this class. + + + + + Initializes a new Instance of the AdsException class. + + + + + Initializes a new Instance of the AdsException class. + + A message that describes the error. + + + + Initializes a new Instance of the AdsException class. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. If the parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception. + + + + Data Type Exception + + + + + The data type + + + + + Initializes a new instance of the class. + + The message. + The type. + + + + Symbol Exception + + + + + The symbol + + + + + The symbol + + + + + Initializes a new instance of the class. + + The message. + The symbol. + + + + Initializes a new instance of the class. + + The message. + Symbol path. + + + + Symbol Exception + + + + + Initializes a new instance of the class. + + Name of the method. + The symbol. + + + + Initializes a new instance of the class. + + Index of the v table. + The symbol. + + + + The exception that is thrown when a ADS datatype is not supported. + + + + + Initializes a new Instance of the AdsDatatypeNotSupportedException class. + + + + + Initializes a new Instance of the AdsDatatypeNotSupportedException class. + + The message. + + + + Initializes a new Instance of the AdsDatatypeNotSupportedException class. + + The message. + The inner exception. + + + + This AdsInvalidNotificationException is created if the length of the notification data is 0. + This indicates that the notification handle is not valid any more. This exception is passed + to the AdsNotificationErrorEvent. + + + + + The _handle + + + + + The _time stamp + + + + + Initializes the class AdsInvalidNotificationException. + + The handle. + The time stamp. + + + + Handle of the notification. + + The handle. + + + + Gets the Time stamp as long + + The time stamp. + + + + The exception that is thrown when a Ads error occurs. + + + + + The _error code + + + + + Initializes a new Instance of the AdsErrorException class. + + + + + Initializes a new Instance of the AdsErrorException class. + + The message. + The error code. + + + + Creates the AdsErrorException + + The ads error code. + AdsErrorException. + + + + Creates the AdsErrorException + + The message. + The ads error code. + AdsErrorException. + + + + Creates the an exception object from Error Code + + The message. + The ads error code. + AdsErrorException. + No error indicated!;adsErrorCode + + + + Gets the error code of the Exception. + + The error code. + + + + Initializing exception (TcAdsDllCe resp. TcAdsDll.dll not found) + + + + + Initializes a new instance of the class. + + The inner. + + + + Initializes a new instance of the class. + + The message. + The inner. + + + + Symbol bound exceptions + + + + + Symbol that is bound to the + + + + + Initializes a new instance of the class. + + The symbol. + The error code. + + + + Initializes a new instance of the class. + + The symbol. + The error code. + + + + Initializes a new instance of the class. + + The symbol. + The error code. + The inner exception. + + + + Initializes a new instance of the class. + + The symbol. + + + + Initializes a new instance of the class. + + The symbol. + The inner exception. + + + + Initializes a new instance of the class. + + The message. + The symbol. + + + + Initializes a new instance of the class. + + The message. + The symbol. + The inner exception. + + + + Cannot access virtual Symbol + + + + + Initializes a new instance of the class. + + The symbol. + + + + Common Marshalling Exception + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new Instance of the AdsException class. + + The message. + The inner exception. + + + + Value Accessor Exceptions + + + + + + Symbol that is bound to the + + + + + Initializes a new instance of the class. + + The accessor. + The inner exception. + + + + Initializes a new instance of the class. + + The message. + The accessor. + + + + Initializes a new instance of the class. + + The message. + The accessor. + The inner exception. + + + + Derives from BinaryReader and reads primitive as well as PLC data types as binary values. + + The object is initialized with System.Text.Encoding.Default (ANSI Encoding). + + + + Initializes a new instance of the AdsBinaryReader class based on the supplied stream. + + A stream. + + + + Reads a PLC string from the current stream (ANSI Encoding) + + The length of the string in the PLC (byte length equals character count on PLC) + The string being read (until the first '\0' character) + + Because of ANSI Encoding the number of Chars could differ with the number of Bytes (e.g on Double Byte Codepages DBCS, Codpage 932, Japan) + + + + + + Reads the PLC string. + + Length of the byte. + The encoding. + System.String. + + + + Reads a PLC string from the current stream (ANSI Encoding) + + The length of the string in the PLC (byte length equals character count on PLC) + The string being read (until the first '\0' character) + + Because of ANSI Encoding the number of Chars could differ with the number of Bytes (e.g on Double Byte Codepages DBCS, Codpage 932, Japan) + + + + + Reads a PLC string from the current stream (Unicode Encoding) + + The length of the string in the PLC (byte length equals character count on PLC) + The string being read (until the first '\0' character) + + Because of ANSI Encoding the number of Chars could differ with the number of Bytes (e.g on Double Byte Codepages DBCS, Codpage 932, Japan) + + + + + Reads a PLC Date type from the current stream. + + The date being read. + + + + Reads a PLC Time type from the current stream. + + The time being read. + + + + Reads a from the current stream. + + Guid. + + + + Derives from BinaryWriter and writes primitive and PLC data types in binary to a stream. + + The is fixed to use encoding (ANSI). + + + + + Initializes a new instance of the AdsBinaryWriter class based on the supplied stream. + + The stream + + + + Writes a string as a PLC string to the current stream. + + The string to write to the stream. + The length of the string in the PLC. + + + + + Writes the PLC string. + + The value. + The length. + The encoding. + value + + + + Writes a string as a PLC string to the current stream. + + The string to write to the stream. + The length of the string. + + + + Writes a string as a PLC string to the current stream. + + The string to write to the stream. + The string length. + + + + Writes a date as PLC date type to the current stream. + + The date to write to the stream. + + + + Writes a time span as PLC time type to the current stream. + + The time span to write to the stream. + + + + Writes the Guid (16 Bytes) to the current stream. + + The unique identifier. + + + + The class AdsStream is a stream class used for Ads communication. + + + + + Initializes a new instance of the AdsStream class. The instance has an expandable capacity initialized to zero. + + + + + Initializes a new instance of the AdsStream class. + + Length of the stream in bytes. + + + + Initializes a new instance of the AdsStream class, based on the specified region of a byte array. + + The array of bytes from which to create this stream. + The offset in buffer at which the stream begins. + The length of the stream in bytes. + + + + Initializes a new instance of the AdsStream class, based on a byte array. + + The array of bytes from which to create this stream. + + + + The origin of the stream. + + + + + Gets the origin of the stream. + + + The origin. + + + + + Finalizes an instance of the class. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Initializes a new instance of the class. + + The synchronize port. + The symbol table. + if set to true [synchronize]. + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Class BitTypeConverter. + + + + + + Converts a Bit type value to bytes. + + Bit size of the underlying data type. + The value. + System.Byte[]. + bitSize + value + + + + Converts a BitSet represented in Byte[] to DotNetObject. + + Size of the Bitset in bits. + The data to convert. + The bit offset where the Bitset data is in data bytes. + bool, ushort, uint, ulong, BitArray dependent on bitSize. + Data not large enough!;data + + + + Converts a numeric value to + + Type of Numeric value (msut support + The numeric value. + BitArray. + Type '{0}' not supported! + + + + Converts the to a numeric value. + + Type of Numeric value (must support + The binary. + T. + binary + binary + + + + Converts the specified to the specified numeric value type. + + Type of the numeric value. + Bit array. + Numeric value boxed as System.Object + Type '{0}' not supported! + + + + Converter class for all forms of Primitive Types + + + + + + Determines whether the specified category is a primitive type + + The category. + true if [is primitive type] [the specified category]; otherwise, false. + Primitive types are types that are indicated with Primitive, String, SubRange, Enum, Pointer + + + + Determines whether the specified type identifier is primitive. + + The type identifier. + true if the specified type identifier is primitive; otherwise, false. + + + + Determines whether the specified category is a container type. + + The data type category. + true if [is container type] [the specified category]; otherwise, false. + Container Types are Array, Structs and its derivates (Function,FunctionBlock and Program) + + + + Determines the size of the specified data type. + + The TypeId. + System.Int32. + tp + + + + Converts the specified byte data to string representation. + + The data to convert. + The start index inside the data. + The encoding type. + Length of the string. + The value. + The number of consumed bytes from the data array (System.Int32). + data + + offset + or + encoding + + + + + Creates the specified type initialized by the raw byte array. + + The tp. + The data. + Start index within the data array. + The value. + Number of consumed bytes (System.Int32). + + data + or + data + + + offset + or + tp + + + + + Tries to get the managed type. + + The type. + The managed. + true if XXXX, false otherwise. + Cannot unmarshal type '{0}'! + + + + Tries to get the managed type. + + Type of the data. + Type of the managed. + true if XXXX, false otherwise. + + + + Tries to get the managed type. + + The type identifier. + The tp. + true if XXXX, false otherwise. + + + + Gets the primitive flags. + + The type. + PrimitiveTypeFlags. + + + + Gets the primitive flags. + + The type identifier. + PrimitiveTypeFlags. + + + + Gets a primitive value from Bytes. + + The type. + The data. + The offset. + The value. + The number of read bytes. + + type + or + data + + + Type is not primitive! + or + Cannot map to .NET Value! + or + Cannot map to .NET Value! + + + + + Gets a primitive value from Bytes. + + The type. + The data. + The offset. + The value. + System.Int32. + + type + or + data + + + Type is not primitive! + or + Cannot map to .NET Value! + or + Cannot map to .NET Value! + + + + + Creates the specified type initialized by the raw byte array. + + DataType. + The raw data.. + Start index / Offset within the raw data. + The created value. + Consumed bytes (System.Int32). + + tp + or + data + + + offset + or + tp + + + + + Converts the specified value to byte array. + + The typeId. + The value. + The data. + System.Byte[]. + data + + + + + Gets the (ADS) representation size of the Primitive type object + + The object value. + Marshalled Ads Size of the object. + val + val + + + + Determines whether ADS (AnyType Marshalling) can marshal the specified (primitive) data type. + + Managed data type. + true if this instance can marshal the specified data type; otherwise, false. + + + + Determines whether this instance can marshal the + + The data type category + true if this instance can marshal the specified category; otherwise, false. + + + + Determines whether this instance can marshal the specified type identifier. + + The type identifier. + true if this instance can marshal the specified type identifier; otherwise, false. + + + + Gets the (AdsMarshalling) Size of the specified primitive type. + + The managed Data type to be marshalled via ADS. + The size. + true if XXXX, false otherwise. + + + + Gets the (AdsMarshalling) Size of the specified primitive type. + + The tp. + System.Int32. + val + + + + Tries to convert the specified (primitive) value to raw data. + + The value. + The data. + true if XXXX, false otherwise. + val + val + + + + Converts the primitive value to bytes. + + The type. + The value. + System.Byte[]. + type + Cannot Convert to byte array! + + + + Converts the specified primitive value to raw data. + + The value. + System.Byte[]. + tp + + + + Converts the specified source value to the specified target type. + + The source value. + Target type. + Value as targetType (System.Object). + tp + + + + + Try to convert the specified source value to the specified target type. + + The source value. + The target type. + The target value. + true if XXXX, false otherwise. + + + + Enum StringConvertMode + + + + + + Fixed Length String + + + + + Fixed Length String that can be terminated with '\0' + + + + + '\0' terminated dynamic length string + + + + + Length Prefix (number of following bytes as uint 4-Byte) + + + + + Converter class converting PLC strings to .NET strings and vice versa + + + + + + Gets the AdsMarshalling (byte) size of an ANSII string of the specified length + + Length of the string. + System.Int32. + + + + Gets the Marshal size of the string (in bytes) + + The string. + System.Int32. + + + + Gets the AdsMarshalling (byte) size of an unicode string of the specified length + + Length of the string. + Length of AdsMarshalled string (System.Int32). + + + + Gets the AdsMarshalling (byte) size of an unicode string of the specified length + + The string. + Length of AdsMarshalled string (System.Int32). + + + + Gets the AdsMarshalling (byte) size of the specified string type of the specified length. + + Type Id of the string + Length of the string. + Length of AdsMarshalled string (System.Int32). + type + + + + Converts a string to Default ANSI Coded Bytes. + + The STR. + Byte array coded in Encoding.Default with terminating '\0' character + str + + + + Converts a string to Default ANSI Coded Bytes. + + The STR. + Size of the return byte array (filled up with \0) + Byte array coded in Encoding.Default with terminating '\0' characters + str + + + + Converts ANSI Coded bytes to string. + + The bytes. + System.String. + + + + Determines whether this instance can marshal the specified type identifier. + + The type identifier. + true if this instance can marshal the specified type identifier; otherwise, false. + + + + Determines whether this instance can marshal the specified category. + + The category. + true if this instance can marshal the specified category; otherwise, false. + + + + Converts the ANSI encoded (Encoding.Default) byte array to string + + The byte buffer to convert. + Start index of the data within the bytes array. + The byte count to transform from the byte array. + The contained string. + Reads the string only to the first occurrence of '\0' + + + + Encodes to string. + + The bytes. + The index. + The byte count. + The encoding. + The mode. + System.String. + bytes + byteCount + + + + Converts Unicode bytes (WSTRING) to its .net representation. + + The byte buffer to convert. + Start index of the data within the bytes array. + The byte count to transform from the byte array. + System.String. + + + + Converts a string to Unicode Coded Bytes. + + The STR. + The mode. + Byte array coded in Encoding.Unicode with terminating '\0' character + str + + str + + + + Interface for accessing Ads 'Any' objects + + + + + + Reads data synchronously from an ADS device and writes it to an object. + + Handle of the ADS variable. + Type of the object to be read. + The object the read data is written to. + + + + Reads data synchronously from an ADS device and writes it to an object. + + Index group of the ADS variable. + Index offset of the ADS variable. + Type of the object to be read. + The object the read data is written to. + + + + Reads data synchronously from an ADS device and writes it to an object. + If the Type of the object to be read is a string type, the first element of + the parameter args specifies the number of characters of the string. + If the Type of the object to be read is an array type, the number of elements + for each dimension has to be specified in the parameter args. At the moment + only 1 dimensional Arrays are supported. + + Index group of the ADS variable. + Index offset of the ADS variable. + Type of the object to be read. + Additional arguments. + The object the read data is written to. + + + + Writes an object synchronously to an ADS device. + + Handle of the ADS variable. + Object to write to the ADS device. + + + + Writes an object synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Object to write to the ADS device. + + + + Writes an object synchronously to an ADS device. + If the Type of the object to be written is a string type, the first element of parameter args + specifies the number of characters of the string. + + Handle of the ADS variable. + Object to write to the ADS device. + Additional arguments. + + + + Writes an object synchronously to an ADS device. + If the Type of the object to be written is a string type, the first element of parameter args + specifies the number of characters of the string. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Object to write to the ADS device. + Additional arguments. + + + + Interface for ads access via variable handle + + + + + + Generates a unique handle for an ADS variable. + + Name of the ADS variable + The handle of the ADS Variable. + Thrown when the ADS call fails. + + + + Releases the handle of a ADS variable again. + + Handle of the ADS variable + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Handle of the ADS variable + Stream that receives the data. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Handle of the ADS variable + Stream that receives the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Handle of the ADS variable + Stream that receives the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Number of successfully returned data bytes. + AdsErrorCode + + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Variable handle. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Variable handle. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + The read bytes. + AdsErrorCode. + + + + + + Writes data synchronously to an ADS device. + + Handle of the ADS variable + Stream that receives the data. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Handle of the ADS variable + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Handle of the ADS variable + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + AdsErrorCode. + + + + + + Interface for Notification management. + + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + The stream that should receive the data. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + The stream that should receive the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + + The handle of the notification. + + Thrown when the ADS call fails. + + + Parameter semantic + + Value of parameter is interpreted as task context number + + + Value of parameter is interpreted as task context number + + + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object stored in the event argument. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object stored in the event argument. + Additional arguments. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object stored in the event argument. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + If type is a string type, the first element of the parameter args specifies the number of characters of the string. + If type is an array type, the number of elements for each dimension has to be specified in the parameter args. + At the moment only 1 dimensional Arrays are supported. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object s0000tored in the event argument. + Additional arguments. + The handle of the notification. + Thrown when the ADS call fails. + + + + Deletes an existing notification. + + Handle of the notification. + Thrown when the ADS call fails. + + + + Occurs when the Ads device sends a notification to the client. + + + + + Occurs when a exception has occurred during notification management. + + + + + Occurs when the Ads devices sends a notification to the client. + + + + + Interface for Ads Read/Write access via IndexGroup / IndexOffset + + + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + The offset. + The length. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Stream that contains the data that should be written. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The read buffer. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + The write buffer. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Trigger Client Method/Command. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Thrown when the ADS call fails. + This method is used to trigger Client Methods/Commands without parameters. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The buffer. + Offset of the data in dataStream. + Length of the data in dataStream. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + The offset. + The length. + The read bytes. + AdsErrorCode. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The buffer. + The offset. + The length. + The read bytes. + AdsErrorCode. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + The read bytes. + AdsErrorCode. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The read buffer. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + The write buffer. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + The read bytes. + AdsErrorCode. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + AdsErrorCode. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The buffer. + Offset of the data in dataStream. + Length of the data in dataStream. + AdsErrorCode. + + + + Interface IAdsReadWriteTimeoutAccess + + For internal use only. + + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + The offset. + The length. + The timeout. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The read buffer. + The offset. + The length. + The timeout. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Stream that contains the data that should be written. + The timeout. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + The timeout. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The read buffer. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + The write buffer. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + The timeout. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes the specified index group. + + The index group. + The index offset. + The timeout. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + The timeout. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + The timeout. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The write buffer. + Offset of the data in dataStream. + Length of the data in dataStream. + The timeout. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + The offset. + The length. + The timeout. + The read bytes. + AdsErrorCode. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The read buffer. + The offset. + The length. + The timeout. + The read bytes. + AdsErrorCode. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + The timeout. + The read bytes. + AdsErrorCode. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The read buffer. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + The write buffer. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + The timeout. + The read bytes. + AdsErrorCode. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + The timeout. + AdsErrorCode. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The write buffer. + Offset of the data in dataStream. + Length of the data in dataStream. + The timeout. + AdsErrorCode. + + + + Reads data synchronously from an ADS device and writes it to an object. + If the Type of the object to be read is a string type, the first element of + the parameter args specifies the number of characters of the string. + If the Type of the object to be read is an array type, the number of elements + for each dimension has to be specified in the parameter args. At the moment + only 1 dimensional Arrays are supported. + + Index group of the ADS variable. + Index offset of the ADS variable. + Type of the object to be read. + Additional arguments. + The timeout. + The object the read data is written to. + + + + Writes an object synchronously to an ADS device. + If the Type of the object to be written is a string type, the first element of parameter args + specifies the number of characters of the string. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Object to write to the ADS device. + Additional arguments. + The timeout. + + + + Interface for controlling the Ads state. + + + + + + Reads the ADS status and the device status from an ADS server. + + The ADS statue and device status. + Thrown when the ADS call fails. + + + + Reads the ADS status and the device status from an ADS server. Unlike the ReadState method this method does not call an exception on failure. Instead an AdsErrorCode is returned. + If the return value is equal to AdsErrorCode.NoError the call was successful. + + The ADS statue and device status. + AdsErrorCode of the ads read state call. Check for AdsErrorCode.NoError to see if call was successful. + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + Thrown when the ADS call fails. + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + Stream that contains the data that should be sent to the ADS device + Offset of the data in the stream. + Length of the data in the stream. + Thrown when the ADS call fails. + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + Stream that contains the data that should be sent to the ADS device + Offset of the data in the stream. + Length of the data in the stream. + AdsErrorCode. + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + AdsErrorCode. + + + + Interface IAdsStateControlTimeout + + For internal use only. + + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + The timeout. + Thrown when the ADS call fails. + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + Stream that contains the data that should be sent to the ADS device + Offset of the data in the stream. + Length of the data in the stream. + The timeout. + Thrown when the ADS call fails. + + + + Reads the ADS status and the device status from an ADS server. + + The timeout. + The ADS statue and device status. + Thrown when the ADS call fails. + + + + Reads the ADS status and the device status from an ADS server. Unlike the ReadState method this method does not call an exception on failure. Instead an AdsErrorCode is returned. + If the return value is equal to AdsErrorCode.NoError the call was successful. + + The timeout. + The ADS statue and device status. + AdsErrorCode of the ads read state call. Check for AdsErrorCode.NoError to see if call was successful. + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + Stream that contains the data that should be sent to the ADS device + Offset of the data in the stream. + Length of the data in the stream. + The timeout. + AdsErrorCode. + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + The timeout. + AdsErrorCode. + + + + Interface for symbolic ads access. + + + + + + Reads the value of a symbol and returns it as an object. Strings and all primitive datatypes(UInt32, Int32, Bool etc.) are supported. + Arrays and structures cannot be read. + + The symbol that should be read. + The value of the symbol as an object. + Thrown when a ADS datatype is not supported. + Thrown when the Sync port is not open. + + + + Reads the value of a symbol and returns the value as object. The parameter type must have the same + layout as the ADS symbol. + + Name of the ADS symbol. + Managed type of the ADS symbol. + If reload is true previously stored symbol information is cleared. As a consequence the symbol information must be obtained from the ADS server again. + Value of the symbol + + + + Call this method to obtain information about the individual symbols (variables) in ADS devices. + + Name of the symbol. + A ITcAdsSymbol containing the requested symbol information or null if symbol could not + be found. + Thrown when the ADS call fails. + + + + Writes a value to the symbol. Strings and all primitive data types(UInt32, Int32, Bool etc.) are supported. Array and structures are not supported. + If a string is passed as parameter, the method attempts to parse the string according to the ADS data type of the symbol. + + The symbol the value is written to. + The value to write. + Thrown when a ADS data type is not supported. + Thrown when the ADS call fails. + + + + Writes the passed object value to the specified ADS symbol.The parameter type must have the same + layout as the ADS symbol. + + Name of the ADS symbol. + Object holding the value to be written to the ADS symbol + If reload is true previously stored symbol information is cleared. As a consequence the symbol information must be obtained from the ADS server again. + + + + Symbol Loader interface + + For internal use only. + + + + + Creates a new instance of the Symbol loader with the specified mode. + + The settings. + The interface of the Symbol loader. + + + + Interface IConnection + + + + + + Interface IConnectionStateProvider + + + + + + Gets the current Connection state of the + + + + + Occurs when the connection state has been changed. + + + + + Closes this + + + + + Gets the Connection Identifier . + + The identifier. + + + + Gets a value indicating whether the local Ads port was opened successfully. It + does not indicate if the target port is available. Use the method ReadState to + determine if the target port is available. + + + + + ADS Connection interface + + + + + + + + + The ADS connection interface represents the the logical point-to-point exception between Client and Server within an ADS Session. + + + + + Reads the identification and version number of an ADS server. + + DeviceInfo struct containing the name of the device and the version information. + Thrown when the ADS call fails. + + + + Get the of the ADS client. + + + + + Gets a value indicating whether the ADS client is connected to a ADS Server on the local + computer. + + + + + Gets the raw Ads interface. + + The raw interface. + + + + + Gets the of the ADS server. + + + + + Main Module representing the TwinCAT.Utilities.dll Module + + + + + Common Trace source for ADS + + + + + Initializes the class. + + + + + Method Tracing (Method entry and Method exit) + + + + + Automatically generating Trace Starts and Trace Stops with the IDisposable pattern. + + Use the using statement with this class. + + + + The trace source + + + + + Initializes a new instance of the class. + + The source. + + + + Initializes a new instance of the class. + + The source. + The message. + The args. + + + + Releases unmanaged resources and performs other cleanup operations before the + is reclaimed by garbage collection. + + + + + Indicates that the is disposed. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Initializes a new instance of the class. + + The message. + Message arguments + + + + Initializes a new instance of the class. + + + + + Method Tracing (Method entry and Method exit) + + + + + Initializes a new instance of the class. + + The message. + Message arguments + + + + Initializes a new instance of the class. + + + + + Internal Unsafe Native Marshaller for the + + + + + Allocates a managed String and copies all or part of an unmanaged ANSI string into it. + + Pointer to memory + The byte count of the Input string to copy. + + + + + Allocates a managed String and copies all or part of an unmanaged ANSI string into it. + + Pointer to memory + The byte count of the Input string to copy. + + + + + Copies the contents of a managed String into unmanaged memory, converting into ANSI format as it copies. + + The string. + The encoding. + The memory Pointer. + encoding + + + + Copies the contents of a managed String into unmanaged memory, converting into ANSI format as it copies. + + The string. + The memory Pointer. + + + + Copies the contents of a managed String into unmanaged memory, converting into ANSI format as it copies. + + The string. + The memory Pointer. + + + + Copies the content of the specified memory to an object. + + The memory pointer + + + + + Gets the Size of the + + The type. + + + + + Creates an object of the specified type ann initializes it from memory + + Pointer to memory Data + The type to create + The count of consumed memory in bytes + + + Unable to marshal type.;type + or + Unable to marshal type.;type + or + Unable to marshal type.;type + or + Unable to marshal type.;type + + + + + Creates a bool object and initializes it from memory data + + Memory data + The size of the consumed memory in bytes + + + + + + Throws an with the specified error code. + + The ads error code. + + + + Throws an with the specified error code. + + The message. + The ads error code. + + + + Wrapper Class for the TcAdsdll.dll Native Methods + + + + TcAdsDll-Api Functions + + + + Ams/Ads Address + + + + + Ams/Ads Address + + + + + The net id + + + + + The port + + + + + Protected constructor + + + + + Copy constructor + + The address. + + + + Constructor + + The net identifier. + The port. + + + + Constructor + + Net Id + Port + + + + Constructor + + The net identifier. + The port. + + + + Constructor + + The net identifier. + The port. + + + + Constructor + + The net identifier. + The port. + + + + Constructor + + The net identifier. + The port. + + + + Constructor + + The port. + + + + Constructor + + The port. + + + + Initializes a new instance of the class. + + The address coded as string (Format NetId:Port, 1.2.3.4.5.6:Port) + + + + Equals + + The object to compare with the current object. + true if the specified is equal to this instance; otherwise, false. + + + + Operator== + + The o1. + The o2. + The result of the operator. + + + + Operator-= + + The o1. + The o2. + The result of the operator. + + + + Gets the HashCode of the Address + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + Converts the Address to String 'NetId:Port' + + A that represents this instance. + + + + Parses a string to an object. + + The string. + AmsAddress. + + + + + Tries the parse. + + The string. + The net identifier. + The port. + true if XXXX, false otherwise. + + + + Tries to parse the from string. + + The STR. + The address. + true if XXXX, false otherwise. + + + + Clones this instance. + + AmsAddress. + + + + Gets the NetId + + The net identifier. + + + + Gets the Port number + + The port. + + + + Gets the HashCode of the Address + + + + + + Time base class + + + + + + The internal time value + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The time value. + + + + + Initializes a new instance of the class. + + The time value. + + + + + Converts the Timespan to PlcOpen ticks. + + The time. + + + + + Converts the timeValue (PlcOpen ticks) to TimeSpan + + The time value. + + + + + Converts the timeValue (PlcOpen ticks) to TimeSpan + + The time value. + + + + + Parses the specified string to PlcOpen ticks. + + The string to parse + + + + + Gets or sets the time value. + + + The time. + + + + + Gets or sets the Time Value + + + The value. + + + + + + PlcOpen TIME class + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The s. + + + + Initializes a new instance of the class. + + The time value. + + + + Initializes a new instance of the class. + + The time value. + + + + Initializes a new instance of the class. + + The time. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Parses the specified string to PlcOpen Ticks. + + The s. + + + + + TimeOfDay class + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The s. + + + + Initializes a new instance of the class. + + The time. + + + + Initializes a new instance of the class. + + The time. + + + + Initializes a new instance of the class. + + The time span. + + + + Returns a string that represents the current object. + + + A string that represents the current object. + + + + + Parses the specified string. + + The s. + + + + + PlcOpen Date base class. + + + + + + The internal date value + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The date value in PlcOpen Ticks. + + + + + Initializes a new instance of the class. + + The date value in PlcOpen Ticks. + + + + + Initializes a new instance of the class. + + The date. + + + + Converts the specified DateTime value to PlcOpen Ticks. + + The date. + + + + + Converts the specified PlcOpen dateValue in ticks to a DateTime Object + + The date value. + + + + + Converts the specified PlcOpen dateValue in ticks to a DateTime Object + + The date value. + + + + + Parses the specified PlcOpen Date string to PlcOpen ticks. + + The s. + + + + + Gets or sets the date value. + + + The date. + + + + + Gets or sets the date value. + + + The value. + + + + + + Converter class for PlcOPen DATE data type + + + + + + Converter class base for PLCOpen DT and DATE types. + /// + + + + Converts DateTime to PlcOpen ticks. + + The date. + + + + + Gets the Marshal Size of the dataType. + + System.Int32. + + + + Convert to byte array. + + The date time. + System.Byte[]. + + + + Converts a PlcOpen Date to .NET DateTime + + The date value. + + + + + + Converts the DateTime object to the appropriate PlcOpen Date string representation. + + The date. + + A that represents this instance. + + + + + Gets the bytes representation of the type. + + The dt. + System.Byte[]. + + + + PlcOpen DATE class + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + PlcOpen string specifier for the Date. + + + + Initializes a new instance of the class. + + The date value in PlcOpen Ticks. + + + + Initializes a new instance of the class. + + The date value in PlcOpen Ticks. + + + + Initializes a new instance of the class. + + The date. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Parses the specified PlcOpen Date string to PlcOpen ticks. + + The s. + + + + + PlcOpen DateTime Converter class. + + + + + + Converts the DateTime value to the appropriate PlcOpen string. + + The date. + + + + + Gets the bytes representation of the dataType. + + The dt. + System.Byte[]. + + + + DateTime Object class + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + PlcOpen string specifier for the Date. + + + + Initializes a new instance of the class. + + The date value in PlcOpen Ticks. + + + + Initializes a new instance of the class. + + The date value in PlcOpen Ticks. + + + + Initializes a new instance of the class. + + The date. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Parses the specified PlcOpen Date string to PlcOpen ticks. + + The s. + + + + + Converter class for the PLCOpen TOD (TimeOfDay) Data type. + + + + + + Converts ticks to timespan + + The ticks. + + + + + Converts the ticks to string + + The ticks. + + A that represents this instance. + + + + + Converts the Timespan to string within the specific PlcOpen format. + + The time. + + A that represents this instance. + + + + + Converts the specified TimeSpan to system ticks. + + The span. + System.UInt32. + + + + Converts the specified string TimeSpan representation (PlcOpen notation) to system Ticks. + + The s. + System.UInt32. + + + + + Gets the bytes representation of the dataType + + The tod. + System.Byte[]. + + + + Converter class for the PLC Open TIME Data Type + + + + + + Converts Timespan to ticks (long) in PlcOpen format. + + The time span. + + + + + Gets the Marshal Size of the DataType + + System.Int32. + + + + Convert to Bytes + + The time. + System.Byte[]. + + + + Convert to Bytes. + + The time. + System.Byte[]. + + + + Converts PlcOpen ticks to TimeSpan + + The ticks. + + + + + + Converts PlcOpen TIME string to .NET TimeSpan + + PlcOpen TIME string. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The specified data type is not supported!. + + + + + Looks up a localized string similar to Exception occurred during marshalling/demarshalling data.. + + + + + Looks up a localized string similar to The RPC method '{0}' is not supported on symbol '{1}!. + + + + + Looks up a localized string similar to The RPC method with index '{0}' is not supported on symbol '{1}!. + + + + + Looks up a localized string similar to The session 'ID: {0}' (Address: {1}) is not connected!. + + + + + Looks up a localized string similar to The session 'ID: {0}' (Address: {1}) is not connected. {2}. + + + + + Summary description for NotificationMngt. + + + + + Initializes a new instance of the class. + + The synchronize port. + The symbol table. + if set to true [synchronize]. + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + This class implements an ADS Stamp Header containing multiple ADS Notification Samples. + + + + + Creates a new TcAdsStampHeader instance. + + The time stamp of this header in ns since 01/01/1601 + The number of notification samples contained in this header + + + + Get or set the time stamp of this header. + + + + + Get the number of notification samples contained in this header. + + + + + Get the array of notification samples contained in this header. + + + + + This class implements an ADS Notification Sample. It contains the notification handle and + the variable data. + + + + + Creates a new TcAdsNotificationSample instance. + + The size of the samples in bytes + + + + Creates a new TcAdsNotificationSample instance. + + The size of the samples in bytes + The notification handle of this sample + + + + Gets or sets the notification handle. + + + + + Gets the size of this sample in bytes. + + + + + Gets the variable data buffer + + + + + This class implements an ADS server. Derived classes should overwrite the indication methods + to react on incoming requests. The confirmation methods should be overwritten to receive + replies on ansychronous requests sent by this ADS server. + + + + + Create a new TcAdsServer instance with a fix ADS port number. + + The ADS server port for this server + A string describing this ADS server + + + + Create a new TcAdsServer instance with an ADS port number asigned by the local ADS router. + + A string describing this ADS server + + + + Create a new TcAdsServer instance with an ADS port number assigned by the local ADS router. + Optional the TcAdsServer can be configured to use the overloaded TcAdsDeviceNotification-method to implement an own notification-parser. + + The ADS server port for this server. + A string describing this ADS server. + Enables the overloaded TcAdsDeviceNotification-Method to implement an own notification-parser. + + + + Connect this ADS server to the local ADS router. + Thrown if the connect call fails. + + + + + Disconnects this ADS server from the local ADS router. + Thrown if the disconnect call fails. + + + + + Sends an ADS Read Device Info request. + + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The ADS error code for this call. + + + + Sends an ADS Read Request. + + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The index group of the requested ADS service + The index group of the requested ADS service + The number of bytes to be read + The ADS error code for this call. + + + + Sends an ADS Write request. + + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The index group of the requested ADS service + The index group of the requested ADS service + The number of bytes to be written + The data to be written + The ADS error code for this call. + + + + Sends an ADS Read State request. + + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The ADS error code for this call. + + + + Sends an ADS Write Control request. + + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The requested new ADS state of the receiver + The requested new ADS state of the receiver + The length of the additional data buffer + An additional data buffer of cbLength bytes + The ADS error code for this call. + + + + Sends an ADS Add Device Notification request. + + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The index group of the requested ADS service + The index group of the requested ADS service + The number of bytes to be transmitted + The transmission mode of the notification (cyclic / on change) + The receiver should send the notification at least after maxDelay ms + The receiver shouldc check every cycleTime ms if the requested variable has changed + The ADS error code for this call. + + + + Sends an ADS Delete Device Notification request. + + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The notifocation ID to be deleted + The ADS error code for this call. + + + + Sends an ADS Device Notification request. + + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The number of ADS Stamp Headers to be sent + The array of ADS Stamp Headers to be sent + The ADS error code for this call. + + + + Sends an ADS Read Write request. + + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The index group of the requested ADS service + The index group of the requested ADS service + The number of bytes to be read + The number of bytes to be written + The data to be written + The ADS error code for this call. + + + + Called when an ADS Read Device Info confirmation is received. + Overwrite this method in derived classes to react on ADS Read Device Info confirmations. + + The sender's AMS address + The invoke id provided by this server during the corresponding request + The ADS error code provided by the sender + The sender's name + The sender's version + + + + Called when an ADS Read confirmation is received. + Overwrite this method in derived classes to react on ADS Read confirmations. + + The sender's AMS address + The invoke id provided by this server during the corresponding request + The ADS error code provided by the sender + The number of read bytes + The read data buffer + + + + Called when an ADS Write confirmation is received. + Overwrite this method in derived classes to react on ADS Write confirmations. + + The sender's AMS address + The invoke id provided by this server during the corresponding request + The ADS error code provided by the sender + + + + Called when an ADS Read State confirmation is received. + Overwrite this method in derived classes to react on ADS Read State confirmations. + + The sender's AMS address + The invoke id provided by this server during the corresponding request + The ADS error code provided by the sender + The ADS state of the sender + The device state of the sender + + + + Called when an ADS Write Control confirmation is received. + Overwrite this method in derived classes to react on ADS Write Control confirmations. + + The sender's AMS address + The invoke id provided by this server during the corresponding request + The ADS error code provided by the sender + + + + Called when an ADS Add Device Notification confirmation is received. + Overwrite this method in derived classes to react on ADS Add Device Notification confirmations. + + The sender's AMS address + The invoke id provided by this server during the corresponding request + The ADS error code provided by the sender + The notification handle provided by the sender + + + + Called when an ADS Delete Device Notification confirmation is received. + Overwrite this method in derived classes to react on ADS Delete Device Notification confirmations. + + The sender's AMS address + The invoke id provided by this server during the corresponding request + The ADS error code provided by the sender + + + + Called when an ADS Read Write confirmation is received. + Overwrite this method in derived classes to react on ADS Read Write confirmations. + + The sender's AMS address + The invoke id provided by this server during the corresponding request + The ADS error code provided by the sender + The number of read bytes + The read data buffer + + + + Sends an ADS Read Device Info response. + + The receiver's AMS address + The invoke ID provided by the receiver + The ADS error code for the response + The name of this ADS server + The version of this ADS server + The ADS error code for this call. + + + + Sends an ADS Read response. + + The receiver's AMS address + The invoke ID provided by the receiver + The ADS error code for the response + The number of read bytes + The read data buffer + The ADS error code for this call. + + + + Sends an ADS Write response. + + The receiver's AMS address + The invoke ID provided by the receiver + The ADS error code for the response + The ADS error code for this call. + + + + Sends an ADS Read State response. + + The receiver's AMS address + The invoke ID provided by the receiver + The ADS error code for the response + The current ADS state of this ADS server + The device state of this ADS server + The ADS error code for this call. + + + + Sends an ADS Write Control response. + + The receiver's AMS address + The invoke ID provided by the receiver + The ADS error code for the response + The ADS error code for this call. + + + + Sends an ADS Add Device Notification response. + + The receiver's AMS address + The invoke ID provided by the receiver + The ADS error code for the response + The notification handle for the added notification + The ADS error code for this call. + + + + Sends an ADS Delete Device Notification response. + + The receiver's AMS address + The invoke ID provided by the receiver + The ADS error code for the response + The ADS error code for this call. + + + + Sends an ADS Read Write Response. + + The receiver's AMS address + The invoke ID provided by the receiver + The ADS error code for the response + The number of read bytes + The read data buffer + The ADS error code for this call. + + + + Called when an ADS Read Device Info indication is received. + Overwrite this method in derived classes to react on ADS Read Device Info indications. + The default implementation replies with an ADS ServiceNotSupported error code (0x701). + + The sender's AMS address + The invokeId provided by the sender + + + + Called when an ADS Read indication is received. + Overwrite this method in derived classes to react on ADS Read indications. + The default implementation replies with an ADS ServiceNotSupported error code (0x701). + + The sender's AMS address + The invokeId provided by the sender + The index group of the requested ADS service + The index offset of the requested ADS service + The number of bytes to be read + + + + Called when an ADS Write indication is received. + Overwrite this method in derived classes to react on ADS Write indications. + The default implementation replies with an ADS ServiceNotSupported error code (0x701). + + The sender's AMS address + The invokeId provided by the sender + The index group of the requested ADS service + The index offset of the requested ADS service + The number of bytes to be witten + The data to be written + + + + Called when an ADS Read State indication is received. + Overwrite this method in derived classes to react on ADS Read State indications. + The default implementation replies with an ADS ServiceNotSupported error code (0x701). + + The sender's AMS address + The invokeId provided by the sender + + + + Called when an ADS Write Control indication is received. + Overwrite this method in derived classes to react on ADS Write Control indications. + The default implementation replies with an ADS ServiceNotSupported error code (0x701). + + The sender's AMS address + The invokeId provided by the sender + The requested new ADS state of this ADS device + The requested new device state of this ADS device + The length in bytes of the additional data buffer + An additional data buffer of cbLength bytes + + + + Called when an ADS Add Device Notification indication is received. + Overwrite this method in derived classes to react on ADS Add Device Notification indications. + The default implementation replies with an ADS ServiceNotSupported error code (0x701). + + The sender's AMS address + The invokeId provided by the sender + The index group of the requested ADS service + The index offset of the requested ADS service + Number of bytes to be transmitted + The transmission mode of the notification (cyclic / on change) + The notification should be send at least after maxDelay ms + Check every cycleTime ms if the requested variable has changed + + + + Called when an ADS Delete Device Notification indication is received. + Overwrite this method in derived classes to react on ADS Delete Device Notification indications. + The default implementation replies with an ADS ServiceNotSupported error code (0x701). + + The sender's AMS address + The invokeId provided by the sender + The notification handle to be deleted + + + + Called when an ADS Device Notification indication is received. + Overwrite this method in derived classes to react on ADS Device Notification indications. + + The sender's AMS address + The invokeId provided by the sender + The number of ADS Stamp Headers contained in stampHeaders + The array of received ADS Stamp Headers. + + + + Called when an ADS Device Notification indication is received. + Overwrite this method in derived classes to react on ADS Device Notification indications. + + The sender's AMS address + The invokeId provided by the sender + The number of stamp headers. + Reader object for the stamps. + + + + Called when an ADS Read Write indication is received. + Overwrite this method in derived classes to react on ADS Read Write indications. + The default implementation replies with an ADS ServiceNotSupported error code (0x701). + + The sender's AMS address + The invokeId provided by the sender + The index group of the requested ADS service + The index offset of the requested ADS service + Number of bytes to be read + Number of bytes to be written + The data to be written + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Finalizes an instance of the class. + + + + + Occurs if the receive thread has exited on an exception. + + + + + The AMS address of this server. + + + + + The connection state of this server. True, if the server is connected to the router; false otherwise. + + + + + Delegate for the AdsSeverException event. + + + + + This class implements the event arguments passed by the TcAdsServerExEvent. + + + + + Returns the exception that caused the event. + + The Exception that caused the event. + + + + Returns the exception message. + + The Exception message. + + + + A TcAdsServerException is thrown on communication errors in in TcAdsServer class. + + + + + Gets or sets the error code. + + + The error code. + + + + + Ams Server Error Codes. + + + + + None / Uninitialized + + + + + Unknown + + + + + Connecting port failed. + + + + + Disconnecting port failed. + + + + + ReceiveQueue overflow + + + + + Receive Notification Queue overflow. + + + + + Import Wrapper for TcAmsServer (TcAmsServerCE) Methods + + + + + Reason for the Connection status changed event. + + + + + + None / Uninitialized + + + + + The connection to the target has been established + + + + + The Connection was closed + + + + + The connection to the target has been lost + + + + + Communication error to the target (the connection is not shutting down) + + + + + Communication was resurrected (available again) + + + + + Event arguments for the Connection status changed event. + + + + + + Reason for the event + + + + + Exception, (only for + + + + + Old connection state + + + + + New connection state + + + + + Constructs the arguments. + + The reason. + The new state. + The old state. + The e. + + + + Constructs the arguments. + + The reason. + The new state. + The old state. + + + + Connection state/>. + + + + + + Unknown / Uninitialized + + + + + Disconnected + + + + + Connected + + + + + Connection (temporarily) lost + + + + + Enables Pid Addressing + + + + + BitType Addressing + + + + + Offset mask (Byte offset or Bit offset, dependent on setting ) + + + + + Mask DataArea (e.g. + + + + + Class AdsParseSymbols. + + + + + Interface for resolving data type names --> objects. + + + + + Resolves the specified data type + + The name. + IDataType. + + + + Occurs when new types are generated + + + + + Occurs when a typename cannot be resolved. + + + + + The COM Object Minimum OID (0x00100000, 1048576) + + + + + The _default types + + + + + The symbol table (Symbol Path -> symbol Index within stream) + + + + + The ads client + + + + + The sub symbol factory + + + + + Used Default Encoding of the class. + + + + + Initializes a new instance of the class. + + Size of the platform pointer. + if set to true [streamIncludesBuildInTypes]. + The symbol string encoding. + stringEncoding + + + + Indicates, that the build in types are streamed + + + + + Initializes a new instance of the class. + + The symbol stream. + The data type stream. + The ads client. + + + + Expands the so far unresolved datatypes. + + Some datatypes must be generated, because they are not available from the Watch server. + This must be done, before the DataTypes collection is accesssed, because otherwise the collection can be changed + during enumeration + + + + + Collects the data types. + + The count. + The data type offsets. + The data type reader. + TcAdsDataTypeCollection. + + + + The data types + + + + + Fills the data type tables. + + The data type reader. + The data type count. + The data type entry offsets. + Dictionary<System.String, System.Int32>. + + + + Fills the symbol tables. + + The symbol reader. + The symbol count. + The symbol entry offsets. + SymbolEntryCollection. + + + + Gets the symbol entry. + + Index of the symbol. + The symbol entry offsets. + The symbol reader. + AdsSymbolEntry. + + + + Gets the data type entry. + + The index. + The data type entry offsets. + The data type reader. + AdsDataTypeEntry. + index + + + + Gets the sub symbol recursively (from position on) + + The symbol. + Name of the symbol. + The position. + TcAdsSymbolInfo. + + + + Gets the symbol. + + Name of the symbol. + TcAdsSymbolInfo. + + + + Gets the symbol. + + Index of the symbol. + TcAdsSymbolInfo or NULL + + + + Gets the name of the type by. + + The type. + AdsDataTypeEntry. + + + + Gets the data type identifier. + + The type. + AdsDatatypeId. + + + + Gets the bit / Byte size of the Data Type by data type name. + + The type. + Size in bytes. + + + + Gets the sub symbol count. + + The Parent + System.Int32. + + + + Sets the Pointer size + + The size (in bytes) + size + + + + Gets the specified SubSymbol (for Arrays, Structs) + + Parent Symbol. + Index of the SubElement (Symbol) + if set to true references and Pointer Types will be dereferenced. + TcAdsSymbolInfo. + parent + parent + + + + Resolves the DataType. + + The name. + ITcAdsDataType. + + + + Called when the type resolution fails. + + The name. + + + + Called when a new type is created generically. + + The data types. + + + + Called when a new type is createed generically. + + Type of the data. + + + + Gets the default types. + + The default types. + + + + Gets the symbol count. + + The symbol count. + + + + Occurs when DataTypes were generated by this Parser + + + + + Occurs when a data type cannot be resolved. + + + + + Gets the size of Pointer Types (Platform dependent) + + The pointer size (0: Uninitialized, 4: X86, 8: X64) + + + + Factory class for creating SubSymbols within the object. + + + + + Calculates the IndexGroup and IndexOffset of an array element + + (Sub-)Index of the array element. + The arrayInstance. + Size of the element (bit or bytes) + The index group. + The index offset. + + + + Creates the reference symbol. + + The parent. + Index of the sub. + TcAdsSymbolInfo. + parent + + + + Creates the pointer symbol. + + The parent. + Type of the referenced. + TcAdsSymbolInfo. + + parent + or + referencedType + + + + + Collection class for DataTypes. + + + + + Internal list + + + + + Internal table TypeName --> ITcAdsDataType + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The coll. + + + + Adds a range of to the collection. + + The coll. + + + + Determines the index of a specific item in the . + + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + + + Determines whether this contains the specified data type. + + Name of the type. + true if [contains] [the specified type name]; otherwise, false. + + + + Tries the type of the get data. + + Name of the type. + The ret. + true if XXXX, false otherwise. + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + true if is found in the ; otherwise, false. + + + + Copies the entire collection to the specified array. + + The array. + Index of the array. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + Returns an enumerator that iterates through the collection. + + A that can be used to iterate through the collection. + + + + Returns an enumerator that iterates through a collection. + + An object that can be used to iterate through the collection. + + + + Gets a read only version of this . + + ReadOnlyTcAdsDataTypeCollection. + The readonly collection. + + + + Clones this instance. + + TcAdsDataTypeCollection. + + + + Tries to resolve the DataType within the Collection itself + + Type of the data. + The strategy. + ITcAdsDataType. + Use only before all Datatypes are collected by the loader! + + + + Converts the items to . + + IEnumerable<IDataType>. + Only necessary if we don't have Covariance (e.g. under CLR2) + + + + Gets or sets the element at the specified index. + + The index. + ITcAdsDataType. + + + + + Gets the with the specified type name. + + Name of the type. + ITcAdsDataType. + + + + + Gets the number of elements contained in the . + + The count. + + + + Gets a value indicating whether the is read-only. + + true if this instance is read only; otherwise, false. + + + + ReadOnly "/> collection. + + + + + Initializes a new instance of the class. + + The coll. + + + + Determines whether this contains the specified type name. + + Name of the type. + true if [contains] [the specified type name]; otherwise, false. + + + + Tries the type of the get data. + + Name of the type. + The type. + true if found, false otherwise. + + + + Returns an enumerator that iterates through the collection. + + A that can be used to iterate through the collection. + + + + Gets the with the specified type name. + + Name of the type. + ITcAdsDataType. + + + + Represents a collection of TcAdsSymbolInfo objects. + + + + + Returns an enumerator that can iterate through ths symbols in this collection. + + + An IEnumerator that can be used to iterate through all symbols in this collection. + + + + + Gets the Symbol by index + + The index. + TcAdsSymbolInfo if found, or NULL + + + + Gets the symbol by name. + + The name. + TcAdsSymbolInfo. + + + + Copies the elements of the collection to an Array, starting at a + particular Array index. + + + The one-dimensional Array that is the destination of the + elements copied from the collection. The + Array must have zero-based indexing. + + + The zero-based index in array at which copying begins. + + + + + Gets the element at the specified index. + + + + + Gets the number of elements + contained in the collection. + + + + + Gets a value indicating whether + access to the collection is synchronized + (thread-safe). + + + + + Gets an object that can be used to + synchronize access to the collection. + + + + + Symbol iterator class (internal) + + + + + Interface ITcAdsDataType + + + + + Base interface for objects representing data types + + + + + Interface IBitSize + + Specifies the Bitness of the the object and the bit resp. byte sizes. + + + + Gets the size of the object in bytes or Bits dependant on + + The size of the bit. + + + + Gets a value indicating whether this instance is not basing on a full DataType but instead of some sort of bit mapping + + + true if this instance is bit mapping; otherwise, false. + + + + + Gets the size of the in bits. + + The size of in bits. + + + + Gets the (aligned) size of of the Type/Instance in Bytes + + The size of the byte. + + + + Indicates that the Size of the Object is Byte aligned (BitSize % 8 == 0) + + true if this instance is byte aligned; otherwise, false. + + + + Gets the ID of the DataType + + The id. + + + + Gets the Data Type category + + The category. + + + + Gets the name of the Data Type (without namespace) + + The name. + + + + Gets the namespace string within the exists. + + The namespace. + + + + Gets the full name of the (Namespace + Name) + + The full name. + + + + Gets a value indicating whether this is primitive + + + true if this instance is primitive; otherwise, false. + + + + + Gets a value indicating whether this is a container type + + Container Types are Array, Structs and its derivates (Function,FunctionBlock and Program) + + true if this instance is container type; otherwise, false. + + + + + Gets a value indicating whether this is a pointer type + + Pointer types can be dereferenced with the '^' operator. + + true if this instance is pointer type; otherwise, false. + + + + + Gets a value indicating whether this is a reference type + + Reference types can be dereferences. + + true if this instance is container type; otherwise, false. + + + + + Gets the attributes of the + + The attributes. + + + + Gets the comment behind the variable declaration. + + Comment behind the variable declaration. + + + + Alias/Reference Resolve interface + + + + + + Resolves this this DataType (if Alias/Reference) + + Resolved IDataType. + This interface is used for automatic Resolution of Alias/Reference within symbols. + + + + Gets the data type identifier. + + The data type identifier. + + + + Gets a value indicating whether this instance has dimension information. + + true if this instance has dimension information; otherwise, false. + + + + Gets the dimensions of an array type + + + The array infos. + + + + + Gets a value indicating whether this instance has RPC methods (Struct types only) + + true if this instance has RPC methods; otherwise, false. + + + + Gets the RPC method descriptions + + The RPC methods. + + + + Gets the Base Type of the Type (if enum, alias, array) + + The type of the base. + + + + Gets the name of the base type (if enum, alias, array) + + The name of the base type. + + + + Gets a value indicating whether this instance has enum information. + + true if this instance has enum information; otherwise, false. + + + + Obsolete + + The enum infos. + + + + Enumeration specification (if enum) + + The enum infos. + + + + Get the SubElements of this . + + The subItems. + + + + Gets a value indicating whether this instance has sub items. + + true if this instance has sub items; otherwise, false. + + + + Gets a value indicating whether this instance is an enum. + + true if this instance is enum; otherwise, false. + + + + + Gets a value indicating whether this instance is an array. + + true if this instance is array; otherwise, false. + + + + + Gets a value indicating whether this instance is an struct. + + true if this instance is structure; otherwise, false. + + + + + Determines whether this object is an SubItem (DataType Member, true) or a native DataType (false) + + true if [is sub item]; otherwise, false. + + + + Gets a value indicating whether this DataType is an alias. + + true if this instance is alias; otherwise, false. + + + + + Gets a value indicating whether this DataType is a string. + + true if this instance is string; otherwise, false. + + + + + Managed Type of the (simple,primitive) type. + + The managed type of the data type. + + + + Gets a value indicating whether this instance is an oversampling array. + + true if this instance is oversampling array; otherwise, false. + + + + Gets the DataTypeFlags + + The flags. + + + + Interface ITcAdsSubItem + + + + + Gets the name of the subitem / Sub element. + + The name of the sub item. + + + + Gets the offset of the SubItem (in Bytes or Bits) + + The offset. + If indicates 'BitSize' then this value will be in Bits, otherwise Bytes. + + + + Gets a value indicating whether this sub element is persistent. + + true if this subelement is persistent; otherwise, false. + + + + Defines an Interface for reading the ADS symbol information. + + + + + Gets the index group of the symbol. + + Index group of the symbol. + + + + Gets the index offset of the symbol. + + Index offset of the symbol. + + + + Gets the size of the symbol (in Bytes or bits dependent on ). + + Size of the symbol in Bytes / Bits + + + + DataType identifier of the Symbol + + Data type of the symbol. + + + + + Gets the name of the symbol. + + Name of the symbol. + + + + Gets the name fo the symbol data type. + + Name of the symbol data type. + + + + + Gets the comment behind the variable declaration. + + Comment behind the variable declaration. + + + + Extends the interface by reading the additional flags-information of an ADS symbol. + + + + + Indicates if the Persistent flag is set for the symbol. + + true if persistent, otherwise false. + + + + Indicates if the BitValue flag is set for the symbol. + + true if is BitValue, otherwise false. + + + + Indicates if the ReferenceTo flag is set for the symbol. + + true if is ReferenceTo, otherwise false. + + + + + Gets a value indicating whether this instance is a pointer. + + + true if this instance is pointer; otherwise, false. + + + + + + Indicates if the TypeGuid flag is set for the symbol. + + true if is TypeGuid, otherwise false. + + + + Indicates if the ReadOnly flag is set for the symbol. + + true if ReadOnly, otherwise false. + + + + Indicates if the TcComInterfacePointer flag is set for the symbol. + + true if is TcComInterfacePointer, otherwise false. + + + + Gets the ContextMask of the symbol, indicating the task the variable belongs to. + If ContextMask is not zero use or to add notifications. + + + + + Extends the interface with reading of ADS symbol Array Information + + + + + Gets a value indicating whether this instance is an array. + + + true if this instance is an array; otherwise, false. + + + + + + Gets the array dimensions. + + + The array dimensions. + + + + + Gets the collection of Array Infos. + + + The array infos. + + + + + Extends the interface by attribute information. + + + + + Gets the attribute count of the + + The attribute count. + int AttributeCount { get; } + + Gets the attributes of the + + The attributes. + + + + Gets a value indicating whether this instance is an Enum data type + + true if this instance is enum; otherwise, false. + + + + + Gets a value indicating whether this instance is an Struct data type + + true if this instance is struct; otherwise, false. + + + + + Gets a value indicating whether this instance has RPC methods (Struct types only) + + true if this instance has RPC methods; otherwise, false. + + + + Gets the RPC method descriptions + + The RPC methods. + + + + Gets the Data Type Category + + The category. + + + + Gets the Bit Size of the Symbol + + The Bit Size. + + + + Gets the Byte Size of the Symbol + + The size of the byte. + + + + Interface ITcAdsSymbol5 + + + + + Gets a value indicating whether this instance is recursive. + + The parents. + true if the specified parents is recursive; otherwise, false. + true if this instance is recursive; otherwise, false. + + + + Gets the Data type object of the Symbol. + + The data type object or NULL if not resolved. + + + + DataType identifier of the Symbol + + Data type of the symbol. + + + + Gets the name of the symbol data type. + + Name of the symbol data type. + + + + Gets a value indicating whether the Symbol is static. + + true if this instance is static; otherwise, false. + + + + Interface ITcAdsSubSymbolProvider + + Interface used for objects that support subsymbols (e.g. Arrays, References, Structs) + + + + + GetSubSymbols of this symbol. + + The SubSymbols. + + + + Interface ITcAdsSymbolRpcInvoke + + + + + Invokes the specified RPC Method. + + The symbol. + Name of the method. + The parameters. + System.Object. + + + + Invokes the specified RPC Method + + The symbol. + The method identifier / Virtual Function table index. + The parameters. + System.Object. + + + + Invokes the specified RPC Method + + The symbol path. + The method identifier. + The parameters. + System.Object. + + + + Invokes the specified RPC Method. + + The symbol. + Name of the method. + The parameters. + The return value. + true if succeeded, false otherwise. + + + + Invokes the specified RPC Method + + The symbol. + The method identifier / Virtual Function table index. + The parameters. + The return value. + true if succeeded, false otherwise. + + + + Invokes the specified RPC Method + + The symbol path. + The method identifier. + The parameters. + The return value. + true if succeeded, false otherwise. + + + + Marshalling class for uploaded Symbols + + + + Get the necessary read and writeBuffer sizes for an RPC invoke. + + The method specification + Necessary size of the write buffer. + Necessary size of the read Buffer. + + + + Gets the output parameter count of the + + The method. + System.Int32. + + + + Gets the input parameter count of the + + The method. + System.Int32. + + + + Unmarshal the returned data into the Out- (Read-) buffer of the RPC Call + + The method. + The parameter types. + The parameter values. + Type of the return. + The data. + The return value. + System.Int32. + + + + Marshals the Method Identification plus all In parameters into the In- (Write-) buffer + + The method. + The parameter types. + The parameter values. + The buffer. + The offset. + System.Int32. + + method + or + parameterTypes + or + parameterValues + or + data + + + offset + or + parameterTypes + or + parameters + + + + + Unmarshal the return value and the out parameters of an RPC Method call + + The method. + The parameter types. + The data. + The offset. + The values. + System.Int32. + + method + or + parameterTypes + or + data + + + offset + or + parameterTypes + + + + + Marshalling copy helper + + The buffer. + The offset. + The data to be copied to the buffer + System.Int32. + Data size mismatch! + + + + Marshals the specified data type. + + Type of the data. + The value. + The data. + The offset. + System.Int32. + + dataType + or + data + + offset + + String size mismatch + or + String size mismatch + + + + + + Unmarshal the specified data type. + + Type of the data. + The buffer. + The offset. + The value. + System.Int32. + + dataType + or + buffer + + offset + + + + + Class TcAdsDataType. + + + + + Interface IManagedMappableType specifies types that are directly mappable to .NET Types (Managed Types) + + + + + + Gets the corresponding .NET Type if attached. + + Dot net type. + + + + Static ID counter. + + + + + Default constructor. Prevents a default instance of the class from being created. + + + + + Initializes a new instance of the class. + + The name. + Type of the data. + The size. + The flags. + DataType category. + Type of the managed. + The type resolver. + name + + + + Initializes a new instance of the class. + + The name. + Type of the data. + The size. + The flags. + DataType category. + Name of the base type. + Type of the managed. + The type resolver. + name + name + + + + Initializes a new instance of the class (ArrayObject) + + The name. + Type of the element. + Size of the element. + The dims. + The table. + + + + Initializes a new instance of the class with byte size. + + The name. + Type of the data. + The size. + DataType category. + Type of the managed. + + + + Initializes a new instance of the class with byte size. + + The name. + Type of the data. + The size. + DataType category. + Type of the base. + Type of the managed. + + + + Initializes a new instance of the class. + + The entry. + The table. + + + + ID of the + + + + + Type Name + + + + + The size + + + + + Sets the size of the + + The size. + Type of the managed. + + + + DataType flags + + + + + The offset + + + + + The data type identifier + + + + + The base type (enum, alias) element type (array) + + + + + The sub items (array, struct) + + + + + The array information (Dimensions) + + + + + The managed type representation + + + + + The enum infos (enum) + + + + + The RPC method infos (structs only) + + + + + The attributes (Meta data) + + + + + Cached Category Value + + + + + Resolves the alias type chain. + + TcAdsDataType. + + + + + Returns a that represents this instance. + + A that represents this instance. + + + + Sets the resolver. + + The resolver. + + + + Gets the Name of the DataType + + The name. + + + + Gets the size of the in bytes + + The size. + If indicates 'BitSize' then this value will be in Bits, otherwise Bytes. + + + + Gets the data type flags. + + The flags. + + + + Indicates, that the and Offset values of the are in Bit size + + true if this instance is bit size; otherwise, false. + + + + Gets the data type identifier. + + The data type identifier. + + + + Gets the base type (enum, alias) element type (array) + + Base / Element Alias Type + + + + Gets the name of the base type (if enum, alias, array) + + The name of the base type. + + + + Gets the dimensions of an array type + + The array infos. + + + + Gets the managed type (if applicable) + + The type of the managed. + + + + Gets a value indicating whether this instance is structure. + + true if this instance is structure; otherwise, false. + + + + Gets a value indicating whether this instance is array. + + true if this instance is array; otherwise, false. + + + + Gets a value indicating whether this instance is a reference type. + + true if this instance is reference; otherwise, false. + + + + Gets a value indicating whether this instance is primitive. + + true if this instance is primitive; otherwise, false. + + + + Gets a value indicating whether this instance is enum. + + true if this instance is enum; otherwise, false. + + + + Determines whether this object is an SubItem (DataType Member, true) or a native DataType (false) + + true if this instance is sub item; otherwise, false. + + + + Gets the comment behind the variable declaration. + + Comment behind the variable declaration. + + + + Gets the Data Type Category + + The category. + + + + Gets the attributes of the + + The attributes. + + + + Gets a value indicating whether this instance has RPC methods (Struct types only) + + true if this instance has RPC methods; otherwise, false. + + + + Gets the RPC method descriptions + + The RPC methods. + + + + Gets the enum infos. + + The enum infos. + + + + Obsolete + + The enum infos. + + + + Gets the sub items. + + The sub items. + + + + Gets a value indicating whether this instance has sub items. + + true if this instance has sub items; otherwise, false. + + + + Gets the size of this in bits. + + The size of the bit. + + + + Gets the (aligned) size of of the Type/Instance in Bytes + + The size of the byte. + + + + Gets the ID of the DataType + + The id. + + + + Gets the namespace string within the exists. + + The namespace. + + + + Gets the full name of the (Namespace + Name) + + The full name. + + + + Gets a value indicating whether this is a container type + + true if this instance is container type; otherwise, false. + Container Types are Array, Structs and its derivate (Function,FunctionBlock and Program) + + + + Indicates that the Size of the Object is Byte aligned (BitSize % 8 == 0) + + true if this instance is byte aligned; otherwise, false. + + + + Gets a value indicating whether this DataType is an alias. + + true if this instance is alias; otherwise, false. + + + + Gets a value indicating whether this DataType is a string. + + true if this instance is string; otherwise, false. + + + + Gets a value indicating whether this instance is an oversampling array. + + true if this instance is oversampling array; otherwise, false. + + + + + Aligns the SubItem to the specified type. + + Type of the sub entry. + + + + Determines whether this object is an SubItem (DataType Member, true) or a native DataType (false) + + true if this instance is sub item; otherwise, false. + + + + Gets the name of the subitem / Sub element. + + The name of the sub item. + + + + Gets the offset of the SubItem (in Bytes or Bits) + + The offset. + If indicates 'BitSize' then this value will be in Bits, otherwise Bytes. + + + + Gets a value indicating whether this sub element is persistent. + + true if this subelement is persistent; otherwise, false. + + + + + Gets a value indicating whether this subItem is static. + + true if this instance is static; otherwise, false. + + + + Gets a value indicating whether this is a property. + + true if this instance is property; otherwise, false. + + + + Class DatatypeInfoTable (contains currently only the Default System types) + + + + + Default types + + + + + Gets the default types. + + + + + + Initializes a new instance of the class. + + The ads client. + The encoding used for strings marshalled from target. + + + + The encoding used for Strings marshalled from target + + + + + Resolves the specified type name to the object. + + The name. + ITcAdsDataType. + + + + Called when [type generated]. + + The types. + + + + Called when [type generated]. + + The type. + + + + Called when the data type resolution fails + + Name of the type. + + + + Occurs when a new type was generated. + + + + + Occurs when the datatype resolution fails + + + + + Internal Symbol Info table. + + + + + The internal Symbol Table + + + + + The Internal DataType table + + + + + Ads Client. + + + + + The encoding used for marshalling Symbols and DataType strings. + + + + + Initializes a new instance of the class. + + The ads client. + The symbol encoding. + + adsClient + or + symbolEncoding + + + + + Disposes this instance. + + + + + Cleanups this instance. + + + + + Writes the symbol. + + The name. + The value. + if set to true [b reload information]. + + Type of symbol not supported + or + Type of symbol not supported + + + + + Reads the symbol. + + The Symbol path. + Managed type + Reload type/symbol information. + System.Object. + + Type of symbol not supported + or + Type of symbol not supported + + + + + Creates a managed array and initializes it with information from ADS Read + + The managed array type. + Ads type. + The reader. + The reader offset. + System.Object. + + type + or + type + + + + + Writes the (managed) array value to ADS + + Managed Array value. + ADS Type. + The writer. + The writer offset. + + type + or + Cannot convert ads array type of symbol to this type.;type + + + + + Check Array Dimensions + + The array. + The array information. + + array + or + arrayInfo + + + type + or + type + or + type + or + type + or + type + or + type + or + type + or + Cannot convert ads array type of symbol to this type.;type + + + + + Initializes the structure. + + The sub items. + The struct type. + The reader. + The reader offset. + System.Object. + + type + or + type + + + + + Write (Managed) Struct value to Ads + + The value. + The subitems. + The writer. + The writer offset. + + type + or + type + + + + + Create managed primitive type and initlizes it with Value via ADS + + The name. + Type of the managed. + Type of the data. + Length of the byte. + The reader. + The reader offset. + System.Object. + + Cannot convert data type of symbol to this type.;type + or + Unexpected datatype. Cannot convert datatype of symbol to this type.;type + + + + + Sets the type of the primitive. + + The Symbol Path. + The value. + Type of the managed. + Type of the data. + Size of the byte. + The writer. + The writer offset. + + Cannot convert datatype of symbol to this type.;type + or + Unexpected datatype. Cannot convert datatype of symbol to this type.;type + + + + + Create managed instance Type and initialize with Ads value. + + The symbol path. + Type of the managed. + Type of the data. + The size. + The reader. + The reader position. + System.Object. + + + + Write managed enum instance to Ads + + The symbol path. + The value. + The type. + The writer. + The writer offset. + + + + Get Symbol + + The symbol path. + if set to true then this method looks first in its internal cache, otherwise it directly does an ADS roundtrip. + TcAdsSymbol. + name + + + + Get Symbol + + The symbol path. + if set to true then this method looks first in its internal cache, otherwise it directly does an ADS roundtrip. + The symbol. + TcAdsSymbol. + name + + + + Invokes the RPC method. + + The symbol. + The RPC method. + The parameter values. + System.Object if RpcMethod with return value, NULL if Void Method. + + symbol + or + rpcMethod + or + parameters + + Parameter values mismatch RpcMethod specification + Method parameter / return value types are not supported by RPC call. + ADS Communication errors + + + + Ads Info object describing the SymbolUpload data + + + + + Calculates the provided version of the structure marshalled from target. + + The read bytes. + System.Int32. + The version of the struct data is dependent + on the count of returned bytes. + + + + Initializes a new instance of the class. + + + + + Version of the Data loaded into this Object. + + + + + Initializes a new instance of the class. + + The reader. + Symbol info Version (dependent on the size of the Data in the reader) + + Version 1: AdsSymbolUploadInfo (8 bytes) + Version 2: AdsSymbolUploadInfo2 (24 bytes) + Version 3: AdsSymbolUploadInfo3 (64 bytes) + + + + + Dumps the + + System.String. + + + + Returns a that represents this instance. + + A that represents this instance. + + + + The symbols + + + + + The symbol size + + + + + The datatypes + + + + + The datatype size + + + + + The maximum dynamic symbols + + + + + The used dynamic symbols + + + + + Invalid dynamic symbols + + + + + The encoding code page (marshalled from target) + + + + + Symbol Upload Flags + + + + + Reserved bytes for future extensions. + + + + + Gets the symbol count. + + The symbol count. + + + + Gets the size of the symbols block. + + The size of the symbols block. + + + + Gets the data type count. + + The data type count. + + + + Gets the size of the data types block. + + The size of the data types block. + + + + Gets the maximum number of the dynamic symbols. + + The maximum dynamic symbol count. + + + + Gets the number of used dynamic symbols. + + The used dynamic symbol count. + + + + Gets the number of invalid dynamic symbols. + + The invalid dynamic symbol count. + + + + Gets the string encoding (marshalled from target) + + The string encoding for symbols and data types (Default: ) + + + + Gets the size of the Pointers on the target system. + + The size of the target pointer. + + + + Enum SymbolUploadFlags + + + + + None / Unititialized + + + + + Enum AdsGetDynamicSymbolType + + + + + Next + + + + + Sibling + + + + + Child + + + + + Parent + + + + + Class describing attribute entries. + + + + + + Interface for Ads attributes + + + + + Name of the Attribute + + The name. + + + + Gets the value of the attribute + + The value. + + + + Interface IAdsCustomMarshal + + + + + + Reads Binary (Ads-aligned) data from Ads stream. + + End position of parent structure (Error indication). + The encoding. + The reader. + + + + Attribute Name + + + + + Gets the Attribute Value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The parent end position. + The encoding. + The reader. + + + + Reads Binary (Ads-aligned) data from Ads stream. + + End position of parent structure (Error indication). + The used string encoding. + The reader. + + + + Gets the attribute name. + + The name. + + + + Gets the value of the Attribute + + The value. + + + + For internal use only. + + + + + + Interface ISymbolInfo + + + + + Gets the Symbol Path + + The path. + + + + Gets the data type Name + + The type of the data. + + + + For internal use only. + + The parent end position. + The encoding. + The reader. + + + + Reads Binary (Ads-aligned) data from Ads stream. + + End position of parent structure (Error indication). + The encoding. + The reader. + + + + Ads Entry length (the marshal size, 0) + + + + + 4 indexGroup of symbol: input, output etc. + + + + + 8 indexOffset of symbol + + + + + 12 size of symbol ( in bytes, 0 = bit ) + + + + + 16 adsDataType of symbol + + + + + 20 see above + + + + + Array Dimension count (22) + + + + + 24 length of symbol name (excl. \0) + + + + + 26 length of type name (excl. \0) + + + + + //28 length of comment (excl. \0) + + + + + Symbol name string (30) + + + + + Symbol Type Name (30 +namelength +1) + + + + + The comment (30 +namelength+1 +typelenght + 1) + + + + + The array + + + + + The type unique identifier (16 Bytes) + + + + + The attribute count (2 Bytes) + + + + + The attributes + + + + + The reserved + + + + + Gets the context mask of this instance. + + The context mask. + The Size of the internal data is 4-Bit + + + + Gets the Symbol Path + + The path. + + + + Gets the data type Name + + The type of the data. + + + + Symbol Flags, for internal use only. + + + + + + None + + + + + ADSSYMBOLFLAG_PERSISTENT + + + + + ADSSYMBOLFLAG_BITVALUE + + + + + ADSSYMBOLFLAG_REFERENCETO + + + + + ADSSYMBOLFLAG_TYPEGUID + + + + + ADSSYMBOLFLAG_TCCOMIFACEPTR + + + + + ADSSYMBOLFLAG_READONLY + + + + + ADSSYMBOLFLAG_ITFMETHODACCESS + + + + + ADSSYMBOLFLAG_METHODDEREF + + + + + ADSSYMBOLFLAG_CONTEXTMASK (4 Bit) + + + + + ADSSYMBOLFLAG_ATTRIBUTES + + + + + DataType Flags, for internal use only. + + + + + + ADSDATATYPEFLAG_DATATYPE + + + + + ADSDATATYPEFLAG_DATAITEM + + + + + ADSDATATYPEFLAG_REFERENCETO + + + + + ADSDATATYPEFLAG_METHODDEREF + + + + + ADSDATATYPEFLAG_OVERSAMPLE + + + + + ADSDATATYPEFLAG_BITVALUES + + + + + ADSDATATYPEFLAG_PROPITEM + + + + + ADSDATATYPEFLAG_TYPEGUID + + + + + ADSDATATYPEFLAG_PERSISTENT + + + + + ADSDATATYPEFLAG_COPYMASK + + + + + ADSDATATYPEFLAG_TCCOMIFACEPTR + + + + + ADSDATATYPEFLAG_METHODINFOS + + + + + ADSDATATYPEFLAG_ATTRIBUTES + + + + + ADSDATATYPEFLAG_ENUMINFOS + + + + + this flag is set if the datatype is aligned (ADSDATATYPEFLAG_ALIGNED) + + + + + data item is static - do not use offs (ADSDATATYPEFLAG_STATIC) + + + + + None / No Flag set + + + + + Class DataTypeFlagConverter. + + + + + Converts to + + The sub item flags. + AdsSymbolFlags. + + + + Interface IAdsEnumCustomMarshal + + + + + + Reads Binary (Ads-aligned) data from Ads stream + + The size of the Enum data type + End position of parent structure (Error indication). + The encoding. + The reader. + + + + Helper class Marshalling ADS Substructures. + + Substructure to read elements of + + + + Reads the specified amount of substructures from the reader. + + The element count. + End position of parent structure (Error indication). + The encoding. + The reader. + T[]. + + + + Helper class Marshalling Enum ADS Substructures + + Enum substructure to read. + + + + Reads the specified amount of substructures from the reader. + + The element count. + Size of the Enums base type. + The parent end position. + The encoding. + The reader. + T[]. + + + + Class AdsMethodEntry. + + + + + length of complete datatype entry + + + + + version of datatype structure + + + + + vTable index of this method + + + + + size of datatype ( in bytes ) + + + + + size of biggest element for alignment + + + + + The reserved + + + + + The return type unique identifier + + + + + adsDataType of symbol (if alias) + + + + + Internal option flags + + + + + length of datatype name (excl. \0) + + + + + length of dataitem type name (excl. \0) + + + + + length of comment (excl. \0) + + + + + The parameter count + + + + + name of datatype with terminating \0 + + + + + type name of dataitem with terminating \0 + + + + + comment of datatype with terminating \0 + + + + + Parameters Collection + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The parent end position. + The encoding. + The reader. + + + + Reads Binary (Ads-aligned) data from Ads stream. + + End position of parent structure (Error indication). + The encoding. + The reader. + + + + Class AdsMethodParaInfo. + + + + + length of complete datatype entry + + + + + size of datatype ( in bytes ) + + + + + size of biggest element for alignment (biggest element used for marshalling ???) + + + + + adsDataType of symbol (if alias) + + + + + The flags + + + + + The reserved + + + + + The type unique identifier + + + + + index-1 of corresponding parameter with length info - 0 = no para, 1 = first para... + + This field references to the Parameter that defines the length for this + generic one. Equally to the marshalling attributes of COM (sizeof, lenght) + this enables to transport parameter of type (PVOID) + + + + + length of datatype name (excl. \0) + + + + + length of dataitem type name (excl. \0) + + + + + length of comment (excl. \0) + + + + + name of datatype with terminating \0 + + + + + type name of dataitem with terminating \0 + + + + + comment of datatype with terminating \0 + + + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class. + + The parent end position. + The encoding. + The reader. + + + + Reads Binary (Ads-aligned) data from Ads stream. + + End position of parent structure (Error indication). + The encoding. + The reader. + + + + Class AdsEnumInfoEntry. + + + + + The name length + + + + + The name + + + + + The value + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Size of the value. + The parent end position. + The encoding. + The reader. + + + + Reads the specified value size. + + Size of the value. + The parent end position. + The encoding. + The reader. + + + + Class AdsFieldEntry (for internal use only) + + + + + + + + Class AdsDatatypeEntry (for internal use only) + + + + + + 0 length of complete datatype entry + + + + + 4 version of datatype structure + + + + + 8 hashValue of datatype to compare datatypes + + + + + 12 hashValue of base type / Code Offset to setter Method (typeHashValue or offsSetCode) + + + + + 16 size of datatype ( in bytes or bits depending on the BitValues flag ) + + + + + 20 offs of dataitem in parent datatype ( in bytes or bits depending on the BitValues flag ) + + + + + 24 adsDataType of symbol (if alias) + + + + + The flags (28) + + + + + length 32 length of datatype name (excl. \0) + + + + + 34 length of dataitem type name (excl. \0) + + + + + 36 length of comment (excl. \0) + + + + + 38, count of array dimensions + + + + + 40, count of SubItems + + + + + 42, Name of the Entry (TypeName if Root, Fieldname if SubEntry?) + + + + + Datatype name (42 + nameLength + 1 ) + + + + + Comment (42 + typeLength +1 + typeLength+1) + + + + + The array infos + + + + + The sub entries + + + + + The type unique identifier + + + + + The copy mask + + + + + The method count + + + + + The methods + + + + + The attribute count + + + + + The attributes + + + + + The enum information count + + + + + The enums + + + + + The reserved + + + + + The s_id count + + + + + The _root entry + + + + + The _id + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + if set to true [root entry]. + The encoding. + The reader. + + + + Reads Binary (Ads-aligned) data from Ads stream. + + End position of parent structure (Error indication). + The encoding. + The reader. + + + + Tries the get pointer reference. + + Type of the reference. + true if XXXX, false otherwise. + + + + Tries the get reference. + + Type of the reference. + true if XXXX, false otherwise. + + + + Indicator for a subItem + + + + + Gets the DataType Flags + + The flags. + + + + Gets a value indicating whether this instance is pointer. + + true if this instance is pointer; otherwise, false. + + + + Gets a value indicating whether this instance is reference. + + true if this instance is reference; otherwise, false. + + + + Gets a value indicating whether this instance is sub range. + + true if this instance is sub range; otherwise, false. + + + + Gets a value indicating whether this instance is array. + + true if this instance is array; otherwise, false. + + + + Gets a value indicating whether this instance is an struct. + + true if this instance is structure; otherwise, false. + + + + Gets a value indicating whether this instance is enum. + + true if this instance is enum; otherwise, false. + + + + Determines whether this object is an SubItem (DataType Member, true) or a native DataType (false) + + true if this instance is sub item; otherwise, false. + + + + Gets a value indicating whether this instance has attributes. + + true if this instance has attributes; otherwise, false. + + + + Gets a value indicating whether this instance has RPC methods. + + true if this instance has RPC methods; otherwise, false. + + + + Gets the size of the in bytes + + The size. + If indicates 'BitSize' then this value will be in Bits, otherwise Bytes. + + + + Indicates, that the and Offset values of the SubItems are in Bit size + + true if this instance is bit size; otherwise, false. + + + + Gets the data type identifier. + + The data type identifier. + + + + Gets the name of the symbol. + + Name of the symbol. + + + + Gets the comment behind the variable declaration. + + Comment behind the variable declaration. + + + + Gets the attributes of the + + The attributes. + + + + Gets the RPC method descriptions + + The RPC methods. + + + + Gets the base type of this + + The type of the base. + + + + Gets the name of the base type (if enum, alias, array) + + The name of the base type. + + + + Gets the Data Type Category + + The category. + + + + Gets the dimensions of an array type + + The array infos. + + + + Gets the enum infos. + + The enum infos. + + + + Gets the size of this in bits. + + The size of the bit. + + + + Gets the (aligned) size of of the Type/Instance in Bytes + + The size of the byte. + + + + Tries to get the Pointer reference type. + + Type of the reference. + true if XXXX, false otherwise. + + + + Tries to get the Referenced type. + + Type of the reference. + true if XXXX, false otherwise. + + + + Gets the name of the sub item. + + The name of the sub item. + + + + Gets the offset. + + The offset. + + + + Gets a value indicating whether the is static. + + true if this instance is static; otherwise, false. + + + + Gets a value indicating whether the is static. + + true if this instance is static; otherwise, false. + + + + Symbol representation + + + The TcAdsSymbol is used within the + + + + + The type entry flags + + + + + The symbol flags. + + + + + Initializes a new instance of the class. + + The entry. + The type entry. + symbolEntry + + + + Gets the corresponding managed type of this symbol. This only works for + primitive types. + + Managed type of symbol. + + + + Gets a value indicating whether this instance is recursive. + + The parents. + true if the specified parents is recursive; otherwise, false. + true if this instance is recursive; otherwise, false. + + + + Determines whether the specified Symbol is a self reference. + + The parents. + The sub symbol. + true if [is self reference] [the specified parents]; otherwise, false. + + + + Gets the data Type of this + + The type of the data. + + + + Gets the index group of the symbol. + + Index group of the symbol. + + + + Gets the index offset of the symbol. + + Index offset of the symbol. + + + + Gets the size of the symbol. + + Size of the symbol. + + + + Data type of the symbol. + + Data type of the symbol. + + + + Obsolete, use ITcAdsSymbol5.TypeName instead. + + Name of the symbol data type. + + + + + Gets the name of the symbol. + + Name of the symbol. + + + + Gets the name of the symbol data type. + + Name of the symbol data type. + + + + Obsolete, use ITcAdsSymbol5.TypeName instead. + + Name of the symbol data type. + + + + + Gets the comment behind the variable declaration. + + Comment behind the variable declaration. + + + + Indicates if the Persistent flag is set for the symbol. + + true if persistent, otherwise false. + + + + Gets a value indicating whether the Symbol is static. + + true if this instance is static; otherwise, false. + + + + Indicates if the BitValue flag is set for the symbol. + + true if is BitValue, otherwise false. + + + + Gets a value indicating whether this instance is pointer. + + + true if this instance is pointer; otherwise, false. + + + + + Indicates if the ReferenceTo flag is set for the symbol. + + true if is ReferenceTo, otherwise false. + + + + Indicates if the TypeGuid flag is set for the symbol. + + true if is TypeGuid, otherwise false. + + + + Indicates if the ReadOnly flag is set for the symbol. + + true if ReadOnly, otherwise false. + + + + Indicates if the TcComInterfacePointer flag is set for the symbol. + + true if is TcComInterfacePointer, otherwise false. + + + + Gets the ContextMask of the symbol, indicating the task the variable belongs to. + If ContextMask is not zero use or to add notifications. + + + + + Gets the attribute count of the + + The attribute count. + + + + Gets the attributes of the + + The attributes. + + + + Gets a value indicating whether this instance is an array. + + true if this instance is an array; otherwise, false. + + + + Gets the array dimensions. + + The array dimensions. + + + + Gets the collection of Array Infos. + + The array infos. + + + + Gets a value indicating whether this instance is an Enum data type + + true if this instance is enum; otherwise, false. + + + + Gets a value indicating whether this instance is an Struct data type + + true if this instance is struct; otherwise, false. + + + + Gets a value indicating whether this instance has RPC methods (Struct types only) + + true if this instance has RPC methods; otherwise, false. + + + + Gets the RPC method descriptions + + The RPC methods. + + + + Gets the Data Type Category + + The category. + + + + Gets the size of this in bits. + + The size of the bit. + + + + Gets the (aligned) size of of the Type/Instance in Bytes + + The size of the byte. + + + + Enum VarEnum + + + + + Variant type EMPTY + + + + + Variant type NULL + + + + + Variant type I2 + + + + + Variant type I4 + + + + + Variant type R4 + + + + + Variant type R8 + + + + + Variant type CY + + + + + Variant type DATE + + + + + Variant type BSTR + + + + + Variant type DISPATCH + + + + + Variant type ERROR + + + + + Variant type BOOL + + + + + Variant type VARIANT + + + + + Variant type UNKNOWN + + + + + Variant type DECIMAL + + + + + Variant type I1 + + + + + Variant type UI1 + + + + + Variant type UI2 + + + + + Variant type UI4 + + + + + Variant type I8 + + + + + Variant type UI8 + + + + + Variant type INT + + + + + Variant type UINT + + + + + Variant type VOID + + + + + Variant type HRESULT + + + + + Variant type PTR + + + + + Variant type SAFEARRAY + + + + + Variant type CARRAY + + + + + Variant type USERDEFINED + + + + + Variant type LPSTR + + + + + Variant type LPWSTR + + + + + Variant type RECORD + + + + + Variant type INT_PTR + + + + + Variant type UINT_PTR + + + + + Variant type FILETIME + + + + + Variant type BLOB + + + + + Variant type STREAM + + + + + Variant type STORAGE + + + + + Variant type STREAMED_OBJECT + + + + + Variant type STORED_OBJECT + + + + + Variant type BLOB_OBJECT + + + + + Variant type CF + + + + + The v t_ CLSID + + + + + Variant type CLSID + + + + + Variant type BSTR_BLOB + + + + + Variant type VECTOR + + + + + Variant type ARRAY + + + + + Variant type BYREF + + + + + Variant type RESERVED + + + + + Variant type ILLEGAL + + + + + Variant type ILLEGALMASKED + + + + + Variant type TYPEMASK + + + + + ADS data types. + + + + + Empty Type + + + + + Integer 8 Bit + + + + + Unsigned integer 8 Bit + + + + + Integer 16 Bit + + + + + Unsigned integer 16 Bit + + + + + Integer 32 Bit + + + + + Unsigned Integer 32 Bit + + + + + LONG Integer 64 Bit + + + + + Unsigned Long integer 64 Bit + + + + + Real (32 Bit) + + + + + Real 64 Bit + + + + + Blob + + + + + STRING + + + + + WSTRING + + + + + ADS REAL80 + + + + + ADS BIT + + + + + Internal Only + + + + + Array definition for a single dimension. + + + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class. + + The parent end position. + The encoding. + The reader. + + + + Initializes a new instance of the class. + + The lower bound. + The elements. + + + + Reads Binary (Ads-aligned) data from Ads stream. + + End position of parent structure (Error indication). + The encoding. + The reader. + + + + + Gets the lower bound. + + + + + Gets the number of elements. + + + + + Class AdsArrayDimensionsInfo. + + + + + The dimension information. + + + + + Initializes a new instance of the class. + + The dims. + dims + + + + Gets the number of elements over all dimensions + + The array information. + System.Int32. + + + + Get the number of Elements over all Dimensions + + The elements. + + + + Gets the lower bounds. + + The lower bounds. + + + + Gets the upper bounds. + + The upper bounds. + + + + Gets the dimension elements. + + The dimension elements. + + + + The class TcAdsSymbolInfo represents a symbol loaded by an instance of the TcAdsSymbolInfoLoader class. + + + + + The id_counter + + + + + The index group + + + + + The index offset + + + + + The size + + + + + The data type identifier + + + + + The TypeEntry Flags + + + + + The flags + + + + + The name + + + + + The short name + + + + + The type name + + + + + The comment + + + + + The data type + + + + + The symbol parser + + + + + The parent + + + + + The sub index + + + + + The sub symbols + + + + + The array infos + + + + + The attributes + + + + + The _id + + + + + Initializes a new (uninitialized) instance of the class. + + The symbol parser. + The parent. + Index of the sub. + The members of the created instance must be initialized afterwards. + + + + Initializes a new instance of the class (Created from AdsSymbolEntry and TcAdsDataType, browsing) + + The symbol parser. + The parent. + The index. + The symbol entry. + The type entry (can be NULL for internal Types) + symbolParser + or + symbolEntry + + + + Initializes a new instance of the class (Dynamic creation from Type) + + The symbol parser. + The parent. + Index of the sub. + The type entry. + typeEntry + This is used for dynamic reference creation + + + + Gets the Base data type of the pointer (the referenced type) + + Type of the reference. + true if XXXX, false otherwise. + + + + Resolves the ALias chain of the DataType + + ITcAdsDataType if DataType is available, otherwise NULL + + + + Gets the referenced data type of the reference. + + Type of the referenced. + true if XXXX, false otherwise. + + + + Sets the BitType. + + if set to true [bit type]. + + + + Returns a that represents this instance. + + A that represents this instance. + + + + Equals + + The object to compare with the current object. + true if the specified is equal to this instance; otherwise, false. + + + + Operator== + + Symbol 1. + Symbol 2. + The result of the operator. + + + + Operator-= + + The symbol 1. + The symbol 2. + The result of the operator. + + + + Gets the HashCode of the Address + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + Gets a value indicating whether this instance is recursive. + + The parents. + true if the specified parents is recursive; otherwise, false. + true if this instance is recursive; otherwise, false. + + + + Gets the DataType object + + The dataType if available, or NULL. + Tries to resolve the DataType if not cached. + + + + + Gets the parent of this symbol. + + Parent of this symbol + + + + Gets the next sibling of this symbol [Obsolete] + + Next sibling of this symbol. + Use the collection instead. + + + + + Gets the next sub symbol of this symbol [obsolete] + + Next sub symbol. + Use instead. + + + + + Gets the sub symbols of this symbol as a collection of TcAdsSymbolInfo objects. + + The SubSymbol collection. + + + + Gets the number of sub symbols [Obsolete] + + The sub symbol count. + Use Count member instead. + + + + + Gets the index group of the symbol. + + Index group of the symbol. + + + + Gets the index offset of the symbol. + + Index offset of the symbol. + + + + Gets the size of the symbol. + + Size of the symbol. + + + + Obsolete, do not use + + Data type id of the symbol. + + + + + Data type of the symbol. + + Data type of the symbol. + + + + Gets the name of the symbol. + + Name of the symbol. + + + + Gets the name of the symbol (short form without prefixed names of the parents). + + Full name of the symbol. + + + + Obsolete, use ITcAdsSymbol5.TypeName instead. + + Name of the symbol data type. + + + + + Gets the name of the symbol data type. + + Name of the symbol data type. + + + + Gets the comment behind the variable declaration. + + Comment behind the variable declaration. + + + + Gets a value indicating whether this is a pointer. + + true if this instance is pointer; otherwise, false. + + Gets a value indicating whether this represents an array. + + true if this instance is an array; otherwise, false. + + + + + Indicates if the ReferenceTo flag is set for the symbol. + + true if is ReferenceTo, otherwise false. + + Gets a value indicating whether this represents an array. + + true if this instance is an array; otherwise, false. + + + + + Gets or sets a value indicating whether an ancestor is a dereferenced Reference + + true if this instance is ancestor is reference; otherwise, false. + + + + Gets or sets a value indicating whether an ancestor is a dereferenced Pointer + + true if this instance is ancestor is pointer; otherwise, false. + + + + Indicates if the Persistent flag is set for the symbol. + + true if persistent, otherwise false. + + + + Indicates if the BitValue flag is set for the symbol. + + true if is BitValue, otherwise false. + + + + Indicates, that this symbol is a static symbol. + + Static indicator. + + + + Indicates if the TypeGuid flag is set for the symbol. + + true if is TypeGuid, otherwise false. + + + + Indicates if the ReadOnly flag is set for the symbol. + + true if ReadOnly, otherwise false. + + + + Indicates if the TcComInterfacePointer flag is set for the symbol. + + treu if is TcComInterfacePointer, otherwise false. + + + + Gets the ContextMask of the symbol, indicating the task the variable belongs to. + If ContextMask is not zero use or to add notifications. + + The context mask. + + + + Gets a value indicating whether this represents an array. + + true if this instance is an array; otherwise, false. + + + + + Gets the array dimensions. + + The array dimensions. + + + + Gets the collection of Array Infos. + + The array infos. + + + + Gets a value indicating whether this instance is oversampling array. + + true if this instance is oversampling array; otherwise, false. + + + + Gets the attributes of the + + The attributes or NULL if no Attributes are defined. + int AttributeCount { get; } + + + + Gets a value indicating whether this instance is an Enum data type + + true if this instance is enum; otherwise, false. + + + + + Gets a value indicating whether this instance has RPC methods (Struct types only) + + true if this instance has RPC methods; otherwise, false. + + + + Gets the RPC method descriptions + + The RPC methods. + + + + Gets the Data Type Category + + The category. + + + + + Gets a value indicating whether this instance is an Stuct data type + + true if this instance is struct; otherwise, false. + + + + + Gets the size of this in bits. + + The size of the bit. + + + + Gets the (aligned) size of of the Type/Instance in Bytes + + The size of the byte. + + + + Enum ADSIGRP_SYM + + + + + The hndbyname + + + readLength == 4: handle + readLength > 4: handle(4) + var size(4) + type decoration(4) + + type name length(2) + type name(n) + '\0'(1) + + + + + VALBYNAME + + + + + VALBYHND + + + + + RELEASEHND + + + + + INFOBYNAME + + + + + VERSION + + + + + INFOBYNAMEEX + + + + + DOWNLOAD + + + + + UPLOAD + + + + + UPLOADINFO + + + + + DOWNLOAD2 + + + + + DT_UPLOAD + + + + + UPLOADINFO2 + + + + + notification of named handle (0xF010, 61456) + + + + + DT_INFOBYNAMEEX (0xF011,61457) + + + + + ADDRBYHND (0xF012,61458) + + + + + POINTER_SUPPORT (0xF013,61459) + + + + + dummy IGRP for dereferenced pointer: read or write access via this IGRP is not possible (0xF014, 61460) + + + + + REFERENCE_SUPPORT (0xF015, 61461) + + + + + dummy IGRP for dereferenced a reference: read or write access via this IGRP is not possible (0xF016, 61462) + + + + + dummy IGRP for access via getter and setter methods (0xF017, 61463) + + + + + VALBYHND_WITHMASK (0xF018, 61464) + + + + + NOACCESS_TO_SUBSYM (0xF019, 61465) + + + + + dummy IGRP for dereferenced pointer to bit access ( ADSIGRP_SYM_POINTER_BITACCESS, 0xf014, 61466) + + Read or write access via this IGRP is not possible. + + + + + dummy IGRP for dereferenced a reference to bit access: (ADSIGRP_SYM_REFERENCE_BITACCESS, 0xF01B, 61467) + + + Read or write access via this IGRP is not possible + + + + + The class TcAdsSymbolInfoLoader is responsible for downloading the list of declared variables and the data types from an ADS Server. + + + + + Interface ITypeBinderEvents + + Used for providing events about TypeGeneration and TypeResolution Errors. + + + + + Occurs when new types are generated + + + + + Occurs when a typename cannot be resolved. + + + + + Initial block size used for Data type and Symbol Upload (enlarging dynamically during upload on large data blobs) + + + + + The _ads client + + + + + The _is enumerating + + + + + The _symbol parser + + + + + The _symbols + + + + + The _data types + + + + + Initializes a new instance of the class. + + The ads client. + The symbol information. + + adsClient + or + symbolInfo + + + + + The symbol upload information + + + + + Loads the declared symbols from the ADS device and returns them as a collection of TcAdsSymbolInfo objects. + + True, if a (new) loading of the symbol information from the server is required. + A collection of TcAdsSymbolInfo objects + If no symbols have been loaded before, the symbols are loaded from the server, regardless of the parameter forceReload. +

Note about the PLC: Please attend to the PLC Control that the 'Symbol-Download' under Project / Options / TwinCAT is activated. For further information please see the manual TwinCAT PLC Control.

Note about NC: The Symbol download has to be activated at each axis. This can de done in the configuration dialog of the axis under ‚General'. The field ‚Create Symbols' has to be marked. See manual of the TwinCAT System Manager.

+
+ + + Gets the data types. + + if set to true [force reload]. + ReadOnlyTcAdsDataTypeCollection. + + + + Returns an enumerator that can iterate through all symbols. + + An IEnumerator that can be used to iterate through all symbols. + + + + Call this method to find a symbol in the list. + + Name of the symbol + TcAdsSymbolInfo. + If no symbols have been loaded before, the symbols are loaded from the server, regardless of the parameter forceReload. +

Note about the PLC: Please attend to the PLC Control that the 'Symbol-Download' under Project / Options / TwinCAT is activated. For further information please see the manual TwinCAT PLC Control.

Note about NC: The Symbol download has to be activated at each axis. This can de done in the configuration dialog of the axis under ‚General'. The field ‚Create Symbols' has to be marked. See manual of the TwinCAT System Manager.

+
+ + + Call this method to get the number of declared symbols. + + True, if a (new) loading of the symbol information from the server is required. + Returns the number of symbols. + If no symbols have been loaded before, the symbols are loaded from the server, regardless of the parameter forceReload. + Note about the PLC: Please attend to the PLC Control that the 'Symbol-Download' under Project / Options / TwinCAT is activated. For further information please see the manual TwinCAT PLC Control. + Note about NC: The Symbol download has to be activated at each axis. This can de done in the configuration dialog of the axis under ‚General'. The field ‚Create Symbols' has to be marked. See manual of the TwinCAT System Manager. + + + + Call this method to get the first symbol. + + True, if a (new) loading of the symbol information from the server is required. + Returns the first symbol or null if no symbols are available. + If no symbols have been loaded before, the symbols are loaded from the server, regardless of the parameter forceReload. + Note about the PLC: Please attend to the PLC Control that the 'Symbol-Download' under Project / Options / TwinCAT is activated. For further information please see the manual TwinCAT PLC Control. + Note about NC: The Symbol download has to be activated at each axis. This can de done in the configuration dialog of the axis under ‚General'. The field ‚Create Symbols' has to be marked. See manual of the TwinCAT System Manager. + + + + Initializes the upload symbols. + + if set to true [force reload]. + true if XXXX, false otherwise. + + + + Uploads All Symbols and DataTypes from target device + + + + + Handles the TypesGenerated event of the _symbolParser control. + + The source of the event. + The instance containing the event data. + + + + Handles the ResolveError event of the _symbolParser control. + + The source of the event. + The instance containing the event data. + + + + Reads the upload information. + + AdsSymbolUploadInfo. + + + + Reads the data type information into the Stream (blockwise) + + The datatype stream. + The information. + Initial size of the block. + + + + Reads the symbol information into the specified stream (block wise). + + The symbol stream. + The information. + Initial size of the block. + + + + Occurs when new types are generated + + + + + Occurs when a typename cannot be resolved. + + + + + Gets the size of the platform pointer (available only after SymbolInfos are downloaded) + + The size of the platform pointer. + + + + Ads Symbol Enumerator + + + + + The current symbol + + + + + The symbol loader + + + + + The is valid + + + + + The next nav type + + + + + Initializes a new instance of the class. + + The symbol loader. + + + + Checks the valid. + + + + + + Indicates, that SubSymbols will be dereferenced (POINTER and REFERENCE types) + + + + + Advances the enumerator to the next element of the collection. + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + + + + Gets the current element in the collection. + + The current. + + + + AMS/ADS Net ID + + + + + The local value + + + + + The empty value + + + + + The local host value + + + + + The regular expression pattern + + + + + The net identifier + + + + + Initializes a new instance of the class. + + + + + Constructor + + NetID as string + + + + Constructor + + Net ID in bytes + Not a valid NetId;netId + + + + Copy Constructor + + Net Id. + + + + Converts the netId to string + + A that represents this instance. + + + + Returns a that represents this instance. + + The format. + The format provider. + A that represents this instance. + + + + Formatting + Description + + + g + Standard formatting + + + x + Formatting as Hexadecimal (small letters) + + + X + Formatting as Hexadecimal (big letters) + + + + + + Converts the NetId object to byte array + + System.Byte[]. + + + + Clones the NetId + + The cloned + + + + Gets the netId string from the byte array + + The net identifier. + System.String. + + + + + The _local net identifier + + + + + The regex + + + + + Gets the net Id as byte array + + The string. + System.Byte[]. + + + + + Gets the net bytes. + + The match. + System.Byte[]. + match + Regular exception didn't match!;match + + + + Gets the net identifier. + + The match. + AmsNetId. + + + + Converts the string representation of the address to . + + The string to parse. + The parsed . + true if parsed, false otherwise. + + + + Converts the string representation of the address to . + + The string to parse. + AmsNetId. + Format of AmsNetId is not valid! + + + + Creates the from bin hex string. + + The BinHex string. + AmsNetId. + + + + Converts the specified to a BinHex string. + + NetId to convert + System.String. + + + + Converts the to a BinHex string. + + System.String. + + + + Compares the NetIds + + NetID1 + NetId2 + true if XXXX, false otherwise. + + + + Compares the netIds + + NetId in bytes. + true if XXXX, false otherwise. + + + + Determines whether the s refer to the same target. + + NetID of target system A + NetID of target system B + true if the target systems are the same, otherwise false. + + In comparison to the or methods, this Method alse + checks against the LocalHost ID, which means that is the same target as + + + + Determines whether the specified s are equal. + + The net IDA. + The net IDB. + true if the specified net IDA is equal; otherwise, false. + + + + Equals + + The object to compare with the current object. + true if the specified is equal to this instance; otherwise, false. + + + + Operator== + + The o1. + The o2. + The result of the operator. + + + + Operator-= + + The o1. + The o2. + The result of the operator. + + + + Gets the HashCode of the Address + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + Compares the current object with another object of the same type. + + An object to compare with this object. + A value that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the parameter.Zero This object is equal to . Greater than zero This object is greater than . + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + A value that indicates the relative order of the objects being compared. The return value has these meanings: Value Meaning Less than zero This instance precedes in the sort order. Zero This instance occurs in the same position in the sort order as . Greater than zero This instance follows in the sort order. + + + + Is the Address Local? + + true if this instance is local; otherwise, false. + + + + Creates an empty NetId ("0.0.0.0.0.0") + + The empty. + + + + Creates the local NetId ("127.0.0.1.1.1") + + The local host. + + + + Gets the Local Net ID (System service must be running) + + The local. + The system service must be running + + + + The structure contains the Ads state and device state. + + + + + Initializes a new Instance of the StateInfo struct. + + Ads state. + Device state. + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + + Implements the ==. + + a. + The b. + The result of the operator. + + + + Implements the !=. + + a. + The b. + The result of the operator. + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + + Returns a hash code for this instance. + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + Gets or sets the Ads state of this object. + + + + + Gets or sets the device state of this object. + + + + + The structure contains the name and the version information of the device. + + + + + Gets or sets the name of the device. + + + + + Gets or sets the version information. + + + + + Gets a value indicating whether this instance is empty. + + true if this instance is empty; otherwise, false. + + + + The structure contains the version number, revision number and build number. + + + + + Initializes a new instance of the struct. + + The version. + The revision. + The build. + + version + or + revision + + + + + Converts this to a .NET Framework object. + + Version. + + + + Gets or sets the version number. + + + + + Gets or sets the revision number. + + + + + Gets or sets the build number. + + + + + Gets a value indicating whether this instance is empty / uninitialized. + + true if this instance is empty; otherwise, false. + + + + Converts the type to and vice versa. + + + + + + Converts the to + + The ads version. + Version. + + + + Converts the to + + The version. + AdsVersion. + version + Revision number not supported by AdsVersion object! + + + + ADS Transmission Mode for Notifications. + + + Defines on what times the AdsNotification is fired. + + + + + No AdsSyncNotification-Event is fired (ADSTRANS_NOTRANS = 0) + + + + + The AdsSyncNotification-Event is fired cyclically triggered by the client (ADSTRANS_CLIENTCYCLE=1) + + + + + The AdsSyncNotification-Event is fired when data changes triggered by the client. (ADSTRANS_CLIENTONCHA = 2) + + + + + The AdsSyncNotification-Event is fired cyclically (ADSTRANS_SERVERCYCLE = 3) + + + + + The AdsSyncNotification-Event is fired when the data changes (ADSTRANS_SERVERONCHA = 4) + + + + + The AdsSyncNotification-Event is fired cyclically within the given context (ADSTRANS_SERVERCYCLE2 = 5) + + + + + The AdsSyncNotification-Event is fired when the data changes within the given context (ADSTRANS_SERVERONCHA2 = 6) + + + + + The client1 req (ADSTRANS_CLIENT1REQ = 10) + + + + + State of the Ams Router. + + + + + Unknown Router State + + + + + Ams Router is stopped. + + + + + Ams Router is started. + + + + + Ams Router has been removed. + + + + + AmsPorts + + + + + AmsRouter (Port 1) + + + + + AmsDebugger (Port 2) + + + + + Logger (Port 100) + + + + + Event Logger (Port 110) + + + + + R0 Realtime (Port 200) + + + + + R0 Trace (Port 290) + + + + + R0 IO (Port 300) + + + + + NC (R0) (Port 500) + + + + + R0 Satzausführung (Port 501) + + + + + R0 Satzvorbereitung (Port 511) + + + + + R0 ISG (Port 550) + + + + + R0 CNC (Port 600) + + + + + R0 Line (Port 700) + + + + + R0 PLC (Port 800) + + + + + Obsolete + + + + + + Tc2 PLC RuntimeSystem 1 (Port 801) + + + + + Obsolete + + + + + + Tc2 PLC RuntimeSystem 2 (Port 811) + + + + + Obsolete + + + + + + Tc2 PLC RuntimeSystem 3 (Port 821) + + + + + Obsolete + + + + + + Tc2 PLC RuntimeSystem 4 (Port 831) + + + + + Camshaft Controller (R0) (Port 900) + + + + + R0 CAM Tool (Port 950) + + + + + R0 User (Port 2000) + + + + + System Service (AMSPORT_R3_SYSSERV, 10000) + + + + + (Port 10000) + + + + + (Port 10001) + + + + + Port 10100 + + + + + Port 10200 + + + + + Port 10201 + + + + + Port 10300 + + + + + Port 10400 + + + + + Port 10500 + + + + + Port 10600 + + + + + Port 10800 + + + + + Port 11000 + + + + + Port 11500 + + + + + Port 12000 + + + + + Port 13000 + + + + + Port 14000 + + + + + Port 15000 + + + + + Port 16000 + + + + + Port 17000 + + + + + Port 17500 + + + + + + + + + + Describes the AdsState. + + + + + Invalid + + + + + Idle + + + + + Reset + + + + + Initialize + + + + + Start + + + + + Run + + + + + Stop + + + + + Save Configuration + + + + + Load Configuration + + + + + Power failure + + + + + Power Good + + + + + Error + + + + + Shutdown + + + + + Suspend + + + + + Resume + + + + + Config (System is in config mode) + + + + + Reconfig (System should restart in config mode) + + + + + Stopping + + + + + Incompatible + + + + + Exception + + + + + Maxstates (no valid state) + + + + + + Describes predefined Index-Groups. + + + + + + PlcRWIB (0x4000, 16384) + + + + + PlcRWOB (0x4010, 16400) + + + + + PlcRWMB (0x4020, 16416) + + + + + PlcRWRB (0x4030, 16432) + + + + + PlcRWDB (0x4040,16448) + + + + + SymbolTable (0xF000, 61440) + + + + + SymbolName (0xF001, 61441) + + + + + SymbolValue (0xF002, 61442) + + + + + SymbolHandleByName (0xF003, 61443) + + + readLength == 4: handle + readLength > 4: handle(4) + var size(4) + type decoration(4) + + type name length(2) + type name(n) + '\0'(1) + + + + + SymbolValueByName (0xF004, 61444) + + + + + SymbolValueByHandle (0xF005, 61445) + + + + + SymbolReleaseHandle (0xF006, 61446) + + + + + SymbolInfoByName (0xF007, 61447) + + + + + SymbolVersion (0xF008, 61448) + + + + + SymbolInfoByNameEx (0xF009, 61449) + + + + + SymbolDownload (F00A, 61450) + + + + + SymbolUpload (F00B, 61451) + + + + + SymbolUploadInfo (0xF00C, 61452) + + + + + Notification of named handle (0xF010, 61456) + + + + + read/write input byte(s) (0xF020, 61472) + + + + + read/write input bit (0xF021, 61473) + + + + + read/write output byte(s) (0xF030, 61488) + + + + + read/write output bit (0xF031, 61489) + + + + + write inputs to null (0xF040, 61504) + + + + + write outputs to null (0xF050, 61520) + + + + + ADS Sum Read Command (ADSIGRP_SUMUP_READ, 0xF080, 61568) + + + + + ADS Sum Write Command (ADSIGRP_SUMUP_WRITE, 0xF081, 61569) + + + + + ADS sum Read/Write command (ADSIGRP_SUMUP_READWRITE, 0xF082, 61570) + + + + + DeviceData (0xF100,61696) + + + + + Describes predefined Index-Offsets. + + " + + + + Device Data Ads State + + + + + DeviceDataDeviceState + + + + + DeviceDataConfigID + + + + + Describes the Ads error that occured. + + + + + No Error. + Error code: 0(0x000). + + + + + Internal Error. + Error code: 1(0x001). + + + + + No Rtime. + Error code: 2(0x002). + + + + + Allocation locked memory error. + Error code: 3(0x003). + + + + + Insert mailbox error. + Error code: 4(0x004). + + + + + Wrong receive HMSG. + Error code: 5(0x005). + + + + + Target port not found. + Error code: 6(0x006). + + + + + Target machine not found. + Error code: 7(0x007). + + + + + Unknown command ID. + Error code: 8(0x008). + + + + + Bad task ID. + Error code: 9(0x009). + + + + + No IO. + Error code: 10(0x00A). + + + + + Unknown AMS command. + Error code: 11(0x00B). + + + + + Win 32 error. + Error code: 12(0x00C). + + + + + Port is not connected. + Error code: 13(0x00D). + + + + + Invalid AMS length. + Error code: 14(0x00E). + + + + + Invalid AMS Net ID. + Error code: 15(0x00F). + + + + + Low Installation level. + Error code: 16(0x010). + + + + + No debug available. + Error code: 17(0x011). + + + + + Port disabled. + Error code: 18(0x012). + + + + + Port is already connected. + Error code: 19(0x013). + + + + + AMS Sync Win32 error. + Error code: 20(0x014). + + + + + AMS Sync timeout. + Error code: 21(0x015). + + + + + AMS Sync AMS error + Error code: 22(0x016). + + + + + AMS Sync no index map. + Error code: 23(0x017). + + + + + Invalid AMS port. + Error code: 24(0x018). + + + + + No memory. + Error code: 25(0x019). + + + + + TCP send error. + Error code: 26(0x01A). + + + + + Host unreachable. + Error code: 27(0x1B). + + + + + Invalid AMS fragment. + Error code: 28(0x1C). + + + + + Router: no locked memory. + Error code: 1280(0x500). + + + + + Router: The size of the router memory could not be changed. + Error code: 1281(0x501). + + + + + Router: mailbox full. + Error code: 1282(0x502). + + + + + Router: The mailbox has reached the maximum number of possible messages. + Error code: 1283(0x503). + + + + + Router: Unknown Port Type + Error code: 1284(0x504). + + + + + Router: Router is not initialized. + Error code: 1285(0x505). + + + + + Router: The desired port number is already assigned. + Error code: 1286(0x506). + + + + + Router: Port not registered. + Error code: 1287(0x507). + + + + + Router: The maximum number of Ports reached. + Error code: 1288(0x508). + + + + + Router: The port is invalid. + Error code: 1289(0x509). + + + + + Router: TwinCAT Router not active. + Error code: 1290(0x50A). + + + + + error class <device error"> + Error code: 1792(0x700). + + + + + Service is not supported by server. + Error code: 1793(0x701). + + + + + Invalid index group. + Error code: 1794(0x702). + + + + + Invalid index offset. + Error code: 1795(0x703). + + + + + Reading/writing not permitted. + Error code: 1796(0x704). + + + + + Parameter size not correct. + Error code: 1797(0x705). + + + + + Invalid parameter value(s). + Error code: 1798(0x706). + + + + + Device is not in a ready state. + Error code: 1799(0x707). + + + + + Device is busy. + Error code: 1800(0x708). + + + + + Invalid context (must be in Windows). + Error code: 1801(0x709). + + + + + Out of memory. + Error code: 1802(0x70a). + + + + + Invalid parameter value(s). + Error code: 1803(0x70b). + + + + + Obsolete + Error code: 1803(0x70b). + + + + + + Not found(files, ...). + Error code: 1804(0x70c). + + + + + Syntax error in command or file. + Error code: 1805(0x70d). + + + + + Objects do not match. + Error code: 1806(0x70e). + + + + + Object already exists. + Error code: 1807(0x70f). + + + + + Symbol not found. + Error code: 1808(0x7010). + + + + + Symbol version is invalid. + Error code: 1809(0x711). + + + + + Server is not i a valid state. + Error code: 1810(0x712). + + + + + ADS transmode is not supported. + Error code: 1811(0x713). + + + + + Notification handle is invalid. + Error code: 1812(0x714). + + + + + Notification vlient not registered. + Error code: 1813(0x715). + + + + + No more notification handles. + Error code: 1814(0x716). + + + + + Size for watch to big. + Error code: 1815(0x717). + + + + + Device is not initialized. + Errocr code: 1818(0x718). + + + + + Devicee has a timeout. + Error code: 1817(0x719). + + + + + Query interface has failed. + Error code: 1818(0x71A). + + + + + Wrong interface required. + Error code: 1819(0x71B). + + + + + Class ID is invalid. + Error code: 1820(0x71C). + + + + + Object ID is invalid. + Error code: 1821(0x71D). + + + + + Device: Request is Pending. + Error code: 1822(0x71E). + + + + + Device: Request is Aborted. + Error code: 1823(0x71F). + + + + + Device: Signal warning. + Error code: 1824(0x720). + + + + + Device: Invalid Array Index. + Error code: 1825(0x721). + + + + + Device: Symbol not Active + Error code: 1826(0x722). + + + + + Device: Access denied. + Error code: 1827(0x723). + + + + + Device: Missing license + Error code: 1828(0x724). + + + + + Device: Exception occured during system start. + Error code: 1836(0x72C). + + + + + Error class <client error> + Error code: 1856(0x740). + + + + + Parameter at service is invalid. + Error code: 1857(0x741). + + + + + Polling list is empty. + Error code: 1858(0x742). + + + + + Obsolete + + + + + + Variable connection is already in use. + Error code: 1859(0x743). + + + + + Invoke ID already in use. + Error code: 1860(0x744). + + + + + Timeout has elapsed. + Error code: 1861(x745). + + + + + Error in win32 subsystem. + Error code: 1862(0x746). + + + + + Timeout value is invalid. + Error code: 1863(0x747). + + + + + Ads port is not opened. + Error code: 1864(0x748). + + + + + No AMS Address. + Error code: 1865(0x749). + + + + + An internal in ADS sync has occurred. + Error code: 1872(0x750). + + + + + Hash table overflow. + Error code: 1873(0x751). + + + + + There are no more symbols in the hash table. + Error code: 1874(0x752). + + + + + There are no more symbols in cache. + Error code: 1875(0x753). + + + + + An invalid response has been received. + Error code: 1876(0x754). + + + + + Sync port is locked. + Error code: 1877(0x755). + + + + + Client queue is full + + + + + Windows sockets connection refused (0x274d, 10061) + + + No connection could be made because the target computer actively refused it. + This usually results from trying to connect to a service that is inactive on + the foreign host—that is, one with no server application running. + + + + + This class encapsulates accesses to the TwinCAT Registry part. + + + + + "Software\\Beckhoff\\TwinCAT\\System" + + + + + Installation Path (TwinCAT2) Registry Key ("InstallationPath") + + + + + Installation Path (TwinCAT3) Registry Key ("InstallDir") + + + + + Installation Path (TwinCAT3) Registry Key ("CurrentVersion") + + + + + TwinCAT Installation type + + + + + TwinCAT Installation path + + + + + Tries to get the TwinCAT 2 Installation Path (if installed) + + The TwinCAT 2 root path. + The version (TwinCAT29 + + + + + Tries to get the TwinCAT 3 Installation Path (if installed) + + The TwinCAT root path. + The TwinCAT version. + + + + + Gets the root path ("Software\\Beckhoff\\TwinCAT", or "Software\\Beckhoff\\TwinCAT3") + + The root. + + + + Gets the AmsNet ID from the Registry + + The ams net id. + + + + Registry TwinCAT Root path (TwinCAT 3) + + + + + Gets a value indicating whether this code is running within a Wow64 Process (32-Bit Processon 64-Bit Operating system) + + + true if this instance is wow64 process; otherwise, false. + + + + + Gets the SystemKey registry key (Don't forget to close the key) "HKLM\\Software\\Beckhoff\\TwinCAT\\System"; + + + + + Enumeration describes whether Tc2 or Tc3 is associated. + + + + + No installation found / Uninitialized + + + + + Tc2 Installation detected + + + + + Tc3 Installation detected + + + + + Provides data for AdsNotificationEvent of the class TcAdsClient. + + + + + Initializes a new instance of the AdsStream class AdsSyncNotificationEventArgs. + + TwinCAT realtime timestamp. + An object, that is passed by AddDeviceNotification. + Handle of the connection. + Length of the data in dataStream. + The offset of the data in dataStream . + Stream that is used to store the data. + The TwinCAT realtime target system (even when working locally) has its own TimeSystem which is synchronized with + the Desktop/User time at TwinCAT Start. From this moment on the Desktop/User time can drift from the local Realtime/Target time. + can differ. + The TimeStamp can be converted to a .NET DateTime Object with or + + + + + + Gets the timestamp of this Notification. + + + + + Gets the user object. This object is passed by to AddDeviceNotification and can + be used to store data. + + + + + Gets the handle of the connection. + + + + + Streams that holds the notification data. + + + + + Gets the Length of the data in the stream. + + + + + Gets the Offset of the data in the stream. + + + + + Provides data for AdsNotificationExEvent of the class TcAdsClient. + + + + + Initializes a new instance of the AdsStream class AdsSyncNotificationEventArgs. + + Timestamp. + An object, that is passed by AddDeviceNotificationEx. + Handle of the connection. + Value of the ADS variable. + + + + Gets the timestamp. + + + + + Gets the user object. This object is passed by to AddDeviceNotification and can + be used to store data. + + + + + Value of the ads variable. + + + + + Gets the handle of the connection. + + + + + Provides data for AmsRouterNotificationEvent of the class TcAdsClient. + + + + + Initializes a new instance of the AmsRouterNotificationEventArgs class. + + The current state of the Router. + + + + Current state of the Ams Router. + + + + + Provides data for AdsNotificationErrorEvent of the class TcAdsClient. + + + + + Initializes a new instance of the AdsNotificationErrorEventArgs class. + + Exception that was caught while handling notifications. + + + + Exception that was caught while handling notifications. + + + + + Provides data for AdsStateChangedEvent of the class TcAdsClient. + + + + + The state + + + + + Initializes a new instance of the AdsStateChangedEventArgs class. + + Current state of the ADS device. + + + + Initializes a new instance of the AdsStateChangedEventArgs class. + + The instance containing the event data. + + + + Current state of the ADS device. + + The state. + + + + Provides data for AdsSymbolVersionChangedEvent of the class TcAdsClient. + + + + + The _symbol version + + + + + Initializes a new instance of the AdsSymbolVersionChangedEventArgs class. + + Current symbol version. + + + + Initializes a new instance of the AdsSymbolVersionChangedEventArgs class. + + The instance containing the event data. + + + + Current symbol version device. + + The symbol version. + + + + Event handler for the AdsNotification event in the class TcAdsClient. + + + + + Event handler for the AdsNotification event in the class TcAdsClient. + + + + + Event handler for the AmsRouterNotification event in the class TcAdsClient. + + + + + Event handler for the AdsNotificationError event in the class TcAdsClient. + + + + + Event handler for the AdsStateChanged event in the class TcAdsClient. + + + + + Enum SymbolsLoadMode + + + + + Loads the Symbols organized as Flat List + + + + + Loads the Symbols organized as Virtual tree (Symbol Parent - Child relationships) + + + + + Loads the Symbols as a Virtual tree with Dynamic Symbols (Only available within versions > 4.X of this Ads Api) + + + + + Interface ISymbolLoaderSettings + + + + + Class for SymbolLoader settings. + + + + + Initializes a new instance of the class with . + + The load mode. + + + + Initializes a new instance of the class. + + The load mode. + The value access. + + + + Gets or sets the symbols load mode. + + The symbols load mode. + + + + Gets or sets the value access mode. + + The value access mode. + + + + Gets the default settings object (SymbolsLoadMode.VirtualTree + ValueAccessMode.IndexGroupOffsetPreferred) + + + The following defaults are set here: + + SettingDescription + Symbols load mode ()Create virtual tree (. + Value access mode ()Prefer IndexGroup/IndexOffset communication if available (). + + + The default settings object. + + + + ADS Client / Ads Communication object. + + + Use an instance of this object to create a point-to-point send/receive connection to an ADS Server/Device object. + The class TcAdsClient is a wrapper for the TcAdsdll.dll and enables synchronous/asynchronous access to data of an ADS Device. + + + The following sample shows how to use the class. + + + + + + + Synchronous port of the local system + + + + + Initializes a new instance of the class. + + if set to true [no interceptors]. + + + + + Initializes a new instance of the class TcAdsClient. + + Default Interceptors (FailFastHandlerInterceptor) will be used. + + + + Static identifier counter + + + + + identifier + + + + + Finalizer + + + + + Releases the resources used by TcAdsClient. + + + + + Closes this + + + + + Disposes the . + + + When overwritten don't forget to call the base class + + + + Establishes a connection to a ADS device. + + NetId of the ADS server. + Port number of the ADS server. + + + + Establishes a connection to a ADS device. + + NetId of the ADS server. + Port number of the ADS server. + + + + Establishes a connection to a ADS device using the local netID. + + Port number of the ADS server. + + + + Establishes a connection to a ADS device. + + NetId of the ADS server. + Port number of the ADS server. + + + + Locks the TcAdsClient for the time of a Connect against communication requests + + + + + Resurrects the connection + + + + + Establishes a connection to a ADS device. + + NetId of the ADS server. + Port number of the ADS server. + + + + Establishes a connection to a ADS device. + + The address. + + + + Disconnects the + + true if successfully disconnected, false if the was already disconnected. + + + + Called when before the is disconnected. + + + + + Called when the of the has changed. + + The new state. + The old state. + + + + Cached timeout + + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Number of succesfully returned data bytes. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Number of successfully returned data bytes. + AdsErrorCode. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Number of successfully returned data bytes. + AdsErrorCode. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Number of successfully returned data bytes. + AdsErrorCode. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + The read bytes. + AdsErrorCode. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + The read bytes. + AdsErrorCode. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + AdsErrorCode. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The write buffer. + Offset of the data in dataStream. + Length of the data in dataStream. + AdsErrorCode. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Handle of the ADS variable + Stream that receives the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Handle of the ADS variable + Stream that receives the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Number of successfully returned data bytes. + AdsErrorCode + + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Handle of the ADS variable + Stream that receives the data. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The write buffer. + Offset of the data in dataStream. + Length of the data in dataStream. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Thrown when the ADS call fails. + + + + Trigger Client Method/Command. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Thrown when the ADS call fails. + This method is used to trigger Client Methods/Commands without parameters. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Thrown when the ADS call fails. + + + + Trigger Client Method/Command. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Thrown when the ADS call fails. + This method is used to trigger Client Methods/Commands without parameters. + + + + Trigger Client Method/Command. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Thrown when the ADS call fails. + This method is used to trigger Client Methods/Commands without parameters. + + + + Ensures that offset and length parameter are 0 + + The offset. + The length. + + + + + Ensures that offset and length parameters refer to valid position within stream. + + The data stream. + The offset. + The length. + dataStream + + offset + or + length + + dataStream + + + + Ensures that offset and length parameters refer to valid position within stream. + + The buffer. + The offset. + The length. + dataStream + + offset + or + length + + dataStream + dataStream + offset + or + length + + + + Writes data synchronously to an ADS device. + + Handle of the ADS variable + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Handle of the ADS variable + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + AdsErrorCode. + + + + + + Writes data synchronously to an ADS device. + + Handle of the ADS variable + Stream that receives the data. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to an object. + If the Type of the object to be read is a string type, the first element of + the parameter args specifies the number of characters of the string. + If the Type of the object to be read is an array type, the number of elements + for each dimension has to be specified in the parameter args. At the moment + only 1 dimensional Arrays are supported. + + Handle of the ADS variable. + Type of the object to be read. + Additional arguments. + The object the read data is written to. + + + + Reads data synchronously from an ADS device and writes it to an object. + + Handle of the ADS variable. + Type of the object to be read. + The object the read data is written to. + + + + Reads data synchronously from an ADS device and writes it to an object. + If the Type of the object to be read is a string type, the first element of + the parameter args specifies the number of characters of the string. + If the Type of the object to be read is an array type, the number of elements + for each dimension has to be specified in the parameter args. At the moment + only 1 dimensional Arrays are supported. + + Index group of the ADS variable. + Index offset of the ADS variable. + Type of the object to be read. + Additional arguments. + The object the read data is written to. + + + + Reads data synchronously from an ADS device and writes it to an object. + If the Type of the object to be read is a string type, the first element of + the parameter args specifies the number of characters of the string. + If the Type of the object to be read is an array type, the number of elements + for each dimension has to be specified in the parameter args. At the moment + only 1 dimensional Arrays are supported. + + Index group of the ADS variable. + Index offset of the ADS variable. + Type of the object to be read. + Additional arguments. + The object the read data is written to. + + + + Reads data synchronously from an ADS device and writes it to an object. + + Index group of the ADS variable. + Index offset of the ADS variable. + Type of the object to be read. + The object the read data is written to. + + + + Reads data synchronously from an ADS device and writes it to an object. + + Index group of the ADS variable. + Index offset of the ADS variable. + Type of the object to be read. + The object the read data is written to. + + + + Writes an object synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Object to write to the ADS device. + + + + Writes an object synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Object to write to the ADS device. + + + + Writes an object synchronously to an ADS device. + + Handle of the ADS variable. + Object to write to the ADS device. + + + + Writes an object synchronously to an ADS device. + If the Type of the object to be written is a string type, the first element of parameter args + specifies the number of characters of the string. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Object to write to the ADS device. + Additional arguments. + + + + Writes an object synchronously to an ADS device. + If the Type of the object to be written is a string type, the first element of parameter args + specifies the number of characters of the string. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Object to write to the ADS device. + Additional arguments. + + + + Writes an object synchronously to an ADS device. + If the Type of the object to be written is a string type, the first element of parameter args + specifies the number of characters of the string. + + Handle of the ADS variable. + Object to write to the ADS device. + Additional arguments. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Lenght of the data in wrDataStream. + Number of succesfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Variable handle. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Variable handle. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + The read bytes. + AdsErrorCode. + + + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Variable handle. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + The read bytes. + AdsErrorCode. + + + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The read buffer. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + The write buffer. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Stream that contains the data that should be written. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Stream that contains the data that should be written. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Stream that contains the data that should be written. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object stored in the event argument. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object stored in the event argument. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object stored in the event argument. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object stored in the event argument. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + If type is a string type, the first element of the parameter args specifies the number of characters of the string. + If type is an array type, the number of elements for each dimension has to be specified in the parameter args. + At the moment only 1 dimensional Arrays are supported. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object s0000tored in the event argument. + Additional arguments. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + If type is a string type, the first element of the parameter args specifies the number of characters of the string. + If type is an array type, the number of elements for each dimension has to be specified in the parameter args. + At the moment only 1 dimensional Arrays are supported. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object s0000tored in the event argument. + Additional arguments. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + If type is a string type, the first element of the parameter args specifies the number of characters of the string. + If type is an array type, the number of elements for each dimension has to be specified in the parameter args. + At the moment only 1 dimensional Arrays are supported. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object s0000tored in the event argument. + Additional arguments. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + If type is a string type, the first element of the parameter args specifies the number of characters of the string. + If type is an array type, the number of elements for each dimension has to be specified in the parameter args. + At the moment only 1 dimensional Arrays are supported. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object s0000tored in the event argument. + Additional arguments. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object stored in the event argument. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object stored in the event argument. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object stored in the event argument. + Additional arguments. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object stored in the event argument. + Additional arguments. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Byte Offset of the data in dataStream. + Length of the data in dataStream (in bytes) + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + The stream that should receive the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + + The handle of the notification. + + Thrown when the ADS call fails. + + + Parameter semantic + + Value of parameter is interpreted as task context number + + + Value of parameter is interpreted as task context number + + + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + The stream that should receive the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + + The handle of the notification. + + Thrown when the ADS call fails. + + + Parameter semantic + + Value of parameter is interpreted as task context number + + + Value of parameter is interpreted as task context number + + + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + The stream that should receive the data. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + The stream that should receive the data. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + Deletes an existing notification. + + Handle of the notification. + Thrown when the ADS call fails. + + + + Reads the identification and version number of an ADS server. + + DeviceInfo struct containing the name of the device and the version information. + Thrown when the ADS call fails. + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + Stream that contains the data that should be sent to the ADS device + Offset of the data in the stream. + Length of the data in the stream. + Thrown when the ADS call fails. + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + Stream that contains the data that should be sent to the ADS device + Offset of the data in the stream. + Length of the data in the stream. + AdsErrorCode. + + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + AdsErrorCode. + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + Thrown when the ADS call fails. + + + + Reads the ADS status and the device status from an ADS server. + + The ADS statue and device status. + Thrown when the ADS call fails. + + + + Reads the ADS status and the device status from an ADS server. Unlike the ReadState method this method does not call an exception on failure. Instead an AdsErrorCode is returned. + If the return value is equal to AdsErrorCode.NoError the call was successfull. + + The ADS statue and device status. + AdsErrorCode of the ads read state call. Check for AdsErrorCode.NoError to see if call was successfull. + + + + Generates a unique handle for an ADS variable. + + Name of the ADS variable + The handle of the ADS Variable. + Thrown when the ADS call fails. + + + + Releases the handle of a ADS variable again. + + Handle of the ADS variable + Thrown when the ADS call fails. + + + + Call this method to obtain information about the individual symbols (variables) in ADS devices. + + Name of the symbol. + A ITcAdsSymbol containing the requested symbol information or null if symbol could not + be found. + Thrown when the ADS call fails. + + + + Gets the symbol table. + + SymbolInfoTable. + + + + Reads the symbol upload information. + + + + + Creates a new instance of the TcAdsSymbolInfoLoader class (Symbol Browser V1, obsolete). + + This is the traditional way of accessing symbol information from the target device that is still supported here + for backward compatibility. For new implementations please consider to use the new symbol browsing capabilities accessed by the + method. + + Instance of the TcAdsSymbolInfoLoader class. + + + + + + + Creates the symbol loader with default settings. + + ISymbolLoader interface of the created symbol loader. + + + + This method is obsolete. + + The mode. + ISymbolLoader interface of the created symbol loader. + + + + Creates a new instance of the Symbol loader with the specified mode (SymbolBrowser V2, new version) + + The settings. + The interface of the Symbol loader. + + The following sample shows how to create a dynamic version of the SymbolLoader V2. The dynamic symbol loader makes use of the Dynamic Language Runtime (DLR) of the .NET Framework. + That means Structures, Arrays and Enumeration types and instances are generated 'on-the-fly' during symbol Browsing. These created dynamic objects are a one to one representation + of the Symbol Server target objects (e.g the IEC61131 types on the PLC). + Dynamic language features are only available from .NET4 upwards. + + The following sample shows how to create a static (non dynamic) version of the SymbolLoader V2. + The static symbol loader in version 2 is a nearly code compatible version of the Dynamic Loader, only the dynamic creation of objects is not available. The reason for supporting + this mode is that .NET Framework Versions lower than Version 4.0 (CLR2) doesn't support the Dynamic Language Runtime (DLR). + The SymbolLoader V2 static object is supported from .NET 2.0 on. + + + The SymbolLoader V2 static object is supported from .NET 2.0 on. + + + + + + + The Symbol Loader (V2) supports the following modes. + The flat mode organizes the Symbols in a flat list. This mode is available in all .NET versions. + The virtual tree mode organizes the Symbols hierarchically with parent-child relationships. This mode is available in all .NET Versions. + The Dynamic tree mode organizes the Symbols hierarchically and (dynamically) creates struct members, + array elements and enum fields on the fly. This feature is only available on platforms that support the Dynamic + Language Runtime (DLR), actually all .NET Framework Version larger than 4.0. + + Virtual instances means, that all Symbols are ordered within a tree structure. For that symbol nodes that are not located on a fixed address, a Virtual Symbol will be created. + Setting the virtualInstance parameter to 'false' means, that the located symbols will be returned in a flattened list. + + + + Gets the value accessor. + + IRawValueAccessor. + + + + Reads the value of a symbol and returns the value as object. The parameter type must have the same + layout as the ADS symbol. + + Name of the ADS symbol. + Managed type of the ADS symbol. + If reload is true previously stored symbol information is cleared. As a consequence the symbol information must be obtained from the ADS server again. + Value of the symbol + + + + Writes the passed object value to the specified ADS symbol.The parameter type must have the same + layout as the ADS symbol. + + Name of the ADS symbol. + Object holding the value to be written to the ADS symbol + If reload is true previously stored symbol information is cleared. As a consequence the symbol information must be obtained from the ADS server again. + + + + Reads the value of a symbol and returns it as an object. Strings and all primitive datatypes(UInt32, Int32, Bool etc.) are supported. + Arrays and structures cannot be read. + + The symbol that should be read. + The value of the symbol as an object. + Thrown when a ADS datatype is not supported. + Thrown when the Sync port is not open. + + + + Writes a value to the symbol. Strings and all primitive data types(UInt32, Int32, Bool etc.) are supported. Array and structures are not supported. + If a string is passed as parameter, the method attempts to parse the string according to the ADS data type of the symbol. + + The symbol the value is written to. + The value to write. + Thrown when a ADS data type is not supported. + Thrown when the ADS call fails. + + + + Invokes the RPC method. + + The symbol path. + Name of the method. + The parameters. + System.Object. + + + + + Invokes the RPC method. + + The symbol. + Name of the method. + The parameters. + System.Object. + + + + + Invokes the specified RPC Method + + The symbol. + The method identifier / Virtual Function table index. + The parameters. + System.Object. + + + + Invokes the specified RPC Method + + The symbol path. + The method identifier. + The parameters. + System.Object. + + + + Invokes the specified RPC Method + + The symbol. + The method identifier / Virtual Function table index. + The parameters. + The return value. + true if succeeded, false otherwise. + + symbol + or + parameters + + methodId + + + + + + Tries to invoke the RPC method. + + The symbol path. + Name of the method. + The parameters. + The return value. + AdsErrorCode. + + + + + Tries to invoke RPC method. + + The symbol. + Name of the method. + The parameters. + The return value. + AdsErrorCode. + + symbol + or + parameters + + methodName + + + + + + Invokes the specified RPC Method + + The symbol path. + The method identifier. + The parameters. + The return value. + true if succeeded, false otherwise. + + symbolPath + or + methodId + + parameters + + + + + + Invokes the RPC method. + + The symbol. + The RPC method. + The parameters. + System.Object. + + + + Tries to invoke the RPC Method + + The symbol. + The RPC method. + The parameters. + The return value. + AdsErrorCode. + + + + Error injection only for Unit-Test purposes to simulate error conditions + + The error. + + + + Gets the Identifier. + + The identifier. + + + + Gets the name identificator of this object. + + The name. + + + + Determines, whether the is disposed + + + + + Occurs when the Ads device sends a notification to the client. + + + + + Occurs when the Ads devices sends a notification to the client. + + + + + Occurs when a exception has occured during notification management. + + + + + Occurs when the state of the local Router has changed. + + + + + Occurs when the ADS state changes. + + + + + Occurs when the symbol version has been changed changes. + + This is the case when the connected ADS server restarts. This invalidates all actual opened + symbol handles. + The SymbolVersion counter doesn't trigger, when an online change is made on the PLC (ports 801, ..., 851 ...) + + + + Occurs when the connection state has been changed. + + + + + Gets the raw Ads interface. + + The raw interface. + + + + + Sets the timeout for the ads communication. Unit is in ms. + + + + + Gets or sets a value indicating whether the TcAdsClient object uses a client cycle for the notifications. + + + If ClientCycle is set to false, the ADS that has been addressed writes the data cyclically + to the TcAdsClient object. The smallest possible time is the cycle time of the ADS device. + For the PLC, this is the task cycle time. The cycle time can be handled in 1 ms steps. + If you enter 0 ms as the cycle time, then the data is sent to the TcAdsClient object with + every cycle of the ADS device task. + If ClientCycle is set to true, the TcAdsClient object polls the variables cyclically. + The timer that initiates the read / write runs in Windows NT/2000 user mode, which means + that the time behavior strongly depends on the loading of the system. + + + + + Gets or sets a value indicating whether the TcAdsClient object synchronizes the incoming notifications. + + + If Synchronize is set to true, the notifications are synchronized onto the Main thread. + This is helpful for Windows Forms projects because this automatically synchronizes the notifications + into the main UI thread and prevents any synchronization issues like deadlocks. + In Console Applications it is necessary to set this flag to false if ADS notifications are used, + because the Console Host doesn't trigger any message pumps, effectively blocking any Windows Messages and + ADS Notifications. + + + + + Gets a value indicating whether the ADS client is connected to a ADS Server on the local + computer. + + + + + Gets the port number of the ADS server (Obsolete) + + + + + + Gets the AmsNetId of the ADS server (Obsolete) + + + + + + Gets the of the ADS server (Target side) + + + + + Obsolete, do not use + + The server address. + + + + + Obsolet do not use. + + + + + + Obsolete, do not use. + + + + + + Get the of the ADS client (Source side) + + The client address if connection is up and running, otherwise NULL. + The ClientAddress is only available if the connection is up and running. + + + + Gets a value indicating whether the local Ads port was opened successfully. It + does not indicate if the target port is available. Use the method ReadState to + determine if the target port is available. + + + + + Gets the current state of the local AMS router. + + + + + Gets the current Connection state of the + + The state of the connection. + + + + + DataStream size Exception + + + + + Initializes a new instance of the class. + + Name of the parameter. + + + + Internal Raw Ads interface + + + + + + Reads the data from specified index group. + + The index group. + The index offset. + The offset. + The length of data buffer. + The data buffer + if set to true [throw ads exception]. + Number of bytes read. + AdsErrorCode. + + + + Writes the data / Value to the specified address. + + The index group. + The index offset. + The offset. + The length. + The data. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Read/Writes data to/from the specified address. + + The index group. + The index offset. + The rd offset. + Length of the rd. + The rd data. + The wr offset. + Length of the wr. + The wr data. + if set to true [throw ads exception]. + The data read. + AdsErrorCode. + + + + Read/Writes data to/from the specified address. + + The index group. + The index offset. + The wr value. + if set to true [b throw ads exception]. + The rd value. + AdsErrorCode. + + + + Read/Writes data to/from the specified address. + + The variable handle. + The rd offset. + Length of the rd. + The rd data. + The wr offset. + Length of the wr. + The wr data. + if set to true [throw ads exception]. + The data read. + AdsErrorCode. + + + + Read the Ads State. + + if set to true [throw ads exception]. + The state information. + AdsErrorCode. + + + + Determines, whether the AmsPort is enabled. + + if set to true [throw ads exception]. + if set to true [enabled]. + AdsErrorCode. + + + + Reads a boolean value. + + The index group. + The index offset. + if set to true [throw ads exception]. + The result. + true if XXXX, false otherwise. + + + + Reads a value. + + The index group. + The index offset. + if set to true [throw ads exception]. + The result. + System.Byte. + + + + Reads a value. + + The index group. + The index offset. + if set to true [throw ads exception]. + The result. + System.SByte. + + + + Reads a value. + + The index group. + The index offset. + if set to true [throw ads exception]. + The result. + System.Int16. + + + + Reads a value. + + The index group. + The index offset. + if set to true [throw ads exception]. + The result. + System.UInt16. + + + + Reads a value. + + The index group. + The index offset. + if set to true [throw ads exception]. + The result. + System.Int32. + + + + Reads a value. + + The index group. + The index offset. + if set to true [throw ads exception]. + The result. + System.UInt32. + + + + Reads a value. + + The index group. + The index offset. + if set to true [throw ads exception]. + The result. + System.Int64. + + + + Reads a value. + + The index group. + The index offset. + if set to true [throw ads exception]. + The result. + System.Int64. + + + + Reads a value. + + The index group. + The index offset. + if set to true [throw ads exception]. + The result. + System.Single. + + + + Reads a value. + + The index group. + The index offset. + if set to true [throw ads exception]. + The result. + System.Double. + + + + Reads a value. + + The index group. + The index offset. + The characters. + if set to true [throw ads exception]. + The result. + System.String. + + + + Reads the structure value. + + The index group. + The index offset. + Type of the structure. + if set to true [throw ads exception]. + The result. + System.Object. + + + + Writes a value. + + The index group. + The index offset. + if set to true [value]. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + The characters. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The structure. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Reads a value. + + The index group. + The index offset. + The type. + The arguments. + if set to true [throw ads exception]. + The value. + AdsErrorCode. + + + + Reads a value. + + The index group. + The index offset. + The type. + if set to true [throw ads exception]. + The value. + AdsErrorCode. + + + + Reads a value. + + The variable handle. + The type. + The arguments. + if set to true [throw ads exception]. + The value. + AdsErrorCode. + + + + Reads a value. + + The variable handle. + The type. + if set to true [throw ads exception]. + The value. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + The arguments. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The variable handle. + The value. + The arguments. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The variable handle. + The value. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Reads a value. + + The index group. + The index offset. + The length. + The data. + if set to true [throw ads exception]. + The data read. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The length. + The data. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + Length of the read. + The read data. + Length of the write. + The write data. + if set to true [throw ads exception]. + The data read. + AdsErrorCode. + + + + Reads the specified variable handle. + + The variable handle. + The offset. + The length. + The data. + if set to true [throw ads exception]. + The data read. + AdsErrorCode. + + + + Writes the specified variable handle. + + The variable handle. + The offset. + The length. + The data. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Generates a unique handle for an ADS variable. + + Name of the ADS variable + if set to true [throw ads exception]. + The error. + The handle of the ADS Variable. + Thrown when the ADS call fails. + + + + Releases the handle of a ADS variable again. + + Handle of the ADS variable + if set to true [throw ads exception]. + The error. + Thrown when the ADS call fails. + + + + Writes the state + + The state information. + The data. + The offset. + The length. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Interface IAdsErrorInjector (for unit testing purposes) + + + + + Injects an error (for unit testing purposes) + + The error. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Interface for handling connection state changes + + + + + Called when the Communication has been established. + + + + + Called when the communication is shutdown. + + + + + Called when the communication is shutdown. + + + + + Injects an error (for unit testing purposes) + + The error. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Trace Source IDs + + + + + + TwinCAT ADS + + + + + Ads Symbol Loading + + + + + Ads Sesssion States + + + + + VSX Library + + + + + Common Automation Interface + + + + + Core classes + + + + + Common Utilities.dll + + + + + PlugIn Trace within Utilities.dll + + + + + Command Trace within Utilities.dll + + + + + Communication Trace within Utilities.dll + + + + + Common Trace within SystemService.dll + + + + + Common Trace within SystemManager.dll + + + + + RCW Trace for System Manager + + + + + TRace for System Manager AdapterLayer + + + + + Common Trace for PlcControl.dll + + + + + Common Trace for UIFramework.dll + + + + + Common Trace for the TwinCat.GraphicalEditor.dll + + + + + Common Trace for EcDescriptions.dll + + + + + Common Trace for PlugInFramework.dll + + + + + Context change Trace within PlugInFramework.dll + + + + + Common Trace within DataCore.dll + + + + + Common Trace Source for the TwinCat.DistributedSystems.dll package + + + + + Trace Source ID for OPC Unified Architecture Traces + + + + + Trace Source ID for the Management Module + + + + + Trace ID for Application + + + + + Extended base TraceSource Object for selective TwinCAT Supplement Application tracing. + + + + + Trace source class + + + + + + Initializes a new instance of the class. + + The name. + The level. + + + + The _name + + + + + The _switch + + + + + The _source level + + + + + Traces the event. + + The type. + The _id. + The format. + The arguments. + + + + Traces the event. + + The type. + The _id. + The message. + + + + Gets the name. + + The name. + + + + Gets the switch. + + The switch. + + + + Gets or sets the level. + + The level. + + + + Seperator string + + + + + Initializes a new instance of the class. + + Name of the TraceSource. + Trace Source ID + Source Level. + + + + Initializes a new instance of the class. + + Name of the TraceSource + ID of the TraceSource + The level. + if set to true then the Trace Caller method will be dumped into the trace. + if set to true then the traces its startup time. + + + + Initializes a new instance of the class. + + Name of the TraceSource + ID of the TraceSource + The level. + if set to true then the Trace Caller method will be dumped into the trace. + if set to true then the traces its startup time. + + + + Indicates that the trace caller will be dumped into the trace. + + + + + Traces the application start. + + + + + Traces the application end. + + + + + Verbose Trace. + + Message to trace. + + + + Internal implementation of the Trace call + + The type. + The skip levels. + The format. + The args. + + + + Internal implementation of the Trace call + + The type. + The skip levels. + The message. + + + + Verbose Trace (With Method Info) + + Format string. + Arguments. + + + + Writes an informational message to the trace listeners in the collection using the specified message. + + The informative message to write. + + An attempt was made to trace an event during finalization. + + + + + + + + + + Writes an informational message to the trace listeners in the collection using the specified object array and formatting information. + + A composite format string (see Remarks) that contains text intermixed with zero or more format items, which correspond to objects in the array. + An array containing zero or more objects to format. + + is null. + + is invalid.-or- The number that indicates an argument to format is less than zero, or greater than or equal to the number of specified objects to format. + An attempt was made to trace an event during finalization. + + + + + + + + + Warning Trace. + + Message to trace. + + + + Warning Trace. + + Format string. + Arguments. + + + + Warning trace. + + The exception to trace. + + + + Warning trace. + + Additional message. + The Exception to trace. + + + + Warning trace. + + The Exception to trace. + The message. + The args. + + + + Error trace. + + The Exception to trace. + + + + Error trace. + + The message to trace. + + + + Error trace. + + The additional message to trace. + The exception to trace. + + + + Error trace. + + Format string + Arguments for the format string. + + + + Error trace (With Type and Method Information) + + Format string. + Format string arguments. + + + + Error trace (With Type and Method Information) + + The ex. + Format string. + Format string arguments. + + + + Trace Method start + + Format string. + Format string arguments. + + + + Trace Method start + + + + + Trace Method Stop + + Format string. + Format string arguments. + + + + Trace Method Stop + + + + + Gets or sets a value indicating whether the Trace caller will be dumped into the trace. + + true if [dump caller]; otherwise, false. + + + + Class TraceSwitch. + + + + + + Shoulds the trace. + + Type of the trace event. + true if XXXX, false otherwise. + + + + Enum TraceEventType + + + + + + Fatal error or application crash. + + + + + Recoverable error. + + + + + Noncritical problem. + + + + + Informational message. + + + + + Verbose message. + + + + + Starting of a logical operation. + + + + + Stopping of a logical operation. + + + + + Suspension of a logical operation. + + + + + Resumption of a logical operation. + + + + + Changing of correlation identity. + + + + + Enum SourceLevels + + + + + + Allows all events through. + + + + + Does not allow any events through. + + + + + Allows only System.Diagnostics.TraceEventType.Critical events through. + + + + + Allows System.Diagnostics.TraceEventType.Critical and System.Diagnostics.TraceEventType.Error + events through. + + + + + Allows System.Diagnostics.TraceEventType.Critical, System.Diagnostics.TraceEventType.Error, + and System.Diagnostics.TraceEventType.Warning events through. + + + + + Allows System.Diagnostics.TraceEventType.Critical, System.Diagnostics.TraceEventType.Error, + System.Diagnostics.TraceEventType.Warning, and System.Diagnostics.TraceEventType.Information + events through. + + + + + Allows System.Diagnostics.TraceEventType.Critical, System.Diagnostics.TraceEventType.Error, + System.Diagnostics.TraceEventType.Warning, System.Diagnostics.TraceEventType.Information, + and System.Diagnostics.TraceEventType.Verbose events through. + + + + + Allows the System.Diagnostics.TraceEventType.Stop, System.Diagnostics.TraceEventType.Start, + System.Diagnostics.TraceEventType.Suspend, System.Diagnostics.TraceEventType.Transfer, + and System.Diagnostics.TraceEventType.Resume events through. + + + + + Creation mode for Values + + + + + + None / Uninitialized Mask + + + + + Convert to .NET Primitives, wherever possible. + + If not set, Primitive Values will be encapsulated in full metadata. + + + + Use IEnumValue on EnumTypes instead of .NET Primitives + + + + + Default settings for the value creation mode (Translate to Primitives) + + + + + Specifies the Notification type of Ads Notifications + + + + + None / Uninitialized + + + + + ValueChanged notifications + + + + + RawValueChanged notifications + + + + + ValueChanged + RawValueChanged notifications + + + + + Helper Interface to access Symbol Values as byte Arrays + + + + + + Try to read value + + The symbol instance. + The value. + The read time snapshot (User Time, UTC) + Error code. 0 represents succeed. + + + + Try to read Array Element Value + + The array instance. + The indices. + The value. + The read time snapshot (User Time, UTC) + Error code. 0 represents succeed. + + + + Try to Write value + + The symbol instance. + The value. + The offset. + The write time snapshot (User Time, UTC) + Error code. 0 represents succeed. + + + + Try to write element value. + + The array instance. + The indices. + The value. + The offset. + The write time snapshot (User Time, UTC). + Error code. 0 represents succeed. + + + + Value Accessor interface for Notification handling + + + + + + Adds the symbol value changed handler. + + The symbol. + Type of Notification (Value, Raw or Both) + The settings. + + + + Removes the symbol value changed handler. + + The symbol. + Type of Notification (Value, Raw or Both) + + + + Tries to get the current Notification Settings for the specified Symbol + + The symbol. + The settings. + true, if already a notification for this symbol is registered. False if not. + + + + Gets the default notification settings. + + The default notification settings. + + + + Factory interfaces for Accessor implementations. + + + + + + Creates the specified symbols value from raw byte data + + The symbol. + The raw data. + The offset / start index within the data + The UTC time. + System.Object. + + + + Creates the specified symbols value from raw byte data + + The symbol. + The raw data. + The offset / start index within the data + The parent. + System.Object. + + + + Creates a primitive value, independent of any settings. + + The symbol. + The raw data. + The offset. + A primitive value. + + + + Remote procedure call interface for Accessors. + + + + + + Tries to invoke the RpcMethod. + + The instance. + The method. + The parameters. + The return value. + The invoke time snapshot (User Time, UTC). + Error code. 0 represents succeed. + + + + Interface to access symbols with the 'Any' value concept + + + + + + Tries to read the value of the symbol and returns the value as instance of the specified type. + + The symbol. + The value type. + The value. + The UTC read time. + Error code. 0 represents succeed. + + + + Tries to read the value of the symbol and updates the referenced value object with that data + + The symbol. + The value object. + The UTC read time. + Error code. 0 represents succeed. + + + + Tries to write the data within the value object as the symbol value. + + The symbol. + The value object. + The UTC read time. + Error code. 0 represents succeed. + + + + Interface for Accessing Symbol Values + + + + + + Tries to read the symbols value as dynamic value. + + The symbol. + The value. + The UTC read time. + Error code. 0 represents succeed. + + + + Reads the value of the specified Symbol as dynamic value + + The symbol. + The UTC read time. + System.Object. + + + + Tries to write the Value + + The symbol. + The value. + The UTC write time. + Error code. 0 represents succeed. + + + + Writes the specified value to the symbol. + + The symbol. + The value. + The UTC write time. + + + + Value Accessor base class (implements RawValue and Value Access) + + + + + + + + Initializes a new instance of the class. + + The value factory. + + + + The value factory + + + + + Reads the symbol value. + + The symbol. + The read time snapshot. + The value object (Primitive type or DynamicValue) + symbol + + + + Try to read Array Element Value + + The array instance. + The indices. + The value. + The read time snapshot (User Time, UTC) + AdsErrorCode. + + + + Reads a value from the specified ADS address + + The address. + Raw value + The read time snapshot. + AdsErrorCode. + + + + + Try to read value + + The symbol instance. + The value. + The read time snapshot (User Time, UTC) + AdsErrorCode. + + + + Try to write element value. + + The array instance. + The indices. + The value. + The offset. + The write time snapshot (User Time, UTC). + AdsErrorCode. + + + + Tries to write the Value + + The symbol. + The value. + The UTC write time. + AdsErrorCode. + + + + Tries to write the Value + + The address. + The value. + The offset. + The write time snapshot. + AdsErrorCode. + + + + + Writes the value to the symbol + + The symbol. + The value + The write time snapshot. + + symbol + or + value + + + + + Called when [raw value changed]. + + The symbol. + The raw value. + The UTC twin cat time. + The UTC local system time. + + + + Called when the (Primitive) Value changes + + The symbol. + The value. + The tc UTC time stamp. + The UTC local time stamp. + + + + Gets the value factory. + + The value factory. + + + + Abstract base class for Accessing Values with the RawValue, Value, Rpc and Notification concept. + + + + + + + + + Initializes a new instance of the class. + + The value factory. + + + + Initializes a new instance of the class. + + The value factory. + The default settings. + + + + Registers a Notification on the . + + The symbol. + Type of Notification (Value, Raw or Both) + The settings. + + symbol + or + settings + + + Only one Notification is allowed on the symbol. On case of double announcement, we set the Notification parameters + to the higher priority. + + + + Unregisters a Notification from the . + + The symbol. + Type of Notification (Value, Raw or Both) + symbol + + + + + Default notification settings. + + + + + Tries to get the current Notification Settings for the specified Symbol + + The symbol. + The settings. + + true, if already a notification for this symbol is registered. False if not. + + + + + + Tries to invoke the RpcMethod. + + The instance. + The method. + The parameters. + The return value. + The invoke time snapshot (User Time, UTC). + AdsErrorCode. + + + + Gets the NotificationSettings that are used for Notification Defaults. + + The default notification settings. + + + + Value Factory + + + + + + + The Value Creation mode + + + + + Initializes a new instance of the class. + + + + + Creates a primitive value, independent of any settings. + + The symbol. + The raw data. + The offset. + A primitive value. + + + + Creates the specified symbols value from raw byte data + + The symbol. + The raw data. + The offset / start index within the data + The parent. + System.Object. + + + + Creates the specified symbols value from raw byte data + + The symbol. + The raw data. + The offset / start index within the data + The UTC time. + System.Object. + + + + Gets the + + The mode. + + + + Enum ValueAccessMethod + + + + + None / Uninitialized + + + + + Value access via Index Group and Offset Only + + + + + Symbolic access via Instance Path only. + + + + + Uses IndexGroup IndexOffset Preferred (and Symbolic for Dereferenced Pointers / References) + + + By standard this uses IndexGroup/IndexOffset. For Symbols that are dereferenced (Pointers/Referenced) the + Symbol method is chosen. + + + + + The Default access mode (IndexGroupOffsetPreferred) + + + + + Abstract base class for an AdsValue accessor. + + + + + + + Initializes a new instance of the class. + + The value factory. + The settings. + + + + Tries to read the value of the symbol and returns the value as instance of the specified type. + + The symbol. + The value type. + The value. + The UTC read time. + AdsErrorCode. + + + + Tries to write the data within the value object as the symbol value. + + The symbol. + The value object. + The UTC read time. + AdsErrorCode. + + + + Tries to read the value of the symbol and updates the referenced value object with that data + + The symbol. + The value object. + The UTC read time. + AdsErrorCode. + + + + Value accessor class (accessing Ads Symbol values) + + + + + Initializes a new instance of the class. + + AdsClient. + The access method. + The value factory. + The default settings. + adsClient + AdsClient + + + + Finalizes an instance of the class. + + + + + Indicates that the is disposed. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Handles the AdsNotification event of the adsClient control. + + The source of the event. + The instance containing the event data. + + + + Handles the AdsNotificationError event of the adsClient control. + + The source of the event. + The instance containing the event data. + + + + Handler function for the AdsNotification + + The symbol. + The instance containing the event data. + + + + Reads a value from the specified ADS address + + The address. + Raw value + The read time snapshot. + AdsErrorCode. + + + + + Tries to read the symbols value as dynamic value. + + The symbol. + The value. + The UTC read time. + + + + Reads the value of the specified Symbol as dynamic value + + The symbol. + The UTC read time. + System.Object. + + + + Tries to read the value by symbol + + The address. + The number bytes. + The value. + Number of read bytes. + AdsErrorCode. + + + + Try to wirte the value symbolic. + + The address. + The offset. + Byte size. + The value. + AdsErrorCode. + + + + Tries to invoke the RpcMethod. + + The instance. + The method. + The parameters. + The return value. + The invoke time snapshot. + true if succeeded, false otherwise. + instance + or + method + parameters + Method invocation is not implemented yet + + + + + Tries the read array element value. + + The array symbol. + The indices. + The value. + The read time snapshot. + arraySymbol + Parameter 'arraySymbol' doesn't represent an array!;arraySymbol + + + + + Writes the specified value to the symbol. + + The symbol. + The value. + The UTC write time. + + + + Tries to write the Value + + The symbol. + The value. + The UTC write time. + + + + Tries to write the Value + + The symbol. + The value. + The offset. + The write time snapshot. + + + + + Tries the write array element value. + + The array symbol. + The indices. + The value. + The value offset. + The write time snapshot. + arraySymbol + Parameter 'arraySymbol' doesn't represent an array!;arraySymbol + or + Value array size mismatch!;value + + + + + Calculates the access method dependent on Symbol Type and setting. + + The array symbol. + ValueAccessMethod. + + + + Registers a Notification on the . + + The symbol. + Type of Notification (Value, Raw or Both) + The settings. + + symbol + or + settings + + + Only one Notification is allowed on the symbol. On case of double announcement, we set the Notification parameters + to the higher priority. + + + + Unregisters a Notification from the . + + The symbol. + Type of Notification (Value, Raw or Both) + symbol + + + + + AdsStream for notification (dynamically resized) + + + + + Resizes the notification stream. + + The requested length of the stream in bytes. + + + + Registers the notification. + + The symbol. + The type. + The settings. + Symbol size exceeds 64K for notification! + + + + Unregisters the notification. + + The symbol. + The type. + true if XXXX, false otherwise. + + + + Tries to read the value of the symbol and returns the value as instance of the specified type. + + The symbol. + The value type. + The value. + The UTC read time. + AdsErrorCode. + + + + Tries to read the value of the symbol and updates the referenced value object with that data + + The symbol. + The value object. + The UTC read time. + + + + Tries to write the data within the value object as the symbol value. + + The symbol. + The value object. + The UTC write time. + AdsErrorCode. + + + + Gets the Ads Client + + The client. + + + + Gets or sets the value access Method + + The access method. + + + + Collection of AdsAttributes + + + + + List of Attributes + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The coll. + + + + Determines the index of a specific item in the . + + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + true if is found in the ; otherwise, false. + + + + Determines whether this contains the with the specified name. + + The name. + true if [contains] [the specified name]; otherwise, false. + + + + Copies to. + + The array. + Index of the array. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + Removes the specified from the + + The name. + true if XXXX, false otherwise. + + + + Returns an enumerator that iterates through the collection. + + A that can be used to iterate through the collection. + + + + Returns an enumerator that iterates through a collection. + + An object that can be used to iterate through the collection. + + + + Gets a read only version of this + + ReadOnlyAttributeCollection. + As read only. + + + + Tries to get the specified + + The name of the . + The att. + true if found, false otherwise. + + + + Tries to get the specified Attribute value. + + The name. + The value. + true if XXXX, false otherwise. + + + + Gets or sets the element at the specified index. + + The index. + AdsAttribute. + + + + Gets the number of elements contained in the . + + The count. + + + + Gets a value indicating whether the is read-only. + + true if this instance is read only; otherwise, false. + + + + Read only version of the + + + + + Initializes a new instance of the class (for internal use only) + + The coll. + + + + + Determines whether this contains the specified attribute. + + The name. + true if [contains] [the specified name]; otherwise, false. + + + + Tries to get the specified + + The name of the . + The attribute. + true if found, false otherwise. + + + + Tries to get the specified Attribute value. + + The name. + The value. + true if XXXX, false otherwise. + + + + Collection of RpcMethods. + + + + + Internal list (organizing the list index) + + + + + Dictionary MethodName-->RpcMethod for fast search + + + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class. + + The coll. + + + + Determines the index of a specific item in the . + + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + true if is found in the ; otherwise, false. + + + + Determines whether this collection contains the specified method name. + + Name of the method. + true if contained.; otherwise, false. + + + + Tries to get the specified method. + + Name of the method. + The method if fund, NULL otherwise. + true if found, false otherwise. + + + + Tries to get the specified method. + + VTable index. + The method if fund, NULL otherwise. + true if found, false otherwise. + + + + Copies to. + + The array. + Index of the array. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + Returns an enumerator that iterates through the collection. + + A that can be used to iterate through the collection. + + + + Returns an enumerator that iterates through a collection. + + An object that can be used to iterate through the collection. + + + + Gets a read only collection of this + + ReadOnlyRpcMethodCollection. + Returns a read only version of this + + + + Gets the empty collection + + The empty collection + + + + Gets or sets the element at the specified index. + + The index. + RpcMethod. + + + + + Gets the with the specified method name. + + Name of the method. + RpcMethod. + + + + + Gets the number of elements contained in the . + + The count. + + + + Gets a value indicating whether the is read-only. + + true if this instance is read only; otherwise, false. + + + + Read only + + + + + Initializes a new instance of the class. + + The coll. + + + + Determines whether this collection contains the specified method name. + + Name of the method. + true if contained.; otherwise, false. + + + + Tries to get the specified method. + + Name of the method. + The method if fund, NULL otherwise. + true if found, false otherwise. + + + + Tries to get the specified method. + + vTableIndex. + The method if fund, NULL otherwise. + true if found, false otherwise. + + + + Gets the empty collection.. + + The empty collection. + + + + Gets the with the specified method name. + + Name of the method. + RpcMethod. + + + + + Collection class for Array Dimensions + + + + + Initializes a new instance of the class. + + The array infos. + arrayInfos + Index = 0 is the lowest Dimension. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The coll. + + + + Internal Dimension list. + + + + + Returns a read only version of this . + + ReadOnlyDimensionCollection. + As read only. + + + + Converts the to array. + + AdsDatatypeArrayInfo[] if is array, otherwise NULL. + + + + Determines the index of a specific item in the . + + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + + + + Adds an item to the . + + The object to add to the . + + + + + Removes all items from the . + + + + + + Determines whether the contains a specific value. + + The object to locate in the . + true if is found in the ; otherwise, false. + + + + + Copies to. + + The array. + Index of the array. + + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + + Returns an enumerator that iterates through the collection. + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + An object that can be used to iterate through the collection. + + + + + Gets an array the specifies the Lengths of each Array Dimension + + System.Int32[]. + + + + Gets or sets the element at the specified index. + + The index. + IDimension. + + + Index = 0 is the lowest dimesion. + + + + Gets the number of elements contained in the . + + The count. + + + + + Gets a value indicating whether the is read-only. + + true if this instance is read only; otherwise, false. + + + + + Gets the Number of elements in all Dimensions + + + + + Gets the lower bounds. + + The lower bounds. + + + + Gets the upper bounds. + + The upper bounds. + + + + ReadOnly version of the + + + + + Initializes a new instance of the class (for internal use only) + + The coll. + + + + + Converts the to array. + + AdsDatatypeArrayInfo[] if is array, otherwise NULL. + + + + Gets an array the specifies the Lengths of each Array Dimension + + System.Int32[]. + + + + Gets the Number of elements in all Dimensions + + + + + Gets the lower bounds. + + The lower bounds. + + + + Gets the upper bounds. + + The upper bounds. + + + + Collection of DataTypes. + + + + + Data type collection + + + + + + Data Type container interface + + Data Type type. + + + + Determines whether the container contains the specified . + + The name. + true if contained; otherwise, false. + + + + Tries to get the specified from the . + + The name. + The type (Out parameter) + true if found + + + + Gets the with the specified name. + + The name. + T. + + + + Internal list of data types + + + + + Dictionary (Type Name --> DataType) + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The types. + + + + Clones this instance. + + DataTypeCollection<T>. + + + + Determines the Index of the specified . + + The item. + The index of if found in the list; otherwise, -1. + + + + Inserts an into the . + + The index. + The item. + + + + Removes the object at the specified index. + + The index. + + + + Determines whether the container contains the specified . + + The name. + true if contained; otherwise, false. + + + + Tries to get the specified from the . + + The name. + The type (Out parameter) + true if found + + + + Determines the specified + + The name. + The if found, otherwise NULL + + + + Adds the specified item to the collection. + + The item. + + + + Adds a range of types + + The types. + + + + Clears the collection. + + + + + Determines whether this contains the specified . + + The item. + true if [contains] [the specified item]; otherwise, false. + + + + Copies the data types to the specified array, starting at the array index. + + The array. + Index of the array. + + + + Indicates that the is readonly + + + + + Removes the specified . + + The item. + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + Gets the enumerator. + + A that can be used to iterate through the collection. + + + + Returns an enumerator that iterates through a collection. + + An object that can be used to iterate through the collection. + + + + Converts the into a + + ReadOnlyDataTypeCollection<T>. + + + + Gets or sets the at the specified index. + + The index. + T. + + + + + Gets the with the specified name. + + The name. + T. + + + + Gets the count of contained s. + + The count. + + + + Gets a value indicating whether this instance is read only. + + true if this instance is read only; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class (Copy constructor). + + The coll. + + + + Returns A ReadOnly-Version of the . + + A read only version of this . + + + + Clones this (Shallow Copy) + + A clone of this . + + + + ReadOnly Collection of objects. + + + + + ReadOnly DataType collection + + + + + + Initializes a new instance of the class. + + The coll. + + + + Initializes a new instance of the class. + + The collection. + + + + Determines whether the specified name contains type. + + The name. + true if the specified name contains type; otherwise, false. + + + + Tries to get the Type with the specified name out of the collection. + + The name. + The type. + true if found + + + + Gets the element with the specified type name. + + The name. + T. + + + + Initializes a new instance of the class. + + Collection of types. + + + + Collection of objects. + + + + + Base class for object collections (abstract). + + + + + + Generic InstanceColleciton interface. + + + + + + Determines whether this collection contains an instance with the specified instance path. + + The instance path. + + true if this collection contains the specified instance path; otherwise, false. + + + + + Determines whether this collection contains an instance with the specified instance name. + + Name of the instance. + + true if this collection contains the specified instance path; otherwise, false. + + + + + Tries to get the specified instance. + + The instance path. + The symbol. + true if the is found; otherwise, false + + + + Tries to get the specified instance by name. + + Name of the instance. + The found symbols. + true if the is found; otherwise, false + + + + Gets the by instance path. + + The instance path. + T. + + + + Gets the by instance name. + + Name of the instance. + IList<T>. + + + + Gets the with the specified instance path. + + + + + + Gets the . + + The mode. + + + + The _list + + + + + The _path dictionary + + + + + Initializes a new instance of the class. + + The mode. + + + + The mode this is working in. + + + + + Initializes a new instance of the class. + + The copy collection + The mode. + + + + Determines the index of the specified . + + The item. + The index of if found in the list; otherwise, -1. + + + + Inserts the specified at the specified index. + + The instance. + The item. + + index + or + index + + + + + + Removes the at the specified index. + + The index. + + + + Adds the specified item. + + The item. + + + + Adds the specified items to this collection. + + The items. + + + + Clears this instance. + + + + + Determines whether this collection contains the specified + + The item. + true if [contains] [the specified item]; otherwise, false. + + + + Determines whether this collection contains an with the specified InstanceName / InstancePath + + The instance path. + true if [contains] [the specified instance path]; otherwise, false. + instancePath + + + + + Tries to get the . of the specified path. + + The instance path or Instance Name (dependent of InstanceNameKey setting) + The symbol. + true if the is found; otherwise, false + instancePath + + + + + Tries to get the SubSymbol from split InstancePath + + The collection. + The path split. + Index of the split. + The symbol. + true if XXXX, false otherwise. + + + + Copies this to the specified array. + + The array. + Index of the array. + + + + Removes the specified item. + + The item. + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + Gets the enumerator. + + A that can be used to iterate through the collection. + + + + Returns an enumerator that iterates through a collection. + + An object that can be used to iterate through the collection. + + + + Converts the to an + + ReadOnlyInstanceCollection<T>. + + + + Tries to get Instnaces by name. + + Name of the instance. + The instances found. + true if the is found; otherwise, false + + + + Determines whether the specified instance name contains name. + + Name of the instance. + true if the specified instance name contains name; otherwise, false. + + + + + Gets the by instance path. + + The instance path. + T. + Path not found!;instancePath + + + + Gets the name of the instance by. + + Name of the instance. + IList<T>. + Name not found!;instanceName + + + + Gets or sets the at the specified index. + + The index. + T. + + + + + Gets the with the specified instance path. + + The instance path. + T. + InstancePath + + + + + Gets the collection count. + + The count. + + + + Gets a value indicating whether this instance is read only. + + true if this instance is read only; otherwise, false. + + + + Gets the . + + The mode. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class (copy constructor) + + The coll. + + + + Returns a read only copy of this collection (shallow copy) + + The readonly copy. + + + + Clones this . + + A cloned . + + + + Collection of objects. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class (copy constructor) + + The coll. + + + + Returns a read only copy of this collection (shallow copy) + + The readonly copy. + + + + Clones this . + + A cloned . + + + + Read only collection of objects + + + + + ReadOnly Instance collection + + + + + + Initializes a new instance of the class. + + The coll. + + + + Mode of the + + + + + Determines whether the contains an instance with the specified instance path. + + The instance path. + + true if contains the specified instance path; otherwise, false. + + + + + Tries to get the instance with the specified instance path. + + The instance path. + The instance. + true, if found, false if not contained. + + + + Tries to get the instance by name. + + Name of the instance. + The found symbols (out-parameter) + true, if found; false if not contained. + + + + Determines whether the specified instance is contained. + + Name of the instance. + true, if instance name is found. + + + + Gets the by instance path. + + The instance path. + T. + + + + Gets the by instance name. + + Name of the instance. + IList<T>. + + + + Gets the . + + The mode. + + + + Gets the element with the specified instance path. + + The instance path. + The instance if contained. + + + + Initializes a new instance of the class. + + The members. + + + + Tries to get the specified member + + Name of the member. + The symbol. + true if found, false otherwise. + + + + Read only collection of objects + + + + + Initializes a new instance of the class. + + The members. + + + + Tries to get the specified member + + Name of the member. + The symbol. + true if found, false otherwise. + + + + Interface ISymbolCollection + + + + + Interface ISymbolCollection + + + + + + + Interface represents a collection of objects. + + + + + Interface represents a collection of objects. + + + + + + Initializes a new instance of the class. + + The mode. + + + + Initializes a new instance of the class. + + The collection to be copied. + The mode. + + + + Returns a Read only version of this collection (shallow copy). + + ReadOnlySymbolCollection<T>. + + + + Clones this instance. + + SymbolCollection<T>. + + + + Initializes a new instance of the class organized with InstancePath. + + + + + Initializes a new instance of the class. + + The mode. + + + + + Initializes a new instance of the class. + + The coll. + + + + Returns a Read only version of this collection (shallow copy). + + Read only collection. + + + + Clones this instance. + + Cloned . + + + + ReadOnly collection containing objects. + + + + + Read only symbol collection. + + + + + + Initializes a new instance of the class. + + The coll. + + + + Initializes a new instance of the class. + + The symbols. + + + + Collection of Namespaces (internally using + + + + + + Generic class for Namespace collections + + + + + + + Namespace collection interface + + Namespace + Datatype + + + + + Determines whether the specified namespace name is contained by the collection. + + Name of the namespace. + true if the specified namespace is contained; otherwise, false. + + + + Try to get the specified namespace. + + Name of the namespace. + The found namespace (out-parameter) + true if XXXX, false otherwise. + + + + Tries to get the specified type + + Name of the type. + Data Type (out-parameter). + true if found, false if not contained. + + + + Tries to get the data type by full name. + + Data types full name (including namespace) + Data Type (out-parameter) + true if found, false if not contained. + + + + Gets the specified data type. + + Name of the namespace. + true if found, false if not contained. + + + + Gets all types included in all namespaces. + + All types. + + + + Initializes a new instance of the class. + + + + + List of Namespaces + + + + + Dictionary NamespaceName --> INamespace + + + + + Dictionary FullPath -> IDataType + + + + + Determines the index of a specific item in the . + + The object to locate in the . + + The index of item if found in the list; otherwise, -1. + + + + + Inserts an item to the at the specified index. + + The zero-based index at which item should be inserted. + The object to insert into the . + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if item is found in the ; otherwise, false. + + + + + Copies to. + + The array. + Index of the array. + + + + Read only indicator + + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + + true if item was successfully removed from the ; otherwise, false. This method also returns false if item is not found in the original . + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Determines whether the specified name contains namespace. + + The name. + + true if the specified name contains namespace; otherwise, false. + + + + + Tries to get the namespace object + + The name. + The namespace object (out-parameter) + true if found, false if not contained. + + + + Tries to get the specified type. + + Data type name + The found data type (out-parameter). + true if found, false if not contained. + typeName + + + + + Tries to get the data type by full name. + + DataTypes full name. + Found data type (out-parameter). + true if found, false if not contained. + + + + Gets or sets the element at the specified index. + + The index. + + + + + + Gets or sets the element at the specified index. + + The STR. + + + + + Gets the number of elements contained in the . + + The number of elements contained in the . + + + + Gets a value indicating whether the is read-only. + + true if the is read-only; otherwise, false. + + + + Gets all types included in all namespaces. + + All types. + + + + Gets all types included in all namespaces + + All types internal. + + + + + Initializes a new instance of the class. + + + + + Creates a read-only version of this . + + A readonly . + + + + Registers a type on its namespace + + The type. + Creates a new namespace if not existing in the collection. + + + + ReadOnly namespace collection + + + + + + Read Only namespace collection + + + + + + + Initializes a new instance of the class. + + The coll. + + + + Determines whether this collection contains a namespace with the specified name. + + The name of the namespace + + true if the namespace is contained; otherwise, false. + + + + + Tries to get the namespace with the specified name. + + Namespace name. + The found namespace (out-parameter). + true if found, false if not contained. + + + + Tries to get the specified data type. + + Name of the type. + Data Type (out-parameter). + true if found, false if not contained. + + + + Tries to get the specified type (by fullName) + + FullName of the data type. + Found Data type (out-parameter). + true if found, false if not contained. + + + + Gets the element at the specified index. + + The name. + + + + + Gets all types included in all namespaces. + + All types. + + + + Initializes a new instance of the class. + + The coll. + + + + Generic interface for EnumValues + + + + + Gets the name of the Enumeration Value (value as string) + + The name. + + + + Gets the (Primitive, BaseType) Value of the enumeration as object + + The object value. + + + + Gets the raw value of the enumeration (as byte array) + + The raw value. + + + + Gets the enumeration base type (sint,byte,short,ushort,int,uint,Int64,UInt64 supported) + + The type of the base. + + + + Gets the size of the Enum value (in bytes) + + The size. + + + + Enum Value + + Enum base type (byte,sbyte,short,ushort,int,uint,long or ulong) + + + + Name of the Enum Value (as string) + + + + + The Value of the Enum + + + + + Initializes a new instance of the class. + + The entry. + Wrong Enum base type. + + + + Initializes a new instance of the class. + + Type of the enum. + The value. + + + + Returns a that represents this instance. + + A that represents this instance. + + + + Parse EnumType string + + The type. + The string. + The value. + true if XXXX, false otherwise. + + + + Parse Enum Type string + + The type. + The string. + EnumValue<T>. + + + + + Gets the name of the Enum Value + + The name. + + + + Gets the value. + + The value. + + + + Gets the Value of the enumeration value (value as object) + + The object value. + + + + Gets the raw value of the enumeration (as byte array) + + The raw value. + Base type of enum is not allowed! + + + + Gets the enumeration base type (sint,byte,short,ushort,int,uint,Int64,UInt64 supported) + + The type of the base. + + + + Gets the size of the Enum value (in bytes) + + The size. + + + + Collection of EnumValues + + Base type of enum + + + + Internal list organizing the Index + + + + + Dictionary Name --> EnumValue for fast find + + + + + Initializes a new instance of the class. + + The coll. + coll + + + + Determines the index of a specific item in the . + + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + true if is found in the ; otherwise, false. + + + + Determines whether [contains] [the specified name]. + + The name. + true if [contains] [the specified name]; otherwise, false. + + + + Determines whether [contains] [the specified value]. + + The value. + true if [contains] [the specified value]; otherwise, false. + + + + Tries the get information. + + The value. + The ei. + true if XXXX, false otherwise. + + + + Parse the specified string to the enum value. + + The name. + The value. + true if XXXX, false otherwise. + + + + Parses the specified string to the Enum value. + + The name. + T. + name + + + + Copies the entier list. + + The array. + Index of the array. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + + Returns an enumerator that iterates through the collection. + + A that can be used to iterate through the collection. + + + + Returns an enumerator that iterates through a collection. + + An object that can be used to iterate through the collection. + + + + Gets the names. + + System.String[]. + + + + Gets the values. + + T[]. + + + + Gets as read only. + + ReadOnlyEnumValueCollection<T>. + As read only. + + + + Performs an explicit conversion from to . + + The coll. + The result of the conversion. + + + + Gets or sets the element at the specified index. + + The index. + EnumValue<T>. + + + + + Gets the number of elements contained in the . + + The count. + + + + Gets a value indicating whether the is read-only. + + true if this instance is read only; otherwise, false. + + + + Read only version of the + + + + + + Initializes a new instance of the class. + + The coll. + + + + Determines whether [contains] [the specified name]. + + Value + true if [contains] [the specified name]; otherwise, false. + + + + Tries to parse the string value of the Enum. + + The Value in string represention. + The value. + true if XXXX, false otherwise. + + + + Parses the specified name. + + The name. + T. + + + + Gets the Value Names. + + System.String[]. + + + + Gets the values. + + T[]. + + + + Class EnumValueCollection. + + + + + Internal list organizing the Index + + + + + Dictionary Name --> EnumValue for fast find + + + + + Initializes a new instance of the class. + + The type identifier. + The coll. + coll + + + + Initializes a new instance of the class (for internal use only). + + The coll. + + + + + Determines the index of a specific item in the . + + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + true if is found in the ; otherwise, false. + + + + Determines whether [contains] [the specified name]. + + The name. + true if [contains] [the specified name]; otherwise, false. + + + + Determines whether [contains] [the specified value]. + + The value. + true if [contains] [the specified value]; otherwise, false. + + + + Tries the get information. + + The value. + The ei. + true if XXXX, false otherwise. + + + + Parse the specified string to the enum value. + + The name. + The value. + true if XXXX, false otherwise. + + + + Parses the specified string to the Enum value. + + The name. + T. + name + + + + Copies the entire list. + + The array. + Index of the array. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + + Returns an enumerator that iterates through the collection. + + A that can be used to iterate through the collection. + + + + Returns an enumerator that iterates through a collection. + + An object that can be used to iterate through the collection. + + + + Gets the names. + + System.String[]. + + + + Gets the values. + + T[]. + + + + Gets as read only. + + ReadOnlyEnumValueCollection. + As read only. + + + + Gets or sets the element at the specified index. + + The index. + EnumValue<T>. + + + + + Gets or sets the element at the specified index. + + The name of the value + EnumValue<T>. + + + + + + Gets the number of elements contained in the . + + The count. + + + + Gets a value indicating whether the is read-only. + + true if this instance is read only; otherwise, false. + + + + Read only version of the + + + + + Initializes a new instance of the class. + + The coll. + + + + Determines whether [contains] [the specified name]. + + Value + true if [contains] [the specified name]; otherwise, false. + + + + Tries to pars the string value of the Enum. + + The Value in string represention. + The value. + true if XXXX, false otherwise. + + + + Parses the specified name. + + The name. + T. + + + + Gets the Value Names. + + System.String[]. + + + + Gets the values. + + T[]. + + + + Gets or sets the element at the specified index. + + The name of the value + EnumValue<T>. + + + + + + Class SubItemCollection. + + + + + The _list + + + + + Initializes a new instance of the class. + + + + + Determines the index of a specific item in the . + + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + true if is found in the ; otherwise, false. + + + + Copies to. + + The array. + Index of the array. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + Returns an enumerator that iterates through the collection. + + A that can be used to iterate through the collection. + + + + Returns an enumerator that iterates through a collection. + + An object that can be used to iterate through the collection. + + + + Gets a read only version of this . + + ReadOnlySubItemCollection. + As read only. + + + + Gets or sets the element at the specified index. + + The index. + ITcAdsSubItem. + + + + Gets the number of elements contained in the . + + The count. + + + + Gets a value indicating whether the is read-only. + + true if this instance is read only; otherwise, false. + + + + Class ReadOnlySubItemCollection. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The coll. + + + + Not used yet + + + + + + No automatic Value Update / Uninitialized + + + + + Update Value immediately + + + + + Update the Value Triggered + + + + + Symbol Value Interface + + + + + Writes the value (via ADS) + + + + + Reads the value (via ADS) + + + + + Resolves the Value object to its primitive value. + + if set to true s are resolved to their primitives also. + System.Object. + If the value is not primitive, this method returns the itself. + + + + Tries to resolves the Value object to its primitive value. + + if set to true s are resolved to their primitives also. + The value. + true if value can be resolved, false otherwise. + + + + Gets the symbol bound to this . + + + The symbol. + + + + + Gets the data type bound to this + + The type of the data. + + + + Gets the update mode (not implemented yet) + + + The update mode. + + + + + Gets the cached Raw internal Data. + + The raw cached data. + + + + Gets the Time stamp of the last successful read of the Value (local user time, UTC) + + The read time stamp. + + + + Gets the age of the value (last successful read of the value) + + The age. + + + + + Gets a value indicating whether this is a primitive value. + + true if this instance is primitive; otherwise, false. + + + + Interface IStructValue + + + + + + Tries to Set a Member/Property Value + + The name of the member + The value. + true if succeeded, otherwise false otherwise. + + + + Tries to get a property/Member value. + + The name of the member + The value. + true if succeeded, otherwise false otherwise. + + + + Interface IArrayValue + + + + + + Tries to set the indexed value on Arrays + + The indexes. + The value. + true if succeeded, false otherwise. + + + + Returns Array Element values. + + The element values. + true if XXXX, false otherwise. + + + + Tries to get the specified Array Element + + The indices. + The value. + true if XXXX, false otherwise. + + + + Iterator for Array Element Values. + + + + + + The Array Value + + + + + The Array Instance + + + + + The Array Type + + + + + Index Iterator + + + + + Initializes a new instance of the class. + + The array value. + + + + Returns an enumerator that iterates through the collection. + + A that can be used to iterate through the collection. + + + + Returns an enumerator that iterates through a collection. + + An object that can be used to iterate through the collection. + + + + Enum InstanceCollectionMode + + + + + InstanceCollection{T} is organized with InstanceNames instead of Instance Paths + + + + + InstanceCollection{T} is organized with InstancePaths in a flat list + + + + + InstanceCollection{T} is organized with InstancePaths in a Hierarchy (Only Root objects appearing) + + + + + Symbol provider interface + + Namespace type + DataType type + Symbol type + + + + Get the Namespaces of DataTypes for this Symbol provider + + ReadOnly collection of the namespaces. + + + + Gets the name of the root namespace + + The namespace. + + + + Gets the root (main) namespace of the Symbol provider. + + The root namespace. + + + + Gets the (root) symbols of the Symbol provider. + + Read only collection of the Symbols + + + + Gets all data types from all Namespaces + + The data types. + + + + Symbol provider interface + + Namespace type + DataType type + Symbol type + + + + + Get the Namespaces of DataTypes for this Symbol provider + + ReadOnly collection of the namespaces. + + + + Gets the (root) symbols of the Symbol provider. + + Read only collection of the Symbols + + + + Gets all data types from all Namespaces + + The data types. + + + + Interface INamespaceInternal + + DataType + + + + + Namespace interface + + DataType class used within this Namespace interface + + + + Gets the name/ identifier of the Namespace + + The name. + + + + Data types organized by the + + The data types. + + + + Registers the the specified DataType + + The type. + true if XXXX, false otherwise. + + + + Registers the types. + + The types. + + + + Access to the Internal DataTypes collection (read/write) + + + + + Symbol iterator object + + Concrete type. + + Iterates over all root symbols and its sub symbols. + + + + The Symbol + + + + + Initializes a new instance of the class. + + The root collection + if set to true the iterator will iterate recursively. + + + + Initializes a new instance of the class. + + The root symbols. + + + + The _iterate array elements + + + + + The _iterate structure members + + + + + Gets the enumerator that enumerates through a collection + + A that can be used to iterate through the collection. + + + + Returns an enumerator that iterates through a collection. + + An object that can be used to iterate through the collection. + + + + Gets or sets a value indicating whether the iterator returns also instances of Array elements (default: true) + + true if [iterate array elements]; otherwise, false. + + + + Gets or sets a value indicating whether the iterator returns also members of structs (default: true) + + true if [iterate struct members]; otherwise, false. + + + + Interface ISymbolFactoryServices + + + + + + Gets the type binder. + + The type binder. + + + + Gets the symbol factory. + + The symbol factory. + + + + Interface ISymbolFactoryValueServices + + + + + + Gets the value accessor. + + The value accessor. + + + + Symbol Factory Interface + + + + + + Creates the Symbol with the specified resolver + + Symbol Entry. + Symbol instance. + + + + Creates a single Array Element + + Array Index of the Element + Array Instance + Resolved Array type. + Array element + + + + Creates all Element Instances of the specified array parent symbol. + + The parent instance. + Resolved array type. + SymbolCollection. + + + + Creates a singgle Instance member on a struct parent + + Field + Parent Struct/Alias/Union + Instance member + Because the Alias type can act like a struct, the parent can be an IAliasInstance also. + + + + Creates the Member Instances collection for the specified parent instance + + The parent instance. + Parent Type (Struct/Alias/Union). + SymbolCollection. + + + + Creates the dereferenced Pointer instance + + Reference/Pointer type. + Parent Instance of the reference + Reference/Pointer instance. + + + + Creates the virtual structure. + + Name of the instance. + The instance path. + Virtual struct instance + + + + Initializes the the . + + The services. + + + + Sets the invalid characters. + + The character. + + + + + Gets the factory services. + + The factory services. + + + + Gets the invalid characters that are not allowed to appear within the Instance Name + + The forbidden characters. + + + + + + Gets a value indicating whether s have invalid characters + + true if this instance has invalid characters; otherwise, false. + + + + + Extended Interface for (Support for Oversampling terminals) + + + + + + Creates the oversampling array Element. + + Parent Array Instance. + ISymbol. + + + + Symbol factory (static objects) (for internal use only) + + + + + + Base implementation for interface. + + + + + + + Symbol Factory services + + + + + Initializes a new instance of the class. + + + + + Indicates whether this instance is initialized. + + + + + Initializes the the . + + The services. + services + + + + Creates the Symbol with the specified resolver + + Symbol Entry. + Symbol instance. + + + + Tries to resolve the specfied data type + + Name of the Type. + The type. + true if XXXX, false otherwise. + typeName + info + + + + Handler function creating a new + + The entry. + ISymbol. + + + + Creates all Element Instances of the specified array parent symbol. + + The parent instance. + Type of the array. + SymbolCollection. + + parentInstance + or + arrayType + + + + + Creates all Element Instances of the specified array parent symbol. + + The parent instance. + Type of the array. + SymbolCollection. + + + + Handler function creating an ArrayInstance + + The symbol INfo. + The type. + IArrayInstance. + + + + Handler function creating the struct symbol + + The entry. + Type of the structure. + IStructInstance. + + + + Handler function creating the union symbol + + The entry. + Type of the structure. + IStructInstance. + + + + Handler function creating the alias symbol + + The entry. + The Alias type. + IStructInstance. + + + + Handler function creating a String Type + + The entry. + The string dataType. + ISymbol. + + + + Handler function creating a Primitive Symbol + + The entry. + Type of the data. + ISymbol. + + + + Handler function creating a ReferenceInstance symbol. + + The entry. + Type of the reference. + IReferenceInstance. + + + + Handler function creating a Pointer instance symbol + + The entry. + Type of the structure. + IPointerInstance. + + + + Creates the array element + + Array Index of the Element + Array Instance + Resolved array type. + Array element + + parent + or + indices + + indices + + + + Handler function creating a new Array Element Symbol. + + Index of the current. + The parent. + Resolved array type. + ISymbol. + + + + Creates the Member Instances collection for the specified parent instance + + The parent instance. + Type of the structure. + SymbolCollection. + + parentInstance + or + structType + + + + + Handler function creating the member instances. + + The parent instance. + Type of parent (Struct or Union). + SymbolCollection. + + + + Creates the Instance member. + + Field + Parent Struct + Instance member + + member + or + parent + + + + + Handler function creating a new member + + The member. + The parent. + ISymbol. + + + + Creates the reference/pointer instance. + + Reference/Pointer type. + Parent Instance of the reference + Reference/Pointer instance. + + type + or + parent + + + + + Handler function creating a new Reference Instance. + + The type. + The parent. + ISymbol. + + + + Creates the virtual structure. + + Name of the instance. + The instance path. + Virtual struct instance + + instanceName + or + instancePath + + + + + Handler function creating a new Virtual Struct + + Name of the instance. + The instance path. + ISymbol. + + + + Combines member parent path + + The member. + The parent. + System.String. + + + + Default Invalid Characters + + + + + The invalid characters + + + + + Sets the invalid characters. + + The invalid chars. + + + + Gets a value indicating whether this instance is initialized. + + true if this instance is initialized; otherwise, false. + + + + Gets the factory services. + + The factory services. + + + + Gets the invalid characters that are not allowed to appear within the Instance Name + + The forbidden characters. + + + + Gets a value indicating whether this instance has invalid characters. + + true if this instance has invalid characters; otherwise, false. + + + + Initializes a new instance of the class (for internal use only) + + + + + + Handler function creating a new Array Element Symbol. + + Index of the current. + The parent. + Resolved array type. + ISymbol. + + + + Creates the array element. + + Index of the current. + if set to true [oversample]. + The parent. + Resolved array type. + ISymbol. + parent + arrType + or + parent + + + + Creates an Array element instance. + + Indices of the array element + Oversampling indicator. + The parent instance (here the array instance) + Array type. + The element type. + Symbol. + + + + + Creates the oversampling array Element. + + Array Instance. + ISymbol. + + + + Handler function creating a new member + + The field. + The parent. + ISymbol. + + member + or + parent + + + + + Handler function creating the struct symbol + + The entry. + Type of the structure. + IStructInstance. + + + + Handler function creating the union symbol + + The entry. + Type of the union. + IUnionInstance. + + + + Handler function creating an ArrayInstance + + The symbol INfo. + The type. + IArrayInstance. + + + + Handler function creating the alias symbol + + The entry. + The Alias type. + IStructInstance. + + + + Called when [create pointer instance]. + + The entry. + Type of the pointer. + IPointerInstance. + + + + Handler function creating a ReferenceInstance symbol. + + The entry. + Type of the reference. + IReferenceInstance. + + + + Handler function creating a String Type + + The entry. + The string dataType. + ISymbol. + + + + Handler function creating a Primitive Symbol + + The entry. + Type of the data. + ISymbol. + + + + Handler function creating a new Reference Instance. + + The type. + The parent. + ISymbol. + + type + or + parent + + + + + Handler function creating a new Virtual Struct + + Name of the instance. + The instance path. + ISymbol. + + + + Class caches the currently registered Notification handlers. + + + + + Sync object + + + + + Notification Handle --> Symbol + + + + + Symbol --> Notification Handle + + + + + Initializes a new instance of the class. + + + + + Gets the largest symbol size in bytes that is inside this + + System.Int32. + + + + Gets the type of the notification. + + The symbol. + SymbolNotificationType. + + + + Updates the specified symbol notification. + + The symbol. + The type. + The settings. + Symbol is not registered for Notifications! + + + + Adds the specified symbol notification + + The symbol. + The handle. + Type of the notification. + The settings. + Symbol already registered! + + + + Removes the specified symbol notification. + + The symbol. + Type of the notification. + true if XXXX, false otherwise. + + + + Removes all Symbol notifications for the specified symbol. + + The symbol. + true if XXXX, false otherwise. + + + + Tries to get the notification handle. + + The symbol. + The handle. + true if XXXX, false otherwise. + + + + Tries to get the notification settings. + + The symbol. + The settings. + true if XXXX, false otherwise. + + + + Determines whether this has a registered notification for the symbol. + + The symbol. + true if [contains] [the specified symbol]; otherwise, false. + + + + Notification info object + + + + + Symbol + + + + + Notification type + + + + + Notification handle + + + + + Notification settings + + + + + Initializes a new instance of the class. + + The symbol. + The handle. + Type of the notification. + The settings. + + + + Symbol Loader interface + + + + + Symbol Provider interface. + + + + + Get the Namespaces of DataTypes for this Symbol provider + + ReadOnly collection of the namespaces. + + + + + Gets the name of the root namespace + + The namespace. + + + + Gets the root (main) namespace of the Symbol provider. + + The root namespace. + + + + + Gets the (root) symbols of the Symbol provider. + + Read only collection of the Symbols + + + + Gets all data types from all Namespaces + + The data types. + + + + Gets the build in types. + + The build in types. + + + + Gets or sets the access Method + + The access method. + + + + Symbol Loader interface + + + + + Gets/Sets the default notification settings for this SymbolLoader + + The default notification settings. + The Default notification Settings can be set on the SymbolLoader and is used as default + on the different Symbols. On the symbol itself the can be overridden. + + Setting the DefaultNotificationSettings on the object: + + + + + + Gets the image base address. + + The image base address. + + + + Interface for Notification Settings + + + + + Notification communication settings + + + + + Default + + + + + Initializes a new instance of the class. + + The mode. + The cycle time. + The max delay. + + + + Called when [mode changed]. + + The value. + + + + Compares this in term of priorities to the other . + + The other. + 1: this has higher priority (shorter times), 0: Equal, 1: Lower prioritiy + + + + + Equals + + The object to compare with the current object. + true if the specified is equal to this instance; otherwise, false. + + + + Operator== + + The o1. + The o2. + The result of the operator. + + + + Operator-= + + The o1. + The o2. + The result of the operator. + + + + Gets the HashCode of the Address + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + Gets the default Settings (AdsTransMode.OnChange, CycleTime 200 ms, MaxDelay: off) + + The default. + + + + Gets or sets the ADS Transmission mode. + + The Transmission mode. + + + + Gets or sets the cycle time (in milliseconds) for AdsNotifications. + + The ADS server checks if the value changes in this time slice. The unit is 1ms + The cycle time. + + + + Gets or sets the Maximum Delay Time (in milliseconds) for AdsNotifications. + + The maximum Delay time for ADS Notifications. + + + + Compares two for Priority. + + Checks (prioritized): + 1. + 2. + 3. + + + + + Initializes a new instance of the class. + + + + + Compares the specified x. + + The x. + The y. + A signed integer that indicates the relative values of and , as shown in the following table.Value Meaning Less than zero is less than .Zero equals .Greater than zero is greater than . + + + + Class SymbolFactoriesContainer (for internal use only) + + + + + + Initializes a new instance of the class (for internal use only). + + The binder. + The loader. + The accessor. + binder + or + loader + or + accessor + + + + Type Binder + + + + + Symbol Factory + + + + + Value accessor + + + + + Gets the type binder. + + The type binder. + + + + Gets the symbol factory. + + The symbol factory. + + + + Gets the value accessor. + + The value accessor. + + + + The class TcAdsSymbolInfoLoader is responsible for downloading the list of declared variables from an ADS Server. + + + + + + + + + Gets access to the Internal Symbol/DataType/Namespace collections. + + + + + + + Get the Namespaces of DataTypes for this Symbol provider + + ReadOnly collection of the namespaces. + + + + Gets the (root) symbols of the Symbol provider. + + Read only collection of the Symbols + + + + Gets all data types from all Namespaces + + The data types. + + + + Initializes a new instance of the class. + + The client. + The settings. + The accessor. + The symbols Upload information. + settings + or + accessor + or + symbolsInfo + + + + The symbol factor services + + + + + Finalizes an instance of the class. + + + + + Disposed flag + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + The Loader settings + + + + + Namespaces + + + + + Upload info. + + + + + Resets the cache-contents of this loader. + + Accessing the data members will force AdsReads in the following. + + + + The default timeout + + + + + The timeout + + + + + Load upload info. + + The client. + The timeout. + The upload information. + AdsSymbolUploadInfo. + client + + + + Loads the symbols. + + The timeout. + + + + Creates the build in types. + + DataTypeCollection<IDataType>. + + + + Contains the Build-In types if types are loaded, null if not. + + + + + Loads the data types. + + The timeout. + + + + Expands the so far unresolved datatypes. + + Some datatypes must be generated, because they are not available from the Watch server. + This must be done, before the DataTypes collection is accessed, because otherwise the collection can be changed + during enumeration + + + + + Loads the data types and symbols into the + + + + + Sets the size of the platform pointer. + + The sz. + + + + Gets the binder. + + The binder. + + + + Gets the accessor. + + The accessor. + + + + Gets the symbol factory. + + The symbol factory. + + + + Gets actual the Symbol loader settings + + The access method. + + + + Gets the amount of data types used in the target. + + The data type count. + This poperty can be used, before uploading all data types and symbols. + + + + Gets the amount of symbols used by the target. + + The symbol count. + This poperty can be used, before uploading all data types and symbols. + + + + Gets the maximal amount of Dynamic symbols of the target system. + + The max dynamic symbols. + + + + Gets the used dynamic symbols by the target system. + + The used dynamic symbols. + + + + Gets the default string Encoding of the Symbols and DataTypesw. + + The string encoding. + + + + Gets the Upload Info object + + The information. + + + + Gets the build in types. + + The build in types. + + + + Gets the ads client. + + The ads client. + + + + Gets the base Address of the accessed Process image. + + The image base address. + + + + Gets the root namespace name of the . + + The root namespace. + + + + Gets the (root) symbols of the as ReadOnly collection. + + The symbols. + + + + Get the Namespaces of DataTypes for this Symbol provider + + ReadOnly collection of the namespaces. + + + + + Get the Namespaces of DataTypes for this Symbol provider + + ReadOnly collection of the namespaces. + + + + + Gets the root (main) namespace of the Symbol provider. + + The root namespace. + + + + Gets the data types. + + ReadOnlyDataTypeCollection<IDataType>. + + + + Indicates that Virtual (created StructInstances) are used. + + The use virtual instances. + + + + Gets or sets the NotificationSettings that are used for Notification Defaults. + + The default notification settings. + + + + Occurs when new types are generated internally + + + + + Occurs when a typename cannot be resolved. + + + + + Gets the Symbol Factory + + + The symbol factory. + + + + + Gets the Symbol Provider + + The provider. + + + + Converts ArrayIndices to string and position/subindex and vice versa (for internal use only) + + + + + + Convert indices to string. + + The indices. + The string representation (including brackets) + + + + Parses the Indices string to int array (as indices). + + The indices. + System.Int32[]. + + + + Creates the Index String part for the Oversampling SubElement + + Should be the element Count of the Dimension (one after the highest index). + The string representation. + + + + Converts the SubIndex / Position to String. + + The lower bounds. + The upper bounds. + Index of the sub. + System.String. + + + + Calculates an internal array that contains the factors/multiplicators of the different dimensions for position/subIndex calculations. + + The lower bounds. + The upper bounds. + System.Int32[]. + + lowerBounds + or + upperBounds + + Dimensions mismatch! + + + + Calculates the number of SubElements within the Array (including Oversampling Element) + + The lower bounds. + The upper bounds. + if set to true [oversampled]. + System.Int32. + + + + Converts subIndex / position to indices. + + Subindex / Position. + The array type. + Indices. + + + + Converts the subindex / position to the indices. + + Subindex / position. + The lower bounds. + The upper bounds. + if set to true [oversampled]. + Indices. + + + + Converts the indices specifier to the subindex / position. + + The indices (not normalized) + The array type. + The subindex / position. + + + + Converts the indices specifier to the subindex / position. + + The indices. + The type. + if set to true [normalized indices]. + System.Int32. + + + + Converts the indices specifier to the subindex / position. + + The indices. + The lower bounds. + The upper bounds. + if set to true [oversampled]. + The subindex / position. + + lowerBounds + or + upperBounds + or + indices + + Dimensions mismatch! + + Oversampling arrays only support one dimension! + or + indices + or + indices + + + + + Checks the indices against lower/upper bounds. + + The indices. + The lower bounds. + The upper bounds. + if set to true the indices are normalized. + if set to true [oversampled]. + indices + Indices are out of range. + + + + Checks the indices whether they are inside bounds. + + The indices. + The Array type. + true if the indices are insinde bounds, false otherwise. + + + + Checks the indices whether they are inside bounds. + + The indices. + The lower bounds. + The upper bounds. + if set to true [normalized]. + if set to true [oversampled]. + true if XXXX, false otherwise. + + lowerBounds + or + upperBounds + or + indices + + + Dimensions mismatch! + or + Dimensions mismatch! + + lowerBounds + or + upperBounds + or + indices + Dimensions mismatch! + or + Dimensions mismatch! + + + + Validates the indices. + + The indices. + The lower bounds. + The upper bounds. + if set to true [oversampled]. + true if XXXX, false otherwise. + + + + Validates the specified subElement index. + + The subElement index. + The lower bounds. + The upper bounds. + if set to true [oversampled]. + true if XXXX, false otherwise. + + + + Normalizes the indices. + + The indices (non normalized within bounds). + The lower bounds. + The upper bounds. + if set to true [oversampled]. + System.Int32[]. + + + + Normalizes the indices. + + The indices. + The type. + System.Int32[]. + + + + Determines whether the specified type is oversampled. + + The type. + true if the specified type is oversampled; otherwise, false. + + + + Denormalizes the indices. + + The normalized indices + The lower bounds. + The upper bounds. + if set to true [oversampled]. + System.Int32[]. + + + + Denormalizes the indices. + + The normalized indices. + The type. + System.Int32[]. + + + + Determines whether the subIndex specifies an oversampling element. + + SubIndex / Position.. + The lower bounds. + The upper bounds. + true if [is oversampling element] [the specified lower bounds]; otherwise, false. + + + + Determines whether the subIndex specifies an oversampling element. + + SubIndex / Position.. + The lower bounds. + The upper bounds. + true if [is oversampling element] [the specified lower bounds]; otherwise, false. + + + + Determines whether the indices specify the oversampling Element + + The indices. + The type. + true if [is oversampling index] [the specified indices]; otherwise, false. + + type + or + indices + + Specified type is not an Oversampling type;type + + + + Determines whether the indices specifies the oversampling element. + + The indices. + The lower bounds. + The upper bounds. + true if [is oversampling index] [the specified indices]; otherwise, false. + + lowerBounds + or + upperBounds + + Dimensions mismatch! + Oversampling arrays only support one Dimension! + + + + DataType String Parser class. + + + + + + Tries to parse the string. + + Name of the type. + The character count of the string (not including the /0) + if set to true the typename specifies an unicode (WSTRING) string + true if XXXX, false otherwise. + + + + Determines whether the specified type name is string. + + Name of the type. + true if the specified type name is string; otherwise, false. + + + + Determines whether the specified type name is array. + + Name of the type. + true if the specified type name is array; otherwise, false. + + + + Tries to parse the pointer type + + Name of the Pointer type + Type of the referenced type. + true if XXXX, false otherwise. + typteName + + + + Determines whether the specified type name is pointer. + + Name of the type. + true if the specified type name is pointer; otherwise, false. + typteName + + + + Tries to parse a referenc type + + Name of the type. + Type of the referenced. + true if XXXX, false otherwise. + + + + Determines whether the specified type name is reference. + + Name of the type. + true if the specified type name is reference; otherwise, false. + + + + Tries to parse the string as SubRange type. + + Name of the type. + Type of the base. + The lower bound. + The upper bound. + true if XXXX, false otherwise. + + + + Determines whether the specified string is a subrange type. + + Name of the type. + true if [is sub range] [the specified type name]; otherwise, false. + + + + Determines whether the specified Type name is an (complex) intrinsic type + + Name of the type. + true if [is intrinsic type] [the specified type name]; otherwise, false. + + + + Class parsing Symbols from String or from AdsStream (for internal use only) + + + + + + Parses the symbolStream for Symbols (for internal use only) + + The symbol stream. + The encoding. + The factory services. + + symbolStream + or + factoryServices + + + + + Parses the symbol. + + The symbol reader. + The encoding. + The factory services. + ISymbol. + + + + Tries to parse the Type string. + + Type string / name. + The resolver. + The type. + true if XXXX, false otherwise. + + typeName + or + resolver + + + + + + Parses the the data types within the specified stream (for internal use only) + + The data type stream. + The encoding. + The type binder. + if set to true base types are contained in stream. + The base types. + Enum base type mismatch! + + + + Tries to parse an Array Instance + + The name with indices string. + The instanceName. + The indices string. + The indices. + The type. + true if the string specifies an array instance, false otherwise. + + + + Tries to parse the indices from an indices string. + + The indices string. + The indices. + The type. + true if the string specifies an array instance, false otherwise. + + + + Tries to parse the parent path of this + + The symbol. + The parent path (out-parameter). + Name of the parent (out-parameter). + + true if found, false if not contained. + + + + + Enum ArrayIndexType + + + + + Standard Array + + + + + Oversampling array + + + + + Interface IContextMaskProvider + + + + + + Gets the context mask. + + The context mask. + + + + Symbol class + + + A Symbol is a (named) memory object within the Process Image with a fixed address indicated by Index Group and Index Offset. + Symbols can optionally be addressed by instance path and are bound to a specific . + + + + + Instance implementation + + + + + Interface specifying instance objects. + + + + + Gets the of the . + + The type of the data. + + + + Gets the name of the DataType that is used for this . + + The name of the type. + + + + Gets the name of the instance (without periods (.) + + The name of the instance. + + + + Gets the relative / absolute access path to the instance (with periods (.)) + + The instance path. + If this path is relative or absolute depends on the context. are using relative paths, s are using absolute ones. + + + + Gets a value indicating whether this is static. + + + true if this instance is static; otherwise, false. + + + + + Indicates that the represents a Reference type (REFERENCE TO) + + true if is ReferenceTo, otherwise false. + + + + Indicates that the represents a Pointer type (Pointer TO) + + true if is ReferenceTo, otherwise false. + + + + Gets the comment of the + + The comment. + + + + Gives access to the specific Symbol Flags + + + + + + Gets the Symbol Flags. + + The flags. + + + + Gets the Ads Context Mask + + The context mask. + + + + Indicates if this instance is read only. + + + + + Indicates if this instance is persistent. + + + + + Indicates if this instance is a TcComInterfacePointer. + + + + + Indicates if this instance has set TypeGuid flag. + + + + + Interface IBinderProvider + + + + + + Gets the binder. + + The binder. + + + + Interface IInstanceInternal + + + + + + Sets a new instance name. + + Name of the instance. + This can only used as long the Instance is not added to a collection using the type binder classes. + + + + Bindable interface for TypeBinder supported Types/Symbols + + + + + + Binds this bindable object via the specified + + The binder. + + + + + Gets a value indicating whether this instance is bound. + + true if this instance is bound; otherwise, false. + + + + + Initializes a new instance of the class. + + resolver + + + + + Initializes a new instance of the class. + + The symbol. + + + + + Initializes a new instance of the class. + + The sub entry. + + + + + Binds this bindable object via the specified + + The binder. + binder + + + + + + Called when he is bound via its instance binder. + + The binder. + + + + + Aligns the type name + + Name of the type. + System.String. + Type name not valid! + + + + Sets a new instance name. + + Name of the instance. + This can only used as long the Instance is not added to a collection using the type binder classes. + + + + + Sets a new InstanceName InstancePath + + Instance name. + + + + DataType resolver + + + + + Namespace + + + + + The Byte size or Bit Size of the instance + + + + + Get the Instance Flags + + + + + Instance category + + + + + Instance category + + + + + Datatype name. + + + + + Resolved / Cached Data Type + + + + + Tries to resolve the . + + true if XXXX, false otherwise. + + + + Instance comment. + + + + + Name of the instance. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + The static address + + + + + Sets the context mask. + + The context mask. + contextMask + + + + Resolves this this DataType (if Alias/Reference) + + The type. + Resolved IDataType. + This interface is used for automatic Resolution of Alias/Reference within symbols. + + + + + Gets a value indicating whether this instance is bound. + + true if this instance is bound; otherwise, false. + + + + + Gets the data type resolver. + + The data type resolver. + + + + + Gets the namespace name. + + The namespace. + + + + Gets the size of the in bytes or Bits dependant on + + The size of the bit. + + + + Gets the instance flags. + + The flags. + + + + Gets the (aligned) size of of the Type/Instance in Bytes + + The size of the byte. + + + + Indicates that the Size of the Object is Byte aligned (BitSize % 8 == 0) + + true if this instance is byte aligned; otherwise, false. + + + + Gets the size of this in bits. + + The size of the bit. + + + + Only for internal use (obsolete) + + The datatype. + + + + + Gets the the of the Instance. + + The category. + Corresponds to the + + + + Gets the name of the DataType that is used for this . + + The name of the type. + + + + Gets the of the . + + The type of the data. + + + + Gets the comment. + + The comment. + + + + Gets the name of the instance (without periods (.) + + The name of the instance. + + + + Gets the relative / absolute access path to the instance (with periods (.)) + + The instance path. + If this path is relative or absolute depends on the context. are using relative paths, s are using absolute ones. + + + + Gets a value indicating whether this instance has a value. + + true if this instance has value; otherwise, false. + + + + + Gets a value indicating whether this is static. + + + true if this instance is static; otherwise, false. + + + + + Gets a value indicating whether this instance is not basing on a full DataType but instead of some sort of bit mapping + + + true if this instance is bit mapping; otherwise, false. + + + + + Indicates if this instance is read only. + + + + + Indicates if this instance is persistent. + + + + + Indicates if this instance is a TcComInterfacePointer. + + + + + Indicates if this instance has set TypeGuid flag. + + + + + Gets a value indicating whether this instance is reference. + + true if this instance is reference; otherwise, false. + + + + Gets a value indicating whether this instance is reference. + + true if this instance is reference; otherwise, false. + + + + Gets the context mask of this instance. + + The Size of the internal data is 4-Bit + + + + Interface for a that supports values. + + + + + + Interface IValueRawSymbol + + + + + + Bindable Symbol interface (for internal use only) + + + + + + Interface specifying Symbols ( + + + + + Gets the Symbol/Datatype Category + + The category. + + + + Gets the parent Symbol + + The parent. + + + + Gets the SubSymbols of the + + Used for Array, Struct, Pointer and Reference instances. Otherwise empty + + + + + Gets a value indicating whether this Symbol is acontainer type. + + + true if this instance is container type; otherwise, false. + + + + + Gets a value indicating whether this instance is a primitive type. + + + true if this instance is primitive type; otherwise, false. + + + + + Gets a value indicating whether this is persistent. + + + true if this instance is persistent; otherwise, false. + + + + + Gets a value indicating whether this is read only. + + + true if this instance is read only; otherwise, false. + + + + + Gets the Symbol Attributes + + The attributes. + + + + Gets a value indicating whether this instance is recursive. + + true if this instance is recursive; otherwise, false. + + + + Sets the parent of the Symbol + + The symbol. + + + + Reads the raw value of the (Ads Read / Write) + + System.Byte[]. + The raw value. + + + + Writes the raw value of the (Ads Read / Write) + + The value as byte array. + The value. + + + + Gets a value indicating whether this has a value. + + true if this instance has value; otherwise, false. + A VirtualSymbol does not support values, but in terms of the definition, is a + + + + Occurs when the RawValue of the has changed. + + + + + Reads the Value of the + + System.Object. + The value. + Calling on primitive types, a call of this method will return the primitive value. + On complex types (structures and arrays) it depends on the settings what will happen. + In non dynamic modes: the raw byte Array will be returned, + in dynamic mode: A Value will be created on the fly. + + + + Writes the Value of the + + The value. + Calling on primitive types, a call of this method will directly write this Value. + On complex types (structs and arrays) it depends on the settings what will happen. + In non dynamic modes: Only byte Arrays (of correct size) can be written) + in dynamic mode: A Value that represents the value will be accepted also. + + + + + Occurs when the (Primitive) value of the has changed. + + + + + Gets or sets the notification settings. + + The notification settings. + The will be inherited from if the setting is not overwritten. + + + + + Interface IValueAnySymbol + + + + + + Reads the value of this Value into a new created instance of the managed type + + The tp. + Read value (System.Object). + + + + + + Reads the value of this Value into the specified managed value. + + The managed object. + Read value (System.Object). + + + + + + Writes the value represented by the managed value to this Value + + The managed value. + . + . + + + + Interface IValueAccessorProvider + + + + + + Gets the value accessor. + + The value accessor. + + + + Symbol Value Access interface + + + + + + Gets the factory services. + + The factory services. + + + + Interface ISymbolValueChangeNotify + + + + + Called when the RawValue of the symbol has been changed. + + The arguments. + + + + Called when the Value of the symbol has been changed. + + The arguments. + + + + Interface ISymbolInternal + + Internal interface for Symbols + + + + + Creates the SubSymbol collection. + + The parent. + SymbolCollection. + + + + Creates and Gets the Internal SubSymbol sCollection + + The sub symbols internal. + + + + Gets a value indicating whether the internal SubSymbols collection is created. + + true if [sub symbols created]; otherwise, false. + + + + Interface IAdsSymbol + + + + + + + Interface describing a Process Image Address + + + + + Gets the index group of the Symbol + + The index group. + + + + Gets the index offset of the Symbol + + The index offset. + + + + Gets the of the Process Image + + The address. + + + + Initializes a new instance of the class. + + The entry. + The factory services. + entry + or + resolver + or + factoryServices + + + + Called when the is bound. + + The binder. + + + + + Sets a new InstanceName InstancePath + + Instance name. + + + + Initializes a new instance of the class. + + The entry. + The type. + The factory services. + + + + Initializes a new instance of the class. + + The parent. + The type. + Name of the instance. + The field offset. + The factory services. + + + + Initializes a new instance of the class. + + The index group. + The index offset. + The parent. + The type. + Name of the instance. + The instance path. + The factory services. + factoryServices + instanceName + + + + Initializes a new instance of the class. + + Name of the instance. + The parent. + The factory services. + + + + Initializes a new instance of the class. + + Name of the instance. + The instance path. + The factory services. + + + + Initializes a new instance of the class which represents an instance of + + The member. + The parent ( or ) of this member instance symbol. + + + + Gets the symbol flags. + + The structure parent. + The sub symbol. + AdsSymbolFlags. + + + + Gets the symbol flags. + + The array parent. + Type of the element. + AdsSymbolFlags. + + + + Initializes a new instance of the class. + + The indices. + Indicates, that is Symbol is the virtual oversampling element. + The parent (Can be IArrayInstance or IAliasInstance) + + + + Equals + + The object to compare with the current object. + true if the specified is equal to this instance; otherwise, false. + + + + Operator== + + The o1. + The o2. + The result of the operator. + + + + Operator-= + + The o1. + The o2. + The result of the operator. + + + + Gets the HashCode of the Address + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + The Symbol Factory Services + + + + + Calculates the access. + + The parent. + The member. + The index group. + The index offset. + + + + (Re)Calculates the IndexGroup and Index Offset from Byte/Access To BitAccess or for TCom Pid masking + + The parent Symbol + The member. + The index group result + The index offset result + + + + Notification Settings + + The notification settings. + + + + The parent Symbol + + + + + Sets the parent symbol. + + The parent. + + + + The index group + + + + + The index offset + + + + + The instance path + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + The image base address + + + + + Weak reference to SubSymbols + + + + + Creates the sub symbols collection. + + + + + Creates the sub symbols. + + The parent. + SymbolCollection. + + + + + Reads the raw value of the (Ads Read / Write) + + System.Byte[]. + The raw value. + + + + Writes the raw value of the (Ads Read / Write) + + The value. + The raw value. + + + + Handler function for writing the RawValue + + The value. + + + + + + + + Handler function for reading the raw value + + System.Byte[]. + + + + + + RawValueChanged delegate + + + + + ValueChanged delegate. + + + + + Reads the value of this symbol. + + System.Object. + + + + Writes the value of this symbol. + + The value. + + + + Handler function for writing the dynamic value + + The value. + + + + + Handler function for reading the dynamic value. + + The Value + + + + Reads the value of this Value into a new created instance of the managed type + + The tp. + Read value (System.Object). + + + + + + Reads the value of this Value into the specified managed value. + + The managed object. + Read value (System.Object). + + + + + + Writes the value represented by the managed value to this Value + + The managed value. + . + . + + + + Gets the parent list. + + List<ISymbol>. + + + + Called when the RawValue has been changed (fireing RawValueChanged event). + + The arguments. + + + + Called when the Value has been changed (fireing ValueChanged event). + + The arguments. + + + + Gets the possibly wrapped IAdsSymbol + + The symbol. + IAdsSymbol. + + + + Gets the factory services. + + The factory services. + + + + + Gets the value accessor. + + The value accessor. + + + + Gets or sets the notification settings. + + The notification settings. + The will be inherited from if the setting is not overwritten. + If the Root Symbol also doesn't contain the settings, then the will be returned. + + + + Gets the parent Symbol + + The parent. + + + + Gets the index group of the Symbol + + + The index group. + + + + + Gets the index offset of the Symbol + + + The index offset. + + + + + Gets the name. + + + The name. + + + + + + Gets the type. + + + The type. + + + + + + Gets the relative / absolute access path to the instance (with periods (.)) + + + The instance path. + + + If this path is relative or absolute depends on the context. are using relative paths, s are using absolute ones. + + + + + Gets the of the Process Image + + + The address. + + + + + Gets the SubSymbols of the + + + Used for Array, Struct, Pointer and Reference instances. Otherwise empty + + + + + Gets the SubSymbols Collection (internal variant) + + The sub symbols internal. + + + + + Gets a value indicating whether [sub symbols created]. + + true if [sub symbols created]; otherwise, false. + + + + + Gets or sets a value indicating whether an ancestor is a dereferenced Reference + + true if this instance is ancestor is reference; otherwise, false. + + + + Gets or sets a value indicating whether an ancestor is a dereferenced Pointer + + true if this instance is ancestor is pointer; otherwise, false. + + + + Occurs when the RawValue of the has changed. + + + + + Occurs when the (Primitive) value of the has changed. + + + + + Gets a value indicating whether this instance is primitive. + + + true if this instance is primitive; otherwise, false. + + + + + Gets a value indicating whether this Symbol is a container/complex type. + + + true if this instance is container type; otherwise, false. + + + + + Gets the Symbol Attributes + + The attributes. + + + + Gets a value indicating whether this instance is recursive. + + true if this instance is recursive; otherwise, false. + + + + Class VirtualStructInstance. + + + + + Class representing a Struct Instance + + + + + Interface representing an instance of a + + + + + Gets the member instances of the Struct Instance. + + The member instances. + + + + Gets a value indicating whether this instance has RPC methods + + true if this instance has RPC methods; otherwise, false. + + + + Initializes a new instance of the class. + + The entry. + The type. + The factory services. + + + + Initializes a new instance of the class. + + Name of the instance. + The parent. + The field offset. + The factory services. + + + + Initializes a new instance of the class. + + Name of the instance. + The instance path. + The factory services. + + + + Initializes a new instance of the class. + + The member. + The parent ( or ) of this member instance symbol. + + + + Initializes a new instance of the class. + + Index of the current. + if set to true [oversample]. + The parent. + + + + Initializes a new instance of the class. + + The parent. + The type. + Name of the instance. + The field offset. + + + + Called when [create sub symbols]. + + The parent instance. + SymbolCollection. + + + + Gets the member instances of the Struct Instance. + + The member instances. + + + + Gets a value indicating whether this instance is primitive. + + true if this instance is primitive; otherwise, false. + + + + Gets a value indicating whether this Symbol is a container/complex type. + + true if this instance is container type; otherwise, false. + + + + Gets a value indicating whether this instance has RPC methods + + true if this instance has RPC methods; otherwise, false. + + + + Virtual Struct instance interface. + + + Virtual struct instance are used to create a TreeView from the flat list of symbols. + + + + Adds the member. + + The member instance. + The parent struct instance. Usually the this pointer. + + + + Initializes a new instance of the class. + + Name of the instance. + The instance path. + The services. + + + + Virtual members (used as SubSymbols) + + These virtual members are stored as full reference that they are + not lost over time. + /// + + + + Adds the member. + + The member instance. + The parent struct instance. Usually the this pointer. + + + + Called when the SubSymbols are (re)created) + + The parent instance. + TwinCAT.TypeSystem.SymbolCollection. + + + + Tries to resolve the . + + true if XXXX, false otherwise. + + + + + Gets the size of the in bits. + + The size of the bit. + + + + Gets a value indicating whether this instance has a value. + + true if this instance has value; otherwise, false. + + + + Class representing a Union Instance + + + + + Interface for an Instance of the . + + + + + + Gets the field instances of the Union + + The field instances. + + + + Initializes a new instance of the class. + + The entry. + The type. + The factory services. + + + + Initializes a new instance of the class. + + Name of the instance. + The parent. + The factory services. + + + + Initializes a new instance of the class. + + Name of the instance. + The instance path. + The factory services. + + + + Initializes a new instance of the class. + + The member. + The parent of this member instance symbol. + + + + Initializes a new instance of the class. + + Index of the current. + if set to true [oversample]. + The parent. + + + + Initializes a new instance of the class. + + The parent. + The type. + Name of the instance. + The field offset. + + + + Called when [create sub symbols]. + + The parent instance. + SymbolCollection. + + + + Gets the member instances of the Struct Instance. + + The member instances. + + + + Gets a value indicating whether this instance is primitive. + + true if this instance is primitive; otherwise, false. + + + + Gets a value indicating whether this Symbol is a container/complex type. + + true if this instance is container type; otherwise, false. + + + + Struct Instance with RPC Methods + + + + + Interface IRpcStructInstance + + + + + + + Interface for an RPC callable PLC Method (Remote procedure call) + + + + + Invokes the specified method. + + Name of the method. + The parameters. + The return value of the RPC Method + To indicate a PLC Method for remote ads access, the attribute 'TcRpcEnable' must be declared on + the method declaration (see example). + + + (* Declaration *) + {attribute 'TcRpcEnable'} + METHOD RpcMethod1 : INT + VAR_INPUT + i1 : INT; + END_VAR + + (* Implementation *) + RpcMethod1 := i1 + 1; + + + + + + Tries to invoke the specified method. + + Name of the method. + The arguments. + The result. + true if the call succeeds, false otherwise. + + + + Tries to invoke the specified method. + + The method. + The arguments. + The result. + true if the call succeeds, false otherwise. + + + + Gets the Method descriptions for the + + The methods. + + + + Initializes a new instance of the class. + + Index of the current. + Indicates, that the oversample Symbol is to be created. + The array instance. + + + + Initializes a new instance of the class. + + The typed member. + The parent ( or ) of this member instance symbol. + + + + Initializes a new instance of the class. + + The entry. + The structure RPC callable. + The services. + + + + Initializes a new instance of the class. + + The parent. + The type. + Name of the instance. + The field offset. + + + + Invokes the specified method. + + Name of the method. + The parameters. + The return value of the RPC Method + methodName + The parameters are not matching the method prototype.;parameters + + + (* Declaration *) + {attribute 'TcRpcEnable'} + METHOD RpcMethod1 : INT + VAR_INPUT + i1 : INT; + END_VAR + (* Implementation *) + RpcMethod1 := i1 + 1; + + + To indicate a PLC Method for remote ads access, the attribute 'TcRpcEnable' must be declared on + the method declaration (see example). + + + + Tries to invoke the specified method. + + Name of the method. + The arguments. + The result. + true if the call succeeds, false otherwise. + + + + + Tries to invoke the specified method. + + The method. + The arguments. + The result. + true if the call succeeds, false otherwise. + + + + + Gets the Method descriptions for the + + The methods. + + + + Class AliasInstance. + + + + + + + Interface representing an instance of an . + + + + + + Initializes a new instance of the class. + + The entry. + The type. + The factory services. + + + + Initializes a new instance of the class. + + The member. + The parent ( or ) of this member instance symbol. + + + + Initializes a new instance of the class. + + Index of the current. + Indicates, that the oversample Symbol is to be created. + The parent. + + + + Initializes a new instance of the class. + + The parent. + The type. + Name of the instance. + The field offset. + + + + Creates the sub symbols collection. + + + + + Gets a value indicating whether this instance is primitive. + + true if this instance is primitive; otherwise, false. + + + + Gets a value indicating whether this Symbol is a container/complex type. + + true if this instance is container type; otherwise, false. + + + + Reference instance. + + + + + Interface IReferenceInstanceAccess + + + + + + + Interface representing an instance of an + + + + + Gets the Category of the Referenced Symbol. + + The resolved category. + + + + Tries to get the array element (only in case of ResolvedCategory ARRAY) + + The indices. + The found Array element symbol (out-parameter). + true if found, false if the indices specifiers is out-of-range. + + + + Initializes a new instance of the class. + + The entry. + The type. + The factory services. + + + + Initializes a new instance of the class. + + The member. + The parent ( or ) of this member instance symbol. + + + + Initializes a new instance of the class. + + Index of the current. + Indicates, that the oversample Symbol is to be created. + The parent. + + + + Initializes a new instance of the class. + + The parent. + The type. + Name of the instance. + The field offset. + + + + Creates the sub symbols collection. + + + + + Tries to get the array element (only in case of ResolvedCategory ARRAY) + + The indices. + The found Array element symbol (out-parameter). + true if found, false if the indices specifiers is out-of-range. + indices + + + + Gets a value indicating whether this instance is primitive. + + true if this instance is primitive; otherwise, false. + + + + Gets a value indicating whether this Symbol is a container/complex type. + + true if this instance is container type; otherwise, false. + + + + Gets the Category of the Referenced Symbol. + + The resolved category. + + + + Pointer Instance + + + + + Interface IStringInstance + + + + + + + Gets the encoding of the String (Encoding.Default (STRING) or Encoding.UNICODE (WSTRING)) + + The encoding. + + + + Gets a value indicating whether this instance is a string of static length + + true if this instance is of static length; otherwise, false. + + + + Initializes a new instance of the class. + + The entry. + The type. + The factory services. + + + + Initializes a new instance of the class. + + Index of the current. + Indicates, that the oversample Symbol is to be created. + The parent. + + + + Initializes a new instance of the class. + + The member. + The parent ( or ) of this member instance symbol. + + + + Initializes a new instance of the class. + + The parent. + The type. + Name of the instance. + The field offset. + + + + Gets the encoding of the String (Encoding.Default (STRING) or Encoding.UNICODE (WSTRING)) + + The encoding. + + + + Gets a value indicating whether this instance is fixed length. + + true if this instance is fixed length; otherwise, false. + + + + Pointer Instance + + + + + Interface representing an instance of an + + + + + Gets the resolved reference of Pointer / Reference + + + The reference. + + + + + Initializes a new instance of the class. + + The entry. + The type. + The factory services. + + + + Initializes a new instance of the class. + + Index of the current. + Indicates, that the oversample Symbol is to be created. + The parent. + + + + Initializes a new instance of the class. + + The member. + The parent ( or ) of this member instance symbol. + + + + Initializes a new instance of the class. + + The parent. + The type. + Name of the instance. + The field offset. + + + + Creates the sub symbols collection. + + + + + Gets a value indicating whether this instance is primitive. + + true if this instance is primitive; otherwise, false. + + + + Gets a value indicating whether this Symbol is a container/complex type. + + true if this instance is container type; otherwise, false. + + + + Gets the resolved reference of Pointer / Reference + + The reference. + + + + Class OversamplingArrayInstance. + + + + + Implementation of the . + + + + + Interface representing an array instance + + + + + Tries to get the array element + + The indices. + The found Array element symbol (out-parameter). + true if found, false if the indices specifiers is out-of-range. + + + + Gets the contained Array Elements as read only collection. + + The elements. + + + + Gets the with the specified indices. + + + The . + + The indices. + + + + + Gets the dimensions as read only collection. + + The dimensions. + + + + Gets the type of the contained elements. + + The type of the element. + + + + Initializes a new instance of the class. + + The entry. + The type. + The factory services. + + + + Initializes a new instance of the class. + + The member. + The parent ( or ) of this member instance symbol. + + + + Initializes a new instance of the class. + + Index of the current. + Oversampling instance. + The parent. + + + + Initializes a new instance of the class. + + The parent. + The type. + Name of the instance. + The field offset. + + + + Creates the sub symbols collection. + + + + + Tries to get the array element + + The indices. + The found Array element symbol (out-parameter). + true if found, false if the indices specifiers is out-of-range. + + + + Gets the contained Array Elements as read only collection. + + The elements. + + + + Gets the with the specified indices. + + The indices. + ISymbol. + indices + + + + Gets a value indicating whether this Symbol is a container/complex type. + + true if this instance is container type; otherwise, false. + + + + Gets a value indicating whether this instance is primitive. + + true if this instance is primitive; otherwise, false. + + + + Gets the dimensions as read only collection. + + The dimensions. + + + + Gets the type of the contained elements. + + The type of the element. + + + + Gets a value indicating whether this is oversampled. + + true if this instance is oversampled; otherwise, false. + + + + Interface IOversamplingArrayInstance + + + + + + Gets the oversampling element. + + The oversampling element. + + + + Initializes a new instance of the class. + + Index of the current. + Oversampling instance. + The parent. + + + + Initializes a new instance of the class. + + The entry. + The type. + The factory services. + + + + Initializes a new instance of the class. + + The member. + The parent ( or ) of this member instance symbol. + + + + Initializes a new instance of the class. + + The parent. + The type. + Name of the instance. + The field offset. + + + + Creates the sub symbols collection. + + + + + Tries to get the oversampling element + + The symbol. + true if XXXX, false otherwise. + + + + Get the Elements Collection (SubItems without Virtual oversampling element) + + ReadOnlySymbolCollection. + + + + Gets the oversampling element. + + The oversampling element. + + + + Class SymbolIterator. + + + + + Initializes a new instance of the class. + + The coll. + + + + Initializes a new instance of the class. + + The coll. + if set to true [recurse]. + + + + Type Binder Base Implementation + + + + + + + The ITypeBinder interface binds DataTypes and Symbols to its namespace. + + + + + + Interface for resolving data type names --> objects. + + + + + + Tries to resolve the type (parses it if not found and adds it to the resolver if necessary). + + The name. + The type. + true if XXXX, false otherwise. + + + + Registers the specified type. + + The type. + + + + Registers the specified types. + + The type. + + + + Binds the specified symbol to the Resolver (Registering and linking Parents). + + The child symbol. + the parent Symbol where the subSymbol was bound to + + + + Handler function called when a type / types are generated + + The type. + + + + Handler function called when a type / types are generated + + The types. + + + + Handler function when a type name cannot be resolved. + + Name of the type. + + + + Gets the size of the platform pointer (in Bytes) + + The size of the platform pointer. + + + + Gets the Symbol provider. + + The provider. + + + + Interface ITypeBinderEvents + + Used for providing events about TypeGeneration and TypeResolution Errors. + + + + + Initializes a new instance of the class. + + The symbol provider. + The symbol factory. + if set to true [use virtual instances]. + + + + The symbol provider + + + + + The symbol factory + + + + + The platform pointer size + + + + + Sets the size of the platform pointer. + + The sz. + + + + Binds the specified symbol to the Resolver (Registering and linking Parents). + + The child symbol. + the parent Symbol where the subSymbol was bound to + + + + Creates an unique path name + + The instance. + System.String. + + + + Registers the specified type. + + The type. + + + + Registers the specified types. + + The type. + + + + Tries to resolve the type (parses it if not found and adds it to the resolver if necessary). + + The name. + The type. + true if XXXX, false otherwise. + name + + + + + Handler function called when a type / types are generated + + The type. + + + + Handler function called when a type / types are generated + + The types. + + + + Handler function when a type name cannot be resolved. + + Name of the type. + + + + Gets the Symbol provider. + + The provider. + + + + Gets the size of the platform pointer (in Bytes) + + The size of the platform pointer. + + + + Indicates that Virtual (created StructInstances) are used. + + The use virtual instances. + + + + Occurs when new types are generated + + + + + Occurs when a typename cannot be resolved. + + + + + Class AdsTypeBinder. This class cannot be inherited. + + + + + + + Interface IAdsTypeBinder + + + + + + + Gets the of the Process Image + + The address. + + + + Gets the of the Process Image + + The address. + + + + Iterator for iterating Indices of an Array Type. + + + + + + Lower bounds + + + + + Upper bounds + + + + + Aligns the returned indices to 0-basing arrays + + + + + Initializes a new instance of the class. + + The lower bounds. + The upper bounds. + + + + Initializes a new instance of the class. + + The lower bounds. + The upper bounds. + if set to true [zero shift]. + + + + Initializes a new instance of the class. + + Type of the array. + if set to true [zero shift]. + + + + Initializes a new instance of the class. + + Type of the array. + + + + Gets the index factors. + + System.Int32[]. + + + + Returns an enumerator that iterates through the collection. + + A that can be used to iterate through the collection. + + + + Returns an enumerator that iterates through a collection. + + An object that can be used to iterate through the collection. + + + + Converter class that convert 'Any' objects. + + + + + + Converts Bytes to the specified targetType. + + The type. + Type of the target. + The data. + The offset. + System.Object. + + + + Creates an instance o the specified target type. + + Source Type. + Target Type. + System.Object. + + + + Initializes the specified targetInstance value with the raw byte data. + + The source type. + The target instance. + The data. + The offset. + + + + + Initializes the specified target instance with the raw byte data. + + The type. + The target instance. + Type of the target. + The target member. + The data. + The offset. + Type is not an enum type!;type + + + + + Initializes the instance value. + + The instance. + The member. + The value. + + + + + Cache of already checked 'Any' proxy types. + + + + + Checks the 'Any'/Proxy type. + + The type. + Type of the target. + + + + + + + Converts the specified Value of the the Value Instance object to raw bytes. + + Type of the data. + The object. + System.Byte[]. + + + + Converts the specified Value of the the Value Instance object to raw bytes. + + The type. + The value. + The b value. + The offset. + System.Int32. + + Type is not an enum type!;type + or + Struct member not found!;type + + + + + + Raw value converter. + + + + + + Converts the specified Raw data to the appropriate typed value (PrimitiveTypes) + + The type. + The data. + The offset. + System.Object. + type + or + data + + + + + Converts byte data to an bitset object (bit access) + + The datatype. + The bit offset. + The data. + System.Object. + + type + or + data + + + BitSize not supported! BitSize must be 1 or dividable by 8! + + + + + Converts the value instance to raw bytes. + + The type. + The data. + The bytes. + The offset. + System.Int32. + + + + + + Converts the specified value to raw bytes + + The type. + The data. + + + + + Factory class for Enum Values. + + + + + Creates the specified + + Id of the enum base type. + The entry. + IEnumGenericValue. + entry + baseTypeId + + + + Creates the specified enum type. + + Type of the enum. + The value. + IEnumValue. + + + + + Creates the specified enum type. + + Type of the enum. + The bytes. + The offset. + IEnumValue. + Wrong Enum base type. + + + + Generic type converter class for Enum values + + + + + + Converts the primitive value into the appropriate + + Enum base data type. + The value as primitive. + EnumValue<T>. + + + + Gets the enum value object corresponding to the specified string value. + + Enum base type. + The value (in string representation). + EnumValue<T>. + + + + Tries to get the string representation of the enum value. + + Base type of the enum. + The primitive value. + String representation of the value. + true if valid, false otherwise. + + enumType + or + value + + Specified type is not an enum type!;enumType + + + + Tries to get the primitive value of the string represented value + + Base type of the enum. + The string value. + The value as primitive. + true if valid, false otherwise. + enumType + stringValue + Specified type is not an enum type!;enumType + + + + Converts the string represented value to its primitive value. + + Base type of the enum. + The string value. + The value as primitive. + + enumType + or + value + + Specified type is not an enum type!;enumType + stringValue + + + + Converts the primitive value of the specified enum type into its string representation. + + Base type of the enum. + The value as primitive. + A that represents the value. + val + + + + Converter for EnumValues + + Converts string / object values into the other representation form. + + + + + Returns the value as string + + Type of the data. + The value as primitive type + A that represents the value. + Wrong data type! + + + + Converts the string value representation into its primitive type + + Type of the data. + The value. + System.Object. + Wrong data type! + + + + Category converter + + Converts the from + and vice versa. + + + + + Converts to from . + + The identifier. + DataTypeCategory. + + + + Converts the from and typename. + + The identifier. + Name of the type. + DataTypeCategory. + + + + Converts the to . + + The type. + DataTypeCategory. + + + + Converts the to the . + + The cat. + AdsDatatypeId. + + + + Helper Data Type to implement Bit mapping types. + + + + + DataType class + + + + + The s_id counter + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The category + The entry. + + + + Initializes a new instance of the class (Bytes mapping) + + Name of the Data type + DataType category / ID (internal style) + Data type category + The Size of the Data Type in bytes + Associated dot net type. + + + + Initializes a new instance of the class. + + Name of the Data type + DataType category / ID (internal style) + Data type category + The Size of the Data Type in bits or bytes (depending on bitMapping) + Associated dot net type. + The flags. + + + + Initializes a new instance of the class (copy Constructor) + + The copy. + + + + Internal ID of the DataType (non persistent) + + + + + The corresponding .NET type + + + + + The type binder / resolver + + + + + The namespace + + + + + Data Type Category + + + + + Data Type category + + + + + hashValue of base type / Code Offset to setter Method (typeHashValue or offsSetCode) + + + + + The size of this in bytes or bits (dependant on ) + + + + + Sets the size of the + + The size. + Type of the managed. + + + + The name of the + + + + + Additional comment to the + + + + + Resolves the type. + + The type. + IDataType. + + + + + Returns a that represents this instance. + + A that represents this instance. + + + + Determines whether the specified category is a reference type. + + The data type category. + true if [is reference type] [the specified cat]; otherwise, false. + + + + Determines whether the specified category is a pointer type. + + The data type category. + true if [is pointer type] [the specified cat]; otherwise, false. + + + + Flag indicators set to this type. + + + + + The attributes + + + + + Registers this instance at the + + + + + + Called when this is bound via the type binder. + + The binder. + + + + + Gets the ID of the DataType + + The id. + + + + Gets the corresponding .NET Type if attached. + + Dot net type. + + + + Gets the namespace string within the exists. + + The namespace. + + + + Gets the Data Type category + + The category. + + + + Gets the hashValue of base type / Code Offset to setter Method (typeHashValue or offsSetCode) + + The data type id. + + + + + Gets the DataTypeId (Only for internal use) + + The data type id. + + + + + Gets the Size of the in Bytes + + The size. + + + + Gets the (aligned) size of of the Type/Instance in Bytes + + The size of the byte. + + + + Indicates that the Size of the Object is Byte aligned (BitSize % 8 == 0) + + true if this instance is byte aligned; otherwise, false. + + + + Gets the size of the in bits. + + The size of the bit. + + + + Gets the name of the Data Type (without namespace) + + The name. + + + + Gets the full name of the (Namespace + Name) + + The full name. + + + + Gets the comment. + + The comment. + + + + Gets a value indicating whether this is primitive + + true if this instance is primitive; otherwise, false. + + + + Gets a value indicating whether this is a container type + + true if this instance is container type; otherwise, false. + Container Types are Array, Structs and its derivate (Function,FunctionBlock and Program) + + + + Gets a value indicating whether this is a reference type + + true if this instance is reference type; otherwise, false. + Reference types can be dereferences. + + + + Gets a value indicating whether this is a pointer type + + true if this instance is pointer type; otherwise, false. + Pointer types can be dereferenced with the '^' operator. + + + + Gets the Flag indicators set to this type. + + The flags. + + + + Gets a value indicating whether this is a bit mapping Type + + true if this instance is bit mapping subtype; otherwise, false. + + + + Gets the attributes of the + + The attributes. + + + + + Gets a value indicating whether this type is bound. + + true if this instance is bound; otherwise, false. + + + + + Initializes a new instance of the class. + + The name. + The size of the type in bits. + Type of the dotnet. + + + + Class PrimitiveType. + + + + + + Interface IPrimitiveType + + + + + + Indicates types of different PrimitiveTypes with flags. + + + + + Initializes a new instance of the class. + + The name. + The data type identifier. + Size of the byte. + The flags. + Type of the dotnet. + + + + + Indicates types of different PrimitiveTypes with flags. + + The primitive flags. + + + + RPC Method Description + + + + + Interface describes an RPC Method + + + + + Gets the name of the method + + The name. + + + + Gets the Method parameter descriptions. + + The parameters. + + + + Gets the return type. + + Return type. + + + + Gets the size of the return type in bytes. + + The size of the return type. + + + + Gets the Method comment. + + The comment. + + + + Gets a value indicating whether this has no return parameter + + true if this instance is void; otherwise, false. + + + + Initializes a new instance of the class. + + The entry. + + + + The name of the method + + + + + Method parameters. + + + + + Returns a that represents this instance. + + A that represents this instance. + + + + Gets the name of the method + + The name. + + + + Gets the Method parameter descriptions. + + The parameters. + + + + Gets the size of the biggest element in bytes for Alignment + + The size of the return align. + + + + Gets the return type. + + Return type. + + + + Gets the Byte size of the return type. + + The size of the return type. + + + + Gets the V-table index of the method. + + The index of the v table. + + + + Gets the Method comment. + + The comment. + + + + Gets a value indicating whether this has no return parameter + + true if this instance is void; otherwise, false. + + + + + Class RpcMethodParameter. + + + + + Interface IRpcMethodParameter + + + + + Gets the size of the + + The size. + + + + Gets the Parameter Name + + The name. + + + + Gets the Data type of the Parameter + + The type. + + + + Gets the parameter flags. + + The parameter flags. + + + + size of datatype ( in bytes ) + + + + + size of biggest element for alignment + + + + + adsDataType of symbol (if alias) + + + + + Method Parameter Flags + + + + + Data Type Guid + + + + + The _length is para + + This field references to the Parameter that defines the length for this + generic one. Equally to the marshalling attributes of COM (sizeof, lenght) + this enables to transport parameter of type (PVOID) + + + + + name of datatype with terminating \0 + + + + + type name of dataitem + + + + + Parameter Comment + + + + + Initializes a new instance of the class. + + The para information. + + + + Gets the size of the + + The size. + + + + Gets the size of biggest element for alignment + + The size of the align. + + + + Gets the parameter flags. + + The parameter flags. + + + + Gets the Unique identifier of the parameters data type. + + The type unique identifier. + + + + Gets the Parameter Name + + The name. + + + + Gets the Data type of the Parameter + + The type. + + + + Gets the Parameter Comment. + + The comment. + + + + Enum . + + + + + + Interface representing an enum type + + Base type of the Enum + + + + Interface representing an Alias Type + + + + + Gets the BaseType name + + + + + Gets the Base Type + + + + + Gets the values of the + + T[]. + + + + Gets the filed names of the + + System.String[]. + + + + Parses a name of the and returns the value (as base type) + + The name. + T. + + + + Parses the value from value name. + + The value name. + The value. + true if value name was found, false otherwise. + + + + Determines whether the enum values contains the specified name + + The name. + true if contains the value, otherwise, false. + + + + Returns a that represents the specified value. + + The value. + A that represents this value. + + + + Enumeration specification (if enum) + + The enum specification. + + + + Common Enum type interface + + + + + Gets the values of the + + T[]. + + + + Gets the filed names of the + + System.String[]. + + + + Parses a value name of the and returns the value (as base type) + + The value name. + T. + + + + Parses the value from value name. + + The value name. + The value. + true if value name was found, false otherwise. + + + + Determines whether the enum values contains the specified name + + The name. + true if contains the value, otherwise, false. + + + + Returns a that represents the specified value. + + The value. + A that represents this value. + + + + Enumeration specification (if enum) + + The enum specification. + + + + Initializes a new instance of the class. + + The entry. + + + + + + + The _base type identifier + + + + + The _base type name + + + + + The _base type + + + + + The _fields + + + + + Gets the values of the + + T[]. + + + + Gets the filed names of the + + System.String[]. + + + + Tries to parse the Enum Value + + Enum value (in string representation). + The value. + true if XXXX, false otherwise. + + + + Parses a name of the and returns the value (as base type) + + Enum Value as string. + T. + + + + Returns a that represents this instance. + + The value. + A that represents this instance. + val + + + + Gets the values of the + + T[]. + + + + Parses a name of the and returns the value (as base type) + + The name. + T. + + + + Returns a that represents this instance. + + The value. + A that represents this instance. + + + + Parses the value from value name. + + The value name. + The value. + true if value name was found, false otherwise. + + + + Determines whether the enum values contains the specified name + + The name. + true if contains the value, otherwise, false. + + + + Gets the BaseType name + + The name of the base type. + + + + Gets the Base Type + + The type of the base. + + + + Enumeration specification (if enum) + + The enum specification. + + + + Enumeration specification (if enum) + + The enum specification. + + + + Alias DataType + + + + + Initializes a new instance of the class. + + The entry. + + + + + Initializes a new instance of the class. + + The name. + Type of the base. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets the BaseType name + + + + + Gets the Base Type + + + + + Gets a value indicating whether this is primitive + + + true if this instance is primitive; otherwise, false. + + + + + Gets a value indicating whether this is a container type + + + true if this instance is container type; otherwise, false. + + + + + Gets the corresponding .NET Type if attached. + + Dot net type. + + + + String DataType + + + + + Interface representing a string + + + + + Gets the number of characters within the string (when fixed length). + + The length if fixed length, otherwise -1 + + + + Gets the encoding of the String (Encoding.Default (STRING) or Encoding.UNICODE (WSTRING)) + + The encoding. + + + + Gets a value indicating whether the string is of fixed length. + + true if this instance is fixed length; otherwise, false. + + + + Initializes a new instance of the class. + + The length. + + + + + The length of the + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets the number of characters within the string. + + + The length. + + + + + Gets a value indicating whether the string is of fixed length. + + true if this instance is fixed length; otherwise, false. + + + + + Gets the encoding of the String (Encoding.ASCII (STRING) or Encoding.UNICODE (WSTRING)) + + The encoding. + + + + Represents an Unicode string (Wide string) + + + + + Initializes a new instance of the class. + + The length. + + + + + The length of the + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets the number of characters within the string. + + + The length. + + + + + Gets the encoding of the String (Encoding.Default (STRING) or Encoding.UNICODE (WSTRING)) + + The encoding. + + + + Gets a value indicating whether the string is of fixed length. + + true if this instance is fixed length; otherwise, false. + + + + + Represents a union type + + + + + Interface for an union data type. + + + + + + Gets a readonly collection of the Members of the . + + The members as readonly collection. + If the is derived, only the extended members are returned. To get + all supported members down the inheritance chain, use the property. + + + + Initializes a new instance of the class. + + The entry. + + + + + Called when this is bound via the type binder. + + The binder. + + + + + The Union Fields + + + + + Gets a read only collection of the Fields of the . + + + The members as read only collection. + + + + + Represents a struct type + + + + + Interface representing Struct data types + + + + + Gets a readonly collection of the Members of the . + + The members as readonly collection. + If the is derived, only the extended members are returned. To get + all supported members down the inheritance chain, use the property. + + + + Gets the the Name of the Base class (if derived) + + Empty if not derived. + + + + Gets the structs Base Type (Null if not derived). + + + + + Gets all members (down the derivation hierarchy) + + All members. + + + + Gets a value indicating whether this instance has RPC methods (Struct types only) + + true if this instance has RPC methods; otherwise, false. + + + + Initializes a new instance of the class. + + The entry. + + + + + Called when this is bound via the type binder. + + The binder. + + + + + ID of the base type of Derived. + + + + + Base Type Name of the if derived + + + + + Base Type of the Struct if derived. + + + + + All members of this + + + + + Gets a value indicating whether this instance is derived. + + + true if this instance is derived; otherwise, false. + + + + + Gets a read only collection of the Members of the . + + + The members as read only collection. + + + If the is derived, only the extended members are returned. To get + all supported members down the inheritance chain, use the property. + + + + + Gets the the Name of the Base class (if derived) + + + Empty if not derived. + + + + + Gets the structs Base Type (Null if not derived). + + + + + Gets all members (down the derivation hierarchy) + + + All members. + + + + + Gets a value indicating whether this has RPC Methods. + + true if this type has methods; otherwise, false. + + + + StructType which is callable by RPC Methods. + + + + + Interface representing an RPC callable + + + + + Gets the Method descriptions for the + + The methods. + + + + Initializes a new instance of the class. + + The entry. + + + + + RPC Method description + + + + + Gets the Method descriptions for the + + The methods. + + + + Gets a value indicating whether this instance has RPC Methods. + + true if this instance has methods; otherwise, false. + + + + Represents a reference type + + + + + Interface representing a reference/pointer type + + + + + Gets the the referenced type. + + The type of the referenced. + + + + Initializes a new instance of the class. + + Name of the referenced type. + The size in bytes (Dependent of the target OS) + size + + + + + Initializes a new instance of the class. + + The name. + Name of the referenced type. + The size. + size + + + + + Initializes a new instance of the class. + + The entry. + Name of the referenced type. + + + + + Called when this is bound via the type binder. + + The binder. + + + + + Gets a value indicating whether this is a container type + + + true if this instance is container type; otherwise, false. + + + + + Gets the corresponding .NET Type if attached. + + Dot net type. + + + + Gets the the referenced type. + + + The type of the referenced. + + + + + Represents a pointer type. + + + + + Interface representing a pointer type + + + + + Initializes a new instance of the class. + + Name of the referenced type. + size + + + + + Initializes a new instance of the class. + + The name. + Name of the referenced type. + size + + + + + Initializes a new instance of the class. + + The entry. + Name of the referenced type. + + + + + Called when this is bound via the type binder. + + The binder. + + + + + Gets the corresponding .NET Type if attached. + + Dot net type. + + + + Gets the the referenced type. + + + The type of the referenced. + + + + + Represents a SubRangType + + + + + Interface representing a SubRange type + + + + + Gets the the base type. + + The type of the referenced. + + + + Gets the lower bound. + + The lower bound. + + + + Gets the element count. + + The element count. + + + + Initializes a new instance of the class. + + The name. + Type of the base. + The lower bound. + The upper bound. + + + + + Initializes a new instance of the class. + + The entry. + Type of the base. + The lower bound. + The upper bound. + + + + + Gets the corresponding .NET Type if attached. + + Dot net type. + + + + Gets the the base type. + + + The type of the referenced. + + + + + Gets the lower bound. + + + The lower bound. + + + + + Gets the element count. + + + The element count. + + + + + Represents a field of an Struct/Alias/Union + + + + + Specifies a single field/member of a Struct DataType. + + + + + Gets the Parent Struct/Union of this . + + The type of the parent. + + + + Initializes a new instance of the class. + + The parent. + The sub entry. + + + + + The parent of this Member + + + + + Gets the Parent of this . + + + The type of the parent (Alias, Union, Struct) + + + + + Represents a member of an + + + + + Specifies a single field/member of a Struct DataType. + + + + + Gets the offset of the within the parent in bits or bytes dependent on IsBitType/> + + The bit offset. + + + + Gets the byte offset. + + The byte offset. + + + + Gets the bit offset. + + The bit offset. + + + + Initializes a new instance of the class. + + The parent. + The sub entry. + + + + + The offset of the within the parent in bits or bytes. + + + + + Gets the offset of the within the parent in bits or bytes dependent on + + + The offset. + + + + + Gets the bit offset. + + The bit offset. + + + + Gets the byte offset. + + The byte offset. + + + + Gets the Field / Member Flags + + The member flags. + + + + Gets the type hash value (Only for Properties ???) + + The type hash value. + + + + Represents an Array DataType + + + + + Interface representing an array DataType. + + + + + Gets the dimensions as read only collection. + + The dimensions. + + + + Gets the type of the contained elements. + + The type of the element. + + + + Gets a value indicating whether this type is an oversampled Array type. + + true if this instance is oversampled; otherwise, false. + + + + Initializes a new instance of the class. + + The entry. + + + + + Initializes a new instance of the class. + + ArrayType name. + Element Type. + Dimension specification. + + + + + The element type name + + + + + The element type + + + + + The element type id + + + + + Dimension information (for arrays) + + + + + Checks the dimensions of the + + Indices + ArrayType + if set to true [accept oversampled]. + Indices doesn't match the specified Array type + + + + Checks the dimensions of the + + Indices + ArrayType + if set to true [accept oversampled]. + true if XXXX, false otherwise. + + + + Checks the dimensions of the + + Indices + if set to true [accept oversampled]. + Indices doesn't match the specified Array type + + + + Gets the element position within a flattened multidimensional array / SubSymbols List + + The indices. + The type. + The Position-Index within the Elements collection of the Array instance. + + + + Gets the element position within a flattened multidimensional array + + The indices. + + The Position-Index within the Elements collection of the array + + + + + Gets the element offset (bits or bytes, dependent on ElementType.IsBitType) + + The indices. + The type. + + + + + Gets a value indicating whether this array instance describes an oversampling type. + + true if this instance is oversampling; otherwise, false. + + + + Gets the name of the element type. + + + The name of the element type. + + + + + Gets the type of the contained elements. + + + The type of the element. + + + + + Gets the dimensions as read only collection. + + + The dimensions. + + + + + Gets the dimension count. + + + The dimension count. + + + + + Gets the element count. + + + The element count. + + + + + Gets the byte-size of a single element of the array + + The size of the element. + + + + Category of a DataType / Instance + + + + + Uninitialized / NotProcessed (0) + + + + + Uninitialized / NotProcessed (0) + + + + + Simple / Base Data Type (1) + + + + + Alias data type (2) + + + + + Enumeration data type (3) + + + + + Array data type (4) + + + + + Structure data type (5) + + + + + Function block (POU) (6) + + + + + Program (POU) (7) + + + + + Function (POU) (8) + + + + + SubRange (9) + + + + + Fixed length string (10) + + + + + Bitset (12) + + + + + Pointer type (13) + + + + + Union type (14) + + + + + Reference type (15) + + + + + The interface + + + + + Enum DataTypeResolveStrategy + + + + + + Resolve only chains of Alias(es) + + + + + Resolve chains of Alias(es) and Reference(es) + + + + + Class DataTypeEventArgs. + + + + + + The data types + + + + + Initializes a new instance of the class. + + The types. + + + + Class DataTypeNameEventArgs. + + + + + + The type name + + + + + Initializes a new instance of the class. + + Name of the type. + + + + Enum PrimitiveTypeFlags + + + + + None / Uninitialized + + + + + System Type like Byte / Word / DWORD + + + + + Primitive Type is Unsigned + + + + + Boolean Value (maps to true and false) + + + + + Floating Point + + + + + Type represents a Date + + + + + Type represents a Time + + + + + Numeric value + + + + + Bitset + + + + + Numeric / Unsigned Mask + + + + + Date / Time Mask + + + + + Interface representing a single Dimension of an ArrayType. + + + + + Gets the number of elements within that . + + The element count. + + + + Gets the lower bound of elements within that . + + The lower bound. + + + + Gets the index of the dimension itself. + + The index of the dimension. + + + + Event args for the event. + + + + + Initializes a new instance of the class. + + The symbol. + The TwinCAT Real time time stamp (UTC) + The local user mode time stamp (UTC) + + + + Symbol that caused the event. + + + + + Notification Time stamp of the Real time System in UTC + + + + + Notification Time stamp of the local system (user/desktop time) in UTC + + + + + Event args for the event. + + + + + Initializes a new instance of the class. + + The symbol. + The value. + The TwinCAT Real time time stamp (UTC) + The local user mode time stamp (UTC) + + + + New Value (byte[]) + + + + + Event args for the event. + + + + + Initializes a new instance of the class. + + The symbol. + The value. + The TwinCAT Real time time stamp (UTC) + The local user mode time stamp (UTC) + + + + New Value (only primitive types) + + + + + Ads Attribute + + + + + Attribute Name + + + + + Attribute Value + + + + + Initializes a new instance of the class. + + The name. + The value. + + + + + Initializes a new instance of the class. + + The att. + + + + + Equals + + The object to compare with the current object. + true if the specified is equal to this instance; otherwise, false. + + + + Operator== + + The o1. + The o2. + The result of the operator. + + + + Operator-= + + The o1. + The o2. + The result of the operator. + + + + Gets the HashCode of the Address + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + Name of the Attribute + + The name. + + + + Gets the value of the attribute + + The value. + + + + Flag set specifying the MethodParameter context + + + + + + Input Parameter (ADSMETHODPARAFLAG_IN) + + + + + Output Parameter (ADSMETHODPARAFLAG_OUT) + + + + + By reference Parameter (ADSMETHODPARAFLAG_BYREFERENCE) + + + + + Mask for In parameters. + + + + + Mask for Out parameters. + + + + + Collection of RPC method parameters + + + + + Internal list organizing the index of the parameters. + + + + + Dictionary of ParamaterName->RpcMethodParameter for fast find. + + + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class. + + The coll. + + + + + Determines the index of a specific item in the . + + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + true if is found in the ; otherwise, false. + + + + Copies to. + + The array. + Index of the array. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + Returns an enumerator that iterates through the collection. + + A that can be used to iterate through the collection. + + + + Returns an enumerator that iterates through a collection. + + An object that can be used to iterate through the collection. + + + + Returns a read only version of this + + ReadOnlyMethodParameterCollection. + Collection as read only version. + + + + Gets or sets the element at the specified index. + + The index. + RpcMethodParameter. + + + + + Gets the number of elements contained in the . + + The count. + + + + Gets a value indicating whether the is read-only. + + true if this instance is read only; otherwise, false. + + + + Read only . + + + + + Initializes a new instance of the class. + + The coll. + + + + Interface IDynamicSymbol + + + + + Unwraps the DynamicSymbol to its static version. + + IValueSymbol. + The unwrapped symbol. + + + + + Gets the normalized instance name (fixed name for dynamic property access) + + The normalized instance name (can be the same like + + + + + + + Represents a single dimension of an + + + + + Initializes a new instance of the class. + + The index. + The lower bound. + The element count. + + + + + Lower Bound + + + + + Element count + + + + + Gets the lower bound of elements within that . + + + The lower bound. + + + + + Gets the upper bound of elements within this + + The upper bound. + + + + Gets the number of elements within that . + + + The element count. + + + + + Gets the index of the dimension itself. + + The index of the dimension. + + + + Namespace object. + + + + + + The namespace name + + + + + Data types of the + + + + + Initializes a new instance of the class. + + The name. + + + + Registers the the specified + + The type. + true if XXXX, false otherwise. + + + + Registers the types. + + The types. + + + + Gets the name of the namespace. + + The name. + + + + Gets the data types organized by this + + The data types. + + + + Access to the Internal DataTypes collection (read/write) + + The data types internal. + + + diff --git a/ExtLibs/AdsApi/.NET/v4.0.30319/Beckhoff.TwinCAT.Ads.Reactive.md b/ExtLibs/AdsApi/.NET/v4.0.30319/Beckhoff.TwinCAT.Ads.Reactive.md new file mode 100644 index 00000000..b96604eb --- /dev/null +++ b/ExtLibs/AdsApi/.NET/v4.0.30319/Beckhoff.TwinCAT.Ads.Reactive.md @@ -0,0 +1,131 @@ +TwinCAT ADS Reactive Extensions (ADS.Rx) +======================================== +Extends the TwinCAT.Ads.TcAdsClient with Reactive Interfaces for ADS Notifications to support observable Streams of value changes. + +## Prerequisites +- a TwinCAT 2 or 3 Installation (XAR-Runtime or Full) +- .NET Framework 4.6 + +## Features +- Observable Streams of ADS Notifications (type safe or raw) +- Observable Streams of ADS State changes +- ... to be continued + +## First Steps + +```cs +using TwinCAT.Ads; +using TwinCAT.Ads.Reactive; + +class ReactiveTest +{ + public void Communicate() + { + // To Test the Observer run a project on the local PLC System (Port 851) + using (TcAdsClient client = new TcAdsClient()) + { + // Connect to target + client.Connect(new AmsAddress(AmsNetId.Local, 851)); + + // Usage of ANY_TYPES in reactive stream (here the 'ushort' type) without usage of the 'SymbolLoader' + var valueObserver = Observer.Create(val => + { + Console.WriteLine(string.Format("Value: {0}", val.ToString())); + } + ); + + // Turning ADS Notifications into sequences of Value Objects + // and subscribe to them. + IDisposable subscription = client.WhenNotification( + "TwinCAT_SystemInfoVarList._TaskInfo.CycleCount", + NotificationSettings.Default + ) + .Subscribe(valueObserver); + + ... + subscription.Dispose(); // Dispose the Subscription + + + // Polling of values to prevent the usage of Notifications + // Create Symbol information + var symbolLoader = SymbolLoaderFactory.Create(client, SymbolLoaderSettings.Default); + IValueSymbol cycleCount = (IValueSymbol)symbolLoader + .Symbols["TwinCAT_SystemInfoVarList._TaskInfo.CycleCount"]; + + // Reactive Notification Handler + var valueObserver = Observer.Create(val => + { + Console.WriteLine( + string.Format("Instance: {0}, Value: {1}", cycleCount.InstancePath, val.ToString()) + ); + } + ); + + // Take Values in an Interval of 500ms triggered by an application timer (no notifications) + IDisposable subscription = cycleCount + .PollValues(TimeSpan.FromMilliseconds(500)) + .Subscribe(valueObserver); + + ... + subscription.Dispose(); // Dispose the subscription + + + // Create Symbol information + var symbolLoader = SymbolLoaderFactory.Create(client, SymbolLoaderSettings.DefaultDynamic); + + int eventCount = 1; + + // Reactive Notification Handler + var valueObserver = Observer.Create(not => + { + Console.WriteLine( + string.Format("{0} {1:u} {2} = '{3}' ({4})", + eventCount++, + not.TimeStamp, + not.Symbol.InstancePath, + not.Value, + not.Symbol.DataType) + ); + } + ); + + // Collect the symbols that are registered as Notification sources for their changed values. + + SymbolCollection notificationSymbols = new SymbolCollection(); + IArrayInstance taskInfo = (IArrayInstance)symbolLoader + .Symbols["TwinCAT_SystemInfoVarList._TaskInfo"]; + + foreach(ISymbol element in taskInfo.Elements) + { + ISymbol cycleCount = element.SubSymbols["CycleCount"]; + ISymbol lastExecTime = element.SubSymbols["LastExecTime"]; + + notificationSymbols.Add(cycleCount); + notificationSymbols.Add(lastExecTime); + } + + // Create a subscription for the first 200 Notifications on Symbol Value changes. + IDisposable subscription = client.WhenNotification(notificationSymbols) + .Take(200) + .Subscribe(valueObserver); + + ... + subscription.Dispose(); // Dispose the Subscription + } + } +} +``` + +## Documentation and further learning + +[Extension classes in the TwinCAT.Ads.Reactive namespace](https://infosys.beckhoff.com/content/1033/tcadsnetref/7313610891.html?id=3925137517396292438) + +[TcAdsClient class description with Samples](https://infosys.beckhoff.com/content/1033/tc3_adsnetref/7313399947.html?id=2143854398042839406) + +[Documentation ADS .NET API](https://infosys.beckhoff.com/content/1033/tc3_adsnetref/7312567947.html?id=1468782086487140895) + +[API Reference](https://infosys.beckhoff.com/content/1033/tc3_adsnetref/7312592011.html?id=7587521548766668780) + + +## Links +[Beckhoff Homepage](https://www.beckhoff.com) diff --git a/ExtLibs/AdsApi/.NET/v4.0.30319/Beckhoff.TwinCAT.Ads.md b/ExtLibs/AdsApi/.NET/v4.0.30319/Beckhoff.TwinCAT.Ads.md new file mode 100644 index 00000000..40fe05e5 --- /dev/null +++ b/ExtLibs/AdsApi/.NET/v4.0.30319/Beckhoff.TwinCAT.Ads.md @@ -0,0 +1,41 @@ +The TwinCAT ADS API is a .NET Assembly enabling to develop own .NET applications (e.g. visualization, scientific automation) for communication with TwinCAT devices (e.g. PLC, NC or IO-devices). + +## Prerequisites +- a TwinCAT 2 or 3 Installation (XAR-Runtime or Full) +- .NET Framework 4.0 + +## Features +- the implementation of ADS Clients +- the browsing of (ADS) server side symbolic information +- Symbolic Read/Write from/to ADS Servers (Process Images) +- Value Change Events (ADS Notifications) +- Support of Raw ProcessImageData, AnyType concept or full dynamic typed (type safe) symbols + +## First Steps +```c# +using TwinCAT.Ads; + +public class AdsTest +{ + public void Communicate() + { + using (TcAdsClient client = new TcAdsClient()) + { + // Connect to Local System AdsPort 851 (First PLC) + client.Connect(AmsNetId.Local,851); + + client.Read ... + client.Write ... + } + } +} +``` + +## Documentation and further learning +[TcAdsClient class description with Samples](https://infosys.beckhoff.com/content/1033/tc3_adsnetref/7313399947.html?id=2143854398042839406) +[Documentation ADS .NET API](https://infosys.beckhoff.com/content/1033/tc3_adsnetref/7312567947.html?id=1468782086487140895) +[API Reference](https://infosys.beckhoff.com/content/1033/tc3_adsnetref/7312592011.html?id=7587521548766668780) + + +## Links +[Beckhoff Homepage](https://www.beckhoff.com) \ No newline at end of file diff --git a/ExtLibs/AdsApi/.NET/v4.0.30319/ReadMe_Ads.txt b/ExtLibs/AdsApi/.NET/v4.0.30319/ReadMe_Ads.txt new file mode 100644 index 00000000..5886fdd8 --- /dev/null +++ b/ExtLibs/AdsApi/.NET/v4.0.30319/ReadMe_Ads.txt @@ -0,0 +1,105 @@ +4.4.7 +===== +Enh: Optimization of ReadValue() methods internally using ValueByName instead of ValueByHandle reducing roundtrips. +Enh: Using Project Encoding for TcAdsClient.ReadSymbol and TcAdsClient.WriteSymbol +Enh: Adding TcAdsClient.ReadSymbolByName method. +Enh: Ignoring DataType with wrong PointerSize preventing ArgumentOutOfRangeException in AdsParseSymbols.SetPlatformPointerSize +Bug: Race condition accessing data via Symbol.ReadValue / Symbol.WriteValue (KeyAlreadyInListException) +Bug: Fixing NullReferenceException on accessing ManagedType property on PVOID DataType + +4.4.6 +===== +Enh: Extended Handling for AmsNetIds (SubNets), AmsNetId.IsSameTarget and AmsNetId.NetIdsEqual extended. + +4.4.5 +===== +Fix: DefaultNotificationSettings on SymbolLoader are not derived to the NotificationSettings of the Symbol +Fix: ArgumentOutOfRangeException when calling RpcMethods without Return parameter +Fix: InvalidCastException on Writing Values on type 'T_MaxString' + +4.4.4 +===== +Fix: NullReferenceException on DynamicTree SymbolLoader if PVOID DataTypes are used in the symbols. + +4.4.3 +===== +Fix: InvokeRpcMethod checks for In and Out parameters corrected. +Fix: TwinCAT.AdsSymbolLoaderSettings.Default corrected to 'Symbolic' Value Access. + +4.4.2 +===== +Enh: Refactoring InvokeRpcMethod (Support of out-parameters) +Enh: Support of platform specific data types 'UXINT, XINT, XWORD'. +Enh: Support of Recreating cached symbol handles on SymbolVersionChanged event when using TcAdsClients ReadSymbol, WriteSymbol methods and AddDeviceNotifications with SymbolPath. + +4.4.1 +======= +Fix: ArgumentOutOfRangeException with SByte types in PrimitiveTypeConverter.TryConvert +Fix: Internal Exceptions when registering Notifications via AddRegisterDeviceNotification with UserData something different than ISymbol + +4.4.0 +===== +Enh: Upgrading the Beckhoff.TwinCAT.Ads Nuget Package to a new Minor AssemblyVersion number 4.4.0.0 to prevent Nuget package to clash with Software packages +installing this DLL into the Global Assembly Cache (GAC) (reenabling Nuget Package Semantic versioning) + +4.3.12.0 +======== +Fix: Fixing AdsErrorException.GetObjectData enabling Serialization of AdsErrorException derived types. + +4.3.11.0 +======== +Fix: Corrections of text messages in 'Obsolete-warnings' where IndexGroup/IndexOffset is not used with the uint overload +Fix: Gap year correction (year 2400) for PlcOpen DataTypes DT and DATE. +Fix: Wrong implementation of the IsPersistant Datatype Flag (AdsDataTypeFlags.Persistent) +Fix: SubSymbol resolution of PVOID and POINTER TO VOID types. +Enh: Pointer support for InvokeRpcMethod in parameters. + +4.3.10.0 +======== +Fix: AdsErrorCode TcAdsClient.TryReadWrite(uint,uint,AdsStream,int,int,AdsStream,int,int,out int) wrong parameter check. +Fix: Some minor issues with creation of DynamicValues. + +4.3.8.0 +======= +Fix: TcAdsSymbolInfoCollection.GetSymbol now finds also Symbols that are not Main (Root) Symbols. +Fix: Fixing issue with ReadSymbol/WriteSymbol using Structs and using this Struct type beforehand with reflection (.NET Type.GetFields caching issue) +Enh: Support for jagged ANYSIZE Arrays. + +4.3.7.0 +======= +Enh: Adding ITcAdsRpcInvoke to IAdsConnection interface to support ITcAdsRpcInvoke overloads on AdsConnection object +Fix: NullReferenceException in SymbolIterator (Symbol Browsing) +Fix: Fixing some issues Dereferencing Pointers via Instance Names and Instance Paths. +Fix: TcAdsClient.WriteAnyString(uint handle, string value, int chars, Encoding encoding) now supports also Unicode as encoding. + +4.3.6.0 +======= +Fix: NullReferencesExceptions and missing Symbols on Browsing TwinCAT 4018 Targets. + +4.3.5.0 +======= +Enh: Adding Connection Property on Symbols with Value Access (IValueSymbol2.Connection) +Enh: Enhanced support for Pointer symbols in TcAdsClient.ReadSymbol / TcAdsClient.WriteSymbol +Fix: IValueSymbol.ValueChanged deregistration could leak exceptions in older versions. Now exceptions will be handled internally. + +4.3.4.0 +======= +Enh: Support of ISubRangeType types that base on other base types than Int32. + +4.3.3.0 +======= +Enh: Support of runtime sized Array Instances (AnySizeArrayInstance) +Enh: Adding SubSymbolCount property on TwinCAT.Ads.TypeSystem.Symbol + +4.3.2.0 +======= +Enh: Support of byte[] type for PrimitiveTypeConverter class + +4.3.1.0 +======= +Fix: NullReferenceException in SymbolLoaderV2 in .NET 2 Environment +Enh: Version numbering of CLR2 aligned to CLR4 + +4.3.0.0 +======= +First version of the 4.3.X.X series of the Beckhoff.TwinCAT.Ads package \ No newline at end of file diff --git a/ExtLibs/AdsApi/.NET/v4.0.30319/ReadMe_AdsReactive.txt b/ExtLibs/AdsApi/.NET/v4.0.30319/ReadMe_AdsReactive.txt new file mode 100644 index 00000000..047f201c --- /dev/null +++ b/ExtLibs/AdsApi/.NET/v4.0.30319/ReadMe_AdsReactive.txt @@ -0,0 +1,29 @@ +4.4.7 +===== +Bug: Nuget Package Dependencies are referencing System.Reactive Version 4.1. Changed to 4.4.1 + +4.4.2 +===== +Enh: Reactive extension methods WhenNotification, WhenNotificationEx, WhenAdsStateChanges, PollAdsState, PollValues, WriteValues now detect the SymbolVersionChanged event and recreate internally stored + handles. This enables the Observables to survive an upload of PlcPrograms (with still existing symbols.) +Enh: Added WhenSymbolVersionChanges Observable. + +4.4.0 +===== +Enh: Referencing TwinCAT.Ads.dll AssemblyVersion 4.4.0.0 to prevent GAC usage in TwinCAT installations and restore Nuget Semantic Package Versioning. + +4.3.10.0 +======== +Enh: Updated System.Reactive package from 4.1.0 to 4.1.6 + +4.3.7.0 +======= +Enh: Some minor improvements. + +4.3.1.0 +======= +Enh: AdsClientExtensions.PollAdsState added + +4.3.0.0 +======= +First version of the 4.3.X.X series of the Beckhoff.TwinCAT.Ads.Reactive package \ No newline at end of file diff --git a/ExtLibs/AdsApi/.NET/v4.0.30319/TwinCAT.Ads.Reactive.dll b/ExtLibs/AdsApi/.NET/v4.0.30319/TwinCAT.Ads.Reactive.dll new file mode 100644 index 0000000000000000000000000000000000000000..7547b06204dc8b7ebd4fd180286a53abd4955cd4 GIT binary patch literal 27136 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 literal 0 HcmV?d00001 diff --git a/ExtLibs/AdsApi/.NET/v4.0.30319/TwinCAT.Ads.Reactive.xml b/ExtLibs/AdsApi/.NET/v4.0.30319/TwinCAT.Ads.Reactive.xml new file mode 100644 index 00000000..653d9710 --- /dev/null +++ b/ExtLibs/AdsApi/.NET/v4.0.30319/TwinCAT.Ads.Reactive.xml @@ -0,0 +1,786 @@ + + + + TwinCAT.Ads.Reactive + + + + + Extension class for respective to provide reactive ADS extensions. + + + Reactive Extensions (Rx) are a library for composing asynchronous and event-based programs using observable sequences and LINQ-style + query operators. Using Rx, developers represent asynchronous data streams with Observables, query asynchronous data streams using LINQ + operators, and parameterize the concurrency in the asynchronous data streams using Schedulers. Simply put, Rx = Observables + LINQ + Schedulers. + The ADS reactive extensions are build on top of this library to enable ADS Symbol and State Observables, seamlessly bound to the reactive + extensions. To use the ADS reactive extensions the TwinCAT.Ads.Reactive Nuget package (or the included TwinCAT.Ads.Reactive.dll) must be referenced. + (Beckhoff.TwinCAT.Ads.Reactive package on Nuget). + + + The following sample shows how observe Value changed Notifications with the reactive + + + + The following sample shows how observe changed Notifications with the reactive + + + + + + + + Gets an observable sequence of . + + The client. + IObservable<AdsNotificationExEventArgs>. + + + + + Gets an observable sequence of s. + + The client. + IObservable<NotificationValue>. + + + + + Gets an observable sequence of s. + + The client. + The handles. + IObservable<NotificationValue>. + + + + + Gets an observable sequence of s. + + The client. + IObservable<AdsState>. + + The following sample shows how observe changed Notifications with the reactive + + + + + + + Gets an observable sequence of SymbolVersion changed counts. + + The connection. + Counter, unique only within the observable. + + + + Gets an observable sequence of SymbolVersion changed counts. + + The client. + The scheduler. + Counter, unique only within the observable. + + + + Gets an observable sequence of s via Polling. + + The client. + The polling trigger + IObservable<AdsState>. + + The following sample shows how observe via polling with the reactive + + + + + Gets an observable sequence of s via Polling. + + The client. + The period. + IObservable<AdsState>. + + The following sample shows how observe via polling with the reactive + + + + + + Gets an observable sequence of s. + + The connection. + The symbol to observe. + Notification settings. + IObservable<NotificationValue>. + symbol + Symbol is not an IValueSymbol - symbol + + + + + Gets an observable sequence of s. + + The client. + The symbol. + IObservable<NotificationValue>. + + + + + + Gets an observable sequence of objects. + + The client. + The symbols to observe. + The Notification settings. + IObservable<NotificationValue>. + + The following sample shows how observe Value changed Notifications with the reactive + + + + Gets an observable sequence of objects. + + The client. + The symbols to observe. + The Notification settings. + The user data. + IObservable<NotificationValue>. + symbols + Symbols list is empty! - symbols + + + + + Gets an observable sequence of objects. + + The client. + Symbol specifier. + The Notification settings. + The user data. + IObservable<NotificationValue>. + symbols + Symbols list is empty! - symbols + + + + + Gets an observable sequence of objects. + + The client. + The symbols. + IObservable<NotificationValue>. + + The following sample shows how observe Value changed Notifications with the reactive + + + + + + + Base class for Notifications transported by observables bound to ADS Notifications. + + + + + Notification Time Stamp + + + + + User Data + + + + + Notification Handle + + + + + The unmarshalled value. + + + + + Gets the timestamp of this Notification. + + + + + Gets the user object. This object is passed by to AddDeviceNotification and can + be used to store data. + + + + + Gets the handle of the connection. + + + + + Gets the value of the Notification. + + The value. + + + + Notification object streamed by IObservables of ADS Notifications + + + + + + + Raw Data + + + + + Streams that holds the notification data. + + + + + Initializes a new instance of the AdsStream class AdsSyncNotificationEventArgs. + + The instance containing the event data. + The TwinCAT realtime target system (even when working locally) has its own TimeSystem which is synchronized with + the Desktop/User time at TwinCAT Start. From this moment on the Desktop/User time can drift from the local Realtime/Target time. + can differ. + The TimeStamp can be converted to a .NET DateTime Object with or + + + + + Provides data for AdsNotificationEvent of the class + + + + + Initializes a new instance of the AdsStream class AdsSyncNotificationEventArgs. + + The instance containing the event data. + The symbol. + The value factory. + The TwinCAT realtime target system (even when working locally) has its own TimeSystem which is synchronized with + the Desktop/User time at TwinCAT Start. From this moment on the Desktop/User time can drift from the local Realtime/Target time. + can differ. + The TimeStamp can be converted to a .NET DateTime Object with or + + + + + The internal value factory. + + + + + Gets the symbol of the . + + The value symbol. + + + + Indicates that the Value is created. + + + + + Gets the value of the Notification. + + The value. + + + + Notification data object created by Observables that are binding on the event. + + + + + + + Initializes a new instance of the AdsStream class AdsSyncNotificationEventArgs. + + The instance containing the event data. + args + The TwinCAT realtime target system (even when working locally) has its own TimeSystem which is synchronized with + the Desktop/User time at TwinCAT Start. From this moment on the Desktop/User time can drift from the local Realtime/Target time. + can differ. + The TimeStamp can be converted to a .NET DateTime Object with or + + + + + Notification data object created by Observables that are binding on the event with specified symbol. + + + + + + + + The symbol specifier. + + + + + Gets the bound symbol specification of the notification. + + The symbol specifier. + + + + Gets the instance path of the Notification bound symbol. + + The instance path. + + + + Gets the Notification bound data type. + + The type. + + + + Initializes a new instance of the class. + + The instance containing the event data. + Any symbol. + anySymbol + + + + Extension class for respective to provide reactive ADS extensions (accessing symbol value sequences with the ANY_TYPE concept) + + + Reactive Extensions (Rx) are a library for composing asynchronous and event-based programs using observable sequences and LINQ-style + query operators. Using Rx, developers represent asynchronous data streams with Observables, query asynchronous data streams using LINQ + operators, and parameterize the concurrency in the asynchronous data streams using Schedulers. Simply put, Rx = Observables + LINQ + Schedulers. + The ADS reactive extensions are build on top of this library to enable ADS Symbol and State Observables, seamlessly bound to the reactive + extensions. To use the ADS reactive extensions the TwinCAT.Ads.Reactive Nuget package (or the included TwinCAT.Ads.Reactive.dll) must be referenced. + (Beckhoff.TwinCAT.Ads.Reactive package on Nuget). + + + Example1: Observe Value changed Notifications with the reactive + + + + Example2: Polling ANY_TYPE values. + + + + Write values sequentially. + + + + + + + + Creates an observable sequence of values + + The connection. + InstancePath/Value Type mapping (ANYTYPE rules) + The settings. + The user data. + IObservable<System.Object>. + The values will be cast to the specified type. The .NET type must fit the Symbol type like all ANYTYPES. + + Observe multiple ANY_TYPES via reactive sequence. + + + + + + + Creates an observable sequence of values that are created by ADS Notifications. + + The .NET Type representation of the specified symbols type. + The connection. + The instance path. + The settings. + IObservable<T>. + The values will be cast to the specified type. The .NET type must fit the Symbol type like all ANYTYPES. + + The following sample shows how to observe Value changed Notifications with the reactive + + + + + + Creates an observable sequence of values that are created by ADS Notifications. + + The connection. + The instance path. + The type. + The settings. + IObservable<T>. + The values will be cast to the specified type. The .NET type must fit be one of the compatible 'ANYTYPES'. + + The following sample shows how to observe Value changed Notifications with the reactive + + + + + + Writes the sequence of values to the symbol specified by the instance path. + + + The connection. + The instance path. + Value sequence (Any type). + The error handler. + IDisposable. + + Write values sequentially. + + + + + + Writes the sequence of values to the symbol specified by the instance path. + + + The connection. + The instance path. + Value sequence (Any type). + IDisposable. + + Write values sequentially. + + + + + + Polls the symbol values on time points where the polling observable streams data / triggers + + The connection. + The instance path. + The data type of the symbol (ANY_TYPE) + The ANY_TYPE arguments. + The Polling trigger + The error handler. + IObservable<System.Object>. + + + + Polls the symbol as value sequence of object values with a specified period time. + + The connection. + The instance path. + The data type of the symbol (ANY_TYPE) + The ANY_TYPE arguments. + The period. + The error handler. + IObservable<System.Object>. + + + + Polls the symbol as value sequence of object values with a specified period time. + + The connection. + The instance path. + The data type of the symbol (ANY_TYPE) + The ANY_TYPE arguments. + The period. + IObservable<System.Object>. + + + + Polls the symbol values on timepoints where the polling observable streams data / triggers + + The connection. + The instance path. + The data type of the symbol (ANY_TYPE) + The Polling trigger + The error handler. + IObservable<System.Object>. + + + + Polls the symbol values on timepoints where the polling observable streams data / triggers + + The connection. + The instance path. + The data type of the symbol (ANY_TYPE) + The Polling trigger + IObservable<System.Object>. + + + + Polls the symbol as value sequence of object values with a specified period time. + + The connection. + The instance path. + The data type of the symbol (ANY_TYPE) + The period. + The error handler. + IObservable<System.Object>. + + + + Polls the symbol as value sequence of object values with a specified period time. + + The connection. + The instance path. + The data type of the symbol (ANY_TYPE) + The period. + IObservable<System.Object>. + + + + Polls the symbol values on timepoints where the polling observable streams data / triggers + + The ANY_TYPE compatible .NET Type. + The connection. + The instance path. + The Polling trigger + The error handler. + IObservable<System.Object>. + + + + Polls the symbol values on timepoints where the polling observable streams data / triggers + + The ANY_TYPE compatible .NET Type. + The connection. + The instance path. + The Polling trigger + IObservable<System.Object>. + + + + Polls the symbol as value sequence of object values with a specified period time. + + The ANY_TYPE compatible .NET Type. + The connection. + The instance path. + The period. + The error handler. + IObservable<System.Object>. + + + + Polls the symbol as value sequence of object values with a specified period time. + + The ANY_TYPE compatible .NET Type. + The connection. + The instance path. + The period. + IObservable<System.Object>. + + + + Polls the symbol values on timepoints where the polling observable streams data / triggers + + The ANY_TYPE compatible .NET Type. + The connection. + The instance path. + ANY_TYPE arguments + The Polling trigger + The error handler. + IObservable<System.Object>. + + + + Polls the symbol values on time points where the polling observable streams data / triggers + + The ANY_TYPE compatible .NET Type. + The connection. + The instance path. + ANY_TYPE arguments + The Polling trigger + IObservable<System.Object>. + + + + Polls the symbol as value sequence of object values with a specified period time. + + The ANY_TYPE compatible .NET Type. + The connection. + The instance path. + ANY_TYPE arguments. + The period. + The error handler. + IObservable<System.Object>. + + Polling ANY_TYPE values. + + + + + + Polls the symbol as value sequence of object values with a specified period time. + + The ANY_TYPE compatible .NET Type. + The connection. + The instance path. + ANY_TYPE arguments. + The period. + IObservable<System.Object>. + + Polling ANY_TYPE values. + + + + + + Extension class for respective to provide reactive ADS extensions for accessing symbols that are loaded by the + + + Reactive Extensions (Rx) are a library for composing asynchronous and event-based programs using observable sequences and LINQ-style + query operators. Using Rx, developers represent asynchronous data streams with Observables, query asynchronous data streams using LINQ + operators, and parameterize the concurrency in the asynchronous data streams using Schedulers. Simply put, Rx = Observables + LINQ + Schedulers. + The ADS reactive extensions are build on top of this library to enable ADS Symbol and State Observables, seamlessly bound to the reactive + extensions. To use the ADS reactive extensions the TwinCAT.Ads.Reactive Nuget package (or the included TwinCAT.Ads.Reactive.dll) must be referenced from + All types within are contained in the ADS companion package "Beckhoff.TwinCAT.Ads.Reactive" which must be referenced separately. + (Beckhoff.TwinCAT.Ads.Reactive package on Nuget). + + + The following sample shows how to observe Value changed Notifications with the reactive from an . + + + + The following sample shows how to observe Value changed Notifications with the reactive from an . + + + + The same for more than one . + + + + Here, the values are polled in a specific time period and sequential Reads are triggered (in opposite to ADS Notification in the latter example) + + + + In the following example it is demonstrated how to write Values sequentially to a with the help of the reactive extensions. + + + + + + + + Observable sequence of Value changed events driven by ADS Notifications on the specified symbol. + + The symbols to observe. + IObservable<ValueChangedArgs>. + + + + + Observable sequence of Values driven by ADS Notifications on the specified symbol. + + The symbols to observe. + IObservable<ValueChangedArgs>. + + + The same for more than one . + + + The following sample shows how to observe Value changed Notifications with the reactive from an . + + + + + Gets an observable sequence when the value of the has changed. + + The symbol. + IObservable<System.Object>. + + The following sample shows how to observe Value changed Notifications with the reactive from an . + + + + + + + + Gets an observable sequence when the value of the has changed. + + The symbol. + IObservable<ValueChangedArgs>. + + In addition to the sequence of the pure values (like in ) the sequence contains + objects that contain additional notification timestamps. + + + + + + Subscribes the to an observable sequence of values and writes them to the . + + The symbol. + Observable of Values. + IDisposable. + + In the following example it is demonstrated how to write Values sequentially to a with the help of the reactive extensions. + + + + + + Subscribes the to an observable sequence of values and writes them to the . + + The symbol. + Observable of Values. + The error handler or NULL. + IDisposable. + + + + Subscribes the to an observable sequence of values and writes them to the . + + The symbol. + Observable of Values. + The cancellation token. + IDisposable. + + + + Subscribes the to an observable sequence of values and writes them to the . + + The symbol. + Observable of Values. + The error handler. + The cancellation token. + IDisposable. + + + + Polls the symbol values on time points where the polling observable/trigger streams data + + The symbol. + The Polling trigger + IObservable<System.Object>. + + + + + Polls the symbol as value sequence of object values with a specified period time. + + The symbol. + The period. + + Here, the values are polled in a specific time period and sequential Reads are triggered (in opposite to ADS Notification in the latter example) + + + IObservable<System.Object>. + + + + Polls the values as sequence annotated value on trigger sequence + + The symbol. + The polling Trigger. + IObservable<ValueChangedArgs>. + + + + Polls the values as sequence with a specified period time. + + The symbol. + The polling period/interval. + IObservable<ValueChangedArgs>. + + + diff --git a/ExtLibs/AdsApi/.NET/v4.0.30319/TwinCAT.Ads.XML b/ExtLibs/AdsApi/.NET/v4.0.30319/TwinCAT.Ads.XML new file mode 100644 index 00000000..2d5108b1 --- /dev/null +++ b/ExtLibs/AdsApi/.NET/v4.0.30319/TwinCAT.Ads.XML @@ -0,0 +1,38026 @@ + + + + TwinCAT.Ads + + + + + Class AnySymbolSpecifier. + + Specifies an Symbol path together with an to address a symbol for an Read/Write operation + + + + Initializes a new instance of the class. + + The instance path. + The spec. + + + + Gets the instance path. + + The instance path. + + + + Gets the type specifier. + + The type specifier. + + + + Class AnyTypeSpecifier. + + + The is used to specify out/return parameters for ReadAny, InvokeRpc-Methods or typed + AdsNotifications. + + + + + Category of the + + + + + Managed type + + + + + The String length (only for + + + + + List of jagged Dimensions (Arrays and jagged arrays) + + + + + The element type (Arrays) + + + + + Initializes a new instance of the class. + + The type. + + + + Initializes a new instance of the class. + + The type. + Length of the string. + type + + + + Initializes a new instance of the class. + + The type. + The dim lengths. + + + + Initializes a new instance of the class. + + The type. + The dim lengths. + The jagged level. + type + + + + Gets the Managed type and the type arguments from the + + The managed type + The arguments. + + + + Initializes a new instance of the class from the specified prototype + + The prototype. + + + + Enum StringConvertMode + + + + + + Fixed Length String + + + + + Fixed Length String that can be terminated with '\0' + + + + + '\0' terminated dynamic length string + + + + + Length Prefix (number of following bytes as uint 4-Byte) + + + + + Converter class converting PLC strings to .NET strings and vice versa + + + + + + The encoding (actually Default and Unicode allowed) + + + + + Gets the encoding. + + The encoding. + + + + Gets the string mode. + + The string mode. + + + + Initializes a new instance of the class. + + The default encoding. + The mode. + + + + The default . + + + + + Gets the default converter + + The default converter. + + + + + Gets the default converter (with Variable Length) + + The default converter. + + + + + Gets the unicode converter. + + The unicode converter. + + + + + Gets the unicode converter (with variable Length) + + The unicode converter. + + + + + Gets the Marshal size of the string (in bytes) + + The string. + The mode. + System.Int32. + + + + Gets the AdsMarshalling (byte) size of an unicode string of the specified length + + The string. + The mode. + Length of AdsMarshalled string (System.Int32). + + + + Gets the marshal siez of the string + + The string. + System.Int32. + + + + Gets the byte represention of the string. + + The string. + System.Byte[]. + + + + Marshals the specified string with the maximum amount of bytes. + + The string. + The maximum bytes. + System.Byte[]. + + + + Converts a string to Default ANSI Coded Bytes. + + The STR. + The mode. + Byte array coded in Encoding.Default with terminating '\0' character + str + + + + Converts a string to Default ANSI Coded Bytes. + + The STR. + The mode. + The maximum bytes marshalled. + Byte array coded in Encoding.Default with terminating '\0' character + str + str + + + + Converts a string to Unicode Coded Bytes. + + The STR. + The encoding. + The mode. + The maximum bytes, non specified is indicated by '-1'. + Byte array coded in Encoding.Unicode with terminating '\0' character + str + + str + + + + Converts a string to Unicode Coded Bytes. + + The STR. + The mode. + Byte array coded in Encoding.Unicode with terminating '\0' character + str + + str + + + + Converts a string to Unicode Coded Bytes. + + The STR. + The mode. + The maximum bytes. + Byte array coded in Encoding.Unicode with terminating '\0' character + str + + str + + + + Converts a string to Default ANSI Coded Bytes. + + The STR. + Size of the return byte array (filled up with \0) + Byte array coded in Encoding.Default with terminating '\0' characters + str + + + + Converts ANSI Coded bytes to string. + + The bytes. + System.String. + + + + Determines whether this instance can marshal the specified type identifier. + + The type identifier. + true if this instance can marshal the specified type identifier; otherwise, false. + + + + Determines whether this instance can marshal the specified category. + + The category. + true if this instance can marshal the specified category; otherwise, false. + + + + Converts the ANSI encoded (Encoding.Default) byte array to string + + The byte buffer to convert. + Start index of the data within the bytes array. + The byte count to transform from the byte array. + The contained string. + Reads the string only to the first occurrence of '\0' + + + + Unmarshals the specified bytes (Converts the byte array to string) + + The bytes. + The index. + Fixed length of the string in bytes. + The value. + System.Int32. + + + + Unmarshals the specified bytes (converts the Byte array to string) + + The bytes. + The value. + System.Int32. + + + + Encodes to string. + + The bytes. + The index. + The byte count. + The encoding. + The mode. + System.String. + bytes + byteCount + + + + Converts Unicode bytes (WSTRING) to its .net representation. + + The byte buffer to convert. + Start index of the data within the bytes array. + The byte count to transform from the byte array. + System.String. + + + + Class BitTypeConverter. + + + + + + Converts a Bit type value to bytes. + + Bit size of the underlying data type. + The value. + System.Byte[]. + bitSize + value + + + + Converts a BitSet represented in Byte[] to DotNetObject. + + Size of the Bitset in bits. + The data to convert. + The bit offset where the Bitset data is in data bytes. + The value. + bool, ushort, uint, ulong, BitArray dependent on bitSize. + + bitSize + or + data + + data + Data not large enough!;data + + + + Converts a numeric value to + + Type of Numeric value (msut support + The numeric value. + BitArray. + Type '{0}' not supported! + + + + Converts the to a numeric value. + + Type of Numeric value (must support + The binary. + T. + binary + binary + + + + Converts the specified to the specified numeric value type. + + Type of the numeric value. + Bit array. + Numeric value boxed as System.Object + Type '{0}' not supported! + + + + Class AnyArrayConverter. + + + + + + Determines whether the specified array type is jagged. + + The type. + true if the specified type is jagged; otherwise, false. + + + + Tries to get the (jagged) Dimensions from the array type. + + The type. + The dim lengths. + true if XXXX, false otherwise. + + + + Tries to get the (jagged) dimensions from the array type. + + The type. + The dim lengths. + true if XXXX, false otherwise. + + + + Converter class for all forms of Primitive Types + + + + + + The encoding + + + + + Initializes a new instance of the class. + + The encoding. + + + + + Initializes a new instance of the class. + + The encoding. + The string convert mode. + encoding + + + + Gets the default Converter (Encoding.Default encoding) + + The default. + + + + Gets the initialized with default string encoding and + + The default fixed length string. + + + + Gets the unicode converter. + + The unicode. + + + + Determines whether the specified category is a primitive type + + The category. + true if [is primitive type] [the specified category]; otherwise, false. + Primitive types are types that are indicated with Primitive, String, SubRange, Enum, Pointer + + + + Determines whether the specified type identifier is primitive. + + The type identifier. + true if the specified type identifier is primitive; otherwise, false. + + + + Determines whether the specified category is a container type. + + The data type category. + true if [is container type] [the specified category]; otherwise, false. + Container Types are Array, Structs and its derivates (Function,FunctionBlock and Program) + + + + Determines the size of the specified data type. + + The TypeId. + System.Int32. + tp + + + + Determines whether the managed type is a jagged array + + The array to test for (jagged) + The jag level. + Type of the (jagged) base element. + true if [is jagged array] [the specified managed type]; otherwise, false. + managedType + + + + Determines whether the managed type is a jagged array + + The array. + The jag level. + Type of the (jagged) base element. + The jagged element count. This is the amount of compatible base elements in a multi-dimensional array + true if [is jagged array] [the specified managed type]; otherwise, false. + managedType + + + + Converts the specified byte data to string representation. + + The data to convert. + The start index inside the data. + Length of the string. + The value. + The number of consumed bytes from the data array (System.Int32). + data + + offset + or + encoding + + + + + Creates the specified type initialized by the raw byte array. + + The tp. + if set to true [is bit type]. + The data. + Start index within the data array. + The value. + Number of consumed bytes (System.Int32). + data + or + data + offset + or + tp + + + + Tries to get the managed type. + + The type. + The managed. + true if XXXX, false otherwise. + Cannot unmarshal type '{0}'! + + + + Tries to get the managed type. + + Type of the data. + Type of the managed. + true if XXXX, false otherwise. + + + + Tries to get the managed type. + + The type identifier. + The tp. + true if XXXX, false otherwise. + + + + Tries to get the managed type. + + The type identifier. + The tp. + true if XXXX, false otherwise. + + + + Gets the primitive flags. + + The type. + PrimitiveTypeFlags. + + + + Gets the primitive flags. + + The type identifier. + PrimitiveTypeFlags. + + + + Gets a primitive value from Bytes. + + The type. + The data. + The offset. + The value. + The number of read bytes. + + type + or + data + + + Type is not primitive! + or + Cannot map to .NET Value! + or + Cannot map to .NET Value! + + + + + Unmarshals the specified data. + + + The data. + The offset. + Size of the marshal. + The value. + System.Int32. + + + + Unmarshals the specified data. + + + Any type information. + The data. + The offset. + The value. + System.Int32. + + + + Creates the specified type initialized by the raw byte array. + + DataType. + The raw data.. + Start index / Offset within the raw data. + Size of the marshal. + The created value. + Consumed bytes (System.Int32). + tp + or + data + offset + or + tp + + + + Creates the specified type initialized by the raw byte array. + + The type specifier. + The raw data.. + Start index / Offset within the raw data. + Size of the marshal. + The created value. + Consumed bytes (System.Int32). + tp + or + data + offset + or + tp + + + + Unmarshals the (primitive) array. + + The type spec. + The data. + The offset. + Size of the marshal. + The value. + System.Int32. + typeSpec + + + + Gets the length of the array. + + Type of the array. + Size of the marshal. + System.Int32. + + + + Creates the specified type initialized by the raw byte array. + + Type of the array. + The raw data.. + The byte offset. + Size of the marshal. + The created value. + Consumed bytes (System.Int32). + tp + or + data + tp + or + data + + + + Creates the specified type initialized by the raw byte array. + + The type spec. + if set to true [bit size]. + The raw data.. + Start index / Offset within the raw data. + Size of the marshalling. + The created value. + Consumed bytes (System.Int32). + tp + or + data + offset + or + tp + Not supported! + + tp + or + data + offset + or + tp + + + + Converts the specified value to byte array. + + The typeId. + The value. + The data. + System.Byte[]. + data + + + + + Gets the (ADS) representation size of the Primitive type object + + The object value. + Marshalled size of the object when transferred. + val + val + + + + Determines whether the managed type will be Marshalled as bit type + + Type of the managed. + true if [is marshalled as bit type] [the specified managed type]; otherwise, false. + + + + Gets the Marshal Size in bytes of the string + + Length of the string. + System.Int32. + + + + Determines whether ADS (AnyType Marshalling) can marshal the specified (primitive) data type. + + Managed data type. + true if this instance can marshal the specified data type; otherwise, false. + + + + Determines the specified type can be marshalled. + + The type. + true if this instance can marshal the specified type; otherwise, false. + + + + Determines whether this instance can marshal the + + The data type category + true if this instance can marshal the specified category; otherwise, false. + + + + Determines whether this instance can marshal the specified type identifier. + + The type identifier. + true if this instance can marshal the specified type identifier; otherwise, false. + + + + Gets the (AdsMarshalling) Size of the specified primitive type. + + Length of the string. + The size. + true if XXXX, false otherwise. + + + + Gets the (AdsMarshalling) Size of the specified primitive type. + + The managed Data type to be marshalled via ADS. + The size. + true if XXXX, false otherwise. + + + + Tries to get the marshal size of the specified data type. + + Any type. + The marshal size of the type. + true if XXXX, false otherwise. + + + + Gets the (AdsMarshalling) Size of the specified primitive type. + + The managed Data type to be marshalled via ADS. + The encoding. + The size. + + true if XXXX, false otherwise. + + + + Gets the (AdsMarshalling) Size of the specified primitive type. + + The managed Data type to be marshalled via ADS. + The size. + true if marshalling size can be determined, false otherwise. + val + + + + Gets the (AdsMarshalling) Size of the specified primitive type. + + The managed Data type to be marshalled via ADS. + The encoding. + The string mode. + The size. + true if marshalling size can be determined, false otherwise. + val + + + + Gets the (AdsMarshalling) Size of the specified primitive type. + + The tp. + System.Int32. + val + + + + Tries to convert the specified (primitive) value to raw data. + + The value. + The data. + true if XXXX, false otherwise. + val + val + + + + Tries to convert the specified (primitive) value to raw data. + + The value. + The maximum bytes + The data. + true if XXXX, false otherwise. + val + val + + + + Converts the primitive value to bytes. + + The type. + The value. + System.Byte[]. + type + Cannot Convert to byte array! + + + + Converts the primitive value to bytes. + + The type. + The value. + The marshalled data buffer + true if XXXX, false otherwise. + type + value + type + + + + Converts the specified primitive value to raw data. + + The value. + System.Byte[]. + tp + + + + Converts the specified source value to the specified target type. + + The source value. + Value as targetType (System.Object). + tp + + + + + Converts the specified source value to the specified target type. + + The source value. + Target type. + Value as targetType (System.Object). + tp + + + + + Determines whether this instance can convert the specified source value. + + The source value. + Type of the target. + true if this instance can convert the specified source value; otherwise, false. + + + + Try to convert the specified source value to the specified target type. + + The source value. + The target type. + The target value. + true if XXXX, false otherwise. + + + + Determines whether the specified type is an PlcOpen Type + + The tp. + true if is one of the types TIME,LTIME,TOD,DATE + + + + Symbol Server Interface + + + + + Gets the data types. + + The data types. + + + + Gets the symbols. + + The symbols. + + + + Data Type Exception + + + + + The data type + + + + + Initializes a new instance of the class. + + The message. + The type. + + + + Common Marshalling Exception + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new Instance of the AdsException class. + + The message. + The inner exception. + + + + Interface IRpcMarshaller + + + + + + Marshals the Method (in) Parameter values to the buffer + + The method. + The parameter values. + The buffer. + The offset. + System.Int32. + + + + Unmarshals the out parameters and the output value array. + + The method. + The out parameters specification (for ANYTYPE Types) + The data. + The offset. + The values. + System.Int32. + + + + Unmarshals the RPC method return value + + The method. + The return type specification (for ANYTYPE Types) + Type of the return. + The buffer. + The offset. + The return value. + System.Int32. + + + + Unmarshal the returned data into the Out- (Read-) buffer of the RPC Call + + The method. + The out parameters specification (for ANYTYPE Types) + The return type specification (for ANYTYPE Types) + The data. + The out parameters. + The return value. + System.Int32. + + + + Gets the size of the input marshalling data in bytes. + + The method. + The parameter values, use this if the marshal size is dependent of other parameters (length_is attribute) + System.Int32. + + + + Gets the size of the out marshalling data in bytes. + + The method. + The parameter values, use this if the marshal size is dependent of other parameters (length_is attribute) + System.Int32. + + + + Class RpcMarshaller base implementation (abstract) + + + + + + + The resolver + + + + + Initializes a new instance of the class. + + The data type resolver. + + + + Gets the size of the data of the in parameters in bytes + + The method. + The parameter values, use this if the marshal size is dependent of other parameters (length_is attribute) + System.Int32. + + + + Gets the size of the out parameters. + + The method. + The parameter values, use this if the marshal size is dependent of other parameters (length_is attribute) + System.Int32. + + + + Gets the Marshalling Size of the DataType + + Type of the data. + System.Int32. + + + + Get the parameter size of a single parameter + + Index of the parameter. + The parameters. + Use these values, if the marshal size is dependent on other parameter values (length_is attribute) + System.Int32. + This default implementation solely returns the Byte size of the parameter + + + + Gets the in parameters. + + The method. + The parameters. + The types. + System.Int32. + + + + Gets the out parameters. + + The method. + The parameters. + The types. + System.Int32. + + + + Gets the parameters. + + The method. + The mask. + The parameters. + The types. + System.Int32. + parameters + + + + Marshals the Method Identification plus all In parameters into the In- (Write-) buffer + + The method. + The parameter values. + The buffer. + The offset. + System.Int32. + + method + or + parameterValues + or + data + + offset + + + + Unmarshals the out parameters and the output value array. + + The method. + The out parameters specification (for ANYTYPE Types) + The data. + The offset. + The values. + System.Int32. + + + + Called when [marshal in]. + + The method. + The parameter values. + The buffer. + The offset. + System.Int32. + parameterValues + + + + Marshals a single RpcMethodParameter to the buffer. + + The i. + The in parameters. + The in parameter types. + The parameter values. + The buffer. + The offset. + System.Int32. + + + + Called when [marshal out]. + + The method. + The out parameters spec. + The data. + The offset. + The values. + System.Int32. + + + + Unmarshals the RPC method return value + + The method. + The return type specification (for ANYTYPE Types) + Type of the return. + The buffer. + The offset. + The return value. + System.Int32. + + + + Unmarshals a single RPC parameter from the Buffer + + The index of the parameter + The out parameters. + The out parameter spec. + The out parameter types. + The buffer. + The offset. + The out values. + System.Int32. + + + + Marshalling copy helper + + The destination array. + Offset within the destination array. + Source array + Number of copied bytes + Data size mismatch! + + + + Unmarshal the returned data into the Out- (Read-) buffer of the RPC Call + + The method. + The out parameters specification (for ANYTYPE Types) + The return type specification (for ANYTYPE Types) + The data. + The out parameters. + The return value. + System.Int32. + + + + Collection of AdsAttributes + + + + + List of Attributes + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The coll. + + + + Determines the index of a specific item in the . + + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + + + Gets or sets the element at the specified index. + + The index. + AdsAttribute. + + + + Gets the with the specified name. + + The name. + System.String. + + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + true if is found in the ; otherwise, false. + + + + Determines whether this contains the with the specified name. + + The name. + true if [contains] [the specified name]; otherwise, false. + + + + Copies to. + + The array. + Index of the array. + + + + Gets the number of elements contained in the . + + The count. + + + + Gets a value indicating whether the is read-only. + + true if this instance is read only; otherwise, false. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + Removes the specified from the + + The name. + true if XXXX, false otherwise. + + + + Returns an enumerator that iterates through the collection. + + A that can be used to iterate through the collection. + + + + Returns an enumerator that iterates through a collection. + + An object that can be used to iterate through the collection. + + + + Gets a read only version of this + + ReadOnlyAttributeCollection. + As read only. + + + + Tries to get the specified + + The name of the . + The att. + true if found, false otherwise. + + + + Tries to get the specified Attribute value. + + The name. + The value. + true if XXXX, false otherwise. + + + + Read only version of the + + + + + Initializes a new instance of the class (for internal use only) + + The coll. + + + + + Determines whether this contains the specified attribute. + + The name. + true if [contains] [the specified name]; otherwise, false. + + + + Tries to get the specified + + The name of the . + The attribute. + true if found, false otherwise. + + + + Tries to get the specified Attribute value. + + The name. + The value. + true if XXXX, false otherwise. + + + + Gets the with the specified name. + + The name. + System.String. + + + + Collection of RpcMethods. + + + + + Internal list (organizing the list index) + + + + + Dictionary MethodName-->RpcMethod for fast search + + + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class. + + The coll. + + + + Gets the empty collection + + The empty collection + + + + Determines the index of a specific item in the . + + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + + + Gets or sets the element at the specified index. + + The index. + RpcMethod. + + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + true if is found in the ; otherwise, false. + + + + Determines whether this collection contains the specified method name. + + Name of the method. + true if contained.; otherwise, false. + + + + Tries to get the specified method. + + Name of the method. + The method if fund, NULL otherwise. + true if found, false otherwise. + + + + Tries to get the specified method. + + VTable index. + The method if fund, NULL otherwise. + true if found, false otherwise. + + + + Gets the with the specified method name. + + Name of the method. + RpcMethod. + + + + + Copies to. + + The array. + Index of the array. + + + + Gets the number of elements contained in the . + + The count. + + + + Gets a value indicating whether the is read-only. + + true if this instance is read only; otherwise, false. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + Returns an enumerator that iterates through the collection. + + A that can be used to iterate through the collection. + + + + Returns an enumerator that iterates through a collection. + + An object that can be used to iterate through the collection. + + + + Gets a read only collection of this + + ReadOnlyRpcMethodCollection. + Returns a read only version of this + + + + Read only + + + + + Initializes a new instance of the class. + + The coll. + + + + Gets the empty collection.. + + The empty collection. + + + + Determines whether this collection contains the specified method name. + + Name of the method. + true if contained.; otherwise, false. + + + + Tries to get the specified method. + + Name of the method. + The method if fund, NULL otherwise. + true if found, false otherwise. + + + + Tries to get the specified method. + + vTableIndex. + The method if fund, NULL otherwise. + true if found, false otherwise. + + + + Gets the with the specified method name. + + Name of the method. + RpcMethod. + + + + + Interface IDimensionCollection + + + + + + Gets the lower bounds. + + The lower bounds. + + + + Gets the lower bounds. + + The lower bounds. + + + + Gets the Number of elements in all Dimensions + + + + + Gets an array the specifies the Lengths of each Array Dimension + + System.Int32[]. + + + + Collection class for Array Dimensions + + + + + Initializes a new instance of the class. + + The array infos. + arrayInfos + Index = 0 is the lowest Dimension. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The dim lengths. + + + + Initializes a new instance of the class. + + The coll. + + + + Initializes a new instance of an 1-Dimensional representing class. + + The length. + + + + Initializes a new instance of the class. + + The array. + + + + Internal Dimension list. + + + + + Returns a read only version of this . + + ReadOnlyDimensionCollection. + As read only. + + + + Converts the to array. + + AdsDatatypeArrayInfo[] if is array, otherwise NULL. + + + + Determines the index of a specific item in the . + + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + + + + Gets or sets the element at the specified index. + + The index. + IDimension. + + + Index = 0 is the lowest dimesion. + + + + Adds an item to the . + + The object to add to the . + + + + + Removes all items from the . + + + + + + Determines whether the contains a specific value. + + The object to locate in the . + true if is found in the ; otherwise, false. + + + + + Copies to. + + The array. + Index of the array. + + + + + Gets the number of elements contained in the . + + The count. + + + + + Gets a value indicating whether the is read-only. + + true if this instance is read only; otherwise, false. + + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + + Returns an enumerator that iterates through the collection. + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + An object that can be used to iterate through the collection. + + + + + Gets the Number of elements in all Dimensions + + + + + Gets the lower bounds. + + The lower bounds. + + + + Gets the upper bounds. + + The upper bounds. + + + + Gets an array the specifies the Lengths of each Array Dimension + + System.Int32[]. + + + + ReadOnly version of the + + + + + Initializes a new instance of the class (for internal use only) + + The coll. + + + + + Gets the Number of elements in all Dimensions + + + + + Converts the to array. + + AdsDatatypeArrayInfo[] if is array, otherwise NULL. + + + + Gets the lower bounds. + + The lower bounds. + + + + Gets the upper bounds. + + The upper bounds. + + + + Gets an array the specifies the Lengths of each Array Dimension + + System.Int32[]. + + + + Collection of DataTypes. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class (Copy constructor). + + The coll. + + + + Returns A ReadOnly-Version of the . + + A read only version of this . + + + + Clones this (Shallow Copy) + + A clone of this . + + + + ReadOnly Collection of objects. + + + + + Initializes a new instance of the class. + + Collection of types. + + + + Collection of objects. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class (copy constructor) + + The coll. + + + + Returns a read only copy of this collection (shallow copy) + + The readonly copy. + + + + Clones this . + + A cloned . + + + + Collection of objects. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class (copy constructor) + + The coll. + + + + Returns a read only copy of this collection (shallow copy) + + The readonly copy. + + + + Clones this . + + A cloned . + + + + Read only collection of objects + + + + + Initializes a new instance of the class. + + The members. + + + + Tries to get the specified member + + Name of the member. + The symbol. + true if found, false otherwise. + + + + Read only collection of objects + + + + + Initializes a new instance of the class. + + The members. + + + + Tries to get the specified member + + Name of the member. + The symbol. + true if found, false otherwise. + + + + Interface ISymbolCollection + + + + + Interface represents a collection of objects. + + + + + Initializes a new instance of the class organized with InstancePath. + + + + + Initializes a new instance of the class. + + The mode. + + + + + Initializes a new instance of the class. + + The coll. + + + + Returns a Read only version of this collection (shallow copy). + + Read only collection. + + + + Clones this instance. + + Cloned . + + + + ReadOnly collection containing objects. + + + + + Initializes a new instance of the class. + + The symbols. + + + + Collection of Namespaces (internally using + + + + + + Initializes a new instance of the class. + + + + + Creates a read-only version of this . + + A readonly . + + + + Registers a type on its namespace + + The type. + Creates a new namespace if not existing in the collection. + + + + ReadOnly namespace collection + + + + + + Initializes a new instance of the class. + + The coll. + + + + Generic interface for EnumValues + + + + + Gets the name of the Enumeration Value (value as string) + + The name. + + + + Gets the (Primitive, BaseType) Value of the enumeration as object + + The object value. + + + + Gets the raw value of the enumeration (as byte array) + + The raw value. + + + + Gets the enumeration base type (sint,byte,short,ushort,int,uint,Int64,UInt64 supported) + + The type of the base. + + + + Gets the size of the Enum value (in bytes) + + The size. + + + + Enum Value + + Enum base type (byte,sbyte,short,ushort,int,uint,long or ulong) + + + + Name of the Enum Value (as string) + + + + + The Value of the Enum + + + + + Gets the name of the Enum Value + + The name. + + + + Gets the value. + + The value. + + + + Initializes a new instance of the class. + + The entry. + Wrong Enum base type. + + + + Initializes a new instance of the class. + + Type of the enum. + The value. + + + + Gets the Value of the enumeration value (value as object) + + The object value. + + + + Gets the raw value of the enumeration (as byte array) + + The raw value. + Base type of enum is not allowed! + + + + Gets the enumeration base type (sint,byte,short,ushort,int,uint,Int64,UInt64 supported) + + The type of the base. + + + + Gets the size of the Enum value (in bytes) + + The size. + + + + Returns a that represents this instance. + + A that represents this instance. + + + + Parse EnumType string + + The type. + The string. + The value. + true if XXXX, false otherwise. + + + + Parse Enum Type string + + The type. + The string. + EnumValue<T>. + + + + + Collection of EnumValues + + Base type of enum + + + + Internal list organizing the Index + + + + + Dictionary Name --> EnumValue for fast find + + + + + Initializes a new instance of the class. + + The coll. + coll + + + + Determines the index of a specific item in the . + + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + + + Gets or sets the element at the specified index. + + The index. + EnumValue<T>. + + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + true if is found in the ; otherwise, false. + + + + Determines whether [contains] [the specified name]. + + The name. + true if [contains] [the specified name]; otherwise, false. + + + + Determines whether [contains] [the specified value]. + + The value. + true if [contains] [the specified value]; otherwise, false. + + + + Tries the get information. + + The value. + The ei. + true if XXXX, false otherwise. + + + + Parse the specified string to the enum value. + + The name. + The value. + true if XXXX, false otherwise. + + + + Parses the specified string to the Enum value. + + The name. + T. + name + + + + Copies the entire list. + + The array. + Index of the array. + + + + Gets the number of elements contained in the . + + The count. + + + + Gets a value indicating whether the is read-only. + + true if this instance is read only; otherwise, false. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + + Returns an enumerator that iterates through the collection. + + A that can be used to iterate through the collection. + + + + Returns an enumerator that iterates through a collection. + + An object that can be used to iterate through the collection. + + + + Gets the names. + + System.String[]. + + + + Gets the values. + + T[]. + + + + Gets as read only. + + ReadOnlyEnumValueCollection<T>. + As read only. + + + + Performs an explicit conversion from to . + + The coll. + The result of the conversion. + + + + Read only version of the + + + + + + Initializes a new instance of the class. + + The coll. + + + + Determines whether [contains] [the specified name]. + + Value + true if [contains] [the specified name]; otherwise, false. + + + + Tries to parse the string value of the Enum. + + The Value in string represention. + The value. + true if XXXX, false otherwise. + + + + Parses the specified name. + + The name. + T. + + + + Gets the Value Names. + + System.String[]. + + + + Gets the values. + + T[]. + + + + Class EnumValueCollection. + + + + + Internal list organizing the Index + + + + + Dictionary Name --> EnumValue for fast find + + + + + Initializes a new instance of the class. + + The type identifier. + The coll. + coll + + + + Initializes a new instance of the class (for internal use only). + + The coll. + + + + + Determines the index of a specific item in the . + + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + + + Gets or sets the element at the specified index. + + The index. + EnumValue<T>. + + + + + Gets or sets the element at the specified index. + + The name of the value + EnumValue<T>. + + + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + true if is found in the ; otherwise, false. + + + + Determines whether [contains] [the specified name]. + + The name. + true if [contains] [the specified name]; otherwise, false. + + + + Determines whether [contains] [the specified value]. + + The value. + true if [contains] [the specified value]; otherwise, false. + + + + Tries the get information. + + The value. + The ei. + true if XXXX, false otherwise. + + + + Parse the specified string to the enum value. + + The name. + The value. + true if XXXX, false otherwise. + + + + Parses the specified string to the Enum value. + + The name. + T. + name + + + + Copies the entire list. + + The array. + Index of the array. + + + + Gets the number of elements contained in the . + + The count. + + + + Gets a value indicating whether the is read-only. + + true if this instance is read only; otherwise, false. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + + Returns an enumerator that iterates through the collection. + + A that can be used to iterate through the collection. + + + + Returns an enumerator that iterates through a collection. + + An object that can be used to iterate through the collection. + + + + Gets the names. + + System.String[]. + + + + Gets the values. + + T[]. + + + + Gets as read only. + + ReadOnlyEnumValueCollection. + As read only. + + + + Read only version of the + + + + + Initializes a new instance of the class. + + The coll. + + + + Determines whether [contains] [the specified name]. + + Value + true if [contains] [the specified name]; otherwise, false. + + + + Tries to pars the string value of the Enum. + + The Value in string represention. + The value. + true if XXXX, false otherwise. + + + + Parses the specified name. + + The name. + T. + + + + Gets the Value Names. + + System.String[]. + + + + Gets the values. + + T[]. + + + + Gets or sets the element at the specified index. + + The name of the value + EnumValue<T>. + + + + + + Class SubItemCollection. + + + + + The _list + + + + + Initializes a new instance of the class. + + + + + Determines the index of a specific item in the . + + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + + + Gets or sets the element at the specified index. + + The index. + ITcAdsSubItem. + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + true if is found in the ; otherwise, false. + + + + Copies to. + + The array. + Index of the array. + + + + Gets the number of elements contained in the . + + The count. + + + + Gets a value indicating whether the is read-only. + + true if this instance is read only; otherwise, false. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + Returns an enumerator that iterates through the collection. + + A that can be used to iterate through the collection. + + + + Returns an enumerator that iterates through a collection. + + An object that can be used to iterate through the collection. + + + + Gets a read only version of this . + + ReadOnlySubItemCollection. + As read only. + + + + Class ReadOnlySubItemCollection. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The coll. + + + + This collection represents the SubItems of an Array + + This is an optimization for which doesn't cache the + contained Elements. Here in the the array elements will be created 'On-Access'. + Additionally, this collection is Read-Only. + + + + + The array instance (can be ArrayInstance, Union Instance or Reference instance!) + + + + + The array type (Can be Array, Union Array, or Reference to Array) + + + + + The used symbol factory + + + + + Initializes a new instance of the class organized with InstancePath. + + + + + Gets the ArrayElementInstance at the specified index. + + The index. + ISymbol. + The Index Setter will throw an exception. + + + + + Gets the Array element instance with the specified instance path. + + The instance path. + ISymbol. + Symbol not found! + + + + Gets the number of contained array element instances. + + The count. + + + + Gets a value indicating whether this instance is read only. + + true if this instance is read only; otherwise, false. + + + + Gets the mode. + + The mode. + + + + Adds the specified item. + + The item. + + + + + Clears this instance. + + + + + + Determines whether the specified ArrayElement instance is contained + + The item. + true if [contains] [the specified item]; otherwise, false. + + + + Determines whether this collection contains the array element with the specified path. + + The instance path. + true if [contains] [the specified instance path]; otherwise, false. + + + + Determines whether this collection contains an ArrayElement with the specified name with indices. + + The instance name with indices. + true if the specified instance name with indices contains name; otherwise, false. + + + + Copies to. + + The array. + Index of the array. + + + + + Gets the enumerator. + + IEnumerator<ISymbol>. + + + + Gets the instance. + + The instance path. + ISymbol. + + + + Gets the name of the instance by. + + The instance name with indices. + IList<ISymbol>. + + + + Gets the SubIndex of the specified Array Element instance. + + The item. + System.Int32. + item + + + + Inserts the specified index. + + The index. + The item. + + + + + Removes the specified item. + + The item. + true if XXXX, false otherwise. + + + + + Removes at. + + The index. + + + + + Tries the get instance. + + The instance path. + The symbol. + true if XXXX, false otherwise. + + + + Tries the name of the get instance by. + + The instance name with indices. + The symbols. + true if XXXX, false otherwise. + + + + Gets the enumerator. + + IEnumerator. + + + + Namspace Binder Base Implementation + + + + + + + Initializes a new instance of the class. + + The symbol provider. + The symbol factory. + if set to true [use virtual instances]. + + + + The symbol provider + + + + + Gets the Symbol provider. + + The provider. + + + + The symbol factory + + + + + The platform pointer size + + + + + Gets the size of the platform pointer (in Bytes) + + The size of the platform pointer. + + + + Sets the size of the platform pointer. + + The sz. + + + + Binds the specified symbol to the Resolver (Registering and linking Parents). + + The child symbol. + the parent Symbol where the subSymbol was bound to + + + + Creates an unique path name + + The instance. + System.String. + + + + Indicates that Virtual (created StructInstances) are used. + + The use virtual instances. + + + + Registers the specified type. + + The type. + + + + Registers the specified types. + + The type. + + + + Tries to resolve the type (parses it if not found and adds it to the resolver if necessary). + + The name. + The type. + true if XXXX, false otherwise. + name + + + + + Handler function called when a type / types are generated + + The type. + + + + Handler function called when a type / types are generated + + The types. + + + + Handler function when a type name cannot be resolved. + + Name of the type. + + + + Occurs when new types are generated + + + + + Occurs when a typename cannot be resolved. + + + + + Iterator for iterating Indices of an Array Type. + + + + + + Lower bounds + + + + + Upper bounds + + + + + Aligns the returned indices to 0-basing arrays + + + + + Initializes a new instance of the class. + + The lower bounds. + The upper bounds. + + + + Initializes a new instance of the class. + + The array. + + + + Initializes a new instance of the class. + + The lower bounds. + The upper bounds. + if set to true [zero shift]. + + + + Initializes a new instance of the class. + + Type of the array. + if set to true [zero shift]. + + + + Initializes a new instance of the class. + + Type of the array. + + + + Gets the index factors. + + System.Int32[]. + + + + Returns an enumerator that iterates through the collection. + + A that can be used to iterate through the collection. + + + + Returns an enumerator that iterates through a collection. + + An object that can be used to iterate through the collection. + + + + Converter class that convert 'Any' objects. + + The adds Struct/Enum/Array creation possibilities to the . + + + + + Initializes a new instance of the class. + + + + + Converts Bytes to the specified targetType. + + The symbol to unmarshal. + Type of the target. + The data. + The offset. + The value. + System.Object. + + type + or + targetType + or + data + + type + or + targetType + or + data + + + + Converts the specified Raw data to the appropriate typed value (PrimitiveTypes) + + The symbol to unmarshal. + The data. + The offset. + The value. + System.Object. + + + + + + Determines whether this instance can marshal the specified symbol. + + The symbol. + Managed value Type (optional, can be null for primitives, strings or arrays of primitives). + true if this instance can marshal the specified symbol; otherwise, false. + + + + Creates an instance o the specified target type. + + Source Type. + Target Type. + System.Object. + + + + Initializes the specified targetInstance value with the raw byte data. + + The source symbol. + The encoding. + The target instance. + The data. + The offset. + + + + + Initializes the specified target instance with the raw byte data. + + The type. + The forced encoding or NULL. + The target instance. + Type of the target. + The target member. + The data. + The offset. + Type is not an enum type!;type + + + + + Initializes the instance value. + + The instance. + The member. + The value. + + + + + Cache of already checked 'Any' proxy types. + + + + + Checks the 'Any'/Proxy type. + + The type. + Type of the target. + + + + + + + Converts the specified Value of the the Value Instance object to raw bytes. + + Type of the data. + The object. + System.Byte[]. + + + + Calculates the MarshalSize of the value. + + The type. + The value. + System.Int32. + + + + Converts the specified Value of the the Value Instance object to raw bytes. + + The Symbol. + The value. + The b value. + The offset. + System.Int32. + Type is not an enum type!;type + or + Struct member not found!;type + + + + + Converts the specified Value of the the Value Instance object to raw bytes. + + The type. + The encoding. + The value. + The b value. + The offset. + System.Int32. + Type is not an enum type!;type + or + Struct member not found!;type + + + + + Tries to get the corresponding managed type. + + The type. + The managed. + true if XXXX, false otherwise. + + + + Tries to get the corresponding managed type. + + The type. + The managed. + true if XXXX, false otherwise. + + + + Interface Marshaller / Converter for IDataType Values + + + + + + Determines whether this instance can marshal the specified symbol. + + The symbol. + Managed value Type (optional, can be null for primitives, strings or arrays of primitives). + true if this instance can marshal the specified symbol; otherwise, false. + + + + Converts the specified Raw data to the appropriate typed value (PrimitiveTypes) + + The type. + The data. + The offset. + The value. + System.Object. + type + or + data + + + + + Converts the value instance to raw bytes. + + The type. + The data. + The bytes. + The offset. + System.Int32. + + + + + + Marshals the specified type. + + The type. + The value. + System.Byte[]. + + + + Marshals the size. + + The type. + The value. + System.Int32. + + + + Tries to get the corresponding managed type. + + The type. + The managed. + true if XXXX, false otherwise. + + + + Tries to get the corresponding managed type. + + The type. + The managed. + true if XXXX, false otherwise. + + + + Interface Marshaller / Converter for IDataType Values + + + + + + Converts the specified Raw data to the appropriate typed value (PrimitiveTypes) + + The type. + Forced encoding for strings or NULL (Default). + The data. + The offset. + The value. + System.Object. + type + or + data + + + + + Converts the value instance to raw bytes. + + The type. + Forced encoding for strings or NULL. + The data. + The bytes. + The offset. + System.Int32. + + + + + + Marshals the specified type. + + The type. + Forced encoding for strings or NULL. + The value. + System.Byte[]. + + + + Marshals the size. + + The type. + Forced encoding for strings or NULL. + The value. + System.Int32. + + + + Tries to get the corresponding managed type. + + The type. + The managed. + true if XXXX, false otherwise. + + + + Symbol Converter marshaller / Value converter + + + + + + The type marshaller + + + + + Tries to get the corresponding managed type. + + The type. + The managed. + true if XXXX, false otherwise. + + + + Unmarshals the specified symbol. + + The symbol. + The data. + The offset. + The value. + System.Int32. + + + + DataType marshaller / Value converter + + + This class adds IDataType capabilities on top of the . + + + + + + Determines whether this instance can marshal the specified data type. + + Type of the data. + Type of the value. + true if this instance can marshal the specified data type; otherwise, false. + dataType + Marshalling mismatch! - valueType + + + + Converts the specified source value to the specified target type. + + The source value. + Target type. + Value as targetType (System.Object). + tp + + + + + Converts the specified Raw data to the appropriate typed value (PrimitiveTypes) + + The type. + Forced encoding for strings or NULL (Default). + The data. + The offset. + The value. + System.Object. + type + or + data + + + type + or + data + + + + + Converts byte data to an bitset object (bit access) + + The datatype. + The bit offset. + The data. + The result. + System.Object. + type + or + data + BitSize not supported! BitSize must be 1 or dividable by 8! + type + + + + Calculates the MarshalSize of the value. + + The type. + Forced encoding for strings or NULL. + The value. + System.Int32. + + + + Converts the value instance to raw bytes. + + The type. + Forced encoding for strings or NULL. + The data. + The bytes. + The offset. + System.Int32. + + + + + + Converts the specified value to raw bytes + + The type. + The forced encoding or NULL. + The data. + System.Byte[]. + + + + Factory class for Enum Values. + + + + + Creates the specified + + Id of the enum base type. + The entry. + IEnumGenericValue. + entry + baseTypeId + + + + Creates the specified enum type. + + Type of the enum. + The value. + IEnumValue. + + + + + Creates the specified enum type. + + Type of the enum. + The bytes. + The offset. + IEnumValue. + Wrong Enum base type. + + + + Generic type converter class for Enum values + + + + + + Converts the primitive value into the appropriate + + Enum base data type. + The value as primitive. + EnumValue<T>. + + + + Gets the enum value object corresponding to the specified string value. + + Enum base type. + The value (in string representation). + EnumValue<T>. + + + + Tries to get the string representation of the enum value. + + Base type of the enum. + The primitive value. + String representation of the value. + true if valid, false otherwise. + + enumType + or + value + + Specified type is not an enum type!;enumType + + + + Tries to get the primitive value of the string represented value + + Base type of the enum. + The string value. + The value as primitive. + true if valid, false otherwise. + enumType + stringValue + Specified type is not an enum type!;enumType + + + + Converts the string represented value to its primitive value. + + Base type of the enum. + The string value. + The value as primitive. + + enumType + or + value + + Specified type is not an enum type!;enumType + stringValue + + + + Converts the primitive value of the specified enum type into its string representation. + + Base type of the enum. + The value as primitive. + A that represents the value. + val + + + + Converter for EnumValues + + Converts string / object values into the other representation form. + + + + + Returns the value as string + + Type of the data. + The value as primitive type + A that represents the value. + Wrong data type! + + + + Converts the string value representation into its primitive type + + Type of the data. + The value. + System.Object. + Wrong data type! + + + + Dynamic (Expandable) Symbols collection. + + The collection adds dynamically its child Symbols as Members (for access like "Main.Symbol") + + + + Internal Symbol Collection + + + + + Initializes a new instance of the class (for internal use only) + + The symbols. + symbols + + + + Returns the enumeration of all dynamic member names. + + A sequence that contains dynamic member names. + + + + Provides the implementation for operations that get member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as getting a value for a property. + + Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member on which the dynamic operation is performed. For example, for the Console.WriteLine(sampleObject.SampleProperty) statement, where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive. + The result of the get operation. For example, if the method is called for a property, you can assign the property value to . + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a run-time exception is thrown.) + + + + Gets the with the specified name. + + The name. + DynamicSymbol. + Symbol name not found in DynamicSymbols collection! + + + + Tries to get the . of the specified path. + + The instance path or Instance Name (dependent of setting) + The symbol. + true if the is found; otherwise, false + instancePath + + + + + Tries to get the Symbol Hierarchically from a dotted instance path. + + The instance path. + The symbol. + true if XXXX, false otherwise. + If we have provider.SymbolsInternal root object, the Roots are organized from different (virtual) namespaces. + The need is to find the symbol independent independent of the root has a dotted instance path, or it is organized (bound) in a ChildInstance level. + + + + + Gets the enumerator. + + A that can be used to iterate through the collection. + + + + Returns an enumerator that iterates through a collection. + + An object that can be used to iterate through the collection. + + + + Dynamic Array Instance + + + + + Initializes a new instance of the class. + + The symbol. + + + + Gets the contained Array Elements as read only collection. + + + The elements. + + + + + Gets the with the specified indices. + + The indices. + ISymbol. + indices + + + + Tries to get the array element + + The indices. + The found Array element symbol (out-parameter). + true if found, false if the indices specifiers is out-of-range. + + + + Tries to get the array element with the specified indices (jagged array support). + + The jagged indices list. + The symbol. + true if found, false if the jagged indices specifiers is out-of-range. + jaggedIndices + jaggedIndices + + + + Gets the dimensions as read only collection. + + The dimensions. + + + + Gets the type of the contained elements. + + The type of the element. + + + + Provides the implementation for operations that get a value by index. Classes derived from the class can override this method to specify dynamic behavior for indexing operations. + + Provides information about the operation. + The indexes that are used in the operation. For example, for the sampleObject[3] operation in C# (sampleObject(3) in Visual Basic), where sampleObject is derived from the DynamicObject class, [0] is equal to 3. + The result of the index operation. + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a run-time exception is thrown.) + + + + Provides the implementation for operations that get a value by index. Classes derived from the class can override this method to specify dynamic behavior for indexing operations. + + The symbol. + Type of the array. + Provides information about the operation. + The indexes that are used in the operation. For example, for the sampleObject[3] operation in C# (sampleObject(3) in Visual Basic), where sampleObject is derived from the DynamicObject class, [0] is equal to 3. + The result of the index operation. + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a run-time exception is thrown.) + + + + Provides the implementation for operations that set a value by index. Classes derived from the class can override this method to specify dynamic behavior for operations that access objects by a specified index. + + Provides information about the operation. + The indexes that are used in the operation. For example, for the sampleObject[3] = 10 operation in C# (sampleObject(3) = 10 in Visual Basic), where sampleObject is derived from the class, is equal to 3. + The value to set to the object that has the specified index. For example, for the sampleObject[3] = 10 operation in C# (sampleObject(3) = 10 in Visual Basic), where sampleObject is derived from the class, is equal to 10. + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown. + + + + Dynamic Array Instance + + + + + Initializes a new instance of the class. + + The symbol. + + + + Gets the oversampling element. + + The oversampling element. + + + + + Dynamic union instance + + + + + Initializes a new instance of the class. + + The struct instance. + + + + Gets the member instances of the Struct Instance. + + + The member instances. + + + + + Dictionary of normalized Instance Names + + + + + Returns the enumeration of all dynamic member names. + + A sequence that contains dynamic member names. + + + + Provides the implementation for operations that get member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as getting a value for a property. + + Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member on which the dynamic operation is performed. For example, for the Console.WriteLine(sampleObject.SampleProperty) statement, where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive. + The result of the get operation. For example, if the method is called for a property, you can assign the property value to . + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a run-time exception is thrown.) + + + + Provides the implementation for operations that set member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as setting a value for a property. + + Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member to which the value is being assigned. For example, for the statement sampleObject.SampleProperty = "Test", where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive. + The value to set to the member. For example, for sampleObject.SampleProperty = "Test", where sampleObject is an instance of the class derived from the class, the is "Test". + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown.) + + + + Dynamic struct instance + + + + + Initializes a new instance of the class. + + The struct instance. + + + + Gets the member instances of the Struct Instance. + + + The member instances. + + + + + Gets a value indicating whether this instance has RPC methods + + true if this instance has RPC methods; otherwise, false. + If the struct instance supports RPC Methods, then the instance class is also + supporting + + + + + + + Dictionary of normalized Instance Names + + + + + Returns the enumeration of all dynamic member names. + + A sequence that contains dynamic member names. + + + + Provides the implementation for operations that get member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as getting a value for a property. + + Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member on which the dynamic operation is performed. For example, for the Console.WriteLine(sampleObject.SampleProperty) statement, where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive. + The result of the get operation. For example, if the method is called for a property, you can assign the property value to . + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a run-time exception is thrown.) + + + + Provides the implementation for operations that set member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as setting a value for a property. + + Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member to which the value is being assigned. For example, for the statement sampleObject.SampleProperty = "Test", where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive. + The value to set to the member. For example, for sampleObject.SampleProperty = "Test", where sampleObject is an instance of the class derived from the class, the is "Test". + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown.) + + + + Class DynamicAliasInstance. This class cannot be inherited. + + + + + + + Dictionary of normalized Instance Names (only for Struct aliases) + + + + + The resolved alias type + + + + + Initializes a new instance of the class. + + The alias instance. + + + + Returns the enumeration of all dynamic member names. + + A sequence that contains dynamic member names. + + + + Provides the implementation for operations that get member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as getting a value for a property. + + Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member on which the dynamic operation is performed. For example, for the Console.WriteLine(sampleObject.SampleProperty) statement, where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive. + The result of the get operation. For example, if the method is called for a property, you can assign the property value to . + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a run-time exception is thrown.) + + + + Provides the implementation for operations that set member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as setting a value for a property. + + Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member to which the value is being assigned. For example, for the statement sampleObject.SampleProperty = "Test", where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive. + The value to set to the member. For example, for sampleObject.SampleProperty = "Test", where sampleObject is an instance of the class derived from the class, the is "Test". + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown.) + + + + Provides the implementation for operations that get a value by index. Classes derived from the class can override this method to specify dynamic behavior for indexing operations. + + Provides information about the operation. + The indexes that are used in the operation. For example, for the sampleObject[3] operation in C# (sampleObject(3) in Visual Basic), where sampleObject is derived from the DynamicObject class, [0] is equal to 3. + The result of the index operation. + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a run-time exception is thrown.) + + + + Provides the implementation for operations that set a value by index. Classes derived from the class can override this method to specify dynamic behavior for operations that access objects by a specified index. + + Provides information about the operation. + The indexes that are used in the operation. For example, for the sampleObject[3] = 10 operation in C# (sampleObject(3) = 10 in Visual Basic), where sampleObject is derived from the class, is equal to 3. + The value to set to the object that has the specified index. For example, for the sampleObject[3] = 10 operation in C# (sampleObject(3) = 10 in Visual Basic), where sampleObject is derived from the class, is equal to 10. + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown. + + + + Dynamic struct instance with RPC Methods. + + + + + + + + + Initializes a new instance of the class. + + The struct instance. + + + + Invokes the specified method. + + Name of the method. + The parameters. + The return value of the RPC Method + + + (* Declaration *) + {attribute 'TcRpcEnable'} + METHOD RpcMethod1 : INT + VAR_INPUT + i1 : INT; + END_VAR + (* Implementation *) + RpcMethod1 := i1 + 1; + + + To indicate a PLC Method for remote ads access, the attribute 'TcRpcEnable' must be declared on + the method declaration (see example). + + + + Gets the dynamic member names. + + IEnumerable<System.String>. + + + + Provides the implementation for operations that get member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as getting a value for a property. + + Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member on which the dynamic operation is performed. For example, for the Console.WriteLine(sampleObject.SampleProperty) statement, where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive. + The result of the get operation. For example, if the method is called for a property, you can assign the property value to . + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a run-time exception is thrown.) + + + + Provides the implementation for operations that set member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as setting a value for a property. + + Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member to which the value is being assigned. For example, for the statement sampleObject.SampleProperty = "Test", where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive. + The value to set to the member. For example, for sampleObject.SampleProperty = "Test", where sampleObject is an instance of the class derived from the class, the is "Test". + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown.) + + + + Provides the implementation for operations that invoke a member. Classes derived from the class can override this method to specify dynamic behavior for operations such as calling a method. + + Provides information about the dynamic operation. The binder.Name property provides the name of the member on which the dynamic operation is performed. For example, for the statement sampleObject.SampleMethod(100), where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleMethod". The binder.IgnoreCase property specifies whether the member name is case-sensitive. + The arguments that are passed to the object member during the invoke operation. For example, for the statement sampleObject.SampleMethod(100), where sampleObject is derived from the class, is equal to 100. + The result of the member invocation. + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown.) + + + + Tries to invoke the specified method. + + Name of the method. + The arguments. + The result. + true if the call succeeds, false otherwise. + + + + + Invokes the specified RPC Method + + The method name. + The input parameters or NULL + The output parameters. + The return value of the Method (as object). + + Because this overload doesn't provide any specifications, only primitive datatypes will be correctly marshalled + by this method. Complex types will fall back to byte[] arrays. + + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + + + + + Invokes the specified RPC Method + + The method name. + The parameters. + The out specifiers (specifiying the out types) or NULL. + The ret specifier (specifiying the return value) or NULL. + The out parameters. + The return value of the Method (as object). + The RpcMethod optionally support In-Parameters, Out-Parameters and Return values. Therefore the parameters , , , + are allowed to be empty or NULL. + In case of using primitive datatypes, the type specifier parameters ( and ) are not necessary and should not be set. + + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + + + + + Invokes the specified RPC Method + + The method name. + The parameters. + The return value of the RPC method as object. + The out parameters. + The result value of the call (ErrorCode). 0 means Succeeded. + + Because this overload doesn't provide any specifications, only primitive datatypes will be correctly marshalled + by this method. Complex types will fall back to byte[] arrays. + + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + + + + + Invokes the the specified RpcMethod of the . + + Name of the method. + The parameters. + The out specifiers (specifying the out types) or NULL. + The ret specifier (specifying the return value) or NULL. + The out parameters. + The return value of the RPC method./> + AdsErrorCode. + The RpcMethod optionally support In-Parameters, Out-Parameters and Return values. Therefore the parameters , , , + are allowed to be empty or NULL. + In case of using primitive datatypes, the type specifier parameters ( and ) are not necessary and should not be set. + + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + + + + + Gets the Method descriptions for the + + The methods. + + + + Dynamic struct instance + + + + + Initializes a new instance of the class. + + The struct instance. + + + + Adds an member instance. + + The member instance. + The parent struct instance. Usually the this pointer. + + + + Handler function for reading ADS 'Any' Values. + + Managed type to read. + System.Object. + + + + Dynamic Reference Instance + + + + + The resolved alias type + + + + + Dictionary of normalized Instance Names + + + + + Initializes a new instance of the class. + + The ref instance. + + + + Gets the Category of the Referenced Symbol. + + The resolved category. + + + + + Returns the enumeration of all dynamic member names. + + A sequence that contains dynamic member names. + + + + Provides the implementation for operations that get member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as getting a value for a property. + + Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member on which the dynamic operation is performed. For example, for the Console.WriteLine(sampleObject.SampleProperty) statement, where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive. + The result of the get operation. For example, if the method is called for a property, you can assign the property value to . + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a run-time exception is thrown.) + + + + Provides the implementation for operations that set member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as setting a value for a property. + + Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member to which the value is being assigned. For example, for the statement sampleObject.SampleProperty = "Test", where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive. + The value to set to the member. For example, for sampleObject.SampleProperty = "Test", where sampleObject is an instance of the class derived from the class, the is "Test". + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown.) + + + + Provides the implementation for operations that get a value by index. Classes derived from the class can override this method to specify dynamic behavior for indexing operations. + + Provides information about the operation. + The indexes that are used in the operation. For example, for the sampleObject[3] operation in C# (sampleObject(3) in Visual Basic), where sampleObject is derived from the DynamicObject class, [0] is equal to 3. + The result of the index operation. + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a run-time exception is thrown.) + + + + Provides the implementation for operations that set a value by index. Classes derived from the class can override this method to specify dynamic behavior for operations that access objects by a specified index. + + Provides information about the operation. + The indexes that are used in the operation. For example, for the sampleObject[3] = 10 operation in C# (sampleObject(3) = 10 in Visual Basic), where sampleObject is derived from the class, is equal to 3. + The value to set to the object that has the specified index. For example, for the sampleObject[3] = 10 operation in C# (sampleObject(3) = 10 in Visual Basic), where sampleObject is derived from the class, is equal to 10. + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown. + + + + Tries to get the array element with the specified indices (jagged array support). + + The jagged indices list. + The symbol. + true if found, false if the jagged indices specifiers is out-of-range. + + + + Dynamic Pointer Instance + + + + + Initializes a new instance of the class. + + The pointer instance. + + + + Returns the enumeration of all dynamic member names. + + A sequence that contains dynamic member names. + + + + Provides the implementation for operations that get member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as getting a value for a property. + + Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member on which the dynamic operation is performed. For example, for the Console.WriteLine(sampleObject.SampleProperty) statement, where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive. + The result of the get operation. For example, if the method is called for a property, you can assign the property value to . + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a run-time exception is thrown.) + + + + Gets the resolved reference of Pointer / Reference + + + The reference. + + + + + Dynamic Symbol object. + + The adds dynamic run time behaviour to the /. + That means e.g. for StructSymbols that .NET Properties are defined and dispatched at runtime + to the structs fields like they are defined in TwinCAT / ADS Types. + Indexed access to Array Symbols is another example where the dynamic runtime support takes place. + + + Sample for the dynamic resolution of Symbols: + + + + + + + + + + Initializes a new instance of the class. + + The symbol. + + + + Equals + + The object to compare with the current object. + true if the specified is equal to this instance; otherwise, false. + + + + Operator== + + The o1. + The o2. + The result of the operator. + + + + Implements the != operator. + + The o1. + The o2. + The result of the operator. + + + + Gets the HashCode of the Address + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + Sets a new instance name. + + Name of the instance. + This can only used as long the Instance is not added to a collection using the type binder classes. + + + + + Provides the implementation for operations that get member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as getting a value for a property. + + Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member on which the dynamic operation is performed. For example, for the Console.WriteLine(sampleObject.SampleProperty) statement, where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive. + The result of the get operation. For example, if the method is called for a property, you can assign the property value to . + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a run-time exception is thrown.) + + + + Returns the enumeration of all dynamic member names. + + A sequence that contains dynamic member names. + + + + Sets a new InstanceName InstancePath + + Instance name. + + + + Inner symbol object wrapped by this + + + + + + Inner symbol object wrapped by this + + The inner symbol. + + + + Gets a value indicating whether this instance has value (only the non VirtualInstances, what means the Symbols with locations). + + true if this instance has value; otherwise, false. + + + + Gets the notification settings. + + The notification settings. + + + + Gets the category. + + The category. + + + + Gets the parent Symbol + + The parent. + + + + Sets the parent of the Symbol + + The symbol. + + + + + Gets the SubSymbols of the + + + Only used for Array and Struct instances. Otherwise empty + + + + + Gets the SubSymbols Collection (internal variant) + + The sub symbols internal. + + + + + Gets a value indicating whether [sub symbols created]. + + true if [sub symbols created]; otherwise, false. + + + + + Creates the sub symbols. + + The parent. + SymbolCollection. + + + + + The normalized name of this . + + + + + Gets the normalized instance name (fixed name for dynamic property access that doesn't contain invalid characters), + + The normalized instance name (can be the same like + + + + + Reads the Symbols raw value + + System.Byte[]. + The raw value in bytes. + + + + Reads the Symbols raw value + + The timeout in ms. + System.Byte[]. + The raw value in bytes. + A negative timeout indicates that the Default Timeout for the communication will be used. + 0 means timeout is switched off. + + + + Handler function for reading Raw symbol value. + + The timeout. + System.Byte[]. + + + + Writes the Symbol raw Value + + The raw value. + + + + Writes the Symbol raw Value + + The raw value. + The timeout. + + + + Handler function for reading symbols raw value. + + The raw value. + The timeout. + + + + RawValueChanged delegate + + + + + Occurs when the RawValue of the has changed. + + + + + ValueChanged delegate. + + + + + Occurs when the (Primitive) value of the has changed. + + + + + + + + + + Reads the value of this . + + System.Object. + + + + + + + + + Reads the value of this . + + The timeout in ms. + System.Object. + The value. + Calling on primitive types, a call of this method will return the primitive value. + On complex types (structures and arrays) it depends on the settings what will happen. + In non dynamic modes: the raw byte Array will be returned, + in dynamic mode: A Value will be created on the fly. + A negative timeout indicates that the Default Timeout for the communication will be used. + 0 means timeout is switched off. + + + + Reads the Value of the + + The timeout in ms. + The symbol value. + The error code. + Calling on primitive types, a call of this method will return the primitive value. + On complex types (structures and arrays) it depends on the settings what will happen. + In non dynamic modes: the raw byte Array will be returned, + in dynamic mode: A Value will be created on the fly. + A negative timeout indicates that the Default Timeout for the communication will be used. + 0 means timeout is switched off. + + + + Handler function for the + + The timeout. + System.Object. + + + + + Handler function for the + + The timeout. + The value. + The error Code. + + + + + Writes the specified value to the . + + The value. + + + + + + + + + Writes the specified value to the . + + The value. + The timeout in ms. + Calling on primitive types, a call of this method will directly write this Value. + On complex types (structs and arrays) it depends on the settings what will happen. + In non dynamic modes: Only byte Arrays (of correct size) can be written) + in dynamic mode: A Value that represents the value will be accepted also. A negative timeout indicates that the Default + Timeout for the communication will be used. + 0 means timeout is switched off. + + + + + + + Writes the specified value to the . + + The value. + The timeout in ms. + The error code. + Calling on primitive types, a call of this method will directly write this Value. + On complex types (structs and arrays) it depends on the settings what will happen. + In non dynamic modes: Only byte Arrays (of correct size) can be written) + in dynamic mode: A Value that represents the value will be accepted also. A negative timeout indicates that the Default + Timeout for the communication will be used. + 0 means timeout is switched off. + + + + + + + Handler Function for writing value. + + The value. + The timeout. + + + + + Handler Function for writing value. + + The value. + The timeout. + + + + + Gets the access rights. + + The access rights. + + + + Gets the of the . + + The type of the data. + + + + Gets the name of the DataType that is used for this . + + The name of the type. + + + + Gets the name of the instance (without periods (.) + + The name of the instance. + + + + Gets the relative / absolute access path to the instance (with periods (.)) + + The instance path. + If this path is relative or absolute depends on the context. are using relative paths, s are using absolute ones. + + + + Gets the size of the in bits. + + The size of the bit. + + + + Gets a value indicating whether this Symbol is acontainer type. + + + true if this instance is container type; otherwise, false. + + + + + Gets a value indicating whether this instance is a primitive type. + + + true if this instance is primitive type; otherwise, false. + + + + + Gets a value indicating whether this is persistent. + + + true if this instance is persistent; otherwise, false. + + + + + Gets a value indicating whether this instance is static. + + + true if this instance is static; otherwise, false. + + + + + Gets a value indicating whether this is read only. + + + true if this instance is read only; otherwise, false. + + + + + Gets the size of the in bytes. + + + The size of the in bytes. + + + + + Gets the (aligned) size of of the Type/Instance in Bytes + + The size of the byte. + + + + Indicates that the Size of the Object is Byte aligned (BitSize % 8 == 0) + + true if this instance is byte aligned; otherwise, false. + + + + Gets a value indicating whether this instance is not basing on a full DataType but instead of some sort of bit mapping + + + true if this instance is bit mapping; otherwise, false. + + + + + Gets the value loader. + + The value loader. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets the Symbol Attributes + + The attributes. + + + + Indicates that the represents a Reference type (REFERENCE TO) + + true if is ReferenceTo, otherwise false. + + + + Gets or sets a value indicating whether an ancestor is a reference + + true if this instance is ancestor is reference; otherwise, false. + + + + Indicates that the represents a Pointer type (Pointer TO) + + true if is ReferenceTo, otherwise false. + + + + Gets the comment of the + + The comment. + + + + Gets the data type binder. + + The data type binder. + + + + + Gets the context mask. + + The context mask. + + + + Gets the value accessor. + + The value accessor. + + + + + Gets the connection bound to this + + The connection. + + + + Gets a value indicating whether this instance is recursive. + + true if this instance is recursive; otherwise, false. + + + + Reads the value of this Value into a new created instance of the managed type + + The tp. + Read value (System.Object). + + + + + + Handler function for reading ADS 'Any' Values. + + Managed type to read. + System.Object. + + + + Reads the value of this Value into the specified managed value. + + The managed object. + Read value (System.Object). + + + + + + Called when [update any value]. + + The value object. + System.Object. + + + + + + Writes the value represented by the managed value to this Value + + The managed value. + + + + + + Called when [write any value]. + + The managed value. + + + + + + Called when the RawValue of the symbol has been changed. + + The arguments. + + + + Called when the Value of the symbol has been changed. + + The arguments. + + + + Unwraps the DynamicSymbol to its static version (only for internal purposes) + + IValueSymbol. + The unwrap. + + + + + Interface ISymbolFactoryServices + + + + + + Gets the type binder. + + The type binder. + + + + Gets the symbol factory. + + The symbol factory. + + + + Gets the session object. + + The session or NULL if not available + + + + Interface ISymbolFactoryValueServices + + + + + + Gets the value accessor. + + The value accessor. + + + + + Interface ISymbolInfo + + + + + Gets the Symbol Path + + The path. + + + + Gets the data type Name + + The type of the data. + + + + Symbol Factory Interface + + + + + + Creates the Symbol with the specified resolver + + Symbol Entry. + The parent. + Symbol instance. + + + + Creates a single Array Element + + Array Index of the Element + Array Instance + Resolved Array type. + Array element + + + + Creates all Element Instances of the specified array parent symbol. + + The parent instance. + Resolved array type. + SymbolCollection. + + + + Creates a singgle Instance member on a struct parent + + Field + Parent Struct/Alias/Union + Instance member + Because the Alias type can act like a struct, the parent can be an IAliasInstance also. + + + + Creates the Member Instances collection for the specified parent instance + + The parent instance. + Parent Type (Struct/Alias/Union). + SymbolCollection. + + + + Creates the dereferenced Pointer instance + + Reference/Pointer type. + Parent Instance of the reference + Reference/Pointer instance. + + + + Creates the virtual structure. + + Name of the instance. + The instance path. + The parent. + Virtual struct instance + + + + Gets the factory services. + + The factory services. + + + + Initializes the the . + + The services. + + + + Gets the invalid characters that are not allowed to appear within the Instance Name + + The forbidden characters. + + + + + + Sets the invalid characters. + + The character. + + + + + Gets a value indicating whether s have invalid characters + + true if this instance has invalid characters; otherwise, false. + + + + + Extended Interface for (Support for Oversampling terminals) + + + + + + Creates the oversampling array Element. + + Parent Array Instance. + ISymbol. + + + + Instance factory for dynamic symbols (for internal use only) + + + + + + Initializes a new instance of the class. + + The inner (static) instance factory. + if set to true Array elements will not be cached. + inner + + + + Initializes the the . + + The services. + + + + Default Invalid Characters for dynamic symbols + + By default, the following characters are Invalid and are replaced by '_': + '^', ' ' (Space), '(', ')','-','.' + + + + + + Inner static/aggregated Factory + + + + + Creates the Symbol with the specified resolver + + Symbol Entry. + The parent. + Symbol instance. + + + + Wraps the specified Symbol into a dynamic wrapper + + The symbol. + IValueSymbol. + + + + Creates all Element Instances of the specified array parent symbol. + + The parent instance. + Type of the array. + SymbolCollection. + + + + Creates the array element + + Array Index of the Element + Array Instance + Resolved Array type. + Resolved Array Type + parent + + + + Creates the oversampling array Element. + + Array Instance. + ISymbol. + + + + Creates the member instances. + + The parent instance. + Type of the structure. + SymbolCollection. + + parentInstance + or + structType + + + + + Handler function creating the member instances. + + The parent instance. + Type of parent (Struct or Union). + SymbolCollection. + + + + Creates a single Instance member on a struct parent + + Field + Parent Struct/Alias/Union + Instance member + Because the Alias type can act like a struct, the parent can be an IAliasInstance also. + + + + Creates the reference/pointer instance. + + Reference/Pointer type. + Parent Instance of the reference + Reference/Pointer instance. + + + + Creates a dynamic wrapper for the specified (static) symbol. + + The symbol. + ISymbol. + + + + Creates a virtual structure instance + + Name of the instance. + The instance path. + The parent. + Virtual struct instance + + + + Gets the invalid characters that are not allowed to appear within the Instance Name + + The forbidden characters. + + + + + + Sets the invalid characters. + + The invalid chars. + + + + + Gets a value indicating whether this instance has invalid characters. + + true if this instance has invalid characters; otherwise, false. + + + + + Gets the factory services. + + The factory services. + + + + Navigator class to navigate through a tree of symbols. + + + + + + + Initializes a new instance of the class. + + The symbols to navigate on. + The separator character + symbols + + + + Initializes a new instance of the class. + + The symbols to navigate on. + symbols + + + + The Default path separator + + + + + the current path separator. + + + + + Gets or sets the path separator character. + + The path separator. + + + + Tries to get the symbol + + The path. + The found instance (out-parameter) + true if found, false if not contained. + + + + Tries to get the Subsymbol specified in the relative path + + Root instance (anchor instance). + The relative path (relative to the root). + Optional array index. + Found object (out-parameter). + true if found, false if not contained. + + + + Tries to get the specified subSymbol + + Root array instance. + The indices. + Found Instance (out-parameter) + true if found, false if not contained. + + + + Try to get Sub Symbol + + Root object. + The relative instance path. + Array Index + Found Symbol (out-parameter) + true if found, false if not contained. + + + + Converts ArrayIndices to string and position/subindex and vice versa (for internal use only) + + + + + + Convert indices to string. + + The indices. + The string representation (including brackets) + + + + Parses the Indices string to int array (as indices). + + The indices. + System.Int32[]. + + + + Creates the Index String part for the Oversampling SubElement + + Should be the element Count of the Dimension (one after the highest index). + The string representation. + + + + Converts the SubIndex / Position to String. + + The lower bounds. + The upper bounds. + Index of the sub. + System.String. + + + + Calculates an internal array that contains the factors/multiplicators of the different dimensions for position/subIndex calculations. + + The lower bounds. + The upper bounds. + System.Int32[]. + + lowerBounds + or + upperBounds + + Dimensions mismatch! + + + + Calculates the number of SubElements within the Array (including Oversampling Element) + + The lower bounds. + The upper bounds. + if set to true [oversampled]. + System.Int32. + + + + Converts subIndex / position to indices. + + Subindex / Position. + The array type. + Indices. + + + + Converts the subindex / position to the indices. + + Subindex / position. + The lower bounds. + The upper bounds. + if set to true [oversampled]. + Indices. + + + + Converts the indices specifier to the subindex / position. + + The indices (not normalized) + The array type. + The subindex / position. + + + + Converts the indices specifier to the subindex / position. + + The indices. + The type. + if set to true [normalized indices]. + System.Int32. + + + + Converts the indices specifier to the subindex / position. + + The indices. + The lower bounds. + The upper bounds. + if set to true [oversampled]. + The subindex / position. + indices + + + + Converts the indices specifier to the subindex / position. + + The indices. + The lower bounds. + The upper bounds. + if set to true [oversampled]. + Index of the sub. + The subindex / position. + + + + Checks the indices against lower/upper bounds. + + The indices. + The lower bounds. + The upper bounds. + if set to true the indices are normalized. + if set to true [oversampled]. + indices + Indices are out of range. + + + + Checks the indices whether they are inside bounds. + + The indices. + The Array type. + true if the indices are insinde bounds, false otherwise. + + + + Checks the indices whether they are inside bounds. + + The indices. + The Array type. + true if the indices are insinde bounds, false otherwise. + + + + Checks the indices whether they are inside bounds (only usable for first level of jagged arrays !!!) + + The indices. + The Array type. + true if the indices are insinde bounds, false otherwise. + + + + Checks the indices whether they are inside bounds. + + The indices. + The lower bounds. + The upper bounds. + if set to true [normalized]. + if set to true [oversampled]. + true if XXXX, false otherwise. + + lowerBounds + or + upperBounds + or + indices + + + Dimensions mismatch! + or + Dimensions mismatch! + + lowerBounds + or + upperBounds + or + indices + Dimensions mismatch! + or + Dimensions mismatch! + + + + Validates the indices. + + The indices. + The lower bounds. + The upper bounds. + if set to true [oversampled]. + true if XXXX, false otherwise. + + + + Validates the specified subElement index. + + The subElement index. + The lower bounds. + The upper bounds. + if set to true [oversampled]. + true if XXXX, false otherwise. + + + + Normalizes the indices. + + The indices (non normalized within bounds). + The lower bounds. + The upper bounds. + if set to true [oversampled]. + System.Int32[]. + + + + Normalizes the indices. + + The indices. + The type. + System.Int32[]. + + + + Determines whether the specified type is oversampled. + + The type. + true if the specified type is oversampled; otherwise, false. + + + + Denormalizes the indices. + + The normalized indices + The lower bounds. + The upper bounds. + if set to true [oversampled]. + System.Int32[]. + + + + Denormalizes the indices. + + The normalized indices. + The type. + System.Int32[]. + + + + Determines whether the subIndex specifies an oversampling element. + + SubIndex / Position.. + The lower bounds. + The upper bounds. + true if [is oversampling element] [the specified lower bounds]; otherwise, false. + + + + Determines whether the subIndex specifies an oversampling element. + + SubIndex / Position.. + The lower bounds. + The upper bounds. + true if [is oversampling element] [the specified lower bounds]; otherwise, false. + + + + Determines whether the indices specify the oversampling Element + + The indices. + The type. + true if [is oversampling index] [the specified indices]; otherwise, false. + + type + or + indices + + Specified type is not an Oversampling type;type + + + + Determines whether the indices specifies the oversampling element. + + The indices. + The lower bounds. + The upper bounds. + true if [is oversampling index] [the specified indices]; otherwise, false. + + lowerBounds + or + upperBounds + + Dimensions mismatch! + Oversampling arrays only support one Dimension! + + + + DataType String Parser class. + + + + + + Regular expression, parsing a Standard Array name with specified Dimension boundaries. + + + + + Regular expression, ,parsing a Dynamic Array name, where the Dimension boundaries are return as unparsed string. + + + + + Tries to parse the string. + + Name of the type. + The character count of the string (not including the /0) + if set to true the typename specifies an unicode (WSTRING) string + true if XXXX, false otherwise. + + + + Determines whether the specified type name is string. + + Name of the type. + true if the specified type name is string; otherwise, false. + + + + Tries to parse a dynamic array string + + Name of the Dynamic array. + List of Dimension specifications. + Base type string + true if XXXX, false otherwise. + The Problem is, that dynamic arrays contain expressions/Variables for Upper/Lower Bound and not the real Dimension values. + Therefore, this function parses the dimensions only as Dictionary (LowerBound/UpperBound --> Value), in a list for each dimension. + Furthermore, the base Type string of the ElementType is extracted. + + + + + Determines whether the specified type name is array. + + Name of the type. + true if the specified type name is array; otherwise, false. + + + + Tries to parse the pointer type + + Name of the Pointer type + Type of the referenced type. + true if XXXX, false otherwise. + typteName + + + + Determines whether the specified type name is pointer. + + Name of the type. + true if the specified type name is pointer; otherwise, false. + typteName + + + + Tries to parse a referenc type + + Name of the type. + Type of the referenced. + true if XXXX, false otherwise. + + + + Determines whether the specified type name is reference. + + Name of the type. + true if the specified type name is reference; otherwise, false. + + + + Tries to parse the string as SubRange type. + + Name of the type. + Type of the base. + The lower bound. + The upper bound. + true if XXXX, false otherwise. + + + + Determines whether the specified string is a subrange type. + + Name of the type. + true if [is sub range] [the specified type name]; otherwise, false. + + + + Determines whether the specified type name is a 'special type' (UXINT,XINT,XWORD). + + Name of the type. + true if [is special type name] [the specified type name]; otherwise, false. + + + + Determines whether the specified Type name is an (complex) intrinsic type + + Name of the type. + true if [is intrinsic type] [the specified type name]; otherwise, false. + + + + Data Type container interface + + Data Type type. + + + + Determines whether the container contains the specified . + + The name. + true if contained; otherwise, false. + + + + Tries to get the specified from the . + + The name. + The type (Out parameter) + true if found + + + + Gets the with the specified name. + + The name. + T. + + + + Data type collection + + + + + + Internal list of data types + + + + + Dictionary (Type Name --> DataType) + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The types. + + + + Clones this instance. + + DataTypeCollection<T>. + + + + Determines the Index of the specified . + + The item. + The index of if found in the list; otherwise, -1. + + + + Inserts an into the . + + The index. + The item. + + + + Removes the object at the specified index. + + The index. + + + + Gets or sets the at the specified index. + + The index. + T. + + + + + Gets the with the specified name. + + The name. + T. + + + + Determines whether the container contains the specified . + + The name. + true if contained; otherwise, false. + + + + Tries to get the specified from the . + + The name. + The type (Out parameter) + true if found + + + + Determines the specified + + The name. + The if found, otherwise NULL + + + + Adds the specified item to the collection. + + The item. + + + + Adds a range of types + + The types. + + + + Clears the collection. + + + + + Determines whether this contains the specified . + + The item. + true if [contains] [the specified item]; otherwise, false. + + + + Copies the data types to the specified array, starting at the array index. + + The array. + Index of the array. + + + + Gets the count of contained s. + + The count. + + + + Indicates that the is readonly + + + + + Gets a value indicating whether this instance is read only. + + true if this instance is read only; otherwise, false. + + + + Removes the specified . + + The item. + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + Gets the enumerator. + + A that can be used to iterate through the collection. + + + + Returns an enumerator that iterates through a collection. + + An object that can be used to iterate through the collection. + + + + Converts the into a + + ReadOnlyDataTypeCollection<T>. + + + + ReadOnly DataType collection + + + + + + Initializes a new instance of the class. + + The coll. + + + + Initializes a new instance of the class. + + The collection. + + + + Determines whether the specified name contains type. + + The name. + true if the specified name contains type; otherwise, false. + + + + Tries to get the Type with the specified name out of the collection. + + The name. + The type. + true if found + + + + Gets the element with the specified type name. + + The name. + T. + + + + Generic InstanceColleciton interface. + + + + + + Determines whether this collection contains an instance with the specified instance path. + + The instance path. + + true if this collection contains the specified instance path; otherwise, false. + + + + + Determines whether this collection contains an instance with the specified instance name. + + Name of the instance. + + true if this collection contains the specified instance path; otherwise, false. + + + + + Gets the with the specified instance path. + + + + + + Tries to get the specified instance. + + The instance path. + The symbol. + true if the is found; otherwise, false + + + + Tries to get the specified instance by name. + + Name of the instance. + The found symbols. + true if the is found; otherwise, false + + + + Gets the by instance path. + + The instance path. + T. + + + + Gets the by instance name. + + Name of the instance. + IList<T>. + + + + Gets the . + + The mode. + + + + Enum InstanceCollectionMode + + + + + InstanceCollection{T} is organized with InstanceNames instead of Instance Paths + + + + + InstanceCollection{T} is organized with InstancePaths in a flat list + + + + + InstanceCollection{T} is organized with InstancePaths in a Hierarchy (Only Root objects appearing) + + + + + Base class for object collections (abstract). + + + + + + The _list + + + + + The _path dictionary + + + + + Initializes a new instance of the class. + + The mode. + + + + The mode this is working in. + + + + + Initializes a new instance of the class. + + The copy collection + The mode. + + + + Determines the index of the specified . + + The item. + The index of if found in the list; otherwise, -1. + + + + Inserts the specified at the specified index. + + The instance. + The item. + + index + or + index + + + + + + Removes the at the specified index. + + The index. + + + + Gets or sets the at the specified index. + + The index. + T. + + + + + Gets the with the specified instance path. + + The instance path or Instance Name (dependent of setting) + T. + + + Dependent what this contains configured by the + the instance specifier should be the or the . + + + + + Adds the specified item. + + The item. + + + + Adds the specified items to this collection. + + The items. + + + + Clears this instance. + + + + + Determines whether this collection contains the specified + + The item. + true if [contains] [the specified item]; otherwise, false. + + + + Determines whether this collection contains an with the specified InstanceName / InstancePath + + The instance path or Instance Name (dependent of setting) + true if [contains] [the specified instance path]; otherwise, false. + instancePath + + + + + Tries to get the . of the specified path. + + The instance path or Instance Name (dependent of setting) + The symbol. + true if the is found; otherwise, false + instancePath + + + + + Tries to get the Symbol Hierarchically from a dotted instance path. + + The instance path. + The symbol. + true if XXXX, false otherwise. + If we have provider.SymbolsInternal root object, the Roots are organized from different (virtual) namespaces. + The need is to find the symbol independent independent of the root has a dotted instance path, or it is organized (bound) in a ChildInstance level. + + + + + Tries to get the SubSymbol from split InstancePath + + The collection. + The path split. + Index of the split. + The symbol. + true if XXXX, false otherwise. + + + + Copies this to the specified array. + + The array. + Index of the array. + + + + Gets the collection count. + + The count. + + + + Gets a value indicating whether this instance is read only. + + true if this instance is read only; otherwise, false. + + + + Gets the . + + The mode. + + + + Removes the specified item. + + The item. + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + Gets the enumerator. + + A that can be used to iterate through the collection. + + + + Returns an enumerator that iterates through a collection. + + An object that can be used to iterate through the collection. + + + + Converts the to an + + ReadOnlyInstanceCollection<T>. + + + + Tries to get Instnaces by name. + + Name of the instance. + The instances found. + true if the is found; otherwise, false + + + + Determines whether the specified instance name contains name. + + Name of the instance. + true if the specified instance name contains name; otherwise, false. + + + + + Gets the by instance path. + + The instance path or Instance Name (dependent of setting) + T. + Path not found!;instancePath + + + + Gets the name of the instance by. + + Name of the instance. + IList<T>. + Name not found!;instanceName + + + + ReadOnly Instance collection + + + + + + Gets the . + + The mode. + + + + Initializes a new instance of the class. + + The coll. + + + + Mode of the + + + + + Determines whether the contains an instance with the specified instance path. + + The instance path. + + true if contains the specified instance path; otherwise, false. + + + + + Gets the element with the specified instance path. + + The instance path. + The instance if contained. + + + + Tries to get the instance with the specified instance path. + + The instance path. + The instance. + true, if found, false if not contained. + + + + Tries to get the instance by name. + + Name of the instance. + The found symbols (out-parameter) + true, if found; false if not contained. + + + + Determines whether the specified instance is contained. + + Name of the instance. + true, if instance name is found. + + + + Gets the by instance path. + + The instance path. + T. + + + + Gets the by instance name. + + Name of the instance. + IList<T>. + + + + Interface ISymbolCollection + + + + + + + Interface represents a collection of objects. + + + + + + Initializes a new instance of the class. + + The mode. + + + + Initializes a new instance of the class. + + The collection to be copied. + The mode. + + + + Returns a Read only version of this collection (shallow copy). + + ReadOnlySymbolCollection<T>. + + + + Clones this instance. + + SymbolCollection<T>. + + + + Try to get instances with predicate function + + The predicate function + if set to true the symbol hierarchy will be searched recursively. + The instances. + true if XXXX, false otherwise. + + + + Read only symbol collection. + + + + + + Initializes a new instance of the class. + + The coll. + + + + Namespace collection interface + + Namespace + Datatype + + + + + Determines whether the specified namespace name is contained by the collection. + + Name of the namespace. + true if the specified namespace is contained; otherwise, false. + + + + Try to get the specified namespace. + + Name of the namespace. + The found namespace (out-parameter) + true if XXXX, false otherwise. + + + + Gets the specified data type. + + Name of the namespace. + true if found, false if not contained. + + + + Tries to get the specified type + + Name of the type. + Data Type (out-parameter). + true if found, false if not contained. + + + + Tries to get the data type by full name. + + Data types full name (including namespace) + Data Type (out-parameter) + true if found, false if not contained. + + + + Gets all types included in all namespaces. + + All types. + + + + Generic class for Namespace collections + + + + + + + Initializes a new instance of the class. + + + + + List of Namespaces + + + + + Dictionary NamespaceName --> INamespace + + + + + Dictionary FullPath -> IDataType + + + + + Determines the index of a specific item in the . + + The object to locate in the . + + The index of item if found in the list; otherwise, -1. + + + + + Inserts an item to the at the specified index. + + The zero-based index at which item should be inserted. + The object to insert into the . + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + + + Gets or sets the element at the specified index. + + The index. + + + + + + Gets or sets the element at the specified index. + + The STR. + + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if item is found in the ; otherwise, false. + + + + + Copies to. + + The array. + Index of the array. + + + + Gets the number of elements contained in the . + + The number of elements contained in the . + + + + Read only indicator + + + + + Gets a value indicating whether the is read-only. + + true if the is read-only; otherwise, false. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + + true if item was successfully removed from the ; otherwise, false. This method also returns false if item is not found in the original . + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Determines whether the specified name contains namespace. + + The name. + + true if the specified name contains namespace; otherwise, false. + + + + + Tries to get the namespace object + + The name. + The namespace object (out-parameter) + true if found, false if not contained. + + + + Tries to get the specified type. + + Data type name + The found data type (out-parameter). + true if found, false if not contained. + typeName + + + + + Tries to get the data type by full name. + + DataTypes full name. + Found data type (out-parameter). + true if found, false if not contained. + + + + Gets all types included in all namespaces. + + All types. + + + + Gets all types included in all namespaces + + All types internal. + + + + + Read Only namespace collection + + + + + + + Initializes a new instance of the class. + + The coll. + + + + Determines whether this collection contains a namespace with the specified name. + + The name of the namespace + + true if the namespace is contained; otherwise, false. + + + + + Tries to get the namespace with the specified name. + + Namespace name. + The found namespace (out-parameter). + true if found, false if not contained. + + + + Gets the element at the specified index. + + The name. + + + + + Tries to get the specified data type. + + Name of the type. + Data Type (out-parameter). + true if found, false if not contained. + + + + Tries to get the specified type (by fullName) + + FullName of the data type. + Found Data type (out-parameter). + true if found, false if not contained. + + + + Gets all types included in all namespaces. + + All types. + + + + Symbol provider interface + + Namespace type + DataType type + Symbol type + + + + Get the Namespaces of DataTypes for this Symbol provider + + ReadOnly collection of the namespaces. + + + + Gets the name of the root namespace + + The namespace. + + + + Gets the root (main) namespace of the Symbol provider. + + The root namespace. + + + + Gets the (root) symbols of the Symbol provider. + + Read only collection of the Symbols + + + + Gets all data types from all Namespaces + + The data types. + + + + Symbol provider interface + + Namespace type + DataType type + Symbol type + + + + + Get the Namespaces of DataTypes for this Symbol provider + + ReadOnly collection of the namespaces. + + + + Gets the (root) symbols of the Symbol provider. + + Read only collection of the Symbols + + + + Gets all data types from all Namespaces + + The data types. + + + + Interface INamespaceInternal + + DataType + + + + + Registers the the specified DataType + + The type. + true if XXXX, false otherwise. + + + + Registers the types. + + The types. + + + + Access to the Internal DataTypes collection (read/write) + + + + + Namespace interface + + DataType class used within this Namespace interface + + + + Gets the name/ identifier of the Namespace + + The name. + + + + Data types organized by the + + The data types. + + + + Mask Flagset to specify filters for . + + + + + Uninitialized / None + + Doesn't iterate over complex types + + + + + Iterates over Subelements of Structs + + + + + Iterates over Elements of Arrays + + + + + Iterates over Subelements of Unions + + + + + Iterates over Pointer SubElements + + + + + Iterates over References + + + + + Iterates over All Complex/Combined types + + + + + Iterator class for enumerations of Symbols. + + Concrete type. + + This iterator class can be used to iterate over collections of symbol trees (root symbols + sub symbols). + By constructor the user can choose if the iterator works recursively within the symbol + tree and optionally a filter function to select only specific symbols (predicate). + + + The following example shows how to determine, browse and filter symbols. + + + + + + The Symbol + + + + + Initializes a new instance of the class. + + Input collection (root objects). + if set to true, the iterator works recursively over all subsymbols. + The predicate. + + + + Initializes a new instance of the class. + + The root collection + if set to true, the iterator works recursively over all subsymbols. + + + + Initializes a new instance of the class. + + The root symbols. + The predicate. + + + + + Initializes a new instance of the class. + + The root symbols. + + + + Gets or sets a value indicating whether the iterator returns also instances of Array elements (default: true) + + true if [iterate array elements]; otherwise, false. + + + + + Gets or sets a value indicating whether the iterator returns also members of structs (default: true) + + true if [iterate struct members]; otherwise, false. + + + + Symbol Iterator mask + + + + Gets or sets the + + The mask. + This property can be used for prefiltering the iterator + without using a predicate function. + + + + + Gets or sets a value indicating whether the iterator checks for Symbol recursions (true by default). + + true if recursion checking, false switched off check. + + + + Gets the enumerator that enumerates through a collection + + A that can be used to iterate through the collection. + + + + The Filter Function + + + + + Indicates that the subsymbols of the parent should be iterated. + + The type. + true if XXXX, false otherwise. + + + + Indicates that the subsymbols of the parent should be iterated. + + The type. + true if XXXX, false otherwise. + + + + Returns an enumerator that iterates through a collection. + + An object that can be used to iterate through the collection. + + + + Symbol Loader interface + + + + + Gets the build in types. + + The build in types. + + + + Gets or sets the access Method + + The access method. + + + + Dynamic symbol loader interface + + + + + Gets the symbols (late bound as dynamic objects) + + The dynamic symbols. + + + + Interface for Notification Settings + + + + + Class SymbolFactoriesContainer (for internal use only) + + + + + + Initializes a new instance of the class (for internal use only). + + The binder. + The loader. + The accessor. + The session. + binder + or + loader + or + accessor + + + + + Type Binder + + + + + Symbol Factory + + + + + Value accessor + + + + + The session + + + + + Gets the type binder. + + The type binder. + + + + Gets the symbol factory. + + The symbol factory. + + + + Gets the value accessor. + + The value accessor. + + + + + Gets the session. + + The session or NULL if not available + + + + + Category of a DataType / Instance + + + + + Uninitialized / NotProcessed (0) + + + + + Uninitialized / NotProcessed (0) + + + + + Simple / Base Data Type (1) + + + + + Alias data type (2) + + + + + Enumeration data type (3) + + + + + Array data type (4) + + + + + Structure data type (5) + + + + + Function block (POU) (6) + + + + + Program (POU) (7) + + + + + Function (POU) (8) + + + + + SubRange (9) + + + + + Fixed length string (10) + + + + + Bitset (12) + + + + + Pointer type (13) + + + + + Union type (14) + + + + + Reference type (15) + + + + + The interface + + + + + Base interface for objects representing data types + + + + + Gets the ID of the DataType + + The id. + + + + Gets the Data Type category + + The category. + + + + Gets the name of the Data Type (without namespace) + + The name. + + + + Gets the namespace string within the exists. + + The namespace. + + + + Gets the full name of the (Namespace + Name) + + The full name. + + + + Gets a value indicating whether this is primitive + + + true if this instance is primitive; otherwise, false. + + + + + Gets a value indicating whether this is a container type + + Container Types are all types that contain SubElements like + + + + + + + + + + and the and types, if they have a container type as base type. + + + true if this instance is container type; otherwise, false. + + + + + + Gets a value indicating whether this is a pointer type + + Pointer types can be dereferenced with the '^' operator. + + true if this instance is pointer type; otherwise, false. + + + + + + Gets a value indicating whether this is a reference type + + Reference types can be dereferenced. + + true if this instance is container type; otherwise, false. + + + + + + Gets the attributes of the + + The attributes. + + + + Gets the comment behind the variable declaration. + + Comment behind the variable declaration. + + + + Enum DataTypeResolveStrategy + + + + + + Resolve only chains of Alias(es) + + + + + Resolve chains of Alias(es) and Reference(es) + + + + + Alias/Reference Resolve interface + + + + + + Resolves this this DataType (if Alias/Reference) + + Resolved IDataType. + This interface is used for automatic Resolution of Alias/Reference within symbols. + + + + Bindable interface for TypeBinder supported Types/Symbols + + + + + + Gets a value indicating whether this instance is bound. + + true if this instance is bound; otherwise, false. + + + + + Binds this bindable object via the specified + + The binder. + + + + + Class DataTypeEventArgs. + + + + + + The data types + + + + + Initializes a new instance of the class. + + The types. + + + + Class DataTypeNameEventArgs. + + + + + + The type name + + + + + Initializes a new instance of the class. + + Name of the type. + + + + Interface IManagedMappableType specifies types that are directly mappable to .NET Types (Managed Types) + + + + + + Gets the corresponding .NET Type if attached. + + Dot net type. + + + + Interface for an union data type. + + + + + + Gets a readonly collection of the Members of the . + + The members as readonly collection. + If the is derived, only the extended members are returned. To get + all supported members down the inheritance chain, use the property. + + + + Interface representing Struct data types + + + + + Gets a readonly collection of the Members of the . + + The members as readonly collection. + If the is derived, only the extended members are returned. To get + all supported members down the inheritance chain, use the property. + + + + Gets the the Name of the Base class (if derived) + + Empty if not derived. + + + + Gets the structs Base Type (Null if not derived). + + + + + Gets all members (down the derivation hierarchy) + + All members. + + + + Gets a value indicating whether this instance has RPC methods (Struct types only) + + true if this instance has RPC methods; otherwise, false. + The DataType (Structure) must be marked with the PlcAttribute 'TcRpcEnable' to enable RpcMethods, otherwise + RpcMethods are not passed through to the ADS symbolic information. + + + + Interface representing an RPC callable + + + + + Gets the Method descriptions for the + + The DataType (Structure) must be marked with the PlcAttribute 'TcRpcEnable' to enable RpcMethods, otherwise + RpcMethods are not passed through to the ADS symbolic information. + + The RPC methods. + + + + Interface representing a reference/pointer type + + + + + Gets the the referenced type. + + The type of the referenced. + + + + Gets the Category of the (completely) resolved Symbol. + + The resolved category. + + + + Get the ByteSize of the (completely) resolved Symbol + + The size of the resolved byte. + + + + Gets the (completely) resolved type + + The type of the resolved symbol + + + + Interface representing a pointer type + + + + + Gets the the referenced type. + + The type of the referenced. + + + + Interface representing a SubRange type + + + + + Gets the the base type. + + The type of the referenced. + + + + Interface representing a SubRange type + + + + + Gets the lower bound. + + The lower bound. + + + + Gets the upper bound. + + The upper bound. + + + + Common Enum type interface + + + + + Gets the values of the + + T[]. + + + + Gets the filed names of the + + System.String[]. + + + + Parses a value name of the and returns the value (as base type) + + The value name. + T. + + + + Parses the value from value name. + + The value name. + The value. + true if value name was found, false otherwise. + + + + Determines whether the enum values contains the specified name + + The name. + true if contains the value, otherwise, false. + + + + Returns a that represents the specified value. + + The value. + A that represents this value. + + + + Enumeration specification (if enum) + + The enum specification. + + + + Interface representing an enum type + + Base type of the Enum + + + + Gets the values of the + + T[]. + + + + Gets the filed names of the + + System.String[]. + + + + Parses a name of the and returns the value (as base type) + + The name. + T. + + + + Parses the value from value name. + + The value name. + The value. + true if value name was found, false otherwise. + + + + Determines whether the enum values contains the specified name + + The name. + true if contains the value, otherwise, false. + + + + Returns a that represents the specified value. + + The value. + A that represents this value. + + + + Enumeration specification (if enum) + + The enum specification. + + + + Interface representing an Alias Type + + + + + Gets the BaseType name + + + + + Gets the Base Type + + + + + Enum PrimitiveTypeFlags + + + + + None / Uninitialized + + + + + System Type like Byte / Word / DWORD + + + + + Primitive Type is Unsigned + + + + + Boolean Value (maps to true and false) + + + + + Floating Point + + + + + Type represents a Date + + + + + Type represents a Time + + + + + Numeric value + + + + + Bitset + + + + + Numeric / Unsigned Mask + + + + + Date / Time Mask + + + + + Special type Mask + + UXINT, XINT, XWORD, PVOID + + + + Interface IPrimitiveType + + + + + + Indicates types of different PrimitiveTypes with flags. + + + + + Interface representing a single Dimension of an ArrayType. + + + + + Gets the number of elements within that . + + The element count. + + + + Gets the lower bound of elements within that . + + The lower bound. + + + + Interface representing an array DataType. + + + + + Gets the dimensions as read only collection. + + The dimensions. + + + + Gets the type of the contained elements. + + The type of the element. + + + + Gets a value indicating whether this instance is jagged. + + true if this instance is jagged; otherwise, false. + + + + Gets the jagged level (Non-Jagged Array have level 1) + + The jagged level. + + + + Gets a value indicating whether this type is an oversampled Array type. + + true if this instance is oversampled; otherwise, false. + + + + Interface representing a string + + + + + Gets the number of characters within the string (when fixed length). + + The length if fixed length, otherwise -1 + + + + Gets the encoding of the String (Encoding.Default (STRING) or Encoding.UNICODE (WSTRING)) + + The encoding. + + + + Gets a value indicating whether the string is of fixed length. + + true if this instance is fixed length; otherwise, false. + + + + Specifies a single field/member of a Struct DataType. + + + + + Gets the Parent Struct/Union of this . + + The type of the parent. + + + + Specifies a single field/member of a Struct DataType. + + + + + Gets the offset of the within the parent in bits or bytes dependent on IsBitType. + + The bit offset. + + + + Gets the byte offset. + + The byte offset. + + + + Gets the bit offset. + + The bit offset. + + + + Interface specifying instance objects. + + + + + Gets the of the . + + The type of the data. + + + + Gets the name of the DataType that is used for this . + + The name of the type. + + + + Gets the name of the instance (without periods (.) + + The name of the instance. + + + + Gets the relative / absolute access path to the instance (with periods (.)) + + The instance path. + If this path is relative or absolute depends on the context. are using relative paths, s are using absolute ones. + + + + Gets a value indicating whether this is static. + + + true if this instance is static; otherwise, false. + + + + + Indicates that the represents a Reference type (REFERENCE TO) + + true if is ReferenceTo, otherwise false. + + + + Indicates that the represents a Pointer type (Pointer TO) + + true if is ReferenceTo, otherwise false. + + + + Gets the comment of the + + The comment. + + + + Interface IAttributedInstance + + + + + + Gets the Type Attributes. + + The attributes. + + + + Interface IInstanceInternal + + + + + + Sets a new instance name. + + Name of the instance. + This can only used as long the Instance is not added to a collection using the type binder classes. + + + + Interface describing a Process Image Address + + + + + Gets the index group of the Symbol + + The index group. + + + + Gets the index offset of the Symbol + + The index offset. + + + + Interface IBitSize + + Specifies the Bitness of the the object and the bit resp. byte sizes. + + + + Gets the size of the object in bytes or Bits dependant on + + The size of the bit. + + + + Gets a value indicating whether this instance is not basing on a full DataType but instead of some sort of bit mapping + + + true if this instance is bit mapping; otherwise, false. + + + + + Gets the size of the in bits. + + The size of in bits. + + + + Gets the (aligned) size of of the Type/Instance in Bytes + + The size of the byte. + + + + Indicates that the Size of the Object is Byte aligned (BitSize % 8 == 0) + + true if this instance is byte aligned; otherwise, false. + + + + Interface specifying Symbols ( + + + + + Gets the Symbol/Datatype Category + + The category. + + + + Gets the parent Symbol + + The parent. + + + + Gets the SubSymbols of the + + Used for Array, Struct, Pointer and Reference instances. Otherwise empty + + + + + Gets a value indicating whether this Symbol is a container type. + + + true if this instance is container type; otherwise, false. + + + + + Gets a value indicating whether this instance is a primitive type. + + + true if this instance is primitive type; otherwise, false. + + + + + Gets a value indicating whether this is persistent. + + + true if this instance is persistent; otherwise, false. + + + + + Gets a value indicating whether this is read only. + + + true if this instance is read only; otherwise, false. + + + + + Gets a value indicating whether this instance is recursive. + + true if this instance is recursive; otherwise, false. + + + + Bindable Symbol interface (for internal use only) + + + + + + Sets the parent of the Symbol + + The symbol. + + + + Symbol Value Access interface + + + + + + Gets the factory services. + + The factory services. + + + + Interface IValueAccessorProvider + + + + + + Gets the value accessor. + + The value accessor. + + + + + Interface IValueRawSymbol + + + + + Gets a value indicating whether this has a value. + + true if this instance has value; otherwise, false. + A VirtualSymbol does not support values, but in terms of the definition, is a + + + + Reads the raw value of the (Ads Read / Write) + + System.Byte[]. + The raw value. + + + + Reads the raw value of the (Ads Read / Write) + + The timeout in ms. + System.Byte[]. + The raw value. + A negative timeout indicates that the Default Timeout for the communication will be used. + 0 means timeout is switched off. + + + + Writes the raw value of the (Ads Read / Write) + + The value as byte array. + The value. + + + + Writes the raw value of the (Ads Read / Write) + + The value as byte array. + The timeout. + The value. + A negative timeout indicates that the Default Timeout for the communication will be used. + 0 means timeout is switched off. + + + + Occurs when the RawValue of the has changed. + + + + + Gets the value accessor. + + The value accessor. + + + + + Enum specifying Access Rights to symbols + + + + + None / Uninitialized + + + + + Read-Access + + + + + Write-Access + + + + + Right to Invoke Methods / RPC Invoke + + + + + Read / Write Access + + + + + Full Access + + + + + Interface for a that supports values. + + + + + + Occurs when the (Primitive) value of the has changed. + + + + + Gets or sets the notification settings. + + The notification settings. + The will be inherited from if the setting is not overwritten. + + + + + Reads the Value of the + + System.Object. + The value. + Calling on primitive types, a call of this method will return the primitive value. + On complex types (structures and arrays) it depends on the settings what will happen. + In non dynamic modes: the raw byte Array will be returned, + in dynamic mode: A Value will be created on the fly. + + + + Reads the Value of the + + The timeout in ms. + System.Object. + The value. + Calling on primitive types, a call of this method will return the primitive value. + On complex types (structures and arrays) it depends on the settings what will happen. + In non dynamic modes: the raw byte Array will be returned, + in dynamic mode: A Value will be created on the fly. + A negative timeout indicates that the Default Timeout for the communication will be used. + 0 means timeout is switched off. + + + + Writes the Value of the + + The value. + Calling on primitive types, a call of this method will directly write this Value. + On complex types (structs and arrays) it depends on the settings what will happen. + In non dynamic modes: Only byte Arrays (of correct size) can be written) + in dynamic mode: A Value that represents the value will be accepted also. + + + + + Writes the Value of the + + The value. + The timeout in ms. + Calling on primitive types, a call of this method will directly write this Value. + On complex types (structs and arrays) it depends on the settings what will happen. + In non dynamic modes: Only byte Arrays (of correct size) can be written) + in dynamic mode: A Value that represents the value will be accepted also. A negative timeout indicates that the Default + Timeout for the communication will be used. + 0 means timeout is switched off. + + + + Gets the access rights. + + The access rights. + + + + Interface for a that supports values. + + + + + + Gets the connection that produces values for this + + The connection object. + + + + Interface IValueSymbol3 + Implements the + + + + + + Reads the Value of the + + The timeout in ms. + The symbol value. + The error code. + Calling on primitive types, a call of this method will return the primitive value. + On complex types (structures and arrays) it depends on the settings what will happen. + In non dynamic modes: the raw byte Array will be returned, + in dynamic mode: A Value will be created on the fly. + A negative timeout indicates that the Default Timeout for the communication will be used. + 0 means timeout is switched off. + + + + Writes the Value of the + + The value. + The timeout in ms. + The error code. + Calling on primitive types, a call of this method will directly write this Value. + On complex types (structs and arrays) it depends on the settings what will happen. + In non dynamic modes: Only byte Arrays (of correct size) can be written) + in dynamic mode: A Value that represents the value will be accepted also. A negative timeout indicates that the Default + Timeout for the communication will be used. + 0 means timeout is switched off. + + + + Interface IValueAnySymbol + + + + + + Reads the value of this Value into a new created instance of the managed type + + The tp. + Read value (System.Object). + + + + + + Reads the value of this Value into a new created instance of the managed type + + The tp. + The timeout in ms. + Read value (System.Object). + + + + + + Reads the value of this Value into the specified managed value. + + The managed object. + Read value (System.Object). + + + + + + Reads the value of this Value into the specified managed value. + + The managed object. + The timeout. + Read value (System.Object). + + + + + + Writes the value represented by the managed value to this Value + + The managed value. + . + . + + + + Writes the value represented by the managed value to this Value + + The managed value. + The timeout in ms. + . + . + + + + Interface ISymbolValueChangeNotify + + + + + Called when the RawValue of the symbol has been changed. + + The arguments. + + + + Called when the Value of the symbol has been changed. + + The arguments. + + + + Event args for the event. + + + + + Initializes a new instance of the class. + + The symbol. + The TwinCAT Real time time stamp (UTC) + The local user mode time stamp (UTC) + + + + Symbol that caused the event. + + + + + Notification Time stamp of the Real time System in UTC + + + + + Notification Time stamp of the local system (user/desktop time) in UTC + + + + + Event args for the event. + + + + + Initializes a new instance of the class. + + The symbol. + The value. + The TwinCAT Real time time stamp (UTC) + The local user mode time stamp (UTC) + + + + New Value (byte[]) + + + + + Event args for the event. + + + + + Initializes a new instance of the class. + + The symbol. + The value. + The TwinCAT Real time time stamp (UTC) + The local user mode time stamp (UTC) + + + + + Initializes a new instance of the class. + + The symbol. + The value. + The TwinCAT time stamp (UTC) + + + + + The new received Value + + + + + Interface representing an array instance + + + + + Gets the contained Array Elements as read only collection. + + The elements. + + + + Gets the with the specified indices. + + + The . + + The indices. + + + + + Tries to get the array element with specified indices (only first level on jagged arrays) + + The indices. + The found Array element symbol (out-parameter). + true if found, false if the indices specifiers is out-of-range. + + + + Gets the dimensions as read only collection. + + The dimensions. + + + + Gets the type of the contained elements. + + The type of the element. + + + + Tries to get the array element with the specified indices (jagged array support). + + The jagged indices list. + The symbol. + true if found, false if the jagged indices specifiers is out-of-range. + + + + Interface IOversamplingArrayInstance + + + + + + Gets the oversampling element. + + The oversampling element. + + + + Interface for an Instance of the . + + + + + + Gets the field instances of the Union + + The field instances. + + + + Interface representing an instance of a + + + + + Gets the member instances of the Struct Instance. + + The member instances. + + + + Gets a value indicating whether this instance has RPC methods + + true if this instance has RPC methods; otherwise, false. + If the struct instance supports RPC Methods, then the instance class is also + supporting : + + + + + + + + Interface IStringInstance + + + + + + + Gets the encoding of the String (Encoding.Default (STRING) or Encoding.UNICODE (WSTRING)) + + The encoding. + + + + Gets a value indicating whether this instance is a string of static length + + true if this instance is of static length; otherwise, false. + + + + Virtual Struct instance interface. + + + Virtual struct instance are used to create a TreeView from the flat list of symbols. + + + + Adds the member. + + The member instance. + The parent struct instance. Usually the this pointer. + + + + Interface representing an instance of an + + + + + Gets the Category of the Referenced Symbol. + + The resolved category. + + + + Get the ByteSize of the (completely) resolved Symbol + + The size of the resolved byte. + + + + Gets the referenced type + + The type of the referenced type + This is no complete resolvement, only the next level. The referenced type can be a reference again. + + + + Gets the (completely) resolved type + + The type of the resolved symbol + + + + Interface IReferenceInstanceAccess + + + + + + + Tries to get the array element (only in case of ResolvedCategory ARRAY) + + The indices. + The found Array element symbol (out-parameter). + true if found, false if the indices specifiers is out-of-range. + + + + Tries to get the array element with the specified indices (jagged array support). + + The jagged indices list. + The symbol. + true if found, false if the jagged indices specifiers is out-of-range. + + + + Interface representing an instance of an + + + + + Gets the resolved reference of Pointer / Reference + + + The reference. + + + + + Interface representing an instance of an . + + + + + + Gets access to the Internal Symbol/DataType/Namespace collections. + + + + + + + Get the Namespaces of DataTypes for this Symbol provider + + ReadOnly collection of the namespaces. + + + + Gets the (root) symbols of the Symbol provider. + + Read only collection of the Symbols + + + + Gets all data types from all Namespaces + + The data types. + + + + Symbol Provider interface. + + + + + Get the Namespaces of DataTypes for this Symbol provider + + ReadOnly collection of the namespaces. + + + + + Gets the name of the root namespace + + The namespace. + + + + Gets the root (main) namespace of the Symbol provider. + + The root namespace. + + + + + Gets the (root) symbols of the Symbol provider. + + Read only collection of the Symbols + + + + Gets all data types from all Namespaces + + The data types. + + + + Interface for ADS attributes + + + + + Name of the Attribute + + The name. + + + + Gets the value of the attribute + + The value. + + + + Interface for resolving data type names --> objects. + + + + + + Tries to resolve the type (parses it if not found and adds it to the resolver if necessary). + + The name. + The type. + true if XXXX, false otherwise. + + + + Gets the size of the platform pointer (in Bytes) + + The size of the platform pointer. + + + + The ITypeBinder interface binds DataTypes and Symbols to its namespace. + + + + + + Registers the specified type. + + The type. + + + + Registers the specified types. + + The type. + + + + Binds the specified symbol to the Resolver (Registering and linking Parents). + + The child symbol. + the parent Symbol where the subSymbol was bound to + + + + Gets the Symbol provider. + + The provider. + + + + Handler function called when a type / types are generated + + The type. + + + + Handler function called when a type / types are generated + + The types. + + + + Handler function when a type name cannot be resolved. + + Name of the type. + + + + Interface ITypeBinderEvents + + Used for providing events about TypeGeneration and TypeResolution Errors. + + + + + Occurs when new types are generated + + + + + Occurs when a typename cannot be resolved. + + + + + Interface ITypeBinderEvents + + Used for providing events about TypeGeneration and TypeResolution Errors. + + + + + ADS Attribute + + + + + Attribute Name + + + + + Attribute Value + + + + + Initializes a new instance of the class. + + The name. + The value. + + + + + Initializes a new instance of the class. + + The att. + + + + + Name of the Attribute + + The name. + + + + Gets the value of the attribute + + The value. + + + + Equals + + The object to compare with the current object. + true if the specified is equal to this instance; otherwise, false. + + + + Operator== + + The o1. + The o2. + The result of the operator. + + + + Implements the != operator. + + The o1. + The o2. + The result of the operator. + + + + Gets the HashCode of the Address + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + Flag set specifying the MethodParameter context + + + + + Input Parameter (ADSMETHODPARAFLAG_IN) + + + + + Output Parameter (ADSMETHODPARAFLAG_OUT) + + + + + By reference Parameter (ADSMETHODPARAFLAG_BYREFERENCE) + + + + + Mask for In parameters. + + + + + Mask for Out parameters. + + + + + Interface IRpcMethodParameter + + + + + Gets the size of the + + The size. + + + + Gets the Parameter Name + + The name. + + + + Gets the Data type of the Parameter + + The type. + + + + Gets the parameter flags. + + The parameter flags. + + + + Gets the index of the LengthIs parameter (within the MethodParameter List) + + The index of the length is parameter. + This field references to the Parameter that defines the length for this + generic one. Equally to the marshalling attributes of COM (sizeof, length) + this enables to transport parameter of type (PVOID) + + + + + Gets a value indicating whether this instance has a related LengthIs Parameter. + + true if this instance has a LengthIs parameter; otherwise, false. + + + + Interface describes an RPC Method + + + + + Gets the name of the method + + The name. + + + + Gets all parameters (In, Out and ref parameters) of the . + + The parameters. + + + + Gets the In-Parameters of the + + The In- and Ref-Parameters + + + + Gets the Out-Parameters of the + + The Out- and Ref-Parameters + + + + Gets the return type of the + + Return type or string.Empty. + + + + Gets the size of the return type in bytes. + + The size of the return type. + + + + Gets the Method comment. + + The comment. + + + + Gets a value indicating whether this has no return parameter + + true if this instance is void; otherwise, false. + + + + Interface IRpcMethodParameterCollection + + + + + Gets the corresponding LengthIs parameter. + + The parameter. + IRpcMethodParameter. + + + + + + Collection of RPC method parameters + + + + + Internal list organizing the index of the parameters. + + + + + Dictionary of ParamaterName->RpcMethodParameter for fast find. + + + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class. + + The coll. + + + + + Determines the index of a specific item in the . + + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + + + Gets or sets the element at the specified index. + + The index. + RpcMethodParameter. + + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + true if is found in the ; otherwise, false. + + + + Copies to. + + The array. + Index of the array. + + + + Gets the number of elements contained in the . + + The count. + + + + Gets a value indicating whether the is read-only. + + true if this instance is read only; otherwise, false. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + Returns an enumerator that iterates through the collection. + + A that can be used to iterate through the collection. + + + + Returns an enumerator that iterates through a collection. + + An object that can be used to iterate through the collection. + + + + Returns a read only version of this + + ReadOnlyMethodParameterCollection. + Collection as read only version. + + + + Gets the length is parameter. + + The parameter. + IRpcMethodParameter. + parameter + Parameter is not contained in ParameterList - parameter + + + + Read only . + + + + + Initializes a new instance of the class. + + The coll. + + + + Gets the corresponding LengthIs parameter. + + The p. + IRpcMethodParameter. + + + + + + Interface IBinderProvider + + + + + + Gets the binder. + + The binder. + + + + Interface IDynamicSymbol + + + + + Gets the normalized instance name (fixed name for dynamic property access) + + The normalized instance name (can be the same like + + + + + + + Unwraps the DynamicSymbol to its static version. + + IValueSymbol. + The unwrapped symbol. + + + + + Interface for an RPC callable PLC Method (Remote procedure call) + + + + + Gets the Method descriptions for the + + The methods. + + + + Invokes the specified RPC Method + + The method name. + The input parameters or NULL + The return value of the Method (as object). + This method only supports primitive data types as . Any available outparameters will be ignored. + Complex types will fall back to byte[] arrays. + + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + + + + + Invokes the specified RPC Method + + The method name. + The input parameters or NULL + The output parameters. + The return value of the Method (as object). + + Because this overload doesn't provide any specifications, only primitive datatypes will be correctly marshalled + by this method. Complex types will fall back to byte[] arrays. + + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + + + + + Invokes the specified RPC Method + + The method name. + The parameters. + The out specifiers (specifiying the out types) or NULL. + The ret specifier (specifiying the return value) or NULL. + The out parameters. + The return value of the Method (as object). + The RpcMethod optionally support In-Parameters, Out-Parameters and Return values. Therefore the parameters , , , + are allowed to be empty or NULL. + In case of using primitive datatypes, the type specifier parameters ( and ) are not necessary and should not be set. + + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + + + + + Invokes the specified RPC Method + + The method name. + The parameters. + The return value of the RPC method as object. + The result value of the call (ErrorCode). 0 means Succeeded. + + Because this overload doesn't provide any specifications, only primitive datatypes will be correctly marshalled + by this method. Complex types will fall back to byte[] arrays. + + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + + + + + Invokes the specified RPC Method + + The method name. + The parameters. + The return value of the RPC method as object. + The out parameters. + The result value of the call (ErrorCode). 0 means Succeeded. + + Because this overload doesn't provide any specifications, only primitive datatypes will be correctly marshalled + by this method. Complex types will fall back to byte[] arrays. + + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + + + + + Invokes the the specified RpcMethod of the . + + Name of the method. + The parameters. + The out specifiers (specifying the out types) or NULL. + The ret specifier (specifying the return value) or NULL. + The out parameters. + The return value of the RPC method./> + AdsErrorCode. + The RpcMethod optionally support In-Parameters, Out-Parameters and Return values. Therefore the parameters , , , + are allowed to be empty or NULL. + In case of using primitive datatypes, the type specifier parameters ( and ) are not necessary and should not be set. + + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + + + + + Interface IRpcStructInstance + + + + + + + Represents a single dimension of an + + + + + Initializes a new instance of the class. + + The lower bound. + The element count. + + + + + Lower Bound + + + + + Gets the lower bound of elements within that . + + + The lower bound. + + + + + Gets the upper bound of elements within this + + The upper bound. + + + + Element count + + + + + Gets the number of elements within that . + + + The element count. + + + + + Namespace object. + + + + + + The namespace name + + + + + Data types of the + + + + + Initializes a new instance of the class. + + The name. + + + + Gets the name of the namespace. + + The name. + + + + Gets the data types organized by this + + The data types. + + + + Access to the Internal DataTypes collection (read/write) + + The data types internal. + + + + Registers the the specified + + The type. + true if XXXX, false otherwise. + + + + Registers the types. + + The types. + + + + Interface ISymbolInternal + + Internal interface for Symbols + + + + + Creates and Gets the Internal SubSymbol sCollection + + The sub symbols internal. + + + + + Gets a value indicating whether the internal SubSymbols collection is created. + + true if [sub symbols created]; otherwise, false. + + + + + Creates the SubSymbol collection. + + The parent. + SymbolCollection. + + + + + Base implementation for interface. + + + + + + + Symbol Factory services + + + + + Initializes a new instance of the class. + + if set to true Array Elements will be memory optimized ind non-cached. + + + + Indicates that ArrayElements will be created on access and not cached. + + + + + Indicates whether this instance is initialized. + + + + + Gets a value indicating whether this instance is initialized. + + true if this instance is initialized; otherwise, false. + + + + Initializes the the . + + The services. + services + + + + Gets the factory services. + + The factory services. + + + + Creates the Symbol with the specified resolver + + Symbol Entry. + The parent. + Symbol instance. + entry + + + + Tries to resolve the specfied data type + + Name of the Type. + The type. + true if XXXX, false otherwise. + typeName + info + + + + Handler function creating a new + + The entry. + The parent. + ISymbol. + + + + Creates all Element Instances of the specified array parent symbol. + + The parent instance. + Type of the array. + SymbolCollection. + + parentInstance + or + arrayType + + + + + Creates all Element Instances of the specified array parent symbol. + + The parent instance. + Type of the array. + SymbolCollection. + + + + Handler function creating an ArrayInstance + + The symbol INfo. + The type. + The parent. + IArrayInstance. + + + + Handler function creating the struct symbol + + The entry. + Type of the structure. + The parent. + IStructInstance. + + + + Handler function creating the union symbol + + The entry. + Type of the structure. + The parent. + IStructInstance. + + + + Handler function creating the alias symbol + + The entry. + The Alias type. + The parent. + IStructInstance. + + + + Handler function creating a String Type + + The entry. + The string dataType. + The parent. + ISymbol. + + + + Handler function creating a Primitive Symbol + + The entry. + Type of the data. + The parent. + ISymbol. + + + + Handler function creating a ReferenceInstance symbol. + + The entry. + Type of the reference. + The parent. + IReferenceInstance. + + + + Handler function creating a Pointer instance symbol + + The entry. + Type of the structure. + The parent. + IPointerInstance. + + + + Creates the array element + + Array Index of the Element + Array Instance + Resolved array type. + Array element + + parent + or + indices + + indices + + + + Handler function creating a new Array Element Symbol. + + Index of the current. + The parent. + Resolved array type. + ISymbol. + + + + Creates the Member Instances collection for the specified parent instance + + The parent instance. + Type of the structure. + SymbolCollection. + + parentInstance + or + structType + + + + + Handler function creating the member instances. + + The parent instance. + Type of parent (Struct or Union). + SymbolCollection. + + + + Creates the Instance member. + + Field + Parent Struct + Instance member + + member + or + parent + + + + + Handler function creating a new member + + The member. + The parent. + ISymbol. + + + + Creates the reference/pointer instance. + + Reference/Pointer type. + Parent Instance of the reference + Reference/Pointer instance. + + type + or + parent + + + + + Handler function creating a new Reference Instance. + + The type. + The parent. + ISymbol. + + + + Creates the virtual structure. + + Name of the instance. + The instance path. + The parent. + Virtual struct instance + + instanceName + or + instancePath + + instanceName + or + instancePath + + + + Handler function creating a new Virtual Struct + + Name of the instance. + The instance path. + The parent. + ISymbol. + + + + Combines member parent path + + The member. + The parent. + System.String. + + + + Default Invalid Characters + + + + + The invalid characters + + + + + Gets the invalid characters that are not allowed to appear within the Instance Name + + The forbidden characters. + + + + Gets a value indicating whether this instance has invalid characters. + + true if this instance has invalid characters; otherwise, false. + + + + Sets the invalid characters. + + The invalid chars. + + + + Not used yet + + + + + + No automatic Value Update / Uninitialized + + + + + Update Value immediately + + + + + Update the Value Triggered + + + + + Symbol Value Interface + + + + + Gets the symbol bound to this . + + + The symbol. + + + + + Gets the data type bound to this + + The type of the data. + + + + Gets the update mode (not implemented yet) + + + The update mode. + + + + + + Writes the value (via ADS) + + + + + Reads the value (via ADS) + + + + + Gets the cached Raw internal Data. + + The raw cached data. + + + + Gets the Time stamp of the last successful read of the Value (local user time, UTC) + + The read time stamp. + + + + Gets the age of the value (last successful read of the value) + + The age. + + + + + Gets a value indicating whether this is a primitive value. + + true if this instance is primitive; otherwise, false. + + + + Resolves the Value object to its primitive value. + + if set to true s are resolved to their primitives also. + System.Object. + If the value is not primitive, this method returns the itself. + + + + Tries to resolves the Value object to its primitive value. + + if set to true s are resolved to their primitives also. + The value. + true if value can be resolved, false otherwise. + + + + Interface IStructValue + + + + + + Tries to Set a Member/Property Value + + The name of the member + The value. + true if succeeded, otherwise false otherwise. + + + + Tries to get a property/Member value. + + The name of the member + The value. + true if succeeded, otherwise false otherwise. + + + + Interface IArrayValue + + + + + + Tries to set the indexed value on Arrays + + The indexes. + The value. + true if succeeded, false otherwise. + + + + Returns Array Element values. + + The element values. + true if XXXX, false otherwise. + + + + Tries to get the specified Array Element + + The indices. + The value. + true if XXXX, false otherwise. + + + + Iterator for Array Element Values. + + + + + + The Array Value + + + + + The Array Instance + + + + + The Array Type + + + + + Index Iterator + + + + + Initializes a new instance of the class. + + The array value. + + + + Returns an enumerator that iterates through the collection. + + A that can be used to iterate through the collection. + + + + Returns an enumerator that iterates through a collection. + + An object that can be used to iterate through the collection. + + + + Dynamic value (uses RuntimeBinding for value reading / writing). + + The adds dynamic run time behaviour to the Value/. + That means e.g. for struct values that .NET Properties are on-the-fly defined and dispatched at runtime just like defined in the structs + structs data type definition. Another example is the access of Array Element values through indexes. + + + Sample for the dynamic resolution of Symbols and reading values: + + + + + + + + + The value factory + + + + + Initializes a new instance of the class. + + The symbol. + RawData + RawData Offset + The time stamp (UserMode, + The factory. + + factory + or + symbol + + symbol + + + + Initializes a new instance of the class. + + The symbol. + RawData + RawData Offset + The parent value. + + + + The UTC timestamp of the last successful read of the value. + + + + + Gets the Time stamp of the last successful read of the Value. + + The read time stamp. + + + + Symbol that is bound to this value. + + + + + Gets the symbol that is bound to this value. + + The symbol. + + + + Gets the Update Mode (not implemented yet) + + + The mode. + + + + + The cached (raw) data) of the Root Symbol + + + + + Byte offset of this value data within the cached data. + + + + + Returns the enumeration of all dynamic member names. + + + A sequence that contains dynamic member names. + + + + + Provides the implementation for operations that invoke an object. Classes derived from the class can override this method to specify dynamic behavior for operations such as invoking an object or a delegate. + + Provides information about the invoke operation. + The arguments that are passed to the object during the invoke operation. For example, for the sampleObject(100) operation, where sampleObject is derived from the class, is equal to 100. + The result of the object invocation. + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown. + + + + Gets the root value. + + The root value. + The root value is the value, that is active in terms of ADS communication, the object that requests the data. All subsequent + children are working on the s cache. + + + + + Provides the implementation for operations that get member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as getting a value for a property. + + Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member on which the dynamic operation is performed. For example, for the Console.WriteLine(sampleObject.SampleProperty) statement, where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive. + The result of the get operation. For example, if the method is called for a property, you can assign the property value to . + + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a run-time exception is thrown.) + + + + + Tries the get member value. + + The name. + The result. + true if XXXX, false otherwise. + + + + + Provides the implementation for operations that set member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as setting a value for a property. + + Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member to which the value is being assigned. For example, for the statement sampleObject.SampleProperty = "Test", where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive. + The value to set to the member. For example, for sampleObject.SampleProperty = "Test", where sampleObject is an instance of the class derived from the class, the is "Test". + + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown.) + + + + + Tries to Set a Member/Property Value + + The name of the member + The value. + true if succeeded, otherwise false otherwise. + + + + Provides the implementation for operations that invoke a member. Classes derived from the class can override this method to specify dynamic behavior for operations such as calling a method. + + Provides information about the dynamic operation. The binder.Name property provides the name of the member on which the dynamic operation is performed. For example, for the statement sampleObject.SampleMethod(100), where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleMethod". The binder.IgnoreCase property specifies whether the member name is case-sensitive. + The arguments that are passed to the object member during the invoke operation. For example, for the statement sampleObject.SampleMethod(100), where sampleObject is derived from the class, [0] is equal to 100. + The result of the member invocation. + + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown.) + + + + + Provides the implementation for operations that get a value by index. Classes derived from the class can override this method to specify dynamic behavior for indexing operations. + + Provides information about the operation. + The indexes that are used in the operation. For example, for the sampleObject[3] operation in C# (sampleObject(3) in Visual Basic), where sampleObject is derived from the DynamicObject class, [0] is equal to 3. + The result of the index operation. + + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a run-time exception is thrown.) + + + + + Provides implementation for type conversion operations. Classes derived from the class can override this method to specify dynamic behavior for operations that convert an object from one type to another. + + Provides information about the conversion operation. The binder.Type property provides the type to which the object must be converted. For example, for the statement (String)sampleObject in C# (CType(sampleObject, Type) in Visual Basic), where sampleObject is an instance of the class derived from the class, binder.Type returns the type. The binder.Explicit property provides information about the kind of conversion that occurs. It returns true for explicit conversion and false for implicit conversion. + The result of the type conversion operation. + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown.) + + + + Tries the get index value. + + The indexes. + The result. + true if XXXX, false otherwise. + + + + Reads the specified array element. + + The indices. + The value. + System.Object. + + + + Reads the specified member element. + + The member instance. + + + + + Writes the specified member element. + + The member instance. + The value. + + + + Provides the implementation for operations that set a value by index. Classes derived from the class can override this method to specify dynamic behavior for operations that access objects by a specified index. + + Provides information about the operation. + The indexes that are used in the operation. For example, for the sampleObject[3] = 10 operation in C# (sampleObject(3) = 10 in Visual Basic), where sampleObject is derived from the class, [0] is equal to 3. + The value to set to the object that has the specified index. For example, for the sampleObject[3] = 10 operation in C# (sampleObject(3) = 10 in Visual Basic), where sampleObject is derived from the class, is equal to 10. + + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown. + + + + + Writes the array element value into the cache. + + The indices. + The value. + + + + Tries to set the indexed value on Arrays + + The indexes. + The value. + true if succeeded, false otherwise. + + + + Gets the update mode (not implemented yet) + + + The update mode. + + + + + + Writes the value (via ADS) + + + + + + Reads the value (via ADS) + + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets the age of the value (last successful read of the value) + + The age. + + + + + + Gets the data type bound to this + + The type of the data. + + + + + Gets the cached Raw internal Data. + + The raw cached data. + + + + Gets a value indicating whether this is a primitive value. + + true if this instance is primitive; otherwise, false. + + + + Gets the resolved type. + + Resolved type. + + + + Resolves the Value object to its primitive value. + + if set to true s are resolved to their primitives also. + System.Object. + If the value is not primitive, this method returns the itself. + + + + Tries to resolves the Value object to its primitive value. + + if set to true s are resolved to their primitives also. + The value. + true if value can be resolved, false otherwise. + + + + Returns Array Element values. + + The element values. + true if XXXX, false otherwise. + + + + Class DynamicReferenceValue. + + + + + + Initializes a new instance of the class. + + The symbol. + RawData + RawData Offset + The time stamp (UserMode, + The factory. + + factory + or + symbol + + symbol + + + + Initializes a new instance of the class. + + The symbol. + RawData + RawData Offset + The parent value. + + + + Reads the specified member element. + + The member instance. + + + + + Class DynamicPointerValue. + + + + + + Pointer Deref indicator + + + + + Initializes a new instance of the class. + + The symbol. + RawData + RawData Offset + The time stamp (UserMode, + The factory. + + factory + or + symbol + + symbol + + + + Initializes a new instance of the class. + + The symbol. + RawData + RawData Offset + The parent value. + + + + Returns the enumeration of all dynamic member names. + + + A sequence that contains dynamic member names. + + + + + Tries the get member value. + + The name. + The result. + true if XXXX, false otherwise. + + + + + Marshalling class for + + + + + Interface IDisposableHandleBag + Implements the + + + + + + + Determines whether the handle was acquired by this + + The handle. + true if [contains] [the specified handle]; otherwise, false. + + + + Creates the handles. + + System.Int32. + + + + Releases the handles. + + + + + Interface IDisposableHandleBag + + + + + + + Tries to get the specified handle + + The source object that corresponds to the handle + The handle. + true if the handle exists for the source object, false otherwise. + DisposableHandleBag + + + + Gets the handle. + + The source object. + System.UInt32 or 0 + + + + Tries to get the corresponding Source object + + The handle. + The source object. + true if XXXX, false otherwise. + + + + Gets the source object. + + The handle. + TSource. + + + + Abstract base Class DisposableHandleBag. + Implements the + The type of the t source. + + + + + + The connection + + + + + The handle dictionary + + + + + Dictionary of successfully acquired handles + + + + + List of the used symbols. + + + + + Indicates, that the handles are invalidated. + + + + + Indicates, that the is initialized. + + + + + Initializes a new instance of the class. + + The client. + The source objects. + client + sourceObjects + sourceObjects + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Indicates that this is disposed. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Closes this instance. + + + + + Synchronization object + + + + + Creates the handles. + + System.Int32. + + + + Releases the handles. + + + + + Tries to get the specified handle + + The instance path. + The handle. + true if XXXX, false otherwise. + DisposableHandleBag + + + + Determines whether the handle was acquired by this + + The handle. + true if [contains] [the specified handle]; otherwise, false. + + + + Gets the handle. + + The instance path. + System.UInt32 or 0 + + + + Tries to get the corresponding Source object + + The handle. + The source object. + true if XXXX, false otherwise. + handle + + + + Gets the source object. + + The handle. + TSource. + + + + Class DisposableHandleBag. + + + This helper class is used to support multiple registration of Variable handles in one step by SumCommand. With Disposing, all the registered handles will be + be released again. + + + + + + Initializes a new instance of the class. + + The client. + The symbol paths. + symbolPaths + symbolPaths + + + + Creates the handles. + + System.Int32. + + + + Releases the handles. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Finalizes an instance of the class. + + + + + Class DisposableNotificationHandleBag. This class cannot be inherited. + + + This helper class is used to support multiple registration of AdsNotification events in one step. With Disposing, all the registered AdsNotification events will + be released again. + + + + + + + Initializes a new instance of the class. + + The client. + The symbols. + The settings. + The user data. + + + + Creates the handles. + + System.Int32. + + + + Releases the handles. + + + + + Handles the AdsNotificationError event of the Connection control. + + The source of the event. + The instance containing the event data. + + + + Called when [notification error]. + + The exception. + + + + Class DisposableNotificationExHandleBag. This class cannot be inherited. + + + This helper class is used to support multiple registration of NotificationEx events in one step. With Disposing, all the registered NotificationEx events will + be released again. + + + + + + + Initializes a new instance of the class. + + The client. + The symbols. + The settings. + The user data. + dict + dict + + + + Creates the handles. + + System.Int32. + + + + Releases the handles. + + + + + Handles the AdsNotificationError event of the Connection control. + + The source of the event. + The instance containing the event data. + + + + Called when [notification error]. + + The exception. + + + + Client side Notification management + + + + By default used on CE Systems. + The Client side notification management is used for windows CE to Simulation Notifications. + On CE Platforms (Richard stated) the support of Server side Notifications is poor and very slow. + + + + + Initializes a new instance of the class. + + The synchronize port. + The symbol table. + if set to true [synchronize]. + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Finalizes an instance of the class. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Summary description for NotificationMngt. + + + + + Indicates, that the Peak was reached. + + + + + Indicates, that a Peak error was already indicated. + + + + + Caches the Time of the reached Peak in Ticks + + + + + Initializes a new instance of the class. + + The synchronize port. + The symbol table. + if set to true [synchronize]. + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Adds the notification. + + The index group. + The index offset. + The data. + The offset. + The length. + The trans mode. + The cycle time. + The maximum delay. + The user data. + The result. + System.Int32. + + + + Adds the notification. + + Name of the variable. + The data. + The offset. + The length. + The trans mode. + The cycle time. + The maximum delay. + The user data. + The result. + The handle + + + + Base class for the different state objects. + + + + + + Fail fast timeout (reconnection timeout / auto-reset timeout). + + + + + Initializes a new instance of the class. + + The timeout. + + + + Guards the from state changes that allow unintended communication. + + AdsErrorCode. + + + + Called when communication should be guarded. + + + + + Transition to the next state of the state machine (state machine pattern). + + IFailFastHandlerState. + + + + Handler function for transitioning into the next state (if possible) + + IFailFastHandlerState. + + + + Indicates that the communication has been succeeded. + + + + + Handler function for a succeeded communication. + + + + + Trips to the internal (Open circuit) state. + + + + + Handler function for a tripped communication error condition. + + The causing error. + + + + State object for an active communication state. + + + + + Trip indicator + + + + + Initializes a new instance of the class. + + The timeout. + + + + Handler function for transitioning into the next state (if possible) + + IFailFastHandlerState. + + + + Handler function for a tripped communication error condition. + + + + + State object for a lost communication state (circuit open, auto reset errors active) + + + + + Indicates the time the communication was lost + + + + + Initializes a new instance of the class. + + The timeout. + The error. + + + + Called when communication should be guarded. + + The circuit is currently open. + + + + Handler function for transitioning into the next state (if possible) + + IFailFastHandlerState. + + + + State object for a reconnecting communiciation state (circuit half open). + + + + + Initializes a new instance of the class. + + The timeout. + + + + Handler function for transitioning into the next state (if possible) + + IFailFastHandlerState. + + + + Handler function for a succeeded communication. + + + + + Handler function for a tripped communication error condition. + + + + + Interface for previnting error states on Connection Error + + + This is used only internally detect the Connection state without triggering internal error conditions. + + + + + + + Gets or sets a value indicating whether Connection refused errors (AdsErrorCode.WSA_ConnRefused) trigger internal error conditions + + true if connection refused is prevented; otherwise, false. + + + + Internal Unsafe Native Marshaller for the + + + + + Allocates a managed String and copies all or part of an unmanaged ANSI string into it. + + Pointer to memory + The byte count of the Input string to copy. + + + + + Allocates a managed String and copies all or part of an unmanaged ANSI string into it. + + Pointer to memory + The byte count of the Input string to copy. + + + + + Copies the contents of a managed String into unmanaged memory, converting into ANSI format as it copies. + + The string. + The encoding. + The memory Pointer. + encoding + + + + Copies the contents of a managed String into unmanaged memory, converting into ANSI format as it copies. + + The string. + The memory Pointer. + + + + Copies the contents of a managed String into unmanaged memory, converting into ANSI format as it copies. + + The string. + The memory Pointer. + + + + Copies the content of the specified memory to an object. + + The memory pointer + + + + + Gets the Size of the + + The type. + + + + + Creates an object of the specified type ann initializes it from memory + + Pointer to memory Data + The type to create + The count of consumed memory in bytes + + + Unable to marshal type.;type + or + Unable to marshal type.;type + or + Unable to marshal type.;type + or + Unable to marshal type.;type + + + + + Creates a bool object and initializes it from memory data + + Memory data + The size of the consumed memory in bytes + + + + + + Enables Pid Addressing + + + + + BitType Addressing + + + + + Offset mask (Byte offset or Bit offset, dependent on setting ) + + + + + Mask DataArea (e.g. + + + + + Class AdsParseSymbols. + + + + + The _default types + + + + + Gets the default types. + + The default types. + + + + The symbol table (Symbol Path -> symbol Index within stream) + + + + + The ads client + + + + + The COM Object Minimum OID (0x00100000, 1048576) + + + + + The sub symbol factory + + + + + Used Default Encoding of the class. + + + + + Initializes a new instance of the class. + + Size of the platform pointer. + if set to true [streamIncludesBuildInTypes]. + The symbol string encoding. + stringEncoding + + + + Indicates, that the build in types are streamed + + + + + Initializes a new instance of the class. + + The symbol stream. + The data type stream. + The ads client. + + + + Expands the so far unresolved datatypes. + + Some datatypes must be generated, because they are not available from the Watch server. + This must be done, before the DataTypes collection is accesssed, because otherwise the collection can be changed + during enumeration + + + + + Collects the data types. + + The count. + The data type offsets. + The data type reader. + TcAdsDataTypeCollection. + + + + The data types + + + + + Fills the data type tables. + + The data type reader. + The data type count. + The data type entry offsets. + Dictionary<System.String, System.Int32>. + + + + Fills the symbol tables. + + The symbol reader. + The symbol count. + The symbol entry offsets. + SymbolEntryCollection. + + + + Gets the symbol count. + + The symbol count. + + + + Gets the symbol entry. + + Index of the symbol. + The symbol entry offsets. + The symbol reader. + AdsSymbolEntry. + + + + Gets the data type entry. + + The index. + The data type entry offsets. + The data type reader. + AdsDataTypeEntry. + index + + + + Gets the sub symbol recursively (from position on) + + The symbol. + Name of the symbol. + The position. + TcAdsSymbolInfo. + + + + Gets the symbol. + + Name of the symbol. + TcAdsSymbolInfo. + + + + Gets the symbol. + + Index of the symbol. + TcAdsSymbolInfo or NULL + + + + Gets the name of the type by. + + The type. + AdsDataTypeEntry. + + + + Gets the data type identifier. + + The type. + AdsDatatypeId. + + + + Gets the bit / Byte size of the Data Type by data type name. + + The type. + Size in bytes. + + + + Gets the sub symbol count. + + The Parent + System.Int32. + + + + Occurs when DataTypes were generated by this Parser + + + + + Occurs when a data type cannot be resolved. + + + + + Sets the Pointer size + + The size (in bytes) + size + + + + Gets the size of Pointer Types (Platform dependent) + + The pointer size (0: Uninitialized, 4: X86, 8: X64) + + + + Gets the specified SubSymbol (for Arrays, Structs) + + Parent Symbol. + Index of the SubElement (Symbol) + if set to true references and Pointer Types will be dereferenced. + TcAdsSymbolInfo. + parent + parent + + + + Factory class for creating SubSymbols within the object. + + + + + Calculates the IndexGroup and IndexOffset of an array element + + (Sub-)Index of the array element. + The arrayInstance. + Size of the element (bit or bytes) + The index group. + The index offset. + + + + Creates the reference symbol. + + The parent. + Index of the sub. + TcAdsSymbolInfo. + parent + + + + Creates the pointer symbol. + + The parent. + Type of the referenced. + TcAdsSymbolInfo. + + parent + or + referencedType + + + + + Called when the type resolution fails. + + The name. + + + + Called when a new type is created generically. + + The data types. + + + + Called when a new type is createed generically. + + Type of the data. + + + + Marshalling class for uploaded Symbols + + + + + Determines whether this object is an SubItem (DataType Member, true) or a native DataType (false) + + true if this instance is sub item; otherwise, false. + + + + Gets the name of the subitem / Sub element. + + The name of the sub item. + + + + Gets the offset of the SubItem (in Bytes or Bits) + + The offset. + If indicates 'BitSize' then this value will be in Bits, otherwise Bytes. + + + + Gets a value indicating whether this sub element is persistent. + + true if this subelement is persistent; otherwise, false. + + + + + Gets a value indicating whether this subItem is static. + + true if this instance is static; otherwise, false. + + + + Gets a value indicating whether this is a property. + + true if this instance is property; otherwise, false. + + + + Aligns the SubItem to the specified type. + + Type of the sub entry. + + + + Class TcAdsDataType. + + + + + Static ID counter. + + + + + Default constructor. Prevents a default instance of the class from being created. + + + + + Initializes a new instance of the class. + + The name. + Type of the data. + The size. + The flags. + DataType category. + Type of the managed. + The type resolver. + name + + + + Initializes a new instance of the class. + + The name. + Type of the data. + The size. + The flags. + DataType category. + Name of the base type. + Type of the managed. + The type resolver. + name + name + + + + Initializes a new instance of the class (ArrayObject) + + The name. + Type of the element. + Size of the element. + The dims. + The table. + + + + Initializes a new instance of the class with byte size. + + The name. + Type of the data. + The size. + DataType category. + Type of the managed. + + + + Initializes a new instance of the class with byte size. + + The name. + Type of the data. + The size. + DataType category. + Type of the base. + Type of the managed. + + + + Initializes a new instance of the class. + + The entry. + The table. + + + + ID of the + + + + + Type Name + + + + + Gets the Name of the DataType + + The name. + + + + The size + + + + + Gets the size of the in bytes + + The size. + If indicates 'BitSize' then this value will be in Bits, otherwise Bytes. + + + + Sets the size of the + + The size. + Type of the managed. + + + + DataType flags + + + + + Gets the data type flags. + + The flags. + + + + + Indicates, that the and Offset values of the are in Bit size + + true if this instance is bit size; otherwise, false. + + + + The offset + + + + + The data type identifier + + + + + Gets the data type identifier. + + The data type identifier. + + + + The base type (enum, alias) element type (array) + + + + + Gets the base type (enum, alias) element type (array) + + Base / Element Alias Type + + + + Gets the name of the base type (if enum, alias, array) + + The name of the base type. + + + + The sub items (array, struct) + + + + + The array information (Dimensions) + + + + + Gets the dimensions of an array type + + The array infos. + + + + The managed type representation + + + + + Gets the managed type (if applicable) + + The type of the managed. + + + + The enum infos (enum) + + + + + The RPC method infos (structs only) + + + + + The attributes (Meta data) + + + + + Gets a value indicating whether this instance is structure. + + true if this instance is structure; otherwise, false. + + + + Gets a value indicating whether this instance is array. + + true if this instance is array; otherwise, false. + + + + Gets a value indicating whether this instance is a reference type. + + true if this instance is reference; otherwise, false. + + + + Gets a value indicating whether this instance is primitive. + + true if this instance is primitive; otherwise, false. + + + + Gets a value indicating whether this instance is enum. + + true if this instance is enum; otherwise, false. + + + + Determines whether this object is an SubItem (DataType Member, true) or a native DataType (false) + + true if this instance is sub item; otherwise, false. + + + + Gets the comment behind the variable declaration. + + Comment behind the variable declaration. + + + + Cached Category Value + + + + + Gets the Data Type Category + + The category. + + + + Gets the attributes of the + + The attributes. + + + + Gets a value indicating whether this instance has RPC methods (Struct types only) + + true if this instance has RPC methods; otherwise, false. + The DataType (Structure) must be marked with the PlcAttribute 'TcRpcEnable' to enable RpcMethods, otherwise + RpcMethods are not passed through to the ADS symbolic information. + + + + Gets the RPC method descriptions + + The RPC methods. + The DataType (Structure) must be marked with the PlcAttribute 'TcRpcEnable' to enable RpcMethods, otherwise + RpcMethods are not passed through to the ADS symbolic information. + + + + Gets the enum infos. + + The enum infos. + + + + Obsolete + + The enum infos. + + + + Gets the sub items. + + The sub items. + + + + Gets a value indicating whether this instance has sub items. + + true if this instance has sub items; otherwise, false. + + + + Resolves the alias type chain. + + TcAdsDataType. + + + + + Returns a that represents this instance. + + A that represents this instance. + + + + Gets the size of this in bits. + + The size of the bit. + + + + Gets the (aligned) size of of the Type/Instance in Bytes + + The size of the byte. + + + + Gets the ID of the DataType + + The id. + + + + Gets the namespace string within the exists. + + The namespace. + + + + Gets the full name of the (Namespace + Name) + + The full name. + + + + Gets a value indicating whether this is a container type + + true if this instance is container type; otherwise, false. + + Container Types are all types that contain SubElements like + + and the and types, if they have a container type as base type. + + + + Indicates that the Size of the Object is Byte aligned (BitSize % 8 == 0) + + true if this instance is byte aligned; otherwise, false. + + + + Gets a value indicating whether this DataType is an alias. + + true if this instance is alias; otherwise, false. + + + + Gets a value indicating whether this DataType is a string. + + true if this instance is string; otherwise, false. + + + + Gets a value indicating whether this instance is an oversampling array. + + true if this instance is oversampling array; otherwise, false. + + + + + Gets a value indicating whether this dataType is a jagged array. + + true if this instance is jagged array; otherwise, false. + + + + Sets the resolver. + + The resolver. + + + + Class DatatypeInfoTable (contains currently only the Default System types) + + + + + Default types + + + + + Gets the default types. + + + + + + Initializes a new instance of the class. + + The ads client. + The encoding used for strings marshalled from target. + Size of the target pointer. + + + + The target pointer size + + + + + Gets the size of the platform pointer (in Bytes) + + The size of the platform pointer. + + + + The encoding used for Strings marshalled from target + + + + + Resolves the specified type name to the object. + + The name. + ITcAdsDataType. + + + + Called when [type generated]. + + The types. + + + + Called when [type generated]. + + The type. + + + + Occurs when a new type was generated. + + + + + Called when the data type resolution fails + + Name of the type. + + + + Occurs when the datatype resolution fails + + + + + Writes the symbol (by handle) + + The symbol path. + The value. + Reload type/symbol information and the handle cache. + This method writes the value of the symbol by handle. + The value must be 'marshalable' to the symbol types memory layout. + The handle is internally cached. + The following communication sequence will be processed: + + Reading the SymbolInfo if not cached yet + Reading the DataTypeInfo if not cached yet + Registering the Symbol handle if not cached yet or not valid anymore + Writing the value by Handle + Unregistering the handle when connection is closed / cache will be reset. + + + + + + + + Reads the symbol value by handle + + The Symbol path. + Managed type + Reload type/symbol information and the handle cache. + The value. + + This method reads the value of the symbol by handle. The handle is internally cached. + Therefore this method is more efficient than , if the symbol (symbolPath) is accessed more frequently by the price of 2 extra communication + rountrips (one on first symbol access creating the handle and the second on deleting the handle on dispose"/>. + The following communication sequence will be processed: + + Reading the SymbolInfo if not cached yet + Reading the DataTypeInfo if not cached yet + Registering the Symbol handle if not cached yet or not valid anymore + Reading the value by Handle + Unregistering the handle when connection is closed / cache will be reset. + + + + + + + + Reads the symbol value by symbol path. + + The Symbol path. + Managed type + Reload type/symbol information. + The value. + + This method reads the value of the symbol directly not using the handle indirection. Therefore it is more efficient than + if the symbol/symbol path is only accessed once. Furthermore no handling for invalid handles is necessary (Project reload, restarted targets). + The following communication sequence will be processed: + + Reading the SymbolInfo if not cached yet + Reading the DataTypeInfo if not cached yet + Reading the value by Path + + + + + + + + Get Symbol + + The symbol path. + if set to true then this method looks first in its internal cache, otherwise it directly does an ADS roundtrip. + TcAdsSymbol. + name + + + + Get Symbol + + The symbol path. + if set to true then this method looks first in its internal cache, otherwise it directly does an ADS roundtrip. + The symbol. + TcAdsSymbol. + name + + + + Tries to load the data type of the specified . + + The symbol. + if set to true [b lookup]. + Type of the data. + AdsErrorCode. + + + + Tries to load the data type of the specified . + + Name of the type. + if set to true [b lookup]. + Type of the data. + AdsErrorCode. + + + + Invokes the specified RPC Method. + + The symbol. + The method. + The parameters. + Output specifiers (for ANYTYPE) output parameters. + The return type ANYTYPE Specifier. + The out parameters. + The return value of the RPC method as object. + The ADS Error Code. + + + + Internal Symbol Info table. + + + + + The internal Symbol Table + + + + + The Internal DataType table + + + + + ADS Connection. + + + + + The encoding used for marshalling Symbols and DataType strings. + + + + + Initializes a new instance of the class. + + The ads client. + The symbol encoding. + Size of the target pointer. + adsClient + or + symbolEncoding + + + + Disposes this instance. + + + + + Cleanup the + + + Because the holds 'unmanaged' resources in form + of Symbol handles that must be unregistered, the Cleanup is called by the + dispose method. + + + + + Writes the symbol (by handle) + + The symbol path. + The value. + Reload type/symbol information and the handle cache. + This method writes the value of the symbol by handle. + The value must be 'marshalable' to the symbol types memory layout. + The handle is internally cached. + The following communication sequence will be processed: + + Reading the SymbolInfo if not cached yet + Reading the DataTypeInfo if not cached yet + Registering the Symbol handle if not cached yet or not valid anymore + Writing the value by Handle + Unregistering the handle when connection is closed / cache will be reset. + + + + + + + + Updates the symbol handle for Symbolic access + + The ads symbol. + AdsErrorCode. + + + + + + Reads the symbol value by handle + + The Symbol path. + Managed type + Reload type/symbol information and the handle cache. + The value. + + This method reads the value of the symbol by handle. The handle is internally cached. + Therefore this method is more efficient than , if the symbol (symbolPath) is accessed more frequently by the price of 2 extra communication + rountrips (one on first symbol access creating the handle and the second on deleting the handle on dispose"/>. + The following communication sequence will be processed: + + Reading the SymbolInfo if not cached yet + Reading the DataTypeInfo if not cached yet + Registering the Symbol handle if not cached yet or not valid anymore + Reading the value by Handle + Unregistering the handle when connection is closed / cache will be reset. + + + + + + + + Reads the symbol value by symbol path. + + The Symbol path. + Managed type + Reload type/symbol information. + The value. + + This method reads the value of the symbol directly not using the handle indirection. Therefore it is more efficient than + if the symbol/symbol path is only accessed once. Furthermore no handling for invalid handles is necessary (Project reload, restarted targets). + The following communication sequence will be processed: + + Reading the SymbolInfo if not cached yet + Reading the DataTypeInfo if not cached yet + Reading the value by Path + + + + + + + + Creates a managed array and initializes it with information from ADS Read + + The managed array type. + Ads type. + The reader. + The reader offset. + The jag level (only used for recursive jagArray calls) + The value. + Read bytes + type + or + type + + + + Writes the (managed) array value to ADS + + Managed Array value. + ADS Type. + The writer. + The writer offset. + + type + or + Cannot convert ads array type of symbol to this type.;type + + + + + Check Array Dimensions + + The array. + The array information. + Checks bounds exactly. + + + + Class FieldInfoOffsetComparer. + + + + + + Initializes the structure. + + The sub items. + The struct type. + The reader. + The reader offset. + The value2. + Read bytes. + type + or + type + + + + Write (Managed) Struct value to ADS. + + The value. + The subitems. + The writer. + The writer offset. + + type + or + type + + + + + Create managed primitive type and initlizes it with Value via ADS + + The name. + Type of the managed. + Type of the data. + Length of the byte. + The reader. + The reader offset. + The value. + Read bytes + + symbolPath + or + reader + + Cannot convert data type of symbol to this type.;type + or + Unexpected datatype. Cannot convert datatype of symbol to this type.;type + + + + Sets the type of the primitive. + + The Symbol Path. + The value. + Type of the managed. + Type of the data. + Size of the byte. + The writer. + The writer offset. + + Cannot convert datatype of symbol to this type.;type + or + Unexpected datatype. Cannot convert datatype of symbol to this type.;type + + + + + Create managed instance Type and initialize with ADS value. + + The type name. + Type of the managed. + Type of the data. + The size. + The reader. + The reader position. + The value. + Read bytes. + + + + Write managed enum instance to ADS + + The symbol path. + The value. + The type. + The writer. + The writer offset. + + + + Get Symbol + + The symbol path. + if set to true then this method looks first in its internal cache, otherwise it directly does an ADS roundtrip. + TcAdsSymbol. + name + + + + Get Symbol + + The symbol path. + if set to true then this method looks first in its internal cache, otherwise it directly does an ADS roundtrip. + The symbol. + TcAdsSymbol. + name + + + + Invokes the specified RPC Method. + + The symbol. + The method. + The parameters. + Output specifiers (for ANYTYPE) output parameters. + The return type ANYTYPE Specifier. + The out parameters. + The return value of the RPC method as object. + The ADS Error Code. + symbol + rpcMethod + parameters + parameters + + + + + The disposed + + + + + Gets a value indicating whether this instance is disposed. + + true if this instance is disposed; otherwise, false. + + + + Gets the local net identifier. + + System.Byte[]. + + + + Determines whether [is local net identifier] [the specified net identifier]. + + The net identifier. + The local net identifier. + true if [is local net identifier] [the specified net identifier]; otherwise, false. + + + + Writes the specified index group. + + The index group. + The index offset. + The value. + The characters (without trailing Zero) + The encoding. + if set to true [throw ads exception]. + AdsErrorCode. + val + Encoding not supported! + Method will write characters * sizeof(char) + 1 (Trailing Zero) + + + + Writes the array of string. + + The index group. + The index offset. + The value. + The number of characters in each string (without trailing /0). + if set to true [throw ads exception]. + AdsErrorCode. + + This method will write an Array of strings. Each string has a fixed size of 'characters' + '\0'. + So the dataarea size will be val.Length * (characters + 1) + + + + + Throws an with the specified error code. + + The ads error code. + + + + Throws an with the specified error code. + + The message. + The ads error code. + + + + Wrapper Class for the TcAdsdll.dll Native Methods + + + + TcAdsDll-Api Functions + + + + ADS Info object describing the SymbolUpload data + + + + + + Calculates the provided version of the structure marshalled from target. + + The read bytes. + System.Int32. + The version of the struct data is dependent + on the count of returned bytes. + + + + Initializes a new instance of the class. + + + + + + The data Version of the Upload Information. + + + + + Gets the data Version of the Upload Information. + + The version. + + + + Initializes a new instance of the class. + + The reader. + Symbol info Version (dependent on the size of the Data in the reader) + + Version 1: SymbolUploadInfo (8 bytes) + Version 2: AdsSymbolUploadInfo2 (24 bytes) + Version 3: AdsSymbolUploadInfo3 (64 bytes) + + + + + + Dumps the + + System.String. + + + + Returns a that represents this instance. + + A that represents this instance. + + + + The symbols + + + + + Gets the symbol count. + + The symbol count. + + + + The symbol size + + + + + Gets the size of the symbols block. + + The size of the symbols block. + + + + The datatypes + + + + + Gets the data type count. + + The data type count. + + + + The datatype size + + + + + Gets the size of the data types block. + + The size of the data types block. + + + + The maximum dynamic symbols + + + + + Gets the maximum number of the dynamic symbols. + + The maximum dynamic symbol count. + + + + The used dynamic symbols + + + + + Gets the number of used dynamic symbols. + + The used dynamic symbol count. + + + + Invalid dynamic symbols + + + + + Gets the number of invalid dynamic symbols. + + The invalid dynamic symbol count. + + + + The encoding code page (marshalled from target) + + + + + Gets the string encoding (marshalled from target) + + The string encoding for symbols and data types (Default: ) + + + + Symbol Upload Flags + + + + + Gets the Symbol Upload Flags + + The flags. + + + + Gets the size of the Pointers on the target system. + + The size of the target pointer. + + + + Gets a value indicating whether the symbol server delivers base types also. + + true if base types are in the data types collection; otherwise, false. + + + + Reserved bytes for future extensions. + + + + + Enum SymbolUploadFlags + + + + + + None / Unititialized + + + + + Target is 64 Bit Platform + + + + + Symbol Server includes Base types. + + + + + Enum AdsGetDynamicSymbolType + + + + + Next + + + + + Sibling + + + + + Child + + + + + Parent + + + + + Class describing attribute entries. + + + + + + Attribute Name + + + + + Gets the attribute name. + + The name. + + + + Gets the Attribute Value. + + + + + Gets the value of the Attribute + + The value. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The parent end position. + The encoding. + The reader. + + + + Reads Binary (Ads-aligned) data from ADS stream. + + End position of parent structure (Error indication). + The used string encoding. + The reader. + + + + For internal use only. + + + + + + For internal use only. + + The parent end position. + The encoding. + The reader. + + + + Reads Binary (Ads-aligned) data from ADS stream. + + End position of parent structure (Error indication). + The encoding. + The reader. + + + + ADS Entry length (the marshal size, 0) + + + + + 4 indexGroup of symbol: input, output etc. + + + + + 8 indexOffset of symbol + + + + + 12 size of symbol ( in bytes, 0 = bit ) + + + + + 16 adsDataType of symbol + + + + + 20 see above + + + + + ExtendedFlags + + + + + Array Dimension count (22) + + + + + 24 length of symbol name (excl. \0) + + + + + 26 length of type name (excl. \0) + + + + + //28 length of comment (excl. \0) + + + + + Symbol name string (30) + + + + + Symbol Type Name (30 +namelength +1) + + + + + The comment (30 +namelength+1 +typelenght + 1) + + + + + The array + + + + + The type unique identifier (16 Bytes) + + + + + The attribute count (2 Bytes) + + + + + The attributes + + + + + The reserved + + + + + Gets the context mask of this instance. + + The context mask. + The Size of the internal data is 4-Bit + + + + Gets the Symbol Path + + The path. + + + + Gets the data type Name + + The type of the data. + + + + Symbol Flags, for internal use only. + + + + + + None + + + + + ADSSYMBOLFLAG_PERSISTENT + + + + + ADSSYMBOLFLAG_BITVALUE + + + + + ADSSYMBOLFLAG_REFERENCETO + + + + + ADSSYMBOLFLAG_TYPEGUID + + + + + ADSSYMBOLFLAG_TCCOMIFACEPTR + + + + + ADSSYMBOLFLAG_READONLY + + + + + ADSSYMBOLFLAG_ITFMETHODACCESS + + + + + ADSSYMBOLFLAG_METHODDEREF + + + + + ADSSYMBOLFLAG_CONTEXTMASK (4 Bit) + + + + + ADSSYMBOLFLAG_ATTRIBUTES + + + + + Symbol is static (ADSSYMBOLFLAG_STATIC,0x2000) + + + + + Persistent data will not restored after reset (cold, ADSSYMBOLFLAG_INITONRESET 0x4000) + + + + + Extended Flags in symbol (ADSSYMBOLFLAG_EXTENDEDFLAGS,0x8000) + + + + + DataType Flags, for internal use only. + + + + + + ADSDATATYPEFLAG_DATATYPE + + + + + ADSDATATYPEFLAG_DATAITEM + + + + + ADSDATATYPEFLAG_REFERENCETO + + + + + ADSDATATYPEFLAG_METHODDEREF + + + + + ADSDATATYPEFLAG_OVERSAMPLE + + + + + ADSDATATYPEFLAG_BITVALUES + + + + + ADSDATATYPEFLAG_PROPITEM + + + + + ADSDATATYPEFLAG_TYPEGUID + + + + + ADSDATATYPEFLAG_PERSISTENT + + + + + ADSDATATYPEFLAG_COPYMASK + + + + + ADSDATATYPEFLAG_TCCOMIFACEPTR + + + + + ADSDATATYPEFLAG_METHODINFOS + + + + + ADSDATATYPEFLAG_ATTRIBUTES + + + + + ADSDATATYPEFLAG_ENUMINFOS + + + + + this flag is set if the datatype is aligned (ADSDATATYPEFLAG_ALIGNED) + + + + + data item is static - do not use offs (ADSDATATYPEFLAG_STATIC) + + + + + means "ContainSpLevelss" for DATATYPES and "HasSpLevels" for DATAITEMS (ADSDATATYPEFLAG_SPLEVELS) + + + + + do not restore persistent data (ADSDATATYPEFLAG_IGNOREPERSIST) + + + + + Any size array (ADSDATATYPEFLAG_ANYSIZEARRAY) + + + If the index is exeeded, a value access to this array will return + + + + + data type used for persistent variables -> should be saved with persistent data (ADSDATATYPEFLAG_PERSIST_DT,0x00200000) + + + + + Persistent data will not restored after reset (cold) (ADSDATATYPEFLAG_INITONRESET,0x00400000) + + + + + None / No Flag set + + + + + Class DataTypeFlagConverter. + + + + + Converts to + + The sub item flags. + AdsSymbolFlags. + + + + Class DataTypeFlagConverter. + + + + + Converts to + + The sub item flags. + AdsSymbolFlags. + + + + Interface IAdsCustomMarshal + + + + + + Reads Binary (Ads-aligned) data from ADS stream. + + End position of parent structure (Error indication). + The encoding. + The reader. + + + + Interface IAdsEnumCustomMarshal + + + + + + Reads Binary (Ads-aligned) data from ADS stream + + The size of the Enum data type + End position of parent structure (Error indication). + The encoding. + The reader. + + + + Helper class Marshalling ADS Substructures. + + Substructure to read elements of + + + + Reads the specified amount of substructures from the reader. + + The element count. + End position of parent structure (Error indication). + The encoding. + The reader. + T[]. + + + + Helper class Marshalling Enum ADS Substructures + + Enum substructure to read. + + + + Reads the specified amount of substructures from the reader. + + The element count. + Size of the Enums base type. + The parent end position. + The encoding. + The reader. + T[]. + + + + Class AdsMethodEntry. + + + + + length of complete datatype entry + + + + + version of datatype structure + + + + + vTable index of this method + + + + + size of datatype ( in bytes ) + + + + + size of biggest element for alignment + + + + + The reserved + + + + + The return type unique identifier + + + + + adsDataType of symbol (if alias) + + + + + Internal option flags + + + + + length of datatype name (excl. \0) + + + + + length of dataitem type name (excl. \0) + + + + + length of comment (excl. \0) + + + + + The parameter count + + + + + name of datatype with terminating \0 + + + + + type name of dataitem with terminating \0 + + + + + comment of datatype with terminating \0 + + + + + Parameters Collection + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The parent end position. + The encoding. + The reader. + + + + Reads Binary (Ads-aligned) data from ADS stream. + + End position of parent structure (Error indication). + The encoding. + The reader. + + + + Class AdsMethodParaInfo. + + + + + length of complete datatype entry + + + + + size of datatype ( in bytes ) + + + + + size of biggest element for alignment (biggest element used for marshalling ???) + + + + + adsDataType of symbol (if alias) + + + + + The flags + + + + + The reserved + + + + + The type unique identifier + + + + + index-1 of corresponding parameter with length info - 0 = no para, 1 = first para... + + This field references to the Parameter that defines the length for this + generic one. Equally to the marshalling attributes of COM (sizeof, lenght) + this enables to transport parameter of type (PVOID) + + + + + length of datatype name (excl. \0) + + + + + length of dataitem type name (excl. \0) + + + + + length of comment (excl. \0) + + + + + name of datatype with terminating \0 + + + + + type name of dataitem with terminating \0 + + + + + comment of datatype with terminating \0 + + + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class. + + The parent end position. + The encoding. + The reader. + + + + Reads Binary (Ads-aligned) data from ADS stream. + + End position of parent structure (Error indication). + The encoding. + The reader. + + + + Class AdsEnumInfoEntry. + + + + + The name length + + + + + The name + + + + + The value + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Size of the value. + The parent end position. + The encoding. + The reader. + + + + Reads the specified value size. + + Size of the value. + The parent end position. + The encoding. + The reader. + + + + Class AdsFieldEntry (for internal use only) + + + + + + + + Gets the name of the sub item. + + The name of the sub item. + + + + Gets the offset. + + The offset. + + + + Tries to get the Pointer reference type. + + Type of the reference. + true if XXXX, false otherwise. + + + + Tries to get the Referenced type. + + Type of the reference. + true if XXXX, false otherwise. + + + + Gets a value indicating whether the is static. + + true if this instance is static; otherwise, false. + + + + Gets a value indicating whether the is static. + + true if this instance is static; otherwise, false. + + + + Class AdsDatatypeEntry (for internal use only) + + + + + + 0 length of complete datatype entry + + + + + 4 version of datatype structure + + + + + 8 hashValue of datatype to compare datatypes + + + + + 12 hashValue of base type / Code Offset to setter Method (typeHashValue or offsSetCode) + + + + + 16 size of datatype ( in bytes or bits depending on the BitValues flag ) + + + + + 20 offs of dataitem in parent datatype ( in bytes or bits depending on the BitValues flag ) + + + + + 24 adsDataType of symbol (if alias) + + + + + The flags (28) + + + + + Gets the DataType Flags + + The flags. + + + + + length 32 length of datatype name (excl. \0) + + + + + 34 length of dataitem type name (excl. \0) + + + + + 36 length of comment (excl. \0) + + + + + 38, count of array dimensions + + + + + 40, count of SubItems + + + + + 42, Name of the Entry (TypeName if DataType, FieldName on FieldEntry) + + + + + Datatype name (42 + nameLength + 1 ) (Only on Fields !!!) + + + + + Comment (42 + typeLength +1 + typeLength+1) + + + + + The array infos + + + + + The sub entries + + + + + The type unique identifier + + + + + The copy mask + + + + + The method count + + + + + The methods + + + + + The attribute count + + + + + The attributes + + + + + The enum information count + + + + + The enums + + + + + The reserved + + + + + The s_id count + + + + + The _root entry + + + + + The _id + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + if set to true [root entry]. + The encoding. + The reader. + + + + Reads Binary (Ads-aligned) data from ADS stream. + + End position of parent structure (Error indication). + The encoding. + The reader. + + + + Gets a value indicating whether this instance is pointer. + + true if this instance is pointer; otherwise, false. + + + + Tries the get pointer reference. + + Type of the reference. + true if XXXX, false otherwise. + + + + Gets a value indicating whether this instance is reference. + + true if this instance is reference; otherwise, false. + + + + Tries the get reference. + + Type of the reference. + true if XXXX, false otherwise. + + + + Gets a value indicating whether this instance is sub range. + + true if this instance is sub range; otherwise, false. + + + + Gets a value indicating whether this instance is array. + + true if this instance is array; otherwise, false. + + + + Gets a value indicating whether this instance is an struct. + + true if this instance is structure; otherwise, false. + + + + Gets a value indicating whether this instance is enum. + + true if this instance is enum; otherwise, false. + + + + Indicator for a subItem + + + + + Determines whether this object is an SubItem (DataType Member, true) or a native DataType (false) + + true if this instance is sub item; otherwise, false. + + + + Gets a value indicating whether this instance has attributes. + + true if this instance has attributes; otherwise, false. + + + + Gets a value indicating whether this instance has RPC methods. + + true if this instance has RPC methods; otherwise, false. + + + + Gets the size of the in bytes + + The size. + If indicates 'BitSize' then this value will be in Bits, otherwise Bytes. + + + + Indicates, that the and Offset values of the SubItems are in Bit size + + true if this instance is bit size; otherwise, false. + + + + Indicates, that the and Offset values of the SubItems are in Bit size + + true if this instance is bit size; otherwise, false. + + + + Gets the data type identifier. + + The data type identifier. + + + + Gets the name of the symbol. + + Name of the symbol. + + + + Gets the comment behind the variable declaration. + + Comment behind the variable declaration. + + + + Gets the attributes of the + + The attributes. + + + + Gets the RPC method descriptions + + The RPC methods. + + + + Gets the base type of this + + The type of the base. + + + + Gets the name of the base type (if enum, alias, array) + + The name of the base type. + + + + Gets the Data Type Category + + The category. + + + + Gets the dimensions of an array type + + The array infos. + + + + Gets the enum infos. + + The enum infos. + + + + Gets the size of this in bits. + + The size of the bit. + + + + Gets the (aligned) size of of the Type/Instance in Bytes + + The size of the byte. + + + + Symbol representation + + + The TcAdsSymbol is used within the + + + + + The type entry flags + + + + + The symbol flags. + + + + + Initializes a new instance of the class. + + The entry. + The type entry. + symbolEntry + + + + Gets the data Type of this + + The type of the data. + + + + Gets the index group of the symbol. + + Index group of the symbol. + + + + Gets the index offset of the symbol. + + Index offset of the symbol. + + + + Gets the size of the symbol. + + Size of the symbol. + + + + Data type of the symbol. + + Data type of the symbol. + + + + Obsolete, use ITcAdsSymbol5.TypeName instead. + + Name of the symbol data type. + + + + + Gets the name of the symbol. + + Name of the symbol. + + + + Gets the name of the symbol data type. + + Name of the symbol data type. + + + + Obsolete, use ITcAdsSymbol5.TypeName instead. + + Name of the symbol data type. + + + + + Gets the comment behind the variable declaration. + + Comment behind the variable declaration. + + + + Indicates if the Persistent flag is set for the symbol. + + true if persistent, otherwise false. + + + + Gets a value indicating whether the Symbol is static. + + true if this instance is static; otherwise, false. + + + + Indicates if the BitValue flag is set for the symbol. + + true if is BitValue, otherwise false. + + + + Gets a value indicating whether this instance is pointer. + + + true if this instance is pointer; otherwise, false. + + + + + Indicates if the ReferenceTo flag is set for the symbol. + + true if is ReferenceTo, otherwise false. + + + + Indicates if the TypeGuid flag is set for the symbol. + + true if is TypeGuid, otherwise false. + + + + Indicates if the ReadOnly flag is set for the symbol. + + true if ReadOnly, otherwise false. + + + + Indicates if the TcComInterfacePointer flag is set for the symbol. + + true if is TcComInterfacePointer, otherwise false. + + + + Gets the ContextMask of the symbol, indicating the task the variable belongs to. + If ContextMask is not zero use or to add notifications. + + + + + Gets the corresponding managed type of this symbol. This only works for + primitive types. + + Managed type of symbol. + + + + Gets a value indicating whether this instance is recursive. + + The parents. + true if the specified parents is recursive; otherwise, false. + true if this instance is recursive; otherwise, false. + + + + Determines whether the specified Symbol is a self reference. + + The parents. + The sub symbol. + true if [is self reference] [the specified parents]; otherwise, false. + + + + Gets the attribute count of the + + The attribute count. + + + + Gets the attributes of the + + The attributes. + + + + Gets a value indicating whether this instance is an array. + + true if this instance is an array; otherwise, false. + + + + Gets the array dimensions. + + The array dimensions. + + + + Gets the collection of Array Infos. + + The array infos. + + + + Gets a value indicating whether this instance is an Enum data type + + true if this instance is enum; otherwise, false. + + + + Gets a value indicating whether this instance is an Struct data type + + true if this instance is struct; otherwise, false. + + + + Gets a value indicating whether this instance has RPC methods (Struct types only) + + true if this instance has RPC methods; otherwise, false. + The DataType (Structure) must be marked with the PlcAttribute 'TcRpcEnable' to enable RpcMethods, otherwise + RpcMethods are not passed through to the ADS symbolic information. + + + + Gets the RPC method descriptions + + The RPC methods. + The DataType (Structure) must be marked with the PlcAttribute 'TcRpcEnable' to enable RpcMethods, otherwise + RpcMethods are not passed through to the ADS symbolic information. + + + + Gets the Data Type Category + + The category. + + + + Gets the size of this in bits. + + The size of the bit. + + + + Gets the (aligned) size of of the Type/Instance in Bytes + + The size of the byte. + + + + Internal Raw ADS interface + + + + + + Reads a boolean value. + + The index group. + The index offset. + if set to true [throw ads exception]. + The result. + true if XXXX, false otherwise. + + + + Reads a value. + + The index group. + The index offset. + if set to true [throw ads exception]. + The result. + System.Byte. + + + + Reads a value. + + The index group. + The index offset. + if set to true [throw ads exception]. + The result. + System.SByte. + + + + Reads a value. + + The index group. + The index offset. + if set to true [throw ads exception]. + The result. + System.Int16. + + + + Reads a value. + + The index group. + The index offset. + if set to true [throw ads exception]. + The result. + System.UInt16. + + + + Reads a value. + + The index group. + The index offset. + if set to true [throw ads exception]. + The result. + System.Int32. + + + + Reads a value. + + The index group. + The index offset. + if set to true [throw ads exception]. + The result. + System.UInt32. + + + + Reads a value. + + The index group. + The index offset. + if set to true [throw ads exception]. + The result. + System.Int64. + + + + Reads a value. + + The index group. + The index offset. + if set to true [throw ads exception]. + The result. + System.Int64. + + + + Reads a value. + + The index group. + The index offset. + if set to true [throw ads exception]. + The result. + System.Single. + + + + Reads a value. + + The index group. + The index offset. + if set to true [throw ads exception]. + The result. + System.Double. + + + + Reads a value. + + The index group. + The index offset. + The characters. + The encoding. + if set to true [throw ads exception]. + The result. + System.String. + + + + Reads a value. + + The Variable handle. + The lneght of the string. + The encoding. + if set to true [throw ads exception]. + The result. + System.String. + + + + Reads a value. + + The index group. + The index offset. + The string. + The characters. + The encoding. + if set to true [throw ads exception]. + System.String. + ATTENTION: Potentially this method is unsafe because following data can be overwritten + after the string symbol. Please be sure to specify the string length lower than the string size + reserved within the process image! + + + + Reads a value. + + The Variable handle. + The string. + The characters. + The encoding. + if set to true [throw ads exception]. + System.String. + ATTENTION: Potentially this method is unsafe because following data can be overwritten + after the string symbol. Please be sure to specify the string length lower than the string size + reserved within the process image! + + + + Internal Raw ADS interface + + + + + + Reads the structure value. + + The index group. + The index offset. + Type of the structure. + if set to true [throw ads exception]. + The result. + System.Object. + + + + Reads a value. + + The index group. + The index offset. + The type. + The arguments. + if set to true [throw ads exception]. + The value. + AdsErrorCode. + + + + Reads a value. + + The index group. + The index offset. + The type. + if set to true [throw ads exception]. + The value. + AdsErrorCode. + + + + Reads a value. + + The variable handle. + The type. + The arguments. + if set to true [throw ads exception]. + The value. + AdsErrorCode. + + + + Reads a value. + + The variable handle. + The type. + if set to true [throw ads exception]. + The value. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + The arguments. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The variable handle. + The value. + The arguments. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The variable handle. + The value. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + if set to true [value]. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + The characters. + The encoding. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The structure. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Internal Raw ADS interface + + + + + + Reads the data from specified index group. + + The index group. + The index offset. + The offset. + The length of data buffer. + The data buffer + if set to true [throw ads exception]. + Number of bytes read. + AdsErrorCode. + + + + Writes the data / Value to the specified address. + + The index group. + The index offset. + The offset. + The length. + The data. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Read/Writes data to/from the specified address. + + The index group. + The index offset. + The rd offset. + Length of the rd. + The rd data. + The wr offset. + Length of the wr. + The wr data. + if set to true [throw ads exception]. + The data read. + AdsErrorCode. + + + + Read/Writes data to/from the specified address. + + The variable handle. + The rd offset. + Length of the rd. + The rd data. + The wr offset. + Length of the wr. + The wr data. + if set to true [throw ads exception]. + The data read. + AdsErrorCode. + + + + Reads the ADS state. + + if set to true [throw ads exception]. + The state information. + AdsErrorCode. + + + + Determines, whether the AmsPort is enabled. + + if set to true [throw ads exception]. + if set to true [enabled]. + AdsErrorCode. + + + + Reads a value. + + The index group. + The index offset. + The length. + The data. + if set to true [throw ads exception]. + The data read. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The length. + The data. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + Length of the read. + The read data. + Length of the write. + The write data. + if set to true [throw ads exception]. + The data read. + AdsErrorCode. + + + + Reads the specified variable handle. + + The variable handle. + The offset. + The length. + The data. + if set to true [throw ads exception]. + The data read. + AdsErrorCode. + + + + Writes the specified variable handle. + + The variable handle. + The offset. + The length. + The data. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Generates a unique handle for an ADS variable. + + Name of the ADS variable + if set to true [throw ads exception]. + The handle. + The AdsErrorCode. + Thrown when the ADS call fails. + + + + Releases the handle of a ADS variable again. + + Handle of the ADS variable + if set to true [throw ads exception]. + AdsErrorCode. + Thrown when the ADS call fails. + + + + Writes the state + + The state information. + The data. + The offset. + The length. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Read/Writes data to/from the specified address. + + The index group. + The index offset. + The wr value. + if set to true [b throw ads exception]. + The rd value. + AdsErrorCode. + This is often used to read SymbolHandleByName, because it as the string as in parameter and the + uint (Handle) as out parameter. + + + + Gets the SymbolPath encoding of the addressed target systsem project + + The symbol path encoding. + + + + Interface IAdsErrorInjector (for unit testing purposes) + + + + + Injects an error (for unit testing purposes) + + The error. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Injection of an SymbolVersionChanged event (just for Unit-Testing purposes) + + + + + Interface for handling connection state changes + + + + + Called when the Communication has been established. + + + + + Called when the communication is shutdown. + + + + + Called when the communication is shutdown. + + + + + Interceptor object for communication calls. + + + + + Inner object implementing the communication calls which are wrapped by this interceptor (interception target) + + + + + The Interceptor handler. + + + + + Initializes a new instance of the class. + + Intercepted target + Interceptor handler + + + + Invokes the specified delegate. + + The delegate. + AdsErrorCode. + + + + Invokes the specified delegate. + + The delegate. + The error. + AdsErrorCode. + + + + Recource manager. + + + + + Raises ADS exceptions dependent on error code. + + The ADS error code. + + + + + Checks the result code and throws exception if requested. + + if set to true [throw ads exception]. + The code. + + + + Determines, whether the AmsPort is enabled. + + if set to true [throw ads exception]. + if set to true [enabled]. + AdsErrorCode. + + + + Generates a unique handle for an ADS variable. + + Name of the ADS variable + if set to true [throw ads exception]. + The handle. + The ADS Error Code + + + + Releases the handle of a ADS variable again. + + Handle of the ADS variable + if set to true [throw ads exception]. + AdsErrorCode. + + + + Reads the specified variable handle. + + The variable handle. + The offset. + The length. + The data. + if set to true [throw ads exception]. + The data read. + AdsErrorCode. + + + + Reads a value. + + The index group. + The index offset. + The length. + The data. + if set to true [throw ads exception]. + The data read. + AdsErrorCode. + + + + Reads the data from specified index group. + + The index group. + The index offset. + The offset. + The length of data buffer. + The data buffer + if set to true [throw ads exception]. + Number of bytes read. + AdsErrorCode. + + + + Reads a value. + + The index group. + The index offset. + The type. + if set to true [throw ads exception]. + The value. + AdsErrorCode. + + + + Reads a value. + + The index group. + The index offset. + The type. + The arguments. + if set to true [throw ads exception]. + The value. + AdsErrorCode. + + + + Reads a value. + + The variable handle. + The type. + The arguments. + if set to true [throw ads exception]. + The value. + AdsErrorCode. + + + + Reads a value. + + The variable handle. + The type. + if set to true [throw ads exception]. + The value. + AdsErrorCode. + + + + Reads a boolean value. + + The index group. + The index offset. + if set to true [throw ads exception]. + The result. + true if XXXX, false otherwise. + + + + Reads a value. + + The index group. + The index offset. + if set to true [throw ads exception]. + The result. + System.Int16. + + + + Reads a value. + + The index group. + The index offset. + if set to true [throw ads exception]. + The result. + System.Int32. + + + + Reads a value. + + The index group. + The index offset. + if set to true [throw ads exception]. + The result. + System.Int64. + + + + Reads a value. + + The index group. + The index offset. + if set to true [throw ads exception]. + The result. + System.SByte. + + + + Reads a value. + + The index group. + The index offset. + if set to true [throw ads exception]. + The result. + System.Single. + + + + Reads a value. + + The index group. + The index offset. + if set to true [throw ads exception]. + The result. + System.Double. + + + + Read the ADS state. + + if set to true [throw ads exception]. + The state information. + AdsErrorCode. + + + + Writes the state + + The state information. + The data. + The offset. + The length. + if set to true [throw ads exception]. + AdsErrorCode. + + + + + Reads a value. + + The index group. + The index offset. + The characters. + The encoding. + if set to true [throw ads exception]. + The result. + System.String. + + + + Reads a value. + + The variable handle. + The characters. + The encoding. + if set to true [throw ads exception]. + The result. + System.String. + + + + Reads the structure value. + + The index group. + The index offset. + Type of the structure. + if set to true [throw ads exception]. + The result. + System.Object. + + + + Reads a value. + + The index group. + The index offset. + if set to true [throw ads exception]. + The result. + System.UInt16. + + + + Reads a value. + + The index group. + The index offset. + if set to true [throw ads exception]. + The result. + System.UInt32. + + + + Reads a value. + + The index group. + The index offset. + if set to true [throw ads exception]. + The result. + System.Int64. + + + + Reads a value. + + The index group. + The index offset. + if set to true [throw ads exception]. + The result. + System.Byte. + + + + Reads the write. + + The index group. + The index offset. + The wr value. + if set to true [throw ads exception]. + The value. + AdsErrorCode. + + + + Gets the SymbolPath encoding of the addressed target system project + + The symbol path encoding. + + + + Writes a value. + + The index group. + The index offset. + Length of the read. + The read data. + Length of the write. + The write data. + if set to true [throw ads exception]. + The data read. + AdsErrorCode. + + + + Read/Writes data to/from the specified address. + + The index group. + The index offset. + The rd offset. + Length of the rd. + The rd data. + The wr offset. + Length of the wr. + The wr data. + if set to true [throw ads exception]. + The data read. + AdsErrorCode. + + + + Read/Writes data to/from the specified address. + + The variable handle. + The rd offset. + Length of the rd. + The rd data. + The wr offset. + Length of the wr. + The wr data. + if set to true [throw ads exception]. + The data read. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes the specified index group. + + The index group. + The index offset. + The value. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + if set to true [value]. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes the specified variable handle. + + The variable handle. + The offset. + The length. + The data. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The length. + The data. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + The characters. + The encoding. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes the data / Value to the specified address. + + The index group. + The index offset. + The offset. + The length. + The data. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The index group. + The index offset. + The value. + The arguments. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The variable handle. + The value. + The arguments. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes a value. + + The variable handle. + The value. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Writes the string (Potentially unsafe!) + + The index group. + The index offset. + The string. + The characters. + The encoding. + if set to true [throw ads exception]. + System.String. + + ATTENTION: Potentially this method is unsafe because following data can be overwritten + after the string symbol. Please be sure to specify the string length lower than the string size + reserved within the process image! + + + + Writes the string (Potentially unsafe!) + + The variable handle. + The string. + The characters. + The encoding. + if set to true [throw ads exception]. + System.String. + + ATTENTION: Potentially this method is unsafe because following data can be overwritten + after the string symbol. Please be sure to specify the string length lower than the string size + reserved within the process image! + + + + Called when the Communication has been established. + + + + + Called when the communication is shutdown. + + + + + Injects an error (for unit testing purposes) + + The error. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Gets or sets a value indicating whether Notifications should be polled from the Client side. + + true if [client cycle]; otherwise, false. + Cannot change ClientCycle value while notifications are active. + + The ClientCycle moves the creation of Notifications from the Server side to the clients side. + That means that a Timer (synchronous or asynchronous (BackgroundThread)) will trigger on the client side + to poll the registered Notification/Variable handles for their values. The polling is done optimized by a + SumRead command. + + If ClientCycle is set to false, the ADS that has been addressed writes the data cyclically + to the TcAdsClient object. The smallest possible time is the cycle time of the ADS device. + For the PLC, this is the task cycle time. The cycle time can be handled in 1 ms steps. + If you enter 0 ms as the cycle time, then the data is sent to the TcAdsClient object with + every cycle of the ADS device task. + If ClientCycle is set to true, the TcAdsClient object polls the variables cyclically. + The timer that initiates the read / write runs in Windows NT/2000 user mode, which means + that the time behavior strongly depends on the loading of the system. + Under CE Systems this property is set to TRUE by default. + Full .NET Framework has a default of FALSE. + + The ClientCycle has the following advantages/disadvantages: + + Advantages: + + Advantages + Can be faster on slow WindowsCE targets to create notifications. + More notifications are supported. + Realtime is less affected. + + + Disadvantages: + + On (non-CE) targets slower than ServerCycle notifications (standard) + An extra network round trip for the SumRead polling. + Notification Timing strongly depends on the workload of the (client) system + + This is only a workaround for CE targets and a large number of Notifications that cannot be supported from + ServerCycle notifications (standard). + + + + + + Gets the SymbolPath encoding of the addressed target system project + + The symbol path encoding. + + + + Reads the name of the handle by name. + + The index group. + The index offset. + The wr value. + if set to true [b throw ads exception]. + The rd value. + AdsErrorCode. + + + + Injects an error (for unit testing purposes) + + The error. + if set to true [throw ads exception]. + AdsErrorCode. + + + + Injection of an SymbolVersionChanged event (just for Unit-Testing purposes) + + + + + Creates the Notification management class + + NotificationMngt. + The Notification Management needs a different handling on windows CE devices. + The Server side Notifications have poor performance on specific CE Targets (CX 9000, ref RichardK). Therefore + a simulation of Notifications will be implemented on client side. + + + + + Class TcLocalSystem. This class cannot be inherited. + + + + + + The interval of the + + + + + Indicates, that a router port is opened (using the ADS Router protocol instead of TCP/IP) + + + + + Indicates, that router notifications are registered (only when using the ADS Router protocol) + + + + + Router Notification Timer + + Polls the RouterNotifications in intervals specified by TcLocalSystem._interval. + This can be a a (CE Platform) or a (all other platforms) + + + + + Gets the net identifier. + + The net identifier. + + + + Gets the port. + + The port. + + + + Gets a value indicating whether router notifications are available. + + true if [router notifications registered]; otherwise, false. + + + + Gets the state of the router. + + The state of the router. + + + + Updates the state of the router. + + + + + Resource Manager (static) + + + + + Gets the error string of the specified . + + The message. + The ads error code. + System.String. + + + + Gets the (internal) resource manager. + + The resource manager. + + + + Gets the string. + + The name. + System.String. + + + + Helper class for overwrite the Timeout on TcAdsClient temporarily. + + + + + + + Initializes a new instance of the class. + + The connection. + The timeout. + client + + + + Finalizes an instance of the class. + + + + + Disposed flag + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Class FailFastHandlerResetter. + + + + + + Resets the for the specified connection. + + The connection. + connection + This can be used to reset the FailFast errors state before timeout. + + + + + Helper class for preventing ConnectionRejected Errors (preventing the Error Trip on WSA_ConnRefused + + + + + + + + Initializes a new instance of the class. + + The connection. + client + + + + Finalizes an instance of the class. + + + + + Disposed flag + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + ADS Session Provider class. + + + + + + + Initializes a new instance of the class. + + + + + Gets the name of the SessionProvider + + The name. + + + + Creates the Session with address and communication settings. + + The address. + The settings. + ISession. + + + + Creates the specified address. + + The address. + The settings. + S. + + + + Interface for SumCommands (Combined commands) + + + ADS offers powerful and fast communication to exchange any kind of information. It's possible to read single variables + or complete arrays and structures with each one single ADS-API call. + The ADS Sum Command command offers to read with one singale ADS call multiple variables + which are not structured within a linear memory. + As a result the ADS caller application (like scada Systems etc.) can extremly speed up cyclic polling : + Sample : + + Until now : Polling 4000 single variables which are not in a linear area (like array / structure / fixed PLC address ) would cause 4000 single Ads-ReadReq with each 1-2 ms protocol time. + As a result the scanning of these variables take 4000ms-8000ms. + New Ads-Command allows to read multiple variables with one single ADS-ReadReq : 4000 single variables are handled with e.g. 8 single Ads-ReadReq (each call requesting 500 variables) with each 1-2 ms protocol time. + As a result the scanning of these variables take just few 10ms. + + REQUIREMENTS AND IMPORTANT LIMITATIONS: + Note that ADS is just a transport layer, but there could be important side effects. So read this requirements and take care on limitations: + + + Version of target ADS Device + - ADS itself is just the transport layer, but the requested ADS device has to support the ADS-Command. + + + Bytes length of requested data + - Requesting a large list of values from variables is fine, but the requested data of the Ads-response (the data-byte-length) have to pass the AMS Router (size by default a 2048kb) + So the caller has to limit the requested variables based on calculation of requested data-byte-length. + + + Number of Sub-ADS calls : Highly recommended to max. 500 ! + - If the PLC is processing one ADS request, it will completely work on this single ADS request BEFORE starting neyt PLC cycle. + As a result one single ADS request with 200.000 sub-Ads-requests would cause that PLC would collect and copy 200.000 variables into one single ADS response, before starting next PLC. + So this large number of ads-sub-commands will jitter the PLC execution ! + We highly recommend to not request more than 500 Ads-Sub commands + + + + + + + Gets teh of the main SumCommand ADS Request + + The result. + + + + Gets the sub results of the single Sub Requests. + + The sub results. + + + + Gets a value indicating whether this was already executed. + + true if executed; otherwise, false. + + + + Gets a value indicating whether this is succeeded. + + true if succeeded; otherwise, false. + + + + Gets a value indicating whether this failed. + + true if failed; otherwise, false. + + + + Abstract base class for ADS Sum Commands. + + + + + + Enum SumCommandMode + + + + + + Sum Read command + + + + + Sum Write command + + + + + Sum ReadWrite command + + + + + ReadEx + + + + + ReadEx2 + + + + + AddDeviceNotification + + + + + Delete Device Notification + + + + + Enum SumAccessMode + + + + + + Access by IndexGroup / IndexOffset + + + + + Accesses a value by handle + + + + + Access a value by name + + + + + Obsolete + + + + + + Acquire handle by name + + + + + Release handle + + + + + The connection used for communication. + + This can be the or object. + + + + Calculates the length of the complete read Stream (all Read data) + + System.Int32. + + + + Calculates the length of the complete write stream (all written data) + + System.Int32. + + + + Marshals the header information for a single Sum entity object (for a sum read) + + The index group. + The index offset. + The byte size of the date to Read or Write + The writer. + System.Int32. + + + + Marshals the header information for a single Sum entity object (for a sum write) + + The index group. + The index offset. + The byte size of the date to Read or Write + The writer. + System.Int32. + + + + Marshals the header information for a single Sum entity object (for a sum read/write) + + The index group. + The index offset. + The read bytes. + The write bytes. + The writer. + System.Int32. + + + + LIst of single entities that build up the SumCommand + + + + + Sum Access Mode + + + + + Sum Command Mode + + + + + IndexGroup Used by the SumCommand + + + + + Sum command main result. + + + + + Gets the of the main SumCommand ADS Request + + The result. + + + + Sum Command sub results. + + + + + Gets the sub results of the single Sub Requests. + + The sub results. + + + + Indicates, that the has executed already one time. + + + + + Gets a value indicating whether this was already executed. + + true if executed; otherwise, false. + + + + Gets a value indicating whether this is succeeded. + + true if succeeded; otherwise, false. + + + + Gets a value indicating whether this faled. + + true if failed; otherwise, false. + + + + Initializes a new instance of the class. + + The TcAdsClient or AdsConnection. + The sym information. + The access mode. + The read write mode. + + + + Initializes a new instance of the class. + + The connection. + The command mode. + The access mode. + + + + Executes the sum Command. + + The data to write. + The data to read. + ReadDataSizes (only in ReadWrite mode). + Return Codes. + AdsErrorCode. + + + + Marshals (writes) a single entitiy. + + Single entity description. + The writer. + System.Int32. + + + + Unmarshals (reads) the result from the Reader. + + The reader. + The read data. + The read data sizes. + The return codes. + + + + Called when the write data has to be marshalled to the writer. + + The write data. + The writer. + System.Int32. + + + + SumCommand Adapter object to wrap inner SumCommands. + + + + + + + Initializes a new instance of the class. + + + + + The inner sum command. + + + + + Gets teh of the main SumCommand ADS Request + + The result. + + + + Gets the sub results of the single Sub Requests. + + The sub results. + + + + Gets a value indicating whether this was already executed. + + true if executed; otherwise, false. + + + + Gets a value indicating whether this is succeeded. + + true if succeeded; otherwise, false. + + + + Gets a value indicating whether this failed. + + true if failed; otherwise, false. + + + + The ADS SumRead Command. + + Reads the data as Raw list of byte[]. + + + + + Initializes a new instance of the class. + + The TcAdsClient or AdsConnection. + The sym information. + The read write mode. + + + + Initializes a new instance of the class. + + The TcAdsClient or AdsConnection. + The read write mode. + + + + Calculates the length of the read Stream. + + System.Int32. + + + + Calculates the length of the write stream. + + System.Int32. + + + + Try Read + + The read data. + The return codes. + AdsErrorCode. + + + + Reads the values (as list of byte arrays) + + IList<System.Byte[]>. + SumRead failed! + + + + Unmarshals (reads) the result from the Reader. + + The reader. + The read data. + The read data sizes. + The return codes. + + + + Marshals (writes) a single entitiy. + + Single entity description. + The writer. + System.Int32. + + + + + ADS Sum Write Command. + + Write data is raw array of byte[]. + + + + + Initializes a new instance of the class. + + The TcAdsClient or AdsConnection. + The sym information. + The read write mode. + + + + Initializes a new instance of the class. + + The TcAdsClient or AdsConnection. + The read write mode. + + + + Calculates the length of the read Stream. + + System.Int32. + + + + Calculates the length of the write stream. + + System.Int32. + + + + Tries to write the data in raw list of byte arrays. + + The write data. + The return codes. + AdsErrorCode. + + + + Writes the data in form of raw list of byte arrays. + + The write data. + SumWriteCommand failed! + + + + Marshals (writes) a single entitiy. + + Single entity description. + The writer. + System.Int32. + + + + + Unmarshals (reads) the result from the Reader. + + The reader. + The read data. + The read data sizes. + The return codes. + + + + Ads SumReadWrite Command. + + Read/Write value data is expected as already marshalled list of byte[]. + + + + + Initializes a new instance of the class. + + The TcAdsClient or AdsConnection. + The sym information. + The read write mode. + + + + Calculates the length of the read Stream. + + System.Int32. + + + + Calculates the length of the write stream. + + System.Int32. + + + + Tries the read write. + + The write data. + The read data. + The return codes. + AdsErrorCode. + + + + Reads/Writes the data in Raw form (as list of byte arrays) + + The write data. + IList<System.Byte[]>. + SumReadWriteCommand failed! + + + + Marshals (writes) a single entitiy. + + Single entity description. + The writer. + System.Int32. + + + + + Unmarshals (reads) the result from the Reader. + + The reader. + The read data. + The read data sizes. + The return codes. + + + + Base class that implements SumAccess for a set of objects. (abstract) + + + + + + The connection + + + + + Initializes a new instance of the class. + + The TcAdsClient or AdsConnection + The symbols to access. + + + + The Value access mode + + + + + The symbols + + + + + Creates the information list. + + IList<SumSymbolInfo>. + + + + Gets the unwrapped symbols (Decoupled from DynamicSymbols) + + The unwrapped symbols. + + + + Gets the value accessor. + + The value accessor. + + + + Symbolic ADS Sum read access + + The implements symbolic read access with automatic (dynamic) value marshalling. + The advantage of the symbolic access is (in contrast to the handle access classes ,) + that all type information is available when using this ADS Sum Command. The disadvantage is, that the Symbolic information must be loaded beforehand, see examples. + + + + + + + + + + + + + Initializes a new instance of the class. + + The TcAdsClient or ADS Connection object + The symbols to read + + + + Creates the information list. + + IList<SumSymbolInfo>. + + + + + Tries to read the specified symbols. + + The returned values are automatically marshalled to their appropriate .NET types. + + The values. + The return codes. + AdsErrorCode. + + + + Reads the Values. + + The return values are automatically marshalled to their appropriate .NET types. + + System.Object[]. + SumSymbolRead failed! + + + + Class for ADS Sum symbolic Write Access. + + The implements symbolic write access with automatic (dynamic) value marshalling. + The advantage of the symbolic access is (in contrast to the handle access classes ,) + that all type information is available when using this ADS Sum Command. The disadvantage is, that the Symbolic information must be loaded beforehand, see examples. + + + + + + + + + + + + + Initializes a new instance of the class. + + The TcAdsClient or ADS Connection object + The symbols to read + + + + Creates the information list. + + IList<SumSymbolInfo>. + + + + + Tries the write. + + The written values will be marshalled automatically to their appropriate ADS types. + + The values. + The return codes. + AdsErrorCode. + + + + Writes the specified values. + + The values will be marshalled automatically to their appropriate ADS types. + + The values. + SumSymbolWrite failed! + + + + SumCommand for getting variable handles by a set of InstancePaths + + + + + + + + + + + + Initializes a new instance of the class. + + The connection. + The instance paths. + + + + Initializes a new instance of the class. + + The connection. + The instance paths. + + + + Creates the sum entity infos. + + IList<SumDataEntityInfo>. + + + + Tries to create the Handles. + + The handles. + The return codes. + AdsErrorCode. + + + + Tries to create the variable handles. + + The symbol path specifiers. + The handles. + The return codes. + AdsErrorCode. + + + + Tries to create the Handles. + + The handles. + AdsErrorCode. + + + + + Creates the ADS handles. + + System.UInt32[]. + SumGetHandlesCommand failed! + + + + SumCommand for registering Notifications (Not implemented in TwinCAT yet) + + + + + + + + + + Dictionary Handle --> Notification Length (Variable Symbol Byte Size) + + + + + Initializes a new instance of the class. + + The connection. + The variable handles. + The lengths. + The settings. + The stream. + + connection + or + variableHandles + or + lengths + + Handles/lenghts mismatch! + + + + Creates the sum entity infos. + + IList<SumDataEntityInfo>. + + + + Calculates the length of the read Stream. + + System.Int32. + + + + Calculates the length of the write stream. + + System.Int32. + + + + Tries to create the Handles. + + The handles. + The return codes. + AdsErrorCode. + + + + Tries to create the Handles. + + The handles. + AdsErrorCode. + + + + + SumCommand for Deleting Notifications (Not implemented in TwinCAT yet) + + + + + + + + + Initializes a new instance of the class. + + The connection. + The notification handles. + + connection + or + variableHandles + or + lengths + + Handles/lenghts mismatch! + + + + Calculates the length of the read Stream. + + System.Int32. + + + + Calculates the length of the write stream. + + System.Int32. + + + + Tries to Release the Handles + + The return codes. + AdsErrorCode. + + + + Releases the handles. + + SumReleaseHandlesCommand failed! + + + + Class SumHandleEntry. + + + + + + The handle + + + + + Gets the handle. + + The handle. + + + + The error code + + + + + Gets the error code. + + The error code. + + + + Initializes a new instance of the class. + + The handle. + The error code. + + + + Class SumHandleEntry. + + + + + + Gets the instance path. + + The instance path. + + + + Initializes a new instance of the class. + + The instance path. + The handle. + The error code. + + + + Class SumHandleEntry. + + + + + + Gets the instance path. + + The instance path. + + + + Initializes a new instance of the class. + + The handle. + The notification handle. + The error code. + + + + Interface ISumHandleCollection + + + + + + Gets the valid handles (Handles that could be registered) + + The valid handles. + + + + Class SumHandleList. + + + + + + + Read (primitive, Any) values by Handle SumCommand. + + This is an ADS Sum Command to access values by handle information. It is always used in combination with and . + By design (and in contrast to the symbolic access in , ) this access method can act only with ADS ANY Type (Primitive) values (disadvantage). + The Advantage is, that no symbolic information must be loaded before accessing the values, see samples: + + + + + + + + + + + + Initializes a new instance of the class (Only for internal use). + + The connection. + The handle type dictionary. + if set to true [unicode]. + The strlen. + + + + + Initializes a new instance of the class. + + The connection. + The server Handles + The value types (ANY/Primitive .NET types only) + + + + + Initializes a new instance of the class. + + The connection. + The handles. + The value types (ANY/Primitive .NET types only) + if set to true use unicode access. + Default (fixed) string len. + + + + + Tries to read the values of the . + + The values. + The return codes. + AdsErrorCode. + + + + Reads the values. + + System.Object[]. + SumAnyReadByHandleCommand failed! + + + + Write any (primitive) values by Handle SumCommand. + + This is an ADS Sum Command to access values by handle information. It is always used in combination with and . + By design (and in contrast to the symbolic access in , ) this access method can act only with ADS ANY Type (Primitive) values (disadvantage). + The Advantage is, that no symbolic information must be loaded before accessing the values, see samples: + + + + + + + + + + + + Initializes a new instance of the class. + + The connection. + The handle type dictionary. + + + + + Initializes a new instance of the class. + + The connection. + The handles. + The value types (ANY/Primitive .NET types only) + + + + Tries to write the values. + + The values (ANY/Primitive types only). + The return codes. + AdsErrorCode. + + + + Writes the values to the Symbols. + + The Values (Any primitive types only): + SumAnyWriteByHandleCommand failed! + + + + Release Handles SumCommand. + + Releases the specified ADS handles. Usually used in conjunction with the and the / commands. + + + + + + + + + + + + The connection + + + + + The handles to release. + + + + + Initializes a new instance of the class. + + The connection. + The handles. + + + + Creates the sum entity infos. + + IList<SumDataEntityInfo>. + + + + + Tries to Release the Handles + + The return codes. + AdsErrorCode. + + + + Releases the handles. + + SumReleaseHandlesCommand failed! + + + + Class SumDataEntityInfo. + + The DataEntity describes a single data entity that is part of the Sum Command. + + + + + Entity read length + + + + + Read length of the data entity in the context of the sum command + + + + + Entity write length + + + + + Gets the Write length of the data entity in the context of the sum command. + + The length of the write. + + + + Initializes a new instance of the class. + + Length of the read. + Length of the write. + + + + Initializes a new instance of the class. + + + + + Sets the length of the write. + + The length. + This is used in the case, when the size of the data is not known upfront (e.g. strings), that is only + available during runtime. + + + + SumDataEntity with IndexGroup IndexOffset access. + + + + + + The index group + + + + + The index offset + + + + + Initializes a new instance of the class. + + The index group. + The index offset. + Length of the read. + Length of the write. + + + + SumDataEntity IndexGroup IndexOffset Read access. + + + + + + Initializes a new instance of the class. + + The index group. + The index offset. + Length of the read. + + + + SumDataEntity IndexGroup IndexOffset Write access. + + + + + + Initializes a new instance of the class. + + The index group. + The index offset. + Length of the write. + + + + SumDataEntity Handle access + + + + + + SumDataEntity Handle access + + + + + + The ADS handle + + + + + The Primitive Type converter + + + + + Initializes a new instance of the class. + + The handle. + Length of the read. + Length of the write. + The converter. + + + + Initializes a new instance of the class. + + The handle. + The converter. + + + + SumDataEntity Handle access (read by handle and Primitive/Any type) + + + + + + Primitive (Any) type that can be marshalled via + + + + + Initializes a new instance of the class. + + The handle. + The tp. + The converter. + + + + Initializes a new instance of the class. + + The handle. + Length of the string. + The converter. + + + + Initializes a new instance of the class. + + The handle. + Type of the array. + Any type. + The converter. + + + + + SumDataEntity Handle access (write by handle and Primitive/Any type) + + + + + + Primitive (Any) type that can be marshalled via + + + + + Initializes a new instance of the class. + + The handle. + The tp. + The converter. + + + + SumDataEntity InstancePath access (Read/Write by Instance Path) + + + + + + The instance path + + + + + Initializes a new instance of the class. + + The instance path. + Length of the read. + + + + Gets the read bytes. + + System.Byte[]. + + + + Symbol Server object + + + + + + + Initializes a new instance of the class. + + The session. + + + + Creates the symbol loader + + + + + Creates the loader. + + + + + Gets the data types. + + The data types. + + + + Gets the symbols. + + The symbols. + + + + Class caches the currently registered Notification handlers. + + + + + Notification info object + + + + + Symbol + + + + + Notification type + + + + + Notification handle + + + + + Notification settings + + + + + Initializes a new instance of the class. + + The symbol. + The handle. + Type of the notification. + The settings. + + + + Sync object + + + + + Notification Handle --> Symbol + + + + + Symbol --> Notification Handle + + + + + Initializes a new instance of the class. + + + + + Gets the largest symbol size in bytes that is inside this + + System.Int32. + + + + Gets the type of the notification. + + The symbol. + SymbolNotificationType. + + + + Updates the specified symbol notification. + + The symbol. + The type. + The settings. + Symbol is not registered for Notifications! + + + + Adds the specified symbol notification + + The symbol. + The handle. + Type of the notification. + The settings. + Symbol already registered! + + + + Removes the specified symbol notification. + + The symbol. + Type of the notification. + true if XXXX, false otherwise. + + + + Removes all Symbol notifications for the specified symbol. + + The symbol. + true if XXXX, false otherwise. + + + + Tries to get the notification handle. + + The symbol. + The handle. + true if XXXX, false otherwise. + + + + Tries to get the notification settings. + + The symbol. + The settings. + true if XXXX, false otherwise. + + + + Determines whether this has a registered notification for the symbol. + + The symbol. + true if [contains] [the specified symbol]; otherwise, false. + + + + Class AdsTypeBinder. This class cannot be inherited. + + + + + + + Gets the of the Process Image + + The address. + + + + Symbol factory (static objects) (for internal use only) + + + + + + Initializes a new instance of the class (for internal use only) + + if set to true [non cached array elements]. + + + + Handler function creating a new Array Element Symbol. + + Index of the current. + The parent. + Resolved array type. + ISymbol. + + + + Creates the array element. + + Index of the current. + if set to true [oversample]. + The parent. + Resolved array type. + ISymbol. + parent + arrType + or + parent + + + + Creates an Array element instance. + + Indices of the array element + Oversampling indicator. + The parent instance (here the array instance) + Array type. + The element type. + Symbol. + + + + + Creates the oversampling array Element. + + Array Instance. + ISymbol. + + + + Handler function creating a new member + + The field. + The parent. + ISymbol. + + member + or + parent + + + + + Handler function creating the struct symbol + + The entry. + Type of the structure. + The parent. + IStructInstance. + + + + Handler function creating the union symbol + + The entry. + Type of the union. + The parent. + IUnionInstance. + + + + Handler function creating an ArrayInstance + + The symbol INfo. + The type. + The parent. + IArrayInstance. + + + + Handler function creating the alias symbol + + The entry. + The Alias type. + The parent. + IStructInstance. + + + + Called when [create pointer instance]. + + The entry. + Type of the pointer. + The parent. + IPointerInstance. + + + + Handler function creating a ReferenceInstance symbol. + + The entry. + Type of the reference. + The parent. + IReferenceInstance. + + + + Handler function creating a String Type + + The entry. + The string dataType. + The parent. + ISymbol. + + + + Handler function creating a Primitive Symbol + + The entry. + Type of the data. + The parent. + ISymbol. + + + + Handler function creating a new Reference Instance. + + The type. + The parent. + ISymbol. + + type + or + parent + + type + or + parent + + + + Handler function creating a new Virtual Struct + + Name of the instance. + The instance path. + The parent. + ISymbol. + + + + Interface IContextMaskProvider + + + + + + Gets the context mask. + + The context mask. + + + + Symbol class + + + + + + + + + + + + + A Symbol is a (named) memory object within the Process Image with a fixed address indicated by Index Group and Index Offset. + Symbols can optionally be addressed by instance path and are bound to a specific . + + + + Initializes a new instance of the class. + + The entry. + The parent. + The factory services. + + entry + or + factoryServices + + entry + or + resolver + or + factoryServices + + + + Called when the is bound. + + The binder. + + + + + Sets a new InstanceName InstancePath + + Instance name. + + + + Initializes a new instance of the class. + + The entry. + The type. + The parent. + The factory services. + + + + Initializes a new instance of the class. + + The parent. + The type. + Name of the instance. + The field offset. + The factory services. + + + + Initializes a new instance of the class. + + The index group. + The index offset. + The parent. + The type. + Name of the instance. + The instance path. + The factory services. + factoryServices + instanceName + + + + Initializes a new instance of the class. + + Name of the instance. + The parent. + The factory services. + + + + Initializes a new instance of the class. + + Name of the instance. + The instance path. + The factory services. + + + + Initializes a new instance of the class which represents an instance of + + The member. + The parent ( or ) of this member instance symbol. + + + + Gets the symbol flags. + + The structure parent. + The sub symbol. + AdsSymbolFlags. + + + + Gets the symbol flags. + + The array parent. + Type of the element. + AdsSymbolFlags. + + + + Initializes a new instance of the class. + + The indices. + Indicates, that is Symbol is the virtual oversampling element. + The parent (Can be IArrayInstance or IAliasInstance) + + + + Equals + + The object to compare with the current object. + true if the specified is equal to this instance; otherwise, false. + + + + Operator== + + The o1. + The o2. + The result of the operator. + + + + Implements the != operator. + + The o1. + The o2. + The result of the operator. + + + + Gets the HashCode of the Address + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + The Symbol Factory Services + + + + + Gets the factory services. + + The factory services. + + + + + Gets the value accessor. + + The value accessor. + + + + + Calculates the access. + + The parent. + The member. + The index group. + The index offset. + + + + (Re)Calculates the IndexGroup and Index Offset from Byte/Access To BitAccess or for TCom Pid masking + + The parent Symbol + The member. + The index group result + The index offset result + + + + Notification Settings + + The notification settings. + + + + Gets or sets the notification settings. + + The notification settings. + The will be inherited from if the setting is not overwritten. + If the Root Symbol also doesn't contain the settings, then the will be returned. + + + + The parent Symbol + + + + + + Gets the parent Symbol + + The parent. + + + + Sets the parent symbol. + + The parent. + + + + The index group + + + + + + Gets the index group of the Symbol + + + The index group. + + + + + The index offset + + + + + + Gets the index offset of the Symbol + + + The index offset. + + + + + Gets the name. + + + The name. + + + + + + Gets the type. + + + The type. + + + + + + The instance path + + + + + + Gets the relative / absolute access path to the instance (with periods (.)) + + + The instance path. + + + If this path is relative or absolute depends on the context. are using relative paths, s are using absolute ones. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + The image base address + + + + + + Gets the of the Process Image + + + The address. + + + + + Weak reference to SubSymbols + + + + + Creates the sub symbols collection. + + + + + Gets the SubSymbols of the + + + Used for Array, Struct, Pointer and Reference instances. Otherwise empty + + + + + Gets the SubSymbols Collection (internal variant) + + The sub symbols internal. + + + + + Handler function getting the SubSymbols + + ISymbolCollection. + + The default case is, that the SubSymbols are cached via WeakReferences + + + + + + Gets the number of SubSymbols + + The Number of SubSymbols. + If the collection is not generated yet (WeakReference), + then this method is less memory and cpu consuming to use for just determining the + the number of child symbols (instead of using SubSymbols.Count)/> + + + + Handler function determining the SubSymbolCode (optimized) + + System.Int32. + If the SubSymbols WeakReference is avaliable, we take that one for determining the Count as optimization. + + + + + + Gets a value indicating whether [sub symbols created]. + + true if [sub symbols created]; otherwise, false. + + + + + Creates the sub symbols. + + The parent. + SymbolCollection. + + + + + Gets or sets a value indicating whether an ancestor is a dereferenced Reference + + true if this instance is ancestor is reference; otherwise, false. + + + + Gets or sets a value indicating whether an ancestor is a dereferenced Pointer + + true if this instance is ancestor is pointer; otherwise, false. + + + + Reads the raw value of the (Ads Read / Write) + + System.Byte[]. + The raw value. + + + + Reads the raw value of the (Ads Read / Write) + + System.Byte[]. + The raw value. + + + + Writes the raw value of the (Ads Read / Write) + + The value. + The raw value. + + + + Writes the raw value of the (Ads Read / Write) + + The value. + The timeout. + The raw value. + A negative timeout indicates that the Default Timeout for the communication will be used. + 0 means timeout is switched off. + + + + Handler function for writing the RawValue + + The value. + The timeout. + + + + + + + + + + Handler function for reading the raw value + + System.Byte[]. + + + + + + RawValueChanged delegate + + + + + Occurs when the RawValue of the has changed. + + + + + ValueChanged delegate. + + + + + Occurs when the (Primitive) value of the has changed. + + + + + The access rights + + + + + + Gets the access rights. + + The access rights. + + + + Gets the connection that produces values for this + + The connection object. + + + + Reads the Value of the + + System.Object. + The value. + Calling on primitive types, a call of this method will return the primitive value. + On complex types (structures and arrays) it depends on the settings what will happen. + In non dynamic modes: the raw byte Array will be returned, + in dynamic mode: A Value will be created on the fly. + + + + Reads the Value of the + + The timeout in ms. + System.Object. + The value. + Calling on primitive types, a call of this method will return the primitive value. + On complex types (structures and arrays) it depends on the settings what will happen. + In non dynamic modes: the raw byte Array will be returned, + in dynamic mode: A Value will be created on the fly. + A negative timeout indicates that the Default Timeout for the communication will be used. + 0 means timeout is switched off. + + + + Reads the Value of the + + The timeout in ms. + The read value. + The error Code.. + Calling on primitive types, a call of this method will return the primitive value. + On complex types (structures and arrays) it depends on the settings what will happen. + In non dynamic modes: the raw byte Array will be returned, + in dynamic mode: A Value will be created on the fly. + A negative timeout indicates that the Default Timeout for the communication will be used. + 0 means timeout is switched off. + + + + Writes the Value of the + + The value. + Calling on primitive types, a call of this method will directly write this Value. + On complex types (structs and arrays) it depends on the settings what will happen. + In non dynamic modes: Only byte Arrays (of correct size) can be written) + in dynamic mode: A Value that represents the value will be accepted also. + + + + Writes the Value of the + + The value. + The timeout in ms. + The error code. + Calling on primitive types, a call of this method will directly write this Value. + On complex types (structs and arrays) it depends on the settings what will happen. + In non dynamic modes: Only byte Arrays (of correct size) can be written) + in dynamic mode: A Value that represents the value will be accepted also. A negative timeout indicates that the Default + Timeout for the communication will be used. + 0 means timeout is switched off. + + + + Writes the Value of the + + The value. + The timeout in ms. + Calling on primitive types, a call of this method will directly write this Value. + On complex types (structs and arrays) it depends on the settings what will happen. + In non dynamic modes: Only byte Arrays (of correct size) can be written) + in dynamic mode: A Value that represents the value will be accepted also. A negative timeout indicates that the Default + Timeout for the communication will be used. + 0 means timeout is switched off. + + + + Handler function for writing the dynamic value + + The value. + The timeout. + + + + + + Handler function for writing the dynamic value + + The value. + The timeout. + + + + + + Ensures that the AccessRights are matched. + + The requested rights. + + + + + Handler function for reading the dynamic value. + + The Value + + + + Handler function for reading the dynamic value. + + The Value + + + + Reads the value of this Value into a new created instance of the managed type + + The tp. + Read value (System.Object). + + + + + + Reads the value of this Value into a new created instance of the managed type + + The tp. + The timeout in ms. + Read value (System.Object). + + + + + + Reads the value of this Value into the specified managed value. + + The managed object. + Read value (System.Object). + + + + + + Reads the value of this Value into the specified managed value. + + The managed object. + The timeout. + Read value (System.Object). + + + + + + Writes the value represented by the managed value to this Value + + The managed value. + . + . + + + + Writes the value represented by the managed value to this Value + + The managed value. + The timeout in ms. + . + . + + + + Gets a value indicating whether this instance is primitive. + + + true if this instance is primitive; otherwise, false. + + + + + Gets a value indicating whether the Symbols datatype is a Container type. + + true if this instance is container type; otherwise, false. + + Container Types are all types that contain SubElements like + + and the and types, if they have a container type as base type. + + + + Gets a value indicating whether this instance is recursive. + + true if this instance is recursive; otherwise, false. + + + + Gets the parent list. + + List<ISymbol>. + + + + Called when the RawValue has been changed (firing RawValueChanged event). + + The arguments. + + + + Called when the Value has been changed (firing ValueChanged event). + + The arguments. + + + + Gets the Unwrapped Symbol + + The symbol. + The unwrapped symbol if dynamically wrapped, the original symbol otherwise. + + + + Class VirtualStructInstance. + + + + + Initializes a new instance of the class. + + Name of the instance. + The instance path. + The parent. + The services. + + + + Virtual members (used as SubSymbols) + + These virtual members are stored as full reference that they are + not lost over time. + /// + + + + Adds the member. + + The member instance. + The parent struct instance. Usually the this pointer. + + + + Called when the SubSymbols are (re)created) + + The parent instance. + TwinCAT.TypeSystem.SymbolCollection. + + + + Gets the size of the in bits. + + The size of the bit. + + + + Gets a value indicating whether this instance has a value. + + true if this instance has value; otherwise, false. + + + + Tries to resolve the . + + true if XXXX, false otherwise. + + + + + Class representing a Union Instance + + + + + Initializes a new instance of the class. + + The entry. + The type. + The parent. + The factory services. + + + + Initializes a new instance of the class. + + Name of the instance. + The parent. + The factory services. + + + + Initializes a new instance of the class. + + Name of the instance. + The instance path. + The factory services. + + + + Initializes a new instance of the class. + + The member. + The parent of this member instance symbol. + + + + Initializes a new instance of the class. + + Index of the current. + if set to true [oversample]. + The parent. + + + + Initializes a new instance of the class. + + The parent. + The type. + Name of the instance. + The field offset. + + + + Called when [create sub symbols]. + + The parent instance. + SymbolCollection. + + + + Gets the member instances of the Struct Instance. + + The member instances. + + + + Gets a value indicating whether this instance is primitive. + + true if this instance is primitive; otherwise, false. + + + + Gets a value indicating whether this Symbol is a container/complex type. + + true if this instance is container type; otherwise, false. + + + + Class representing a Struct Instance + + + + + Initializes a new instance of the class. + + The entry. + The type. + The parent. + The factory services. + + + + Initializes a new instance of the class. + + Name of the instance. + The parent. + The field offset. + The factory services. + + + + Initializes a new instance of the class. + + Name of the instance. + The instance path. + The factory services. + + + + Initializes a new instance of the class. + + The member. + The parent ( or ) of this member instance symbol. + + + + Initializes a new instance of the class. + + Index of the current. + if set to true [oversample]. + The parent. + + + + Initializes a new instance of the class. + + The parent. + The type. + Name of the instance. + The field offset. + + + + Called when [create sub symbols]. + + The parent instance. + SymbolCollection. + + + + Gets the member instances of the Struct Instance. + + The member instances. + + + + Gets a value indicating whether this instance is primitive. + + true if this instance is primitive; otherwise, false. + + + + Gets a value indicating whether this Symbol is a container/complex type. + + true if this instance is container type; otherwise, false. + + + + Gets a value indicating whether this instance has RPC methods + + true if this instance has RPC methods; otherwise, false. + If the struct instance supports RPC Methods, then the instance class is also + supporting . + + + + + + + Struct Instance with RPC Methods + + + + + Initializes a new instance of the class. + + Index of the current. + Indicates, that the oversample Symbol is to be created. + The array instance. + + + + Initializes a new instance of the class. + + The typed member. + The parent ( or ) of this member instance symbol. + + + + Initializes a new instance of the class. + + The entry. + The structure RPC callable. + The parent. + The services. + + + + Initializes a new instance of the class. + + The parent. + The type. + Name of the instance. + The field offset. + + + + Invokes the specified method. + + Name of the method. + The IN parameters or NULL. + The return value of the RPC Method + methodName + The parameters are not matching the method prototype.;parameters + + + (* Declaration *) + {attribute 'TcRpcEnable'} + METHOD RpcMethod1 : INT + VAR_INPUT + i1 : INT; + END_VAR + (* Implementation *) + RpcMethod1 := i1 + 1; + + + To indicate a PLC Method for remote ads access, the attribute 'TcRpcEnable' must be declared on + the method declaration (see example). + + + + Tries to invoke the specified method. + + Name of the method. + The arguments. + The result. + true if the call succeeds, false otherwise. + + + + + Tries to invoke the specified method. + + The method. + The arguments. + The result. + true if the call succeeds, false otherwise. + + + + + Invokes the specified RPC Method + + The method. + The arguments. + The ANYTYPE out specifiers. + The ANYTYPE result specifiers. + The out parameters. + The result. + System.Int32. + + + + Gets the Method descriptions for the + + The methods. + + + + Class AliasInstance. + + + + + + + Initializes a new instance of the class. + + The entry. + The type. + The parent. + The factory services. + + + + Initializes a new instance of the class. + + The member. + The parent ( or ) of this member instance symbol. + + + + Initializes a new instance of the class. + + Index of the current. + Indicates, that the oversample Symbol is to be created. + The parent. + + + + Initializes a new instance of the class. + + The parent. + The type. + Name of the instance. + The field offset. + + + + Gets a value indicating whether this instance is primitive. + + true if this instance is primitive; otherwise, false. + + + + Gets a value indicating whether this Symbol is a container/complex type. + + true if this instance is container type; otherwise, false. + + + + Creates the sub symbols collection. + + + + + Reference instance. + + + + + Initializes a new instance of the class. + + The entry. + The type. + The parent. + The factory services. + + + + Initializes a new instance of the class. + + The member. + The parent ( or ) of this member instance symbol. + + + + Initializes a new instance of the class. + + Index of the current. + Indicates, that the oversample Symbol is to be created. + The parent. + + + + Initializes a new instance of the class. + + The parent. + The type. + Name of the instance. + The field offset. + + + + Gets a value indicating whether this instance is primitive. + + true if this instance is primitive; otherwise, false. + + + + Gets a value indicating whether this Symbol is a container/complex type. + + true if this instance is container type; otherwise, false. + + + + Gets the Category of the Referenced Symbol. + + The resolved category. + + + + Gets the referenced type + + The type of the referenced type + This is no complete resolvement, only the next level. The referenced type can be a reference again. + + + + Gets the (completely) resolved type + + The type of the resolved symbol + + + + Get the ByteSize of the (completely) resolved Symbol + + The size of the resolved byte. + + + + Creates the sub symbols collection. + + + + + Tries to get the array element (only in case of ResolvedCategory ARRAY) + + The indices. + The found Array element symbol (out-parameter). + true if found, false if the indices specifiers is out-of-range. + indices + + + + Pointer Instance + + + + + Initializes a new instance of the class. + + The entry. + The type. + The parent. + The factory services. + + + + Initializes a new instance of the class. + + Index of the current. + Indicates, that the oversample Symbol is to be created. + The parent. + + + + Initializes a new instance of the class. + + The member. + The parent ( or ) of this member instance symbol. + + + + Initializes a new instance of the class. + + The parent. + The type. + Name of the instance. + The field offset. + + + + Gets the encoding of the String (Encoding.Default (STRING) or Encoding.UNICODE (WSTRING)) + + The encoding. + + + + Gets a value indicating whether this instance is fixed length. + + true if this instance is fixed length; otherwise, false. + + + + Pointer Instance + + + + + Initializes a new instance of the class. + + The entry. + The type. + The parent. + The factory services. + + + + Initializes a new instance of the class. + + Index of the current. + Indicates, that the oversample Symbol is to be created. + The parent. + + + + Initializes a new instance of the class. + + The member. + The parent ( or ) of this member instance symbol. + + + + Initializes a new instance of the class. + + The parent. + The type. + Name of the instance. + The field offset. + + + + Gets a value indicating whether this instance is primitive. + + true if this instance is primitive; otherwise, false. + + + + Gets a value indicating whether this Symbol is a container/complex type. + + true if this instance is container type; otherwise, false. + + + + Creates the sub symbols collection. + + + + + Gets the resolved reference of Pointer / Reference + + The reference. + + + + Class OversamplingArrayInstance. + + + + + Initializes a new instance of the class. + + Index of the current. + Oversampling instance. + The parent. + + + + Initializes a new instance of the class. + + The entry. + The type. + The parent. + The factory services. + + + + Initializes a new instance of the class. + + The member. + The parent ( or ) of this member instance symbol. + + + + Initializes a new instance of the class. + + The parent. + The type. + Name of the instance. + The field offset. + + + + Creates the sub symbols collection. + + + + + Tries to get the oversampling element + + The symbol. + true if XXXX, false otherwise. + + + + Gets the oversampling element. + + The oversampling element. + + + + Get the Elements Collection (SubItems without Virtual oversampling element) + + ReadOnlySymbolCollection. + + + + Implementation of the . + + + + + Initializes a new instance of the class. + + The entry. + The type. + The parent. + The factory services. + + + + Initializes a new instance of the class. + + The member. + The parent ( or ) of this member instance symbol. + + + + Initializes a new instance of the class. + + Index of the current. + Oversampling instance. + The parent. + + + + Initializes a new instance of the class. + + The parent. + The type. + Name of the instance. + The field offset. + + + + Handler function is called, when SubSymbols (the elements) are called. + + + + + + + + Creates the sub symbols collection. + + + + + Gets the contained Array Elements as read only collection. + + The elements. + + + + Handler function getting the SubElements of the Array. + + ReadOnlySymbolCollection. + + + + Gets the with the specified indices. + + The indices. + ISymbol. + indices + + + + Tries to get the array element + + The indices. + The found Array element symbol (out-parameter). + true if found, false if the indices specifiers is out-of-range. + + + + Tries to get the array element with the specified indices (jagged array support). + + The jagged indices list. + The symbol. + true if found, false if the jagged indices specifiers is out-of-range. + jaggedIndices + jaggedIndices + + + + Gets the jagged level. + + The jagged level. + + + + Gets a value indicating whether this Symbol is a container/complex type. + + true if this instance is container type; otherwise, false. + + + + Gets a value indicating whether this instance is primitive. + + true if this instance is primitive; otherwise, false. + + + + Gets the dimensions as read only collection. + + The dimensions. + + + + Gets the type of the contained elements. + + The type of the element. + + + + Gets a value indicating whether this is oversampled. + + true if this instance is oversampled; otherwise, false. + + + + Interface IAnySizeArrayInstance + + + + + + Updates the dimensions of this VariableSize Array + + AdsErrorCode. + + + + Reads the dynamic Dim Lengths of the AnySize Array. + + The dynamic dimension lengths. + AdsErrorCode. + + + + Gets the Array of Dynamic Dim Lengths (cached). + + The dynamic dim lengths. + + + + Creates a new DimensionCollection from unconcrete dynamic dimensions + + The dims. + Starting index within the dynamic lengths. + The dynamic lengths. + The amount of patched dimensions. + The Patched / Real / Online Dimension collection. + + + + Variable / Dynamic / AnySize Array Type. + Implements the + + + + + + + Root dynamic instance. + + + + + Initializes a new instance of the class. + + The dynamic/original type. + The dynamic parameter offset. + The root dynamic instance. + + + + Offset within the DynamicDimLengths (necessary for jagged arrays) + + + + + Number of used dynamic Dimensions + + + + + Number of used dynamic Dimensions. + + The dynamic parameter count. + + + + Class AnySizeArrayInstance. + Implements the + + This ArrayInstance type is used for so called 'AnySize' arrays. That means + array instances that referenced by pointers that are marked with the 'TcArraySize' attribute. + The field reference in the attribute is used to specify the size of the referenced Array dynamically + during runtime. + + + + + + + Initializes a new instance of the class. + + The parent. + The type. + Name of the instance. + The field offset. + + + + Gets the parent pointer Symbol + + The parent pointer. + + + + Gets the name of the 'TcArrayLengthIs' field + + The name of the tc array size field. + + + + Gets the parent structure. + + The parent structure. + + + + Gets the 'LengthIs' symbol + + The array size symbol. + This can be symbol of an Primitive value (e.g INT, for one index) or + an Array of primtive values (e.g. ARRAY OF INT) + + + + Handler function getting the SubSymbols + + ISymbolCollection. + + The SubSymbols are determined instead of the WeakReference Cache of the base implementation. + + + + + + Handler function determining the SubSymbolCode (optimized) + + System.Int32. + + This overload enforces that, the SubSymbolCount will be recreated on access, and not be cached as coded + in the base implementation. + + + + The cached dim lengths + + + + + Gets the Array of Dynamic Dim Lengths (cached). + + The dynamic dim lengths. + + + + Tries to read TcLengthIs symbol, that is referenced by this array. + + The length is value. + AdsErrorCode. + + + + Handler function getting the size of the + + System.Int32. + + + + Handler function is called, when SubSymbols (the elements) are called. + + true if XXXX, false otherwise. + + + + + Indicates, that the dynamic type was read at least one time. + + + + + Updates the dimensions of this VariableSize Array + + AdsErrorCode. + + + + Handler function for reading the raw value + + The timeout. + System.Byte[]. + + + + Handler function for reading the dynamic value. + + The timeout. + The Value + + + + Handler function for writing the RawValue + + The value. + The timeout. + + + + Handler function for writing the dynamic value + + The value. + The timeout. + + + + Tries to resolve the . + + true if XXXX, false otherwise. + + + + Tries to get the array element + + The indices. + The found Array element symbol (out-parameter). + true if found, false if the indices specifiers is out-of-range. + + + + Iterator class for enumerations of Symbols. + + This iterator class can be used to iterate over collections of symbol trees (root symbols + sub symbols). + By constructor the user can choose if the iterator works recursively within the symbol + tree and optionally a filter function to select only specific symbols (predicate). + + + The following example shows how to determine, browse and filter symbols. + + + + + + Initializes a new instance of the class. + + The symbol collection. + The predicate / filter function + + + + Initializes a new instance of the class. + + The symbol collection. + if set to true, the iterator works recursively over all subsymbols. + The predicate / filter function. + + + + Initializes a new instance of the class. + + The symbol collection + + + + Initializes a new instance of the class. + + The symbol enumeration. + if set to true, the iterator works recursively over all subsymbols. + + + + Interface IAdsTypeBinder + + + + + + + Gets the of the Process Image + + The address. + + + + Category converter + + Converts the from + and vice versa. + + + + + Converts to from . + + The identifier. + DataTypeCategory. + + + + Converts the from and typename. + + The identifier. + Name of the type. + DataTypeCategory. + + + + Converts the to . + + The type. + DataTypeCategory. + + + + Converts the to the . + + The cat. + AdsDatatypeId. + + + + Helper Data Type to implement Bit mapping types. + + + + + Initializes a new instance of the class. + + The name. + The size of the type in bits. + Type of the dotnet. + + + + Class PrimitiveType. + + + + + + Initializes a new instance of the class. + + The name. + The data type identifier. + Size of the byte. + The flags. + Type of the dotnet. + + + + + Indicates types of different PrimitiveTypes with flags. + + The primitive flags. + + + + Platform bound types. + + These are Primitive types like (UXINT, XINT, XWORD, PWORD) whose size is dependant of the target platform (4 or 8 bytes). + + + + + + Initializes a new instance of the class. + + The name. + Size of the byte. + Type of the dotnet. + + + + + Initializes a new instance of the class. + + The entry. + entry + + + + Called when this is bound via the type binder. + + The binder. + + + + + RPC Method Description + + + + + Initializes a new instance of the class. + + The entry. + + + + The name of the method + + + + + Gets the name of the method + + The name. + + + + Method parameters. + + + + + Gets all parameters (In, Out and ref parameters) of the . + + The parameters. + + + + Gets the In-Parameters of the + + The In- and Ref-Parameters + + + + Gets the Out-Parameters of the + + The Out- and Ref-Parameters + + + + Gets the size of the biggest element in bytes for Alignment + + The size of the return align. + + + + Gets the return type of the + + Return type or string.Empty. + + + + Gets the Byte size of the return type. + + The size of the return type. + + + + Gets the V-table index of the method. + + The index of the v table. + + + + Gets the Method comment. + + The comment. + + + + Gets a value indicating whether this has no return parameter + + true if this instance is void; otherwise, false. + + + + + Returns a that represents this instance. + + A that represents this instance. + + + + Class RpcMethodParameter. + + + + + size of datatype ( in bytes ) + + + + + Gets the size of the + + The size. + + + + size of biggest element for alignment + + + + + Gets the size of biggest element for alignment + + The size of the align. + + + + adsDataType of symbol (if alias) + + + + + Method Parameter Flags + + + + + Gets the parameter flags. + + The parameter flags. + + + + Data Type Guid + + + + + Gets the Unique identifier of the parameters data type. + + The type unique identifier. + + + + The _length is para + + This field references to the Parameter that defines the length for this + generic one. Equally to the marshalling attributes of COM (sizeof, length) + this enables to transport parameter of type (PVOID) + + + + + Gets the index of the LengthIs parameter (within the MethodParameter List) + + The index of the length is parameter. + This field references to the Parameter that defines the length for this + generic one. Equally to the marshalling attributes of COM (sizeof, length) + this enables to transport parameter of type (PVOID) + + + + Gets a value indicating whether this instance has a related LengthIs Parameter. + + true if this instance has a LengthIs parameter; otherwise, false. + + + + Name of datatype with terminating \0 + + + + + Gets the Parameter Name + + The name. + + + + type name of dataitem + + + + + Gets the Data type of the Parameter + + The type. + + + + Parameter Comment + + + + + Gets the Parameter Comment. + + The comment. + + + + Initializes a new instance of the class. + + The para information. + + + + DataType class + + + + + The s_id counter + + + + + Initializes a new instance of the class. + + The category + The entry. + + + + Initializes a new instance of the class (Bytes mapping) + + Name of the Data type + DataType category / ID (internal style) + Data type category + The Size of the Data Type in bytes or Bits + Associated dot net type. + + + + Initializes a new instance of the class. + + Name of the Data type + DataType category / ID (internal style) + Data type category + The Size of the Data Type in bits or bytes (depending on bitMapping) + Associated dot net type. + The flags. + + + + Initializes a new instance of the class (copy Constructor) + + The copy. + + + + Internal ID of the DataType (non persistent) + + + + + + Gets the ID of the DataType + + The id. + + + + The corresponding .NET type + + + + + + Gets the corresponding .NET Type if attached. + + Dot net type. + + + + The type binder / resolver + + + + + The namespace + + + + + + Gets the namespace string within the exists. + + The namespace. + + + + Data Type Category + + + + + + Gets the Data Type category + + The category. + + + + Data Type category + + + + + + hashValue of base type / Code Offset to setter Method (typeHashValue or offsSetCode) + + + + + + Gets the hashValue of base type / Code Offset to setter Method (typeHashValue or offsSetCode) + + The data type id. + + + + + Gets the DataTypeId (Only for internal use) + + The data type id. + + + + + The size of this in bytes or bits (dependant on ) + + + + + + Gets the Size of the in Bytes + + The size. + + + + Sets the size of the + + The size. + Type of the managed. + + + + Gets the (aligned) size of of the Type/Instance in Bytes + + The size of the byte. + + + + Indicates that the Size of the Object is Byte aligned (BitSize % 8 == 0) + + true if this instance is byte aligned; otherwise, false. + + + + Gets the size of the in bits. + + The size of the bit. + + + + The name of the + + + + + + Gets the name of the Data Type (without namespace) + + The name. + + + + Gets the full name of the (Namespace + Name) + + The full name. + + + + Additional comment to the + + + + + + Gets the comment. + + The comment. + + + + Resolves the type. + + The type. + IDataType. + + + + + Returns a that represents this instance. + + A that represents this instance. + + + + Gets a value indicating whether this is primitive + + true if this instance is primitive; otherwise, false. + + + + Gets a value indicating whether this is a container type + + true if this instance is container type; otherwise, false. + + Container Types are all types that contain SubElements like + + and the and types, if they have a container type as base type. + + + + Gets a value indicating whether this is a reference type + + true if this instance is container type; otherwise, false. + + Reference types can be dereferenced. + + + + Determines whether the specified category is a reference type. + + The data type category. + true if [is reference type] [the specified cat]; otherwise, false. + + + + Gets a value indicating whether this is a pointer type + + true if this instance is pointer type; otherwise, false. + + Pointer types can be dereferenced with the '^' operator. + + + + Determines whether the specified category is a pointer type. + + The data type category. + true if [is pointer type] [the specified cat]; otherwise, false. + + + + Flag indicators set to this type. + + + + + + Gets the Flag indicators set to this type. + + The flags. + + + + Gets a value indicating whether this is a bit mapping Type + + true if this instance is bit mapping subtype; otherwise, false. + + + + The attributes + + + + + + Gets the attributes of the + + The attributes. + + + + + Registers this instance at the + + + + + + Called when this is bound via the type binder. + + The binder. + + + + + Gets a value indicating whether this type is bound. + + true if this instance is bound; otherwise, false. + + + + + Enum . + + + + + + Initializes a new instance of the class. + + The entry. + + + + + + + The _base type identifier + + + + + The _base type name + + + + + Gets the BaseType name + + The name of the base type. + + + + The _base type + + + + + Gets the Base Type + + The type of the base. + + + + Enumeration specification (if enum) + + The enum specification. + + + + The _fields + + + + + Gets the values of the + + T[]. + + + + Gets the filed names of the + + System.String[]. + + + + Tries to parse the Enum Value + + Enum value (in string representation). + The value. + true if XXXX, false otherwise. + + + + Parses a name of the and returns the value (as base type) + + Enum Value as string. + T. + + + + Returns a that represents this instance. + + The value. + A that represents this instance. + val + + + + Gets the values of the + + T[]. + + + + Parses a name of the and returns the value (as base type) + + The name. + T. + + + + Returns a that represents this instance. + + The value. + A that represents this instance. + + + + Parses the value from value name. + + The value name. + The value. + true if value name was found, false otherwise. + + + + Determines whether the enum values contains the specified name + + The name. + true if contains the value, otherwise, false. + + + + Enumeration specification (if enum) + + The enum specification. + + + + Alias DataType + + + + + Initializes a new instance of the class. + + The entry. + + + + + Initializes a new instance of the class. + + The name. + Type of the base. + + + + + Gets the BaseType name + + + + + Gets the Base Type + + + + + Gets a value indicating whether this is primitive + + + true if this instance is primitive; otherwise, false. + + + + + Gets a value indicating whether this is a container type + + true if this instance is container type; otherwise, false. + + Container Types are all types that contain SubElements like + + And the types, if they have a container type as base type. + + + + Gets the corresponding .NET Type if attached. + + Dot net type. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + String DataType + + + + + Initializes a new instance of the class. + + The length. + + + + + The length of the + + + + + + Gets the number of characters within the string. + + + The length. + + + + + Gets a value indicating whether the string is of fixed length. + + true if this instance is fixed length; otherwise, false. + + + + + Gets the encoding of the String (Encoding.ASCII (STRING) or Encoding.UNICODE (WSTRING)) + + The encoding. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Represents an Unicode string (Wide string) + + + + + Initializes a new instance of the class. + + The length. + + + + + The length of the + + + + + + Gets the number of characters within the string. + + + The length. + + + + + Gets the encoding of the String (Encoding.Default (STRING) or Encoding.UNICODE (WSTRING)) + + The encoding. + + + + Gets a value indicating whether the string is of fixed length. + + true if this instance is fixed length; otherwise, false. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Represents a union type + + + + + Initializes a new instance of the class. + + The entry. + + + + + Called when this is bound via the type binder. + + The binder. + + + + + The Union Fields + + + + + Gets a read only collection of the Fields of the . + + + The members as read only collection. + + + + + Represents a struct type + + + + + Initializes a new instance of the class. + + The entry. + + + + + Called when this is bound via the type binder. + + The binder. + + + + + Gets a value indicating whether this instance is derived. + + + true if this instance is derived; otherwise, false. + + + + + Gets a read only collection of the Members of the . + + + The members as read only collection. + + + If the is derived, only the extended members are returned. To get + all supported members down the inheritance chain, use the property. + + + + + ID of the base type of Derived. + + + + + Base Type Name of the if derived + + + + + Gets the the Name of the Base class (if derived) + + + Empty if not derived. + + + + + Base Type of the Struct if derived. + + + + + Gets the structs Base Type (Null if not derived). + + + + + All members of this + + + + + Gets all members (down the derivation hierarchy) + + + All members. + + + + + Gets a value indicating whether this has RPC Methods. + + true if this type has methods; otherwise, false. + The DataType (Structure) must be marked with the PlcAttribute 'TcRpcEnable' to enable RpcMethods, otherwise + RpcMethods are not passed through to the ADS symbolic information. + + + + StructType which is callable by RPC Methods. + + + + + Initializes a new instance of the class. + + The entry. + + + + + RPC Method description + + + + + Gets the Method descriptions for the + + The methods. + The DataType (Structure) must be marked with the PlcAttribute 'TcRpcEnable' to enable RpcMethods, otherwise + RpcMethods are not passed through to the ADS symbolic information. + + + + Gets a value indicating whether this instance has RPC Methods. + + true if this instance has methods; otherwise, false. + The DataType (Structure) must be marked with the PlcAttribute 'TcRpcEnable' to enable RpcMethods, otherwise + RpcMethods are not passed through to the ADS symbolic information. + + + + Represents a reference type + + + + + Initializes a new instance of the class. + + Name of the referenced type. + The size in bytes (Dependent of the target OS) + size + + + + + Initializes a new instance of the class. + + The name. + Name of the referenced type. + The size. + size + + + + + Initializes a new instance of the class. + + The entry. + Name of the referenced type. + + + + + Called when this is bound via the type binder. + + The binder. + + + + + Gets a value indicating whether this is a container type + + true if this instance is container type; otherwise, false. + + Container Types are all types that contain SubElements like + + and the and types, if they have a container type as base type. + + + + Gets a value indicating whether this is primitive + + + true if this instance is primitive; otherwise, false. + + + + + Gets the corresponding .NET Type if attached. + + Dot net type. + + + + Gets the the referenced type. + + + The type of the referenced. + + + + + Gets the Category of the (completely) resolved Symbol. + + The resolved category. + + + + Get the ByteSize of the (completely) resolved Symbol + + The size of the resolved byte. + + + + Gets the (completely) resolved type + + The type of the resolved symbol + + + + Represents a pointer type. + + + + + Initializes a new instance of the class. + + Name of the referenced type. + size + + + + + Initializes a new instance of the class. + + The name. + Name of the referenced type. + size + + + + + Initializes a new instance of the class. + + The entry. + Name of the referenced type. + + + + + Called when this is bound via the type binder. + + The binder. + + + + + Gets the corresponding .NET Type if attached. + + Dot net type. + + + + Gets the the referenced type. + + + The type of the referenced. + + + + + Represents a SubRangType + + + + + Initializes a new instance of the class. + + The name. + Type of the base. + The size. + The lower bound. + The upper bound. + + + + Gets the corresponding .NET Type if attached. + + Dot net type. + + + + Gets the the base type. + + + The type of the referenced. + + + + + Gets the lower bound. + + + The lower bound. + + + + + Gets the upper bound. + + + The lower bound. + + + + + Represents a field of an Struct/Alias/Union + + + + + Initializes a new instance of the class. + + The parent. + The sub entry. + + + + + The parent of this Member + + + + + + Gets the Parent of this . + + + The type of the parent (Alias, Union, Struct) + + + + + Represents a member of an + + + + + Initializes a new instance of the class. + + The parent. + The sub entry. + + + + + The offset of the within the parent in bits or bytes. + + + + + + Gets the offset of the within the parent in bits or bytes dependent on + + + The offset. + + + + + Gets the bit offset. + + The bit offset. + + + + Gets the byte offset. + + The byte offset. + + + + Gets the Field / Member Flags + + The member flags. + + + + Gets the type hash value (Only for Properties ???) + + The type hash value. + + + + Represents an Array DataType + + + DataType class + + + + + Initializes a new instance of the class. + + The entry. + + + + + Initializes a new instance of the class. + + ArrayType name. + Element Type. + Dimension specification. + The flags. + + + + Initializes a new instance of the class. + + The type. + + + + Gets the corresponding .NET Type if attached. + + Dot net type. + + + + Gets a value indicating whether this array instance describes an oversampling type. + + true if this instance is oversampling; otherwise, false. + + + + The element type name + + + + + + Gets the name of the element type. + + + The name of the element type. + + + + + The element type + + + + + + Gets the type of the contained elements. + + + The type of the element. + + + + + Gets a value indicating whether this instance is jagged. + + true if this instance is jagged; otherwise, false. + + + + Gets the jagged level (Non-Jagged Array have level 1) + + The jagged level. + + + + The element type id + + + + + + Dimension information (for arrays) + + + + + Gets the dimensions as read only collection. + + + The dimensions. + + + + + Gets the dimension count. + + + The dimension count. + + + + + Gets the element count. + + + The element count. + + + + + Gets the byte-size of a single element of the array + + The size of the element. + + + + Checks the dimensions of the + + Indices + ArrayType + if set to true [accept oversampled]. + Indices doesn't match the specified Array type + + + + Checks the dimensions of the + + Indices + ArrayType + if set to true [accept oversampled]. + true if XXXX, false otherwise. + + + + Checks the dimensions of the + + Indices + if set to true [accept oversampled]. + Indices doesn't match the specified Array type + + + + Gets the element position within a flattened multidimensional array / SubSymbols List + + The indices. + The type. + The Position-Index within the Elements collection of the Array instance. + + + + Gets the element position within a flattened multidimensional array + + The indices. + + The Position-Index within the Elements collection of the array + + + + + Gets the element offset (bits or bytes, dependent on ElementType.IsBitType) + + The indices. + The type. + + + + + Gets a value indicating whether this is primitive + + true if this instance is primitive; otherwise, false. + + + + Gives access to the specific Symbol Flags + + + + + + Gets the Symbol Flags. + + The flags. + + + + + Gets the ADS Context Mask + + The context mask. + + + + Indicates if this instance is read only. + + + + + Indicates if this instance is persistent. + + + + + Indicates if this instance is a TcComInterfacePointer. + + + + + Indicates if this instance has set TypeGuid flag. + + + + + Instance implementation + + + + + Initializes a new instance of the class. + + resolver + + + + + Initializes a new instance of the class. + + The symbol. + + + + + Initializes a new instance of the class. + + The sub entry. + + + + + Binds this bindable object via the specified + + The binder. + binder + + + + + + Gets a value indicating whether this instance is bound. + + true if this instance is bound; otherwise, false. + + + + + Called when he is bound via its instance binder. + + The binder. + + + + + Aligns the type name + + Name of the type. + System.String. + Type name not valid! + + + + Sets a new instance name. + + Name of the instance. + This can only used as long the Instance is not added to a collection using the type binder classes. + + + + + Sets a new InstanceName InstancePath + + Instance name. + + + + DataType resolver + + + + + Gets the data type resolver. + + The data type resolver. + + + + Namespace + + + + + + Gets the namespace name. + + The namespace. + + + + The Byte size or Bit Size of the instance + + + + + + Gets the size of the in bytes or Bits dependant on + + The size of the bit. + + + + Handler function getting the size of the + + System.Int32. + + + + Get the Instance Flags + + + + + + Gets the instance flags. + + The flags. + + + + + Gets the (aligned) size of of the Type/Instance in Bytes + + The size of the byte. + + + + Indicates that the Size of the Object is Byte aligned (BitSize % 8 == 0) + + true if this instance is byte aligned; otherwise, false. + + + + Gets the size of this in bits. + + The size of the bit. + + + + Instance category + + + + + + Only for internal use (obsolete) + + The datatype. + + + + + Instance category + + + + + + Gets the the of the Instance. + + The category. + Corresponds to the + + + + Datatype name. + + + + + + Gets the name of the DataType that is used for this . + + The name of the type. + + + + Resolved / Cached Data Type + + + + + + Gets the of the . + + The type of the data. + + + + Tries to resolve the . + + true if XXXX, false otherwise. + + + + Instance comment. + + + + + + Gets the comment. + + The comment. + + + + Name of the instance. + + + + + + Gets the name of the instance (without periods (.) + + The name of the instance. + + + + Gets the relative / absolute access path to the instance (with periods (.)) + + The instance path. + If this path is relative or absolute depends on the context. are using relative paths, s are using absolute ones. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets a value indicating whether this instance has a value. + + true if this instance has value; otherwise, false. + + + + + The static address + + + + + + Gets a value indicating whether this is static. + + + true if this instance is static; otherwise, false. + + + + + Gets a value indicating whether this instance is not basing on a full DataType but instead of some sort of bit mapping + + + true if this instance is bit mapping; otherwise, false. + + + + + Indicates if this instance is read only. + + + + + Indicates if this instance is persistent. + + + + + Indicates if this instance is a TcComInterfacePointer. + + + + + Indicates if this instance has set TypeGuid flag. + + + + + Gets a value indicating whether this instance is reference. + + true if this instance is reference; otherwise, false. + + + + Gets a value indicating whether this instance is reference. + + true if this instance is reference; otherwise, false. + + + + Gets the context mask of this instance. + + The Size of the internal data is 4-Bit + + + + The attributes + + + + + Gets the Type Attributes. + + The attributes. + + + + Sets the context mask. + + The context mask. + contextMask + + + + Resolves this this DataType (if Alias/Reference) + + The type. + Resolved IDataType. + This interface is used for automatic Resolution of Alias/Reference within symbols. + + + + + Class parsing Symbols from String or from AdsStream (for internal use only) + + + + + + Parses the symbolStream for Symbols (for internal use only) + + The symbol stream. + The encoding. + The factory services. + + symbolStream + or + factoryServices + + + + + Parses the symbol. + + The symbol reader. + The encoding. + The factory services. + ISymbol. + + + + Tries to parse the Type string. + + Type string / name. + The resolver. + The type. + true if XXXX, false otherwise. + + typeName + or + resolver + + + + + + Parses the the data types within the specified stream (for internal use only) + + The data type stream. + The encoding. + The type binder. + if set to true base types are contained in stream. + The base types. + Enum base type mismatch! + + + + Enum ArrayIndexType + + + + + Standard Array + + + + + Jagged array + + + + + Oversampling array + + + + + Tries to parse an Array Instance + + The name with indices string. + The instanceName. + Name of the instance. + The indices string. + The indices. + The type. + true if the string specifies an array instance, false otherwise. + + + + Tries to parse the indices from an indices string. + + The indices string. + The jagged indices. + The type. + true if the string specifies an array instance, false otherwise. + + + + Tries to parse the parent path of this + + The symbol. + The parent path (out-parameter). + Name of the parent (out-parameter). + + true if found, false if not contained. + + + + + Symbol Loader interface + + + + + Gets/Sets the default notification settings for this SymbolLoader + + The default notification settings. + The Default notification Settings can be set on the SymbolLoader and is used as default + on the different Symbols. On the symbol itself the can be overridden. + + Setting the DefaultNotificationSettings on the object: + + + + + + Gets the image base address. + + The image base address. + + + + Gets the (byte) size of Pointers on the attached platform system. + + The size of the platform pointer. + + + + Class AdsNotficationSettings. + + + + + + + Initializes a new instance of the class. + + The mode. + The cycle time. + The max delay. + + + + The class is used to create a new instance of the initialized to the parametrized mode (SymbolBrowser V2, new Version) + + The Symbol Loader (V2) supports the following modes. + The flat mode organizes the Symbols in a flat list. This mode is available in all .NET versions. + The virtual tree mode organizes the Symbols hierarchically with parent-child relationships. This mode is available in all .NET Versions. + The Dynamic tree mode organizes the Symbols hierarchically and (dynamically) creates struct members, + array elements and enum fields on the fly. This feature is only available on platforms that support the Dynamic + Language Runtime (DLR), actually all .NET Framework Version larger than 4.0. + + Virtual instances means, that all Symbols are ordered within a tree structure. For that symbol nodes that are not located on a fixed address, a Virtual Symbol will be created. + Setting the virtualInstance parameter to 'false' means, that the located symbols will be returned in a flattened list. + + + + + Creates the specified connection. + + The connection. + The settings. + ISymbolLoader. + + The following sample shows how to create a dynamic version of the SymbolLoader V2. The dynamic symbol loader makes use of the Dynamic Language Runtime (DLR) of the .NET Framework. + That means Structures, Arrays and Enumeration types and instances are generated 'on-the-fly' during symbol Browsing. These created dynamic objects are a one to one representation + of the Symbol Server target objects (e.g the IEC61131 types on the PLC). + Dynamic language features are only available from .NET4 upwards. + + The following sample shows how to create a static (non dynamic) version of the SymbolLoader V2. + The static symbol loader in version 2 is a nearly code compatible version of the Dynamic Loader, only the dynamic creation of objects is not available. The reason for supporting + this mode is that .NET Framework Versions lower than Version 4.0 (CLR2) doesn't support the Dynamic Language Runtime (DLR). + The SymbolLoader V2 static object is supported from .NET 2.0 on. + + + The SymbolLoader V2 static object is supported from .NET 2.0 on. + + + + + + + + + Gets the value accessor. + + IRawValueAccessor. + + + + Reads the symbol upload information. + + + + + The class is responsible for downloading the list of declared variables from an ADS Server. + + + + + + + + + + Initializes a new instance of the class. + + The Connection. + The settings. + The accessor. + The session. + The symbols Upload information. + settings + or + accessor + or + symbolsInfo + + + + The connection + + + + + Gets the binder. + + The binder. + + + + Gets the accessor. + + The accessor. + + + + + Gets the symbol factory. + + The symbol factory. + + + + The symbol factor services + + + + + Finalizes an instance of the class. + + + + + Disposed flag + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + The Loader settings + + + + + Gets actual the Symbol loader settings + + The access method. + + + + Namespaces + + + + + Upload info. + + + + + Gets the Upload Info object + + The information. + + + + + Resets the cache-contents of this loader. + + Accessing the data members will force AdsReads in the following. + + + + Gets the amount of data types used in the target. + + The data type count. + This poperty can be used, before uploading all data types and symbols. + + + + Gets the amount of symbols used by the target. + + The symbol count. + This poperty can be used, before uploading all data types and symbols. + + + + Gets the maximal amount of Dynamic symbols of the target system. + + The max dynamic symbols. + + + + Gets the used dynamic symbols by the target system. + + The used dynamic symbols. + + + + Gets the default string Encoding of the Symbols and DataTypesw. + + The string encoding. + + + + The default timeout + + + + + The timeout + + + + + Load upload info. + + The client. + The timeout. + The upload information. + SymbolUploadInfo. + client + + + + Loads the symbols. + + The timeout. + + + + Creates the build in types. + + DataTypeCollection<IDataType>. + + + + + Contains the Build-In types if types are loaded, null if not. + + + + + Gets the build in types. + + The build in types. + + + + Loads the data types. + + The timeout. + + + + Expands the so far unresolved datatypes. + + Some datatypes must be generated, because they are not available from the Watch server. + This must be done, before the DataTypes collection is accessed, because otherwise the collection can be changed + during enumeration + + + + + Gets the base Address of the accessed Process image. + + The image base address. + + + + Gets the root namespace name of the . + + The root namespace. + + + + Gets the (root) symbols of the as ReadOnly collection. + + The symbols. + + + + Gets the (root) symbols of the Symbol provider. + + Read only collection of the Symbols + + + + Get the Namespaces of DataTypes for this Symbol provider + + ReadOnly collection of the namespaces. + + + + + Get the Namespaces of DataTypes for this Symbol provider + + ReadOnly collection of the namespaces. + + + + + Gets the root (main) namespace of the Symbol provider. + + The root namespace. + + + + Gets the data types. + + ReadOnlyDataTypeCollection<IDataType>. + + + + Indicates that Virtual (created StructInstances) are used. + + The use virtual instances. + + + + Gets the dynamic Symbols + + The dynamic symbols (when activated) + + The Dynamic Symbols can only be returned if the is active. + + + + + Loads the data types and symbols into the + + + + + Gets or sets the NotificationSettings that are used for Notification Defaults. + + The default notification settings. + + + + Occurs when new types are generated internally + + + + + Occurs when a typename cannot be resolved. + + + + + Gets the Symbol Factory + + + The symbol factory. + + + + + Gets the Symbol Provider + + The provider. + + + + Gets the (byte) size of Pointers on the attached platform system. + + The size of the platform pointer. + + + + Sets the size of the platform pointer. + + The sz. + + + + Interface IAdsSymbol + + + + + + + Gets the of the Process Image + + The address. + + + + ADS Connection class + + The ADS Connection class represents an ADS Point-to-Point Connection between client and server. It is established by using the + Connect method of the object. + An ADS Connection can have different ConnectionStates, which represent the state of the logical ADS connection. + + + + + + + Initializes a new instance of the class. + + The session. + + + + The session + + + + + Gets the Session object of the object. + + The client. + + + + Connection ID + + + + + Gets the identifier. + + The identifier. + + + + Internal used client. + + + + + Gets the used TcAdsClient of the object. + + The client. + + + + + Handler that is called before Read/Write + + + + + Handler that is called after Read/Write + + + + + Creates the interceptor delegates/handlers. + + + This implementation resurrects when ConnectionState is Lost, + which means the connection IsConnected. + + + + + Gets the access wait time. + + + Gets the Wait Time until the next communication try will be done. + This time is calculated as follows: + ResurrectionTime - (DateTime.Now - ConnectionLostTime) + + The access wait time. + + + + + + Handler that is called before the Connection access (enables the Resurrection) + + + Calling this is important for the Connection Resurrection Handler! + Resurrection is only tried when the Connection is neither Disposed nor + Disconnected + + + + + Handler that is called after Connection access. + + + + + Resurrection handler of the . + + + + + Resurrects the + + + + + + + + Tries to resurrect the + + The error. + true if XXXX, false otherwise. + + + + + (Re)Connects the when disconnected. + + true if the is reconnected, false otherwise. + + + + Connect handler. + + + + + The interceptors + + + + + Creates the interceptors. + + CommunicationInterceptors. + + + + The actual connection state + + + + + Gets the current + + The state. + + + + Handles the ConnectionStateChanged event of the ConnectionObserver control. + + The source of the event. + The instance containing the event data. + + + + Gets the current Connection state of the + + The state of the connection. + The Connection state changes only if the is established / shut down + or active communication is triggered by the User of the object. + + + The following sample shows how to keep the updated by triggering ADS Communication. + + + + + + + Occurs when connection status of the has been changed. + + The Connection state changes only if the is established / shut down + or active communication is triggered by the User of the object. + + + The following sample shows how to keep the updated by triggering ADS Communication. + + + + + + + Handles the event. + + The instance containing the event data. + + + + Occurs when Device state has been changed. + + + + + Handles the event. + + The instance containing the event data. + + + + Gets the connection observer. + + The connection observer. + + + + + Gets the ads state observer. + + The ads state observer. + + + + + Called when the is established. + + + + + Called when the is closed. + + + + + The timestamp of the connection loss + + + + + Gets the connection lost time. + + The connection lost time. + + + + Called when the connection has been lost. + + + + + Gets a value indicating whether the communication is in lost / open state + + true if this instance is lost; otherwise, false. + + + + Gets a value indicating whether communication is in active state + + true if this instance is active; otherwise, false. + + + + Gets a value indicating whether communication is ready for reconnecting + + true if this instance is reconnecting; otherwise, false. + + + + Handles the AdsStateChanged event of the ConnectionObserver control. + + The source of the event. + The instance containing the event data. + + + + Error injection only for Unit-Test purposes to simulate error conditions + + The error. + + + + + Get the of the ADS client. + + The client address. + + + + Gets a value indicating whether the local ADS port was opened successfully. It + does not indicate if the target port is available. Use the method ReadState to + determine if the target port is available. + + true if this instance is connected; otherwise, false. + + + + Gets a value indicating whether the ADS client is connected to a ADS Server on the local + computer. + + true if this instance is local; otherwise, false. + + + + Gets the raw ADS interface. + + The raw interface. + + + + + Gets the of the ADS server. + + The server address. + + + + Occurs when the ADS device sends a notification to the client. + + + + + Occurs when a exception has occurred during notification management. + + + + + Occurs when the ADS devices sends a notification to the client. + + + + + Occurs when ADS State has been changed. + + + + + Occurs when the symbol version has been changed. + + This is the case when the connected ADS server restarts. This invalidates all actual opened + symbol handles. + The SymbolVersion counter doesn't trigger, when an online change is made on the PLC (ports 801, ..., 851 ...) + + + + Occurs when the Route sends an Notification. + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + The stream that should receive the data. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + + + + Adds the device notification. + + Name of the variable. + The data stream. + The offset. + The length. + The trans mode. + The cycle time. + The maximum delay. + The user data. + System.Int32. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + The stream that should receive the data. + Offset of the data in dataStream. + Length of the data in dataStream. + The settings. + This object can be used to store user specific data. + The handle. + The ADS ErrorCode. + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + The settings. + This object can be used to store user specific data. + Type of the object stored in the event argument. + Additional arguments. + The handle. + The handle of the notification. + + + + + Deletes an existing notification. + + Handle of the notification. + AdsErrorCode. + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object stored in the event argument. + The handle of the notification. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object stored in the event argument. + The handle of the notification. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object stored in the event argument. + Additional arguments. + The handle of the notification. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + If type is a string type, the first element of the parameter args specifies the number of characters of the string. + If type is an array type, the number of elements for each dimension has to be specified in the parameter args. + At the moment only 1 dimensional Arrays are supported. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object s0000tored in the event argument. + Additional arguments. + The handle of the notification. + + + + Generates a unique handle for an ADS variable. + + Name of the ADS variable + The handle of the ADS Variable. + + + + Deletes an existing notification. + + Handle of the notification. + + + + Releases the handle of a ADS variable again. + + Handle of the ADS variable + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Handle of the ADS variable + Stream that receives the data. + Number of successfully returned data bytes. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Number of successfully returned data bytes. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Handle of the ADS variable + Stream that receives the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Number of successfully returned data bytes. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Number of successfully returned data bytes. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The read buffer. + Offset of the data in dataStream. + Length of the data in dataStream. + Number of successfully returned data bytes. + + + + + Reads data synchronously from an ADS device and writes it to an object. + + Handle of the ADS variable. + Type of the object to be read. + The object the read data is written to. + + + + Reads any. + + The variable handle. + The type. + The arguments. + System.Object. + + + + Reads data synchronously from an ADS device and writes it to an object. + + Index group of the ADS variable. + Index offset of the ADS variable. + Type of the object to be read. + The object the read data is written to. + + + + Reads data synchronously from an ADS device and writes it to an object. + If the Type of the object to be read is a string type, the first element of + the parameter args specifies the number of characters of the string. + If the Type of the object to be read is an array type, the number of elements + for each dimension has to be specified in the parameter args. At the moment + only 1 dimensional Arrays are supported. + + Index group of the ADS variable. + Index offset of the ADS variable. + Type of the object to be read. + Additional arguments. + The object the read data is written to. + + + + Reads data synchronously from an ADS device and writes it to an object. + If the Type of the object to be read is a string type, the first element of + the parameter args specifies the number of characters of the string. + If the Type of the object to be read is an array type, the number of elements + for each dimension has to be specified in the parameter args. At the moment + only 1 dimensional Arrays are supported. + + Index group of the ADS variable. + Index offset of the ADS variable. + Type of the object to be read. + Additional arguments. + The timeout. + The object the read data is written to. + + + + Reads the string + + The index group. + The index offset. + The length. + The encoding. + System.String. + + + ASCII Encoding expected + ASCII Encoding expected + + + + Reads the string. + + The variable handle. + The length. + The encoding. + System.String. + + + ASCII Encoding expected + ASCII Encoding expected + + + + Reads the identification and version number of an ADS server. + + DeviceInfo struct containing the name of the device and the version information. + + + + Reads the ADS status and the device status from an ADS server. + + The ADS statue and device status. + + + + Reads the value of a symbol and returns it as an object. Strings and all primitive datatypes(UInt32, Int32, Bool etc.) are supported. + Arrays and structures cannot be read. + + The symbol that should be read. + The value of the symbol as an object. + + + + Reads the value of a symbol and returns the value as object. The parameter type must have the same + layout as the ADS symbol. + + Name of the ADS symbol. + Managed type of the ADS symbol. + If reload is true previously stored symbol information is cleared. As a consequence the symbol information must be obtained from the ADS server again. + Value of the symbol + + + + Call this method to obtain information about the individual symbols (variables) in ADS devices. + + Name of the symbol. + A ITcAdsSymbol containing the requested symbol information or null if symbol could not + be found. + + + + Call this method to obtain information about the specified data type. + + Name of the data type (without namespace) + An containing the requested type. + typeName + + + + + + Call this method to obtain information about the specified data type. + + Name of the symbol. + The symbol. + A containing the requested symbol information or null if symbol could not + be found. + typeName + + + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Stream that contains the data that should be written. + Number of successfully returned data bytes. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Variable handle. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + Number of successfully returned data bytes. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + Number of successfully returned data bytes. + + + + Writes data synchronously to an ADS device and then reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The read buffer. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + The write buffer. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + Number of successfully returned data bytes. + + + + + Reads the ADS status and the device status from an ADS server. Unlike the ReadState method this method does not call an exception on failure. Instead an AdsErrorCode is returned. + If the return value is equal to AdsErrorCode.NoError the call was successful. + + The ADS statue and device status. + AdsErrorCode of the ads read state call. Check for AdsErrorCode.NoError to see if call was successfull. + + + + Reads the ADS status and the device status from an ADS server. + + The timeout. + The ADS statue and device status. + + + + + Reads the ADS status and the device status from an ADS server. Unlike the ReadState method this method does not call an exception on failure. Instead an AdsErrorCode is returned. + If the return value is equal to AdsErrorCode.NoError the call was successfull. + + The timeout. + The ADS statue and device status. + AdsErrorCode of the ads read state call. Check for AdsErrorCode.NoError to see if call was successfull. + + + + + Writes data synchronously to an ADS device. + + Handle of the ADS variable + Stream that receives the data. + + + + Trigger Client Method/Command. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + This method is used to trigger Client Methods/Commands without parameters. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + + + + Writes data synchronously to an ADS device. + + Handle of the ADS variable + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The write buffer. + Offset of the data in dataStream. + Length of the data in dataStream. + + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + The offset. + The length. + The read bytes. + AdsErrorCode. + + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The read buffer. + The offset. + The length. + The read bytes. + AdsErrorCode. + + + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + The read bytes. + AdsErrorCode. + + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The read buffer. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + The write buffer. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + The read bytes. + AdsErrorCode. + + + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + AdsErrorCode. + + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The write buffer. + Offset of the data in dataStream. + Length of the data in dataStream. + AdsErrorCode. + + + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + The offset. + The length. + The timeout. + Number of successfully returned data bytes. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The read buffer. + The offset. + The length. + The timeout. + Number of successfully returned data bytes. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Stream that contains the data that should be written. + The timeout. + Number of successfully returned data bytes. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + The timeout. + Number of successfully returned data bytes. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The read buffer. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + The write buffer. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + The timeout. + Number of successfully returned data bytes. + + + + Trigger Client Method/Command. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The timeout. + This method is used to trigger Client Methods/Commands without parameters. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + The timeout. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + The timeout. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The write buffer. + Offset of the data in dataStream. + Length of the data in dataStream. + The timeout. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + The offset. + The length. + The timeout. + The read bytes. + AdsErrorCode. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The read buffer. + The offset. + The length. + The timeout. + The read bytes. + AdsErrorCode. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + The timeout. + The read bytes. + AdsErrorCode. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The read buffer. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + The write buffer. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + The timeout. + The read bytes. + AdsErrorCode. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + The timeout. + AdsErrorCode. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The write stream. + Offset of the data in dataStream. + Length of the data in dataStream. + The timeout. + AdsErrorCode. + + + + Writes an object synchronously to an ADS device. + + Handle of the ADS variable. + Object to write to the ADS device. + + + + Writes an object synchronously to an ADS device. + If the Type of the object to be written is a string type, the first element of parameter args + specifies the number of characters of the string. + + Handle of the ADS variable. + Object to write to the ADS device. + Additional arguments. + + + + Writes an object synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Object to write to the ADS device. + + + + Writes an object synchronously to an ADS device. + If the Type of the object to be written is a string type, the first element of parameter args + specifies the number of characters of the string. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Object to write to the ADS device. + Additional arguments. + + + + Writes an object synchronously to an ADS device. + If the Type of the object to be written is a string type, the first element of parameter args + specifies the number of characters of the string. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Object to write to the ADS device. + Additional arguments. + The timeout. + + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + The timeout. + + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + Stream that contains the data that should be sent to the ADS device + Offset of the data in the stream. + Length of the data in the stream. + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + Stream that contains the data that should be sent to the ADS device + Offset of the data in the stream. + Length of the data in the stream. + The timeout. + + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + Stream that contains the data that should be sent to the ADS device + Offset of the data in the stream. + Length of the data in the stream. + AdsErrorCode. + + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + AdsErrorCode. + + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + Stream that contains the data that should be sent to the ADS device + Offset of the data in the stream. + Length of the data in the stream. + The timeout. + AdsErrorCode. + + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + The timeout. + AdsErrorCode. + + + + + Writes a value to the symbol. Strings and all primitive data types(UInt32, Int32, Bool etc.) are supported. Array and structures are not supported. + If a string is passed as parameter, the method attempts to parse the string according to the ADS data type of the symbol. + + The symbol the value is written to. + The value to write. + + + + Writes the passed object value to the specified ADS symbol.The parameter type must have the same + layout as the ADS symbol. + + Name of the ADS symbol. + Object holding the value to be written to the ADS symbol + If reload is true previously stored symbol information is cleared. As a consequence the symbol information must be obtained from the ADS server again. + + + + Indicates that the is disposed. + + + + + Gets a value indicating whether this is disposed. + + true if disposed; otherwise, false. + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Disconnects this . + + true if XXXX, false otherwise. + + + + + Closes the + + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Handle of the ADS variable + Stream that receives the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Number of successfully returned data bytes. + AdsErrorCode + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Variable handle. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + The read bytes. + AdsErrorCode. + + + + Writes data synchronously to an ADS device. + + Handle of the ADS variable + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + AdsErrorCode. + + + + Creates a new instance of the Symbol loader with the specified mode. + + The session (for session orientated loades / symbols). Can be NULL if not present. + The settings. + The interface of the Symbol loader. + + + + The following sample shows how to create a dynamic version of the SymbolLoader V2. The dynamic symbol loader makes use of the Dynamic Language Runtime (DLR) of the .NET Framework. + That means Structures, Arrays and Enumeration types and instances are generated 'on-the-fly' during symbol Browsing. These created dynamic objects are a one to one representation + of the Symbol Server target objects (e.g the IEC61131 types on the PLC). + Dynamic language features are only available from .NET4 upwards. + + The following sample shows how to create a static (non dynamic) version of the SymbolLoader V2. + The static symbol loader in version 2 is a nearly code compatible version of the Dynamic Loader, only the dynamic creation of objects is not available. The reason for supporting + this mode is that .NET Framework Versions lower than Version 4.0 (CLR2) doesn't support the Dynamic Language Runtime (DLR). + The SymbolLoader V2 static object is supported from .NET 2.0 on. + + + The SymbolLoader V2 static object is supported from .NET 2.0 on. + + + + + + + The following sample shows how to call (Remote Procedures / Methods) with Virtual Symbols + + + + The following sample shows how to call (Remote Procedures / Methods) with Dynamic Symbols. + + + + The Symbol Loader (V2) supports the following modes. + + + + + + + The flat mode organizes the Symbols in a flat list. At the beginning this List caches only the root symbol objects, which can be enumerated. + To access the sub elements like structure fields or array elements use the collection. The property get + accessor generates the subsymbols lazy on the fly (performance optimized) and stores them internally as weak reference (memory optimized). + This mode is available in all .NET versions. + + + + On top of the behaviour of the , the virtual tree mode organizes the Symbols hierarchically with parent-child relationships. + That eases the access to the hierarchical structure but needs slightly more preprocessing of the data. + This mode is available in all .NET Versions. + + + + + The Dynamic tree mode organizes the Symbols hierarchically and (dynamically) creates struct members, + array elements and enum fields on the fly. 'Dynamically' means here not only lazy creation like in , but furthermore + real creation of type safe .NET complex types/instances as represetantives of the TwinCAT Symbol objects/types. This feature is only available on platforms that support the Dynamic + Language Runtime (DLR); actually all .NET Framework Version larger than 4.0. + + + + Virtual instances means, that all Symbols are ordered within a tree structure. For that symbol nodes that are not located on a fixed address, a Virtual Symbol will be created. + Setting the virtualInstance parameter to 'false' means, that the located symbols will be returned in a flattened list. + + + + Writes the string (Potentially unsafe!) + + The index group. + The index offset. + The value. + The length. + The encoding. + + ATTENTION: Potentially this method is unsafe because following data can be overwritten + after the string symbol. Please be sure to specify the string length lower than the string size + reserved within the process image! + + + + Writes the string (Potentially unsafe!) + + The variable handle. + The value. + The length of the string to write + The encoding. + + ATTENTION: Potentially this method is unsafe because following data can be overwritten + after the string symbol. Please be sure to specify the string length lower than the string size + reserved within the process image! + The String is written with ASCII Encoding + + + + Invokes the specified RPC Method. + + The symbol with RPC Methods. + Name of the method. + The RPC In-Parameters, or NULL. + The return value of the Method (as object) or NULL if void. + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + This method only supports primitive data types as . Any available outparameters will be ignored. + + + + Invokes the specified RPC Method. + + The symbol with RPC Methods. + Name of the method. + The RPC In-Parameters, or NULL. + The RPC Out-parameters, or NULL + The return value of the Method (as object) or NULL if void. + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + This method only supports primitive data types as /. + + + + Invokes the specified RPC Method. + + The symbol path. + Name of the method. + The RPC In-Parameters, or NULL. + The return value of the Method (as object) or NULL if void. + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + This method only supports primitive data types as . Any available outparameters will be ignored. + + + + Invokes the specified RPC Method. + + The symbolpath. + Name of the method. + The RPC In-Parameters, or NULL. + The RPC Out-parameters, or NULL + The return value of the Method (as object) or NULL if void. + + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + This method only supports primitive data types as /. + + + + Invokes the specified RPC Method. + + The symbol. + Name of the method. + The RPC In-Parameters, or NULL. + The out specifiers (specifying the out types) or NULL. + The ret specifier (specifying the return value) or NULL. + The RPC Out-parameters, or NULL + The return value of the RPC method as object. + The ADS Error Code. + + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + The RpcMethod optionally support In-Parameters, Out-Parameters and Return values. Therefore the parameters , , , + are allowed to be empty or NULL. + In case of using primitive datatypes, the type specifier parameters ( and ) are not necessary and should not be set. + + + + Invokes the specified RPC Method + + The symbol. + The method identifier / Virtual Function table index. + The parameters. + The out specifiers (specifying the out types) or NULL. + The ret specifier (specifying the return value) or NULL. + The out parameters. + The return value of the RPC method as object. + The ADS Error Code. + + The RpcMethod optionally support In-Parameters, Out-Parameters and Return values. Therefore the parameters , , , + are allowed to be empty or NULL. + In case of using primitive datatypes, the type specifier parameters ( and ) are not necessary and should not be set. + + + + + Invokes the rpc method. + + The RPC callable symbol + The method. + The parameters. + The out specifiers (specifying the out types) or NULL. + The ret specifier (specifying the return value) or NULL. + The out parameters. + The return value of the RPC method./> + AdsErrorCode. + + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + The RpcMethod optionally support In-Parameters, Out-Parameters and Return values. Therefore the parameters , , , + are allowed to be empty or NULL. + In case of using primitive datatypes, the type specifier parameters ( and ) are not necessary and should not be set. + + + + Invokes the specified RPC Method + + The symbol path. + The method identifier. + The parameters. + The out specifiers (specifying the out types) or NULL. + The ret specifier (specifying the return value) or NULL. + The out parameters. + The return value of the RPC method as object. + The ADS Error Code. + + The RpcMethod optionally support In-Parameters, Out-Parameters and Return values. Therefore the parameters , , , + are allowed to be empty or NULL. + In case of using primitive datatypes, the type specifier parameters ( and ) are not necessary and should not be set. + + + + + Invokes the specified RPC Method + + The symbol path. + The method name. + The RPC In-parameters, or NULL + The out specifiers (specifying the out types) or NULL. + The ret specifier (specifying the return value) or NULL. + The RPC Out-parameters, or NULL + The return value of the RPC method as object. + The ADS Error Code. + + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + The RpcMethod optionally support In-Parameters, Out-Parameters and Return values. Therefore the parameters , , , + are allowed to be empty or NULL. + In case of using primitive datatypes, the type specifier parameters ( and ) are not necessary and should not be set. + + + + Invokes the specified RPC Method. + + The symbol with RPC Methods. + Name of the method. + The RPC In-Parameters, or NULL. + The out specifiers (specifying the out types) or NULL. + The ret specifier (specifying the return value) or NULL. + The out parameters. + The return value of the Method (as object) or NULL if void. + + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + The RpcMethod optionally support In-Parameters, Out-Parameters and Return values. Therefore the parameters , , , + are allowed to be empty or NULL. + In case of using primitive datatypes, the type specifier parameters ( and ) are not necessary and should not be set. + + + + Invokes the specified RPC Method + + The symbol path. + The method name. + The RPC In-Parameters, or NULL. + The out specifiers (specifiying the out types) or NULL. + The ret specifier (specifiying the return value) or NULL. + The RPC Out-parameters, or NULL + The return value of the Method (as object). + + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + The RpcMethod optionally support In-Parameters, Out-Parameters and Return values. Therefore the parameters , , , + are allowed to be empty or NULL. + In case of using primitive datatypes, the type specifier parameters ( and ) are not necessary and should not be set. + + + + Invokes the specified RPC Method + + The symbol path. + The method name. + The RPC In-parameters, or NULL + The RPC Out-parameters, or NULL + The return value of the RPC method as object. + The ADS Error Code. + + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + This method only supports primitive data types as /. + + + + Invokes the specified RPC Method + + The symbol path. + The method name. + The RPC In-Parameters, or NULL. + The return value of the RPC method as object. + The ADS Error Code. + + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + This method only supports primitive data types as . + + + + Gets the name of the Connection + + The name. + + + + The connection establish time + + + + + Gets the UTC time when the Connection was originally established. + + The connection established at. + + + + The UTC time when tha last active/resurrected Connection was established + + + + + Gets the UTC time when tha last active/resurrected Connection was established + + The active since. + + + + Gets the number of tries to resurrect the . + + The number of tried resurrections of the . + + + + The number of resurrections. + + + + + Gets the number of succeeded connection resurrections. + + The resurrection count. + + + + Gets the connection lost count. + + The connection lost count. + + + + Gets the timeout (in milliseconds) + + The timeout. + + + + Base class for all exceptions thrown by this class. + + + + + Initializes a new Instance of the AdsException class. + + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Initializes a new Instance of the AdsException class. + + A message that describes the error. + + + + Initializes a new Instance of the AdsException class. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. If the parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception. + + + + Symbol Exception + + + + + The symbol + + + + + The symbol + + + + + Initializes a new instance of the class. + + The message. + The symbol. + + + + Initializes a new instance of the class. + + The message. + The symbol. + The inner exception. + + + + Initializes a new instance of the class. + + The message. + Symbol path. + The inner exception. + + + + Initializes a new instance of the class. + + The message. + Symbol path. + + + + Symbol Exception + + + + + Initializes a new instance of the class. + + Name of the method. + The symbol. + + + + Initializes a new instance of the class. + + Index of the v table. + The symbol. + + + + The exception that is thrown when a ADS datatype is not supported. + + + + + Initializes a new Instance of the AdsDatatypeNotSupportedException class. + + + + + Initializes a new Instance of the AdsDatatypeNotSupportedException class. + + The message. + + + + Initializes a new Instance of the AdsDatatypeNotSupportedException class. + + The message. + The inner exception. + + + + This AdsInvalidNotificationException is created if the length of the notification data is 0. + This indicates that the notification handle is not valid any more. This exception is passed + to the AdsNotificationErrorEvent. + + + + + The _handle + + + + + The _time stamp + + + + + Initializes the class AdsInvalidNotificationException. + + The handle. + The time stamp. + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + info + + + + Initializes the class AdsInvalidNotificationException. + + The message. + The handle. + The time stamp. + + + + Handle of the notification. + + The handle. + + + + Gets the Time stamp as long + + The time stamp. + + + + When overridden in a derived class, sets the with information about the exception. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + info + + + + + + + + The exception that is thrown when an ADS error occurs. + + + + + The _error code + + + + + Initializes a new Instance of the AdsErrorException class. + + + + + Initializes a new Instance of the AdsErrorException class. + + The message. + The error code. + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + info + + + + Gets the error code of the Exception. + + The error code. + + + + Creates the AdsErrorException + + The ads error code. + AdsErrorException. + + + + Creates the AdsErrorException + + The message. + The ads error code. + AdsErrorException. + + + + Creates the an exception object from Error Code + + The message. + The ads error code. + AdsErrorException. + No error indicated!;adsErrorCode + + + + When overridden in a derived class, sets the with information about the exception. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + info + + + + + + + + The exception that is thrown when an ADS SumCommand error occurs. + + + + + Initializes a new Instance of the AdsErrorException class. + + The message. + The command. + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + info + + + + Gets the sum command. + + The sum command. + + + + When overridden in a derived class, sets the with information about the exception. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + info + + + + + + + + Initializing exception (TcAdsDllCe resp. TcAdsDll.dll not found) + + + + + Initializes a new instance of the class. + + The inner. + + + + Initializes a new instance of the class. + + The message. + The inner. + + + + Symbol bound exceptions + + + + + Symbol that is bound to the + + + + + Initializes a new instance of the class. + + The symbol. + The error code. + + + + Initializes a new instance of the class. + + The symbol. + The error code. + + + + Initializes a new instance of the class. + + The symbol. + The error code. + The inner exception. + + + + Initializes a new instance of the class. + + The symbol. + + + + Initializes a new instance of the class. + + The symbol. + The inner exception. + + + + Initializes a new instance of the class. + + The message. + The symbol. + + + + Initializes a new instance of the class. + + The message. + The symbol. + The inner exception. + + + + Interface for intercepting communication + + + + + + Gets the identifier of the + + The identifier. + + + + Communication handler + + The communication action to be called. + AdsErrorCode. + + + + Communication handler + + The communication action to be called. + The communication result. + AdsErrorCode. + + + + Handler function for establishing the communication connection + + Wrapped handler function. + AdsErrorCode. + + + + Handler function for shutting the communication connection down. + + Wrapped handler function. + AdsErrorCode. + + + + Handler function for shutting the communication connection down. + + Wrapped handler function. + AdsErrorCode. + + + + Communicates the state. + + The action. + State of the ads. + AdsErrorCode. + + + + Communicates the state. + + The action. + State of the ads. + AdsErrorCode. + + + + Interface ICommunicationInterceptHandler + + + + + + Called before communication + + AdsErrorCode. + + + + Called after communication + + Communication error/result. + + + + Called before the communication channel is established. + + AdsErrorCode. + + + + Called after the communication channel is established. + + The result. + + + + Called before the communication channel shuts down. + + AdsErrorCode. + + + + Called after the communication channel has shut down. + + The result. + + + + Called before an ADS state is written + + State of the ads. + AdsErrorCode. + + + + Called after an ADS state is written. + + Ads state.. + The result. + + + + Called before the AdsState is read. + + AdsErrorCode. + + + + Called after the ADS state is read. + + ADS state. + The result. + + + + Communication interceptor class (abstract base class for cross cutting communication issues). + + The is used for 'cross concern' communication issues. E.g. when a client has to interact just before and after + the communicates with the connected AdsServer. + + + + + Initializes a new instance of the class. + + The identifier. + + + + The Identifier + + + + + Gets the identifier of the + + The identifier. + + + + + Calls the specified communication action + + The action. + The error. + AdsErrorCode. + + + + calls the specified communication action. + + The communication action to be called. + AdsErrorCode. + + + + calls the specified communication action. + + The communication action to be called. + State of the ads. + AdsErrorCode. + + + + calls the specified communication action. + + The communication action to be called. + State of the ads. + AdsErrorCode. + + + + Calls the specified connection action + + Wrapped handler function. + AdsErrorCode. + + + + Handler function for shutting the communication connection down. + + Wrapped handler function. + AdsErrorCode. + + + + Handler function for shutting the communication connection down. + + Wrapped handler function. + AdsErrorCode. + + + + Called before communication + + AdsErrorCode. + + + + Handler function called before the communication action occurs. + + + + + Called After communication + + The error code. + + + + Handler function called after communication + + The error code. + + + + Called before the communication channel is established. + + AdsErrorCode. + + + + Handler function called before the connection is established. + + AdsErrorCode. + + + + Called after the connection has been established. + + The error code. + + + + Handler function called after the connection has been established. + + The error code. + + + + Called before the communication channel shuts down. + + AdsErrorCode. + + + + Handler function called before the communication channel is shut down. + + AdsErrorCode. + + + + Called after the disconnect. + + The error code. + + + + Handler function called after the disconnection of the communication channel. + + The error code. + + + + Called before an ADS state is written + + State of the ads. + AdsErrorCode. + + + + Handler function called before the ADS state is written. + + State of the ads. + AdsErrorCode. + + + + Called after an ADS state is written. + + Ads state.. + The result. + + + + Handler function called after an ADS state is written. + + ADS state. + The result. + + + + Called before the AsdState is read. + + AdsErrorCode. + + + + Handler function called before an ADS State is read. + + AdsErrorCode. + + + + Called after the ADS state is read. + + ADS state. + The result. + + + + Handler function called after the ADS state is read. + + ADS state. + The result. + + + + Class CommunicationInterceptors is used for combinations (collections) of objects. + + + + + + Internal list of interceptors. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The interceptors. + + + + Gets the internal (combined) Interceptors + + The combined interceptors. + + + + Finds the communication interceptor by base type. + + IEnumerable<ICommunicationInterceptor>. + + + + Finds the communication interceptor by id + + The identifier. + ICommunicationInterceptor. + + + + Combines the specified interceptor with the current . + + The interceptor. + ICommunicationInterceptor. + + + + Handler function called before the communication action occurs. + + AdsErrorCode. + + + + Handler function called after communication + + The error code. + + + + Handler function called before the connection is established. + + AdsErrorCode. + + + + Handler function called after the connection has been established. + + The error code. + + + + Handler function called before the communication channel is shut down. + + AdsErrorCode. + + + + Handler function called after the disconnection of the communication channel. + + The error code. + + + + Handler function called before an ADS State is read. + + AdsErrorCode. + + + + Handler function called after the ADS state is read. + + ADS state. + The result. + + + + Handler function called before the ADS state is written. + + State of the ads. + AdsErrorCode. + + + + Handler function called after an ADS state is written. + + ADS state. + The result. + + + + Lookups the specified interceptor type. + + Type of the interceptor. + ICommunicationInterceptor. + + + + Interface for a fast failing (Circuit breaker) ads handler + + + If a target is not available it will throw Timeout exceptions after a Default time of 5 seconds. + To prevent hanging applications and bring more robustness into the communication (less consumption of ADS Mailbox memory), a second try to call the target + should fail fast - not waiting for the Timeout. Only after a dedicated reconnection timeout timespan, real communication + should be retried. + + + + + Guards the from state changes that allow unintended communication. + + + + + + Trips to the internal (Open circuit) state. + + The causing error. + + + + + Indicates that the communication has been succeeded. + + + + + + Gets the current state of the Fail Fast handler. + + Current state. + + + + + Gets a value indicating whether interceptor state is active + + true if communication state is active; otherwise, false. + + + + + Gets a value indicating whether interceptor state is 'ready to connect' + + true if this instance is reconnecting; otherwise, false. + + + + + Gets a value indicating whether the interceptor is in open / lost state + + true if communication is lost / open; otherwise, false. + + + + + Resets the + + true if XXXX, false otherwise. + + + + + State interface for the different states. + + + + + + Transition to the next state of the state machine (state machine pattern). + + IFailFastHandlerState. + + + + Guards the from state changes that allow unintended communication. + + + + + Trips to the internal (Open circuit) state. + + The causing error. + + + + Indicates that the communication has been succeeded. + + + + + Fail Fast handler for ADS communication (Circuit breaker) + + If a target is not available it will throw Timeout exceptions after a Default time of 5 seconds. + To prevent hanging applications and bring more robustness into the communication (less consumption of ADS Mailbox memory), a second try to call the target + should fail fast - not waiting for the Timeout. Only after a dedicated reconnection timeout timespan, real communication + should be retried. + The is responsible for implementing this behavior. + + + + + + Synchronizer object. + + + + + Initializes a new instance of the class with the Default FailFast timeout of 21 s + + + + + Initializes a new instance of the class. + + The timeout. + + + + Value indicating whether Connection refused errors (AdsErrorCode.WSA_ConnRefused) trigger internal error conditions + + + + + Gets or sets a value indicating whether Connection refused errors (AdsErrorCode.WSA_ConnRefused) trigger internal error conditions + + true if connection refused is prevented; otherwise, false. + + + + The actual Fail fast timeout + + + + + Gets the actual FailFast Timeout + + The timeout. + + + + State of the internal state machine. + + + + + Gets the current state of the Fail Fast handler. + + Current state. + + + + Handler function called before the connection is established. + + AdsErrorCode. + + + + Resets this instance. + + + + + Handler function called after the connection has been established. + + The error code. + + + + Handler function called after the disconnection of the communication channel. + + The error code. + + + + Handler function called before the communication action occurs. + + AdsErrorCode. + + + + Handler function called after communication + + The error code. + + + + The tripping errors + + The can be temporarily switched off by the + inteface. + + + + Determines whether an error is tripped by the . + + The error code. + if set to true [prevent rejected connection error]. + true if the error code is an tripping error. + + + + Guards the from state changes that allow unintended communication. + + + + + The causing error for the trip. + + + + + Causing error for the Trip + + The tripped error. + + + + Gets a value indicating whether interceptor state is active + + true if communication state is active; otherwise, false. + + + + Gets a value indicating whether interceptor state is 'ready to connect' + + true if this instance is reconnecting; otherwise, false. + + + + Gets a value indicating whether the interceptor is in open / lost state + + true if communication is lost / open; otherwise, false. + + + + Trips the with the specified error. + + The error. + + + + Succeeds this instance. + + + + + Interface for an AdsState observer + + + + + + Gets the current state of the connected ADS Server. + + ADS state + + + + Occurs when the ads state has been changed. + + + + + Connection state observer (Interceptor) + + + + + + Initializes a new instance of the class. + + The session. + + + + The session + + + + + Synchronizer object + + + + + Current connection state. + + + + + Last succeeded access (UTC) + + + + + Gets the UTC of the last successful data communication + + + + + + Last (successful) access (UTC). + + + + + Gets the last Access (UTC) (Succeeded or not succeeded) + + + + + Handler function called after communication + + The error code. + + + + Called when an Communication error occurs. + + The error. + + + + Sets the connection state. + + The new state. + + + + Handler function called after the connection has been established. + + The error code. + + + + Handler function called after the disconnection of the communication channel. + + The error code. + + + + Error count + + + + + Gets the Number of Failed Accesses since the last succeeded + + + + + Error count since last acces. + + + + + Gets the number of errors since the last successful access + + + + + + Gets the current Connection state of the + + The state of the connection. + + + + Number of succeeded accesses of the connection + + + + + Occurs when the connection state has been changed. + + + + + Occurs when the ads state has been changed. + + + + + Called when [connection status changed]. + + The old state. + The new state. + + + + Gets the number of succeeded accesses. + + + + + Gets the Quality of the current connection (now - LastSucceeded) + + + + + Gets the current state of the connected ADS Server. + + ADS state + + + + Indicates that Connection refused errors (AdsErrorCode.WSA_ConnRefused) are prevented temporarily. + + + + + Gets or sets a value indicating whether Connection refused errors (AdsErrorCode.WSA_ConnRefused) trigger internal error conditions + + true if connection refused is prevented; otherwise, false. + + + + Handler function called after the ADS state is read. + + ADS state. + The result. + + + + Handler function called after an ADS state is written. + + ADS state. + The result. + + + + The current ADS state. + + + + + Sets the ADS state. + + Ads state. + + + + Called when the ADS state has been changed. + + The old state. + State of the _ads. + + + + Interface for accessing ADS 'Any' objects. + + + + + Reads the string + + The index group. + The index offset. + The length. + The encoding. + System.String. + ASCII Encoding expected + + + + Reads the string. + + The variable handle. + The length. + The encoding. + System.String. + ASCII Encoding expected + + + + Writes the string (Potentially unsafe!) + + The index group. + The index offset. + The value. + The length. + The encoding. + ATTENTION: Potentially this method is unsafe because following data can be overwritten + after the string symbol. Please be sure to specify the string length lower than the string size + reserved within the process image! + + + + Writes the string (Potentially unsafe!) + + The variable handle. + The value. + The length of the string to write + The encoding. + ATTENTION: Potentially this method is unsafe because following data can be overwritten + after the string symbol. Please be sure to specify the string length lower than the string size + reserved within the process image! + The String is written with ASCII Encoding + + + + Reads data synchronously from an ADS device and writes it to an object. + + Handle of the ADS variable. + Type of the object to be read. + The object the read data is written to. + + + + Reads data synchronously from an ADS device and writes it to an object. + + + If the Type of the object to be read is a string type, the first element of + the parameter args specifies the number of characters of the string. + If the Type of the object to be read is an array type, the number of elements + for each dimension has to be specified in the parameter args. At the moment + only 1 dimensional Arrays are supported. + + Handle of the ADS variable. + Type of the object to be read. + Additional arguments. + The object the read data is written to. + + + + Reads data synchronously from an ADS device and writes it to an object. + + Index group of the ADS variable. + Index offset of the ADS variable. + Type of the object to be read. + The object the read data is written to. + + + + Reads data synchronously from an ADS device and writes it to an object. + + If the Type of the object to be read is a string type, the first element of + the parameter args specifies the number of characters of the string. + If the Type of the object to be read is an array type, the number of elements + for each dimension has to be specified in the parameter args. At the moment + only 1 dimensional Arrays are supported. + + Index group of the ADS variable. + Index offset of the ADS variable. + Type of the object to be read. + Additional arguments. + The object the read data is written to. + + + + Writes an object synchronously to an ADS device. + + Handle of the ADS variable. + Object to write to the ADS device. + + + + Writes an object synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Object to write to the ADS device. + + + + Writes an object synchronously to an ADS device. + If the Type of the object to be written is a string type, the first element of parameter args + specifies the number of characters of the string. + + Handle of the ADS variable. + Object to write to the ADS device. + Additional arguments. + + + + Writes an object synchronously to an ADS device. + + + If the Type of the object to be written is a string type, the first element of parameter args + specifies the number of characters of the string. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Object to write to the ADS device. + Additional arguments. + + + + Interface for ads access via variable handle + + + + + Generates a unique handle for an ADS variable. + + Name of the ADS variable + The handle of the ADS Variable. + Thrown when the ADS call fails. + + + + Releases the handle of a ADS variable again. + + Handle of the ADS variable + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Handle of the ADS variable + Stream that receives the data. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Handle of the ADS variable + Stream that receives the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Handle of the ADS variable + Stream that receives the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Number of successfully returned data bytes. + AdsErrorCode + + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Variable handle. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Variable handle. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + The read bytes. + AdsErrorCode. + + + + + + Writes data synchronously to an ADS device. + + Handle of the ADS variable + Stream that receives the data. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Handle of the ADS variable + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Handle of the ADS variable + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + AdsErrorCode. + + + + + + Interface for Notification management. + + + + + Occurs when the ADS device sends a notification to the client. + + + The following sample shows how to register/unregister for + + + + + + Occurs when a exception has occurred during notification management. + + + + + Occurs when the ADS devices sends a notification to the client. + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + The stream that should receive the data. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + The stream that should receive the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + + The handle of the notification. + + Thrown when the ADS call fails. + + + Parameter semantic + + Value of parameter is interpreted as task context number + + + Value of parameter is interpreted as task context number + + + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + The stream that should receive the data. + Offset of the data in dataStream. + Length of the data in dataStream. + The settings. + This object can be used to store user specific data. + The handle. + The ADS ErrorCode. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object stored in the event argument. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object stored in the event argument. + Additional arguments. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + The settings. + This object can be used to store user specific data. + Type of the object stored in the event argument. + Additional arguments. + The handle. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object stored in the event argument. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + If type is a string type, the first element of the parameter args specifies the number of characters of the string. + If type is an array type, the number of elements for each dimension has to be specified in the parameter args. + At the moment only 1 dimensional Arrays are supported. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object s0000tored in the event argument. + Additional arguments. + The handle of the notification. + Thrown when the ADS call fails. + + + + Deletes an existing notification. + + Handle of the notification. + Thrown when the ADS call fails. + + + + Deletes an existing notification. + + Handle of the notification. + Thrown when the ADS call fails. + + + + System Notification Interfaces + + + + + Occurs when ADS State has been changed. + + + + + Occurs when the symbol version has been changed changes. + + This is the case when the connected ADS server restarts. This invalidates all actual opened + symbol handles. + The SymbolVersion counter doesn't trigger, when an online change is made on the PLC (ports 801, ..., 851 ...) + + + + Notification communication settings + + + + + Default + + + + + Gets the default Settings (AdsTransMode.OnChange, CycleTime 200 ms, MaxDelay: off) + + The default. + + + + Initializes a new instance of the class. + + The ADS Transmission mode. + The cycle time in ms. + The maximum delay in ms + + + + Gets or sets the ADS Transmission mode. + + The Transmission mode. + + + + Called when [mode changed]. + + The value. + + + + Gets or sets the cycle time (in milliseconds) for AdsNotifications. + + The ADS server checks if the value changes in this time slice. The unit is 1ms + The cycle time. + + + + Gets or sets the Maximum Delay Time (in milliseconds) for AdsNotifications. + + The maximum Delay time for ADS Notifications. + + + + Compares this in term of priorities to the other . + + The other. + 1: this has higher priority (shorter times), 0: Equal, 1: Lower prioritiy + + + + + Equals + + The object to compare with the current object. + true if the specified is equal to this instance; otherwise, false. + + + + Operator== + + The o1. + The o2. + The result of the operator. + + + + Implements the != operator. + + The o1. + The o2. + The result of the operator. + + + + Gets the HashCode of the Address + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + Compares two for Priority. + + Checks (prioritized): + 1. + 2. + 3. + + + + + Initializes a new instance of the class. + + + + + Compares the specified x. + + The x. + The y. + A signed integer that indicates the relative values of and , as shown in the following table.Value Meaning Less than zero is less than .Zero equals .Greater than zero is greater than . + + + + Interface for ADS Read/Write access via IndexGroup / IndexOffset + + + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + The offset. + The length. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Stream that contains the data that should be written. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The read buffer. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + The write buffer. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Trigger Client Method/Command. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Thrown when the ADS call fails. + This method is used to trigger Client Methods/Commands without parameters. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The buffer. + Offset of the data in dataStream. + Length of the data in dataStream. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + The offset. + The length. + The read bytes. + AdsErrorCode. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The buffer. + The offset. + The length. + The read bytes. + AdsErrorCode. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + The read bytes. + AdsErrorCode. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The read buffer. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + The write buffer. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + The read bytes. + AdsErrorCode. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + AdsErrorCode. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The buffer. + Offset of the data in dataStream. + Length of the data in dataStream. + AdsErrorCode. + + + + Interface IAdsReadWriteTimeoutAccess + + For internal use only. + + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + The offset. + The length. + The timeout. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The read buffer. + The offset. + The length. + The timeout. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Stream that contains the data that should be written. + The timeout. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + The timeout. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The read buffer. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + The write buffer. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + The timeout. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes the specified index group. + + The index group. + The index offset. + The timeout. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + The timeout. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + The timeout. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The write buffer. + Offset of the data in dataStream. + Length of the data in dataStream. + The timeout. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + The offset. + The length. + The timeout. + The read bytes. + AdsErrorCode. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The read buffer. + The offset. + The length. + The timeout. + The read bytes. + AdsErrorCode. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + The timeout. + The read bytes. + AdsErrorCode. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The read buffer. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + The write buffer. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + The timeout. + The read bytes. + AdsErrorCode. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + The timeout. + AdsErrorCode. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The write buffer. + Offset of the data in dataStream. + Length of the data in dataStream. + The timeout. + AdsErrorCode. + + + + Reads data synchronously from an ADS device and writes it to an object. + If the Type of the object to be read is a string type, the first element of + the parameter args specifies the number of characters of the string. + If the Type of the object to be read is an array type, the number of elements + for each dimension has to be specified in the parameter args. At the moment + only 1 dimensional Arrays are supported. + + Index group of the ADS variable. + Index offset of the ADS variable. + Type of the object to be read. + Additional arguments. + The timeout. + The object the read data is written to. + + + + Writes an object synchronously to an ADS device. + If the Type of the object to be written is a string type, the first element of parameter args + specifies the number of characters of the string. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Object to write to the ADS device. + Additional arguments. + The timeout. + + + + Interface for controlling the ADS state. + + + + + + Reads the ADS status and the device status from an ADS server. + + The ADS statue and device status. + Thrown when the ADS call fails. + + + + Reads the ADS status and the device status from an ADS server. Unlike the ReadState method this method does not call an exception on failure. Instead an AdsErrorCode is returned. + If the return value is equal to AdsErrorCode.NoError the call was successful. + + The ADS statue and device status. + AdsErrorCode of the ads read state call. Check for AdsErrorCode.NoError to see if call was successful. + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + Thrown when the ADS call fails. + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + Stream that contains the data that should be sent to the ADS device + Offset of the data in the stream. + Length of the data in the stream. + Thrown when the ADS call fails. + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + Stream that contains the data that should be sent to the ADS device + Offset of the data in the stream. + Length of the data in the stream. + AdsErrorCode. + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + AdsErrorCode. + + + + Interface IAdsStateControlTimeout + + For internal use only. + + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + The timeout. + Thrown when the ADS call fails. + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + Stream that contains the data that should be sent to the ADS device + Offset of the data in the stream. + Length of the data in the stream. + The timeout. + Thrown when the ADS call fails. + + + + Reads the ADS status and the device status from an ADS server. + + The timeout. + The ADS statue and device status. + Thrown when the ADS call fails. + + + + Reads the ADS status and the device status from an ADS server. Unlike the ReadState method this method does not call an exception on failure. Instead an AdsErrorCode is returned. + If the return value is equal to AdsErrorCode.NoError the call was successful. + + The timeout. + The ADS statue and device status. + AdsErrorCode of the ads read state call. Check for AdsErrorCode.NoError to see if call was successful. + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + Stream that contains the data that should be sent to the ADS device + Offset of the data in the stream. + Length of the data in the stream. + The timeout. + AdsErrorCode. + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + The timeout. + AdsErrorCode. + + + + Interface for symbolic ads access. + + + + + + Reads the value of a symbol and returns it as an object. Strings and all primitive datatypes(UInt32, Int32, Bool etc.) are supported. + Arrays and structures cannot be read. + + The symbol that should be read. + The value of the symbol as an object. + Thrown when a ADS datatype is not supported. + Thrown when the Sync port is not open. + + + + Reads the value of a symbol and returns the value as object. The parameter type must have the same + layout as the ADS symbol. + + Name of the ADS symbol. + Managed type of the ADS symbol. + If reload is true previously stored symbol information is cleared. As a consequence the symbol information must be obtained from the ADS server again. + Value of the symbol + + + + Call this method to obtain information about the individual symbols (variables) in ADS devices. + + Name of the symbol. + A ITcAdsSymbol containing the requested symbol information or null if symbol could not + be found. + Thrown when the ADS call fails. + + + + Writes a value to the symbol. Strings and all primitive data types(UInt32, Int32, Bool etc.) are supported. Array and structures are not supported. + If a string is passed as parameter, the method attempts to parse the string according to the ADS data type of the symbol. + + The symbol the value is written to. + The value to write. + Thrown when a ADS data type is not supported. + Thrown when the ADS call fails. + + + + Writes the passed object value to the specified ADS symbol.The parameter type must have the same + layout as the ADS symbol. + + Name of the ADS symbol. + Object holding the value to be written to the ADS symbol + If reload is true previously stored symbol information is cleared. As a consequence the symbol information must be obtained from the ADS server again. + + + + Call this method to obtain information about the specified data type. + + Name of the data type (without namespace) + An containing the requested type. + + + + + + Call this method to obtain information about the specified data type. + + Name of the symbol. + The symbol. + A containing the requested symbol information or null if symbol could not + be found. + + + + + Symbol Loader interface + + For internal use only. + + + + + Creates a new instance of the Symbol loader with the specified mode. + + The session (for session orientated loads / symbols). Can be NULL if not present. + The settings. + The interface of the Symbol loader. + + + + ADS Connection interface + + + + + The ADS connection interface represents the the logical point-to-point exception between Client and Server within an ADS Session. + + + + Get the of the ADS client. + + + + + Gets a value indicating whether the ADS client is connected to a ADS Server on the local + computer. + + + + + Gets the raw ADS interface. + + The raw interface. + + + + + Gets the of the ADS server. + + + + + Reads the identification and version number of an ADS server. + + DeviceInfo struct containing the name of the device and the version information. + Thrown when the ADS call fails. + + + + Derives from BinaryReader and reads primitive as well as PLC data types as binary values. + + The object is initialized with System.Text.Encoding.Default (ANSI Encoding). + + + + Initializes a new instance of the AdsBinaryReader class based on the supplied stream. + + A stream. + + + + Reads a PLC string from the current stream (ANSI Encoding) + + The length of the string in the PLC (byte length equals character count on PLC) + The string being read (until the first '\0' character) + + Because of ANSI Encoding the number of Chars could differ with the number of Bytes (e.g on Double Byte Codepages DBCS, Codepage 932, Japan) + + + + + + Reads the PLC string. + + Number of bytes to read. + The encoding the string is encoded in. + System.String. + + The following code shows how to Read/Write string values.. + + + + + + + Reads a PLC string from the current stream (Encoding.Default, ANSI Encoding) + + The length of the string in the PLC (byte length equals character count on PLC + '\0') + The string being read (until the first '\0' character) + + The byte length of a STRING[80] in the PLC is 81. + The byte length of a WSTRING[80] in the PLC is 162. + Because of ANSI Encoding the number of Chars could differ with the number of Bytes (e.g on Double Byte Codepages DBCS, Codepage 932, Japan) + + + The following code shows how to Read/Write ANSI string values.. + + + + + + Reads a PLC string from the current stream (Encoding.Unicode, Unicode Encoding) + + The length of the string in the PLC (byte length equals character count on PLC + '\0') + The string being read (until the first '\0' character) + + The byte length of a STRING[80] in the PLC is 81. + The byte length of a WSTRING[80] in the PLC is 162. + Because of ANSI Encoding the number of Chars could differ with the number of Bytes (e.g on Double Byte Codepages DBCS, Codpage 932, Japan) + + + The following code shows how to Read/Write UNICODE string values.. + + + + + + Reads a PLC Date type from the current stream. + + The date being read. + + + + Reads a PLC 'TIME' data type from the current stream. + + The time being read as TimeSpan. + This method reads the 4 Byte Plc 'TIME' datatype. + + + + + Reads a from the current stream. + + Guid. + + + + Derives from BinaryWriter and writes primitive and PLC data types in binary to a stream. + + The is fixed to use encoding (ANSI). + + + + + Initializes a new instance of the AdsBinaryWriter class based on the supplied stream. + + The stream + + + + Writes a string as a PLC string to the current stream. + + The string to write to the stream. + The length of the string in the PLC. + + + + + Writes the PLC string. + + The value. + The length of the string to write. + The encoding. + value + + + The following code shows how to Read/Write string values.. + + + + + + + Writes a string as a PLC string to the current stream. + + The string to write to the stream. + The length of the string without '\0' terminator! + + This method is meant for writing single string variables defined in the PlcControl format. + E.g. to write a 'STRING(80)' (byte size is 81) a length of '80' must be given to the 'length' parameter. + + If the string length is larger or equal than the length parameter, then only length characters are written to the + (without terminating character). + If the string value character count is shorter than the specified length parameter, the string + a terminating + \0 will be added to the . + + This method cannot be used for marshalling purposes, for example several fields of a struct, because no filling + bytes will be written to the stream. In that case use the method. + + + The following code shows how to Read/Write ANSI string values.. + + + + + + + + + Writes a (unicode) string as a PLC string to the current stream. + + The string to write to the stream. + The length of the string without '\0' terminator! + + This method is meant for writing single string variables defined in the PlcControl format. + E.g. to write a 'WSTRING(80)' (byte size is 162) a length of '80' must be given to the 'length' parameter. + + If the string length is larger or equal than the length parameter, then only length characters are written to the + (without terminating character). + If the string value character count is shorter than the specified length parameter, the string + a terminating + \0 will be added to the . + + This method cannot be used for marshalling purposes, for example several fields of a struct, because no filling + bytes will be written to the stream. In that case use the method. + + + The following code shows how to Read/Write UNICODE string values.. + + + + + + + + + Writes the PLC ANSI string in a data block of the specified size. + + The value. + Size of the String including the '\0' terminator. + + + + + + + Writes the PLC UNICODE string into a data block of the specified size. + + The value. + Size of the String including the '\0' terminator. + + + + + + + Writes a date as PLC date type to the current stream. + + The date to write to the stream. + + + + Writes a time span as PLC time type to the current stream. + + The time span to write to the stream. + + + + Writes the Guid (16 Bytes) to the current stream. + + The unique identifier. + + + + The class AdsStream is a stream class used for ADS communication. + + + + + Initializes a new instance of the AdsStream class. The instance has an expandable capacity initialized to zero. + + + + + Initializes a new instance of the AdsStream class. + + Length of the stream in bytes. + + + + Initializes a new instance of the AdsStream class, based on the specified region of a byte array. + + The array of bytes from which to create this stream. + The offset in buffer at which the stream begins. + The length of the stream in bytes. + + + + Initializes a new instance of the AdsStream class, based on a byte array. + + The array of bytes from which to create this stream. + + + + The origin of the stream. + + + + + Gets the origin of the stream. + + + The origin. + + + + + Main Module representing the TwinCAT.Utilities.dll Module + + + + + Common Trace source for ADS + + + + + Initializes the class. + + + + + Gets the Application directory. Folder where the Workbench Exe resides plus the PlugIns + + + + + Gets the DLL directory path. + + The DLL directory path. + + + + Method Tracing (Method entry and Method exit) + + + + + Initializes a new instance of the class. + + The message. + Message arguments + + + + Initializes a new instance of the class. + + + + + Method Tracing (Method entry and Method exit) + + + + + Initializes a new instance of the class. + + The message. + Message arguments + + + + Initializes a new instance of the class. + + + + + Trace Source IDs + + + + + + TwinCAT ADS + + + + + ADS Symbol Loading + + + + + ADS Sesssion States + + + + + VSX Library + + + + + Common Automation Interface + + + + + Core classes + + + + + Common Utilities.dll + + + + + PlugIn Trace within Utilities.dll + + + + + Command Trace within Utilities.dll + + + + + Communication Trace within Utilities.dll + + + + + Common Trace within SystemService.dll + + + + + Common Trace within SystemManager.dll + + + + + RCW Trace for System Manager + + + + + TRace for System Manager AdapterLayer + + + + + Common Trace for PlcControl.dll + + + + + Common Trace for UIFramework.dll + + + + + Common Trace for the TwinCat.GraphicalEditor.dll + + + + + Common Trace for EcDescriptions.dll + + + + + Common Trace for PlugInFramework.dll + + + + + Context change Trace within PlugInFramework.dll + + + + + Common Trace within DataCore.dll + + + + + Common Trace Source for the TwinCat.DistributedSystems.dll package + + + + + Trace Source ID for OPC Unified Architecture Traces + + + + + Trace Source ID for the Management Module + + + + + Trace ID for Application + + + + + Extended base TraceSource Object for selective TwinCAT Supplement Application tracing. + + + + + Initializes a new instance of the class. + + Name of the TraceSource. + Trace Source ID + Source Level. + + + + Initializes a new instance of the class. + + Name of the TraceSource + ID of the TraceSource + The level. + if set to true then the Trace Caller method will be dumped into the trace. + if set to true then the traces its startup time. + + + + Initializes a new instance of the class. + + Name of the TraceSource + ID of the TraceSource + The level. + if set to true then the Trace Caller method will be dumped into the trace. + if set to true then the traces its startup time. + + + + Indicates that the trace caller will be dumped into the trace. + + + + + Gets or sets a value indicating whether the Trace caller will be dumped into the trace. + + true if [dump caller]; otherwise, false. + + + + Seperator string + + + + + Traces the application start. + + + + + Traces the application end. + + + + + Verbose Trace. + + Message to trace. + + + + Writes a trace event with callers Method information into the dump (independant of setting. + + The type. + The format. + The args. + + + + Internal implementation of the Trace call + + The type. + The skip levels. + The format. + The args. + + + + Internal implementation of the Trace call + + The type. + The skip levels. + The message. + + + + Verbose Trace (With Method Info) + + Format string. + Arguments. + + + + Writes an informational message to the trace listeners in the collection using the specified message. + + The informative message to write. + + An attempt was made to trace an event during finalization. + + + + + + + + + + Writes an informational message to the trace listeners in the collection using the specified object array and formatting information. + + A composite format string (see Remarks) that contains text intermixed with zero or more format items, which correspond to objects in the array. + An array containing zero or more objects to format. + + is null. + + is invalid.-or- The number that indicates an argument to format is less than zero, or greater than or equal to the number of specified objects to format. + An attempt was made to trace an event during finalization. + + + + + + + + + Warning Trace. + + Message to trace. + + + + Warning Trace. + + Format string. + Arguments. + + + + Warning trace. + + The exception to trace. + + + + Warning trace. + + Additional message. + The Exception to trace. + + + + Warning trace. + + The Exception to trace. + The message. + The args. + + + + Error trace. + + The Exception to trace. + + + + Error trace. + + The message to trace. + + + + Error trace. + + The additional message to trace. + The exception to trace. + + + + Error trace. + + Format string + Arguments for the format string. + + + + Error trace (With Type and Method Information) + + Format string. + Format string arguments. + + + + Error trace (With Type and Method Information) + + The ex. + Format string. + Format string arguments. + + + + Trace Method start + + Format string. + Format string arguments. + + + + Trace Method start + + + + + Trace Method Stop + + Format string. + Format string arguments. + + + + Trace Method Stop + + + + + Automatically generating Trace Starts and Trace Stops with the IDisposable pattern. + + Use the using statement with this class. + + + + The trace source + + + + + Initializes a new instance of the class. + + The source. + + + + Initializes a new instance of the class. + + The source. + The message. + The args. + + + + Releases unmanaged resources and performs other cleanup operations before the + is reclaimed by garbage collection. + + + + + Indicates that the is disposed. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + This class implements an ADS Stamp Header containing multiple ADS Notification Samples. + + + + + Creates a new TcAdsStampHeader instance. + + The time stamp of this header in ns since 01/01/1601 + The number of notification samples contained in this header + + + + Get or set the time stamp of this header. + + + + + Get the number of notification samples contained in this header. + + + + + Get the array of notification samples contained in this header. + + + + + This class implements an ADS Notification Sample. It contains the notification handle and + the variable data. + + + + + Creates a new TcAdsNotificationSample instance. + + The size of the samples in bytes + + + + Creates a new TcAdsNotificationSample instance. + + The size of the samples in bytes + The notification handle of this sample + + + + Gets or sets the notification handle. + + + + + Gets the size of this sample in bytes. + + + + + Gets the variable data buffer + + + + + This class implements an ADS server. Derived classes should overwrite the indication methods + to react on incoming requests. The confirmation methods should be overwritten to receive + replies on ansychronous requests sent by this ADS server. + + + + + Delegate for the AdsSeverException event. + + + + + Create a new TcAdsServer instance with a fix ADS port number. + + The ADS server port for this server + A string describing this ADS server + + + + Create a new TcAdsServer instance with an ADS port number assigned by the local ADS router. + + A string describing this ADS server + + + + Create a new TcAdsServer instance with an ADS port number assigned by the local ADS router. + Optional the TcAdsServer can be configured to use the overloaded TcAdsDeviceNotification-method to implement an own notification-parser. + + The ADS server port for this server. + A string describing this ADS server. + Enables the overloaded TcAdsDeviceNotification-Method to implement an own notification-parser. + + + + Occurs if the receive thread has exited on an exception. + + + + + Connect this ADS server to the local ADS router. + Thrown if the connect call fails. + + + + + Disconnects this ADS server from the local ADS router. + Thrown if the disconnect call fails. + + + + + Sends an ADS Read Device Info request. + + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The ADS error code for this call. + + + + Sends an ADS Read Request. + + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The index group of the requested ADS service + The index group of the requested ADS service + The number of bytes to be read + The ADS error code for this call. + + + + Sends an ADS Write request. + + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The index group of the requested ADS service + The index group of the requested ADS service + The number of bytes to be written + The data to be written + The ADS error code for this call. + + + + Sends an ADS Read State request. + + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The ADS error code for this call. + + + + Sends an ADS Write Control request. + + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The requested new ADS state of the receiver + The requested new ADS state of the receiver + The length of the additional data buffer + An additional data buffer of cbLength bytes + The ADS error code for this call. + + + + Sends an ADS Add Device Notification request. + + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The index group of the requested ADS service + The index group of the requested ADS service + The number of bytes to be transmitted + The transmission mode of the notification (cyclic / on change) + The receiver should send the notification at least after maxDelay ms + The receiver shouldc check every cycleTime ms if the requested variable has changed + The ADS error code for this call. + + + + Sends an ADS Delete Device Notification request. + + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The notifocation ID to be deleted + The ADS error code for this call. + + + + Sends an ADS Device Notification request. + + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The number of ADS Stamp Headers to be sent + The array of ADS Stamp Headers to be sent + The ADS error code for this call. + + + + Sends an ADS Read Write request. + + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The index group of the requested ADS service + The index group of the requested ADS service + The number of bytes to be read + The number of bytes to be written + The data to be written + The ADS error code for this call. + + + + Called when an ADS Read Device Info confirmation is received. + Overwrite this method in derived classes to react on ADS Read Device Info confirmations. + + The sender's AMS address + The invoke id provided by this server during the corresponding request + The ADS error code provided by the sender + The sender's name + The sender's version + + + + Called when an ADS Read confirmation is received. + Overwrite this method in derived classes to react on ADS Read confirmations. + + The sender's AMS address + The invoke id provided by this server during the corresponding request + The ADS error code provided by the sender + The number of read bytes + The read data buffer + + + + Called when an ADS Write confirmation is received. + Overwrite this method in derived classes to react on ADS Write confirmations. + + The sender's AMS address + The invoke id provided by this server during the corresponding request + The ADS error code provided by the sender + + + + Called when an ADS Read State confirmation is received. + Overwrite this method in derived classes to react on ADS Read State confirmations. + + The sender's AMS address + The invoke id provided by this server during the corresponding request + The ADS error code provided by the sender + The ADS state of the sender + The device state of the sender + + + + Called when an ADS Write Control confirmation is received. + Overwrite this method in derived classes to react on ADS Write Control confirmations. + + The sender's AMS address + The invoke id provided by this server during the corresponding request + The ADS error code provided by the sender + + + + Called when an ADS Add Device Notification confirmation is received. + Overwrite this method in derived classes to react on ADS Add Device Notification confirmations. + + The sender's AMS address + The invoke id provided by this server during the corresponding request + The ADS error code provided by the sender + The notification handle provided by the sender + + + + Called when an ADS Delete Device Notification confirmation is received. + Overwrite this method in derived classes to react on ADS Delete Device Notification confirmations. + + The sender's AMS address + The invoke id provided by this server during the corresponding request + The ADS error code provided by the sender + + + + Called when an ADS Read Write confirmation is received. + Overwrite this method in derived classes to react on ADS Read Write confirmations. + + The sender's AMS address + The invoke id provided by this server during the corresponding request + The ADS error code provided by the sender + The number of read bytes + The read data buffer + + + + Sends an ADS Read Device Info response. + + The receiver's AMS address + The invoke ID provided by the receiver + The ADS error code for the response + The name of this ADS server + The version of this ADS server + The ADS error code for this call. + + + + Sends an ADS Read response. + + The receiver's AMS address + The invoke ID provided by the receiver + The ADS error code for the response + The number of read bytes + The read data buffer + The ADS error code for this call. + + + + Sends an ADS Write response. + + The receiver's AMS address + The invoke ID provided by the receiver + The ADS error code for the response + The ADS error code for this call. + + + + Sends an ADS Read State response. + + The receiver's AMS address + The invoke ID provided by the receiver + The ADS error code for the response + The current ADS state of this ADS server + The device state of this ADS server + The ADS error code for this call. + + + + Sends an ADS Write Control response. + + The receiver's AMS address + The invoke ID provided by the receiver + The ADS error code for the response + The ADS error code for this call. + + + + Sends an ADS Add Device Notification response. + + The receiver's AMS address + The invoke ID provided by the receiver + The ADS error code for the response + The notification handle for the added notification + The ADS error code for this call. + + + + Sends an ADS Delete Device Notification response. + + The receiver's AMS address + The invoke ID provided by the receiver + The ADS error code for the response + The ADS error code for this call. + + + + Sends an ADS Read Write Response. + + The receiver's AMS address + The invoke ID provided by the receiver + The ADS error code for the response + The number of read bytes + The read data buffer + The ADS error code for this call. + + + + Called when an ADS Read Device Info indication is received. + Overwrite this method in derived classes to react on ADS Read Device Info indications. + The default implementation replies with an ADS ServiceNotSupported error code (0x701). + + The sender's AMS address + The invokeId provided by the sender + + + + Called when an ADS Read indication is received. + Overwrite this method in derived classes to react on ADS Read indications. + The default implementation replies with an ADS ServiceNotSupported error code (0x701). + + The sender's AMS address + The invokeId provided by the sender + The index group of the requested ADS service + The index offset of the requested ADS service + The number of bytes to be read + + + + Called when an ADS Write indication is received. + Overwrite this method in derived classes to react on ADS Write indications. + The default implementation replies with an ADS ServiceNotSupported error code (0x701). + + The sender's AMS address + The invokeId provided by the sender + The index group of the requested ADS service + The index offset of the requested ADS service + The number of bytes to be witten + The data to be written + + + + Called when an ADS Read State indication is received. + Overwrite this method in derived classes to react on ADS Read State indications. + The default implementation replies with an ADS ServiceNotSupported error code (0x701). + + The sender's AMS address + The invokeId provided by the sender + + + + Called when an ADS Write Control indication is received. + Overwrite this method in derived classes to react on ADS Write Control indications. + The default implementation replies with an ADS ServiceNotSupported error code (0x701). + + The sender's AMS address + The invokeId provided by the sender + The requested new ADS state of this ADS device + The requested new device state of this ADS device + The length in bytes of the additional data buffer + An additional data buffer of cbLength bytes + + + + Called when an ADS Add Device Notification indication is received. + Overwrite this method in derived classes to react on ADS Add Device Notification indications. + The default implementation replies with an ADS ServiceNotSupported error code (0x701). + + The sender's AMS address + The invokeId provided by the sender + The index group of the requested ADS service + The index offset of the requested ADS service + Number of bytes to be transmitted + The transmission mode of the notification (cyclic / on change) + The notification should be send at least after maxDelay ms + Check every cycleTime ms if the requested variable has changed + + + + Called when an ADS Delete Device Notification indication is received. + Overwrite this method in derived classes to react on ADS Delete Device Notification indications. + The default implementation replies with an ADS ServiceNotSupported error code (0x701). + + The sender's AMS address + The invokeId provided by the sender + The notification handle to be deleted + + + + Called when an ADS Device Notification indication is received. + Overwrite this method in derived classes to react on ADS Device Notification indications. + + The sender's AMS address + The invokeId provided by the sender + The number of ADS Stamp Headers contained in stampHeaders + The array of received ADS Stamp Headers. + + + + Called when an ADS Device Notification indication is received. + Overwrite this method in derived classes to react on ADS Device Notification indications. + + The sender's AMS address + The invokeId provided by the sender + The number of stamp headers. + Reader object for the stamps. + + + + Called when an ADS Read Write indication is received. + Overwrite this method in derived classes to react on ADS Read Write indications. + The default implementation replies with an ADS ServiceNotSupported error code (0x701). + + The sender's AMS address + The invokeId provided by the sender + The index group of the requested ADS service + The index offset of the requested ADS service + Number of bytes to be read + Number of bytes to be written + The data to be written + + + + The AMS address of this server. + + + + + The connection state of this server. True, if the server is connected to the router; false otherwise. + + + + + The disposed + + + + + Gets a value indicating whether this instance is disposed. + + true if this instance is disposed; otherwise, false. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Finalizes an instance of the class. + + + + + This class implements the event arguments passed by the TcAdsServerExEvent. + + + + + Returns the exception that caused the event. + + The Exception that caused the event. + + + + Returns the exception message. + + The Exception message. + + + + A TcAdsServerException is thrown on communication errors in in TcAdsServer class. + + + + + Gets or sets the error code. + + + The error code. + + + + + When overridden in a derived class, sets the with information about the exception. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + info + + + + + + + + Ams Server Error Codes. + + + + + None / Uninitialized + + + + + Unknown + + + + + Connecting port failed. + + + + + Disconnecting port failed. + + + + + ReceiveQueue overflow + + + + + Receive Notification Queue overflow. + + + + + Import Wrapper for TcAmsServer (TcAmsServerCE) Methods + + + + + Interface IAdsSession + + + + + + Gets the NetId of the Session + + The net identifier. + + + + Gets the Ams Port of the Session + + The port. + + + + Gets the Session owner. + + The owner or NULL + + + + Gets the Address specifier of the Session / connection + + The address. + + + + Interface IInterceptionFactory + + + + + + Creates the communication interceptor(s). + + ICommunicationInterceptor. + + + + Session settings class + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + if set to true [synchronized]. + The timeout. + + + + + [OBSOLUTE: Will be removed] Gets a value indicating whether this is synchronized. + + true if synchronized; otherwise, false. + + + + + Gets the ADS timeout in milliseconds. + + The timeout. + + + + Gets the default Settings (Synchronized). + + + The following defaults are set here: + + SettingDescription + Communication Timeout ()Default communication timeout (, default 5s) + Resurrection Timeout ()Default communication timeout (, default 21s) + Dynamic SymbolLoader settings Synchronized mode activated () + + + The default settings. + + + + Gets a Settings object that configures the AdsSession for FastWriteThrough + + Session settings for a fast write through (with 200 ms Timeout). + The settings typically can be used for polling clients, where the "FailFast" + feature will be bypassed. That means, that communication fails doesn't trigger + the FailFast interceptor and every Request will go out via ADS. + This has the Drawback that communication Timeouts are longer and subsequent timeouts + block the ADS mailbox (with the danger of overflows). So use this setting with care + for specific purposes and should not be used for standard communication. + + No Resurrection time and therefore: + No FailFastHandler active. + Default communication timeout 200ms. + Not synchronized Notifications. + + + + + + The default communication timeout (5 Seconds) + + + + + The default resurrection time (21 Seconds) + + + + + Gets or sets the resurrection time (Default: ) + + The resurrection time. + The resurrection time is the time after a lost connection + can be 'resurrected'. This time is set to 21 Seconds by default (a value greater than the standard + Ethernet connection timeout of 20s). The reason for this timeout is not to flood the ADS mailbox + with requests that cannot be handled by the ethernet infrastructure. + As long this Timespan is not expired after a recognized , no further + data communication is done, and requests are immediately ('FailFast') answered by communication + exceptions. + Change this value only for edge cases. + + + + + Gets or sets the symbol loader settings + + The symbol loader. + + + + Interface for ADS Session Settings + + + + + + Gets the ADS timeout in milliseconds. + + The timeout. + + + + Gets or sets the resurrection time. + + The resurrection time. + + + + Gets or sets the symbol loader settings + + The symbol loader. + + + + AdsSession class + + On top of the well known class that is used traditionally for ADS communication, + the class provides the following additionally abilities out of the box: + + These are used to provide more stable connections to ADS Servers than the can provide. The main issues are Resurrection / Self-Healing + after communication timeouts, faster and less error prone reaction to communication errors (not necessarily waiting for communication timeouts) und enhanced + communication diagnosis. + + These enhanced features are provided by the following additions to the TwinCAT.Ads API: + + class. + Enhanced diagnosis in form of communication statistics + (semi-automatic) Resurrectable client communication with objects. + Symbol caching + Fail fast handler for connection stabilization + + + The is established by calling the method. The returned can be used + as long the exists. + + + The following sample shows a simple use of the object. The AdsSession object (and the dynamic SymbolLoader features) are only + available from .NET 4 and upwards. + + + + + + + + + Initializes a new instance of the class. + + The net identifier. + The port. + The settings. + + + + Initializes a new instance of the class. + + The address. + The settings. + The session owner + + + + Initializes a new instance of the class. + + The address. + The settings. + + + + Initializes a new instance of the class. + + The net identifier. + The port. + + + + Initializes a new instance of the class. + + The address. + + + + The address + + + + + Gets the target address of the + + The address. + + + + Handler function getting the address of the session. + + System.String. + + + + The settings + + + + + Gets the settings of the connection. + + The settings. + + + + Finalizes an instance of the class. + + + + + Gets the connection. + + The connection. + + + + Handler function connecting the Session. + + IConnection. + + + + Called when [disconnect]. + + true if XXXX, false otherwise. + + + + Handles the AmsRouterNotification event of the _connection control. + + The source of the event. + The instance containing the event data. + + + + Gets the name/string identifier of the session. + + System.String. + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Interceptor collection + + + + + Fail fast handler + + + + + Connection observer + + + + + Gets the Connection observer + + Connection observer. + + + + Creates the interceptor. + + ICommunicationInterceptor. + + + + Handler function creating the symbol server object. + + ISymbolServer. + The connection is not established! + + + + Gets the Communication / Session statistics. + + The communication / Session statistics. + + + + Gets the NetId of the Session + + The net identifier. + + + + Gets the Ams Port of the Session + + The port. + + + + The session owner + + + + + Gets the Session owner. + + The owner or NULL + + + + ADS Communication statistics + + + These statistics can be used for communication diagnosis. + They contain Error/Succeed counts as well as Resurrection infos. + + + + + Initializes a new instance of the class. + + The session. + + + + Gets the total cycles. + + The total cycles. + + + + Gets the total error count. + + The total error count. + + + + Gets the UTC time of the last succeeded access. + + The last succeeded access. + + + + Gets the wait time for the next access (Resurrection time) if in . + + The wait time if in otherwise TimeSpan.Zero. + + + + Gets the error count since last access (UTC) + + The error count since last access. + + + + Gets the number of resurrections on the + + The resurrections. + + + + Gets the UTC time when the session was established. + + The session established at. + + + + Gets the UTC time when the current connection was established. + + The connection established at. + + + + Gets the UTC time of the last conenction activation. + + Connection active time. + + + + Gets the connection lost count. + + The connection lost count. + + + + Gets the UTC connection lost time. + + The connection lost time. + + + + Gets the number of Resurrections of this Session. + + The resurrections. + + + + Collection class for dataTypes. + + + + + Internal list + + + + + Internal table TypeName --> ITcAdsDataType + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The coll. + + + + Adds a range of to the collection. + + The coll. + + + + Determines the index of a specific item in the . + + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + + + Gets or sets the element at the specified index. + + The index. + ITcAdsDataType. + + + + + Gets the with the specified type name. + + Name of the type. + ITcAdsDataType. + + + + + Determines whether this contains the specified data type. + + Name of the type. + true if [contains] [the specified type name]; otherwise, false. + + + + Tries the type of the get data. + + Name of the type. + The ret. + true if XXXX, false otherwise. + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + true if is found in the ; otherwise, false. + + + + Copies the entire collection to the specified array. + + The array. + Index of the array. + + + + Gets the number of elements contained in the . + + The count. + + + + Gets a value indicating whether the is read-only. + + true if this instance is read only; otherwise, false. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + Returns an enumerator that iterates through the collection. + + A that can be used to iterate through the collection. + + + + Returns an enumerator that iterates through a collection. + + An object that can be used to iterate through the collection. + + + + Gets a read only version of this . + + ReadOnlyTcAdsDataTypeCollection. + The readonly collection. + + + + Clones this instance. + + TcAdsDataTypeCollection. + + + + Tries to resolve the DataType within the Collection itself + + Type of the data. + The strategy. + ITcAdsDataType. + Use only before all Datatypes are collected by the loader! + + + + Read only collection of " types. + + + + + Initializes a new instance of the class. + + The coll. + + + + Determines whether this contains the specified type name. + + Name of the type. + true if the specified name is contained; otherwise, false. + + + + Tries to get the specified type name. + + Name of the type. + The type. + true if found, false otherwise. + + + + Returns an enumerator that iterates through the collection. + + A that can be used to iterate through the collection. + + + + Gets the with the specified type name. + + Name of the type. + ITcAdsDataType. + + + + Represents a collection of TcAdsSymbolInfo objects. + + + + + Initializes a new instance of the class. + + The owner. + + + + Initializes a new instance of the class. + + The symbol parser. + + + + Returns an enumerator that can iterate through the symbols () in this collection. + + + An IEnumerator that can be used to iterate through all symbols () in this collection. + + + + + Gets the element at the specified index. + + + + + Gets the Symbol by index + + The index. + TcAdsSymbolInfo if found, or NULL + + + + Gets the symbol by name. + + The name. + TcAdsSymbolInfo. + Only located Symbols will be returned. + + + + Copies the elements of the collection to an Array, starting at a + particular Array index. + + + The one-dimensional Array that is the destination of the + elements copied from the collection. The + Array must have zero-based indexing. + + + The zero-based index in array at which copying begins. + + + + + Gets the number of elements contained in the collection. + + + + + Gets a value indicating whether + access to the collection is synchronized + (thread-safe). + + + + + Gets an object that can be used to + synchronize access to the collection. + + + + + Symbol iterator class over objects. (internal) + + + + + Initializes a new instance of the class. + + The symbol collection. + + + + Checks whether enumerating is valid! + + + + + + Advances the enumerator to the next element of the collection. + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + + + + Gets the current element in the collection. + + The current. + + + + Interface ITcAdsDataType + + + + + Gets the data type identifier. + + The data type identifier. + + + + Gets a value indicating whether this instance has dimension information. + + true if this instance has dimension information; otherwise, false. + + + + Gets the dimensions of an array type + + + The array infos. + + + + + Gets a value indicating whether this instance has RPC methods (Struct types only) + + The DataType (Structure) must be marked with the PlcAttribute 'TcRpcEnable' to enable RpcMethods, otherwise + RpcMethods are not passed through to the ADS symbolic information. + + true if this instance has RPC methods; otherwise, false. + + + + Gets the RPC method descriptions + + A list of the rpc methods. + The DataType (Structure) must be marked with the PlcAttribute 'TcRpcEnable' to enable RpcMethods, otherwise + RpcMethods are not passed through to the ADS symbolic information. + + + + Gets the Base Type of the Type (if enum, alias, array) + + The type of the base. + + + + Gets the name of the base type (if enum, alias, array) + + The name of the base type. + + + + Gets a value indicating whether this instance has enum information. + + true if this instance has enum information; otherwise, false. + + + + Obsolete + + The enum infos. + + + + Enumeration specification (if enum) + + The enum infos. + + + + Get the SubElements of this . + + The subItems. + + + + Gets a value indicating whether this instance has sub items. + + true if this instance has sub items; otherwise, false. + + + + Gets a value indicating whether this instance is an enum. + + true if this instance is enum; otherwise, false. + + + + + Gets a value indicating whether this instance is an array. + + true if this instance is array; otherwise, false. + + + + + Gets a value indicating whether this instance is an struct. + + true if this instance is structure; otherwise, false. + + + + + Determines whether this object is an SubItem (DataType Member, true) or a native DataType (false) + + true if [is sub item]; otherwise, false. + + + + Gets a value indicating whether this DataType is an alias. + + true if this instance is alias; otherwise, false. + + + + + Gets a value indicating whether this DataType is a string. + + true if this instance is string; otherwise, false. + + + + + Managed Type of the (simple,primitive) type. + + The managed type of the data type. + + + + Gets a value indicating whether this instance is an oversampling array. + + true if this instance is oversampling array; otherwise, false. + + + + Gets the DataTypeFlags + + The flags. + + + + + Gets a value indicating whether this dataType is a jagged array. + + true if this instance is jagged array; otherwise, false. + + + + Interface ITcAdsSubItem + + + + + Gets the name of the subitem / Sub element. + + The name of the sub item. + + + + Gets the offset of the SubItem (in Bytes or Bits) + + The offset. + If indicates 'BitSize' then this value will be in Bits, otherwise Bytes. + + + + Gets a value indicating whether this sub element is persistent. + + true if this subelement is persistent; otherwise, false. + + + + Defines an Interface for reading the ADS symbol information. + + The most sophisticated implementation of this interface is "/> + + + + + Gets the index group of the symbol. + + Index group of the symbol. + + + + Gets the index offset of the symbol. + + Index offset of the symbol. + + + + Gets the size of the symbol (in Bytes or bits dependent on ). + + Size of the symbol in Bytes / Bits + + + + DataType identifier of the Symbol + + Data type of the symbol. + + + + + Gets the name of the symbol. + + Name of the symbol. + + + + Gets the name fo the symbol data type. + + Name of the symbol data type. + + + + + Gets the comment behind the variable declaration. + + Comment behind the variable declaration. + + + + Interface ITcAdsSymbol2 (extends ) + + The most sophisticated implementation of this interface is "/> + + + + + Indicates if the Persistent flag is set for the symbol. + + true if persistent, otherwise false. + + + + Indicates if the BitValue flag is set for the symbol. + + true if is BitValue, otherwise false. + + + + Indicates if the ReferenceTo flag is set for the symbol. + + true if is ReferenceTo, otherwise false. + + + + + Gets a value indicating whether this instance is a pointer. + + + true if this instance is pointer; otherwise, false. + + + + + + Indicates if the TypeGuid flag is set for the symbol. + + true if is TypeGuid, otherwise false. + + + + Indicates if the ReadOnly flag is set for the symbol. + + true if ReadOnly, otherwise false. + + + + Indicates if the TcComInterfacePointer flag is set for the symbol. + + true if is TcComInterfacePointer, otherwise false. + + + + Gets the ContextMask of the symbol, indicating the task the variable belongs to. + If ContextMask is not zero use or to add notifications. + + + + + Interface ITcAdsSymbol3 (extends ... ) + + The most sophisticated implementation of this interface is "/> + + + + + Gets a value indicating whether this instance is an array. + + + true if this instance is an array; otherwise, false. + + + + + + Gets the array dimensions. + + + The array dimensions. + + + + + Gets the collection of Array Infos. + + + The array infos. + + + + + Interface ITcAdsSymbol4 (extends ... + + The most sophisticated implementation of this interface is "/> + + + + + Gets the attribute count of the + + The attribute count. + int AttributeCount { get; } + + Gets the attributes of the + + The attributes. + + + + Gets a value indicating whether this instance is an Enum data type + + true if this instance is enum; otherwise, false. + + + + + Gets a value indicating whether this instance is an Struct data type + + true if this instance is struct; otherwise, false. + + + + + Gets a value indicating whether this instance has RPC methods (Struct types only) + + The DataType (Structure) must be marked with the PlcAttribute 'TcRpcEnable' to enable RpcMethods, otherwise + RpcMethods are not passed through to the ADS symbolic information. + + true if this instance has RPC methods; otherwise, false. + + + + Gets the RPC method descriptions + + The DataType (Structure) must be marked with the PlcAttribute 'TcRpcEnable' to enable RpcMethods, otherwise + RpcMethods are not passed through to the ADS symbolic information. + + The RPC methods. + + + + Gets the Data Type Category + + The category. + + + + Gets the Bit Size of the Symbol + + The Bit Size of the underlying data type. + + + + Gets the Byte Size of the Symbol + + The Byte Size of the underlying data type. + + + + Interface ITcAdsSymbol5 (extends ... + + + + + Gets the Data type object of the Symbol. + + The data type object or NULL if not resolved. + + + + DataType identifier of the Symbol + + Data type of the symbol. + + + + Gets the name of the symbol data type. + + Name of the symbol data type. + + + + Gets a value indicating whether this instance is recursive. + + The parents. + true if the specified parents is recursive; otherwise, false. + true if this instance is recursive; otherwise, false. + + + + Gets a value indicating whether the Symbol is static. + + true if this instance is static; otherwise, false. + + + + Interface ITcAdsSubSymbolProvider + + Interface used for objects that support subsymbols (e.g. Arrays, References, Structs) + + + + + GetSubSymbols of this symbol. + + The SubSymbols. + + + + Interface ITcAdsRpcInvoke + + + This interface is used to invoke ADS RPC Method calls. This can be done 'symbolic' via the + Method name or the MethodID of the method on the specified symbol. + To activate the RPC Access within the PLC environment, its dataType (Structure, FB) must be marked with the PlcAttribute 'TcRpcEnable' to enable RpcMethods. + + + + + Invokes the specified RPC Method. + + The symbol with RPC Methods. + Name of the method. + The RPC In-Parameters, or NULL. + The return value of the Method (as object) or NULL if void. + This method only supports primitive data types as . Any available outparameters will be ignored. + + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + + + + + Invokes the specified RPC Method. + + The symbol with RPC Methods. + Name of the method. + The RPC In-Parameters, or NULL. + The RPC Out-parameters, or NULL + The return value of the Method (as object) or NULL if void. + This method only supports primitive data types as /. + + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + + + + + Invokes the specified RPC Method. + + The symbol path. + Name of the method. + The RPC In-Parameters, or NULL. + The return value of the Method (as object) or NULL if void. + This method only supports primitive data types as . Any available outparameters will be ignored. + + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + + + + + Invokes the specified RPC Method. + + The symbolpath. + Name of the method. + The RPC In-Parameters, or NULL. + The RPC Out-parameters, or NULL + The return value of the Method (as object) or NULL if void. + This method only supports primitive data types as /. + + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + + + + + Invokes the specified RPC Method. + + The symbol with RPC Methods. + Name of the method. + The RPC In-Parameters, or NULL. + The out specifiers (specifying the out types) or NULL. + The ret specifier (specifying the return value) or NULL. + The out parameters. + The return value of the Method (as object) or NULL if void. + The RpcMethod optionally support In-Parameters, Out-Parameters and Return values. Therefore the parameters , , , + are allowed to be empty or NULL. + In case of using primitive datatypes, the type specifier parameters ( and ) are not necessary and should not be set. + + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + + + + + Invokes the specified RPC Method + + The symbol path. + The method name. + The RPC In-Parameters, or NULL. + The out specifiers (specifiying the out types) or NULL. + The ret specifier (specifiying the return value) or NULL. + The RPC Out-parameters, or NULL + The return value of the Method (as object). + The RpcMethod optionally support In-Parameters, Out-Parameters and Return values. Therefore the parameters , , , + are allowed to be empty or NULL. + In case of using primitive datatypes, the type specifier parameters ( and ) are not necessary and should not be set. + + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + + + + + Invokes the specified RPC Method. + + The symbol. + Name of the method. + The RPC In-Parameters, or NULL. + The return value of the RPC method as object. + The out specifiers (specifying the out types) or NULL. + The ret specifier (specifying the return value) or NULL. + The RPC Out-parameters, or NULL + The ADS Error Code. + The RpcMethod optionally support In-Parameters, Out-Parameters and Return values. Therefore the parameters , , , + are allowed to be empty or NULL. + In case of using primitive datatypes, the type specifier parameters ( and ) are not necessary and should not be set. + + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + + + + + Invokes the specified RPC Method + + The symbol path. + The method name. + The RPC In-parameters, or NULL + The return value of the RPC method as object. + The out specifiers (specifying the out types) or NULL. + The ret specifier (specifying the return value) or NULL. + The RPC Out-parameters, or NULL + The ADS Error Code. + The RpcMethod optionally support In-Parameters, Out-Parameters and Return values. Therefore the parameters , , , + are allowed to be empty or NULL. + In case of using primitive datatypes, the type specifier parameters ( and ) are not necessary and should not be set. + + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + + + + + Invokes the specified RPC Method + + The symbol path. + The method name. + The RPC In-parameters, or NULL + The return value of the RPC method as object. + The RPC Out-parameters, or NULL + The ADS Error Code. + This method only supports primitive data types as /. + + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + + + + + Invokes the specified RPC Method + + The symbol path. + The method name. + The RPC In-Parameters, or NULL. + The return value of the RPC method as object. + The ADS Error Code. + The ADS Error Code. + This method only supports primitive data types as . + + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + + + + + Invokes the rpc method. + + The RPC callable symbol + The method. + The parameters. + The out specifiers (specifying the out types) or NULL. + The ret specifier (specifying the return value) or NULL. + The out parameters. + The return value of the RPC method./> + AdsErrorCode. + The RpcMethod optionally support In-Parameters, Out-Parameters and Return values. Therefore the parameters , , , + are allowed to be empty or NULL. + In case of using primitive datatypes, the type specifier parameters ( and ) are not necessary and should not be set. + + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + + + + + Enum ValueAccessMethod + + + + + None / Uninitialized + + + + + Value access via Index Group and Offset Only + + + + + Symbolic access via Instance Path only. + + + + + Uses IndexGroup IndexOffset Preferred (and Symbolic for Dereferenced Pointers / References) + + + By standard this uses IndexGroup/IndexOffset. For Symbols that are dereferenced (Pointers/Referenced) the + Symbol method is chosen. + + + + + The Default access mode (Symbolic) + + + + + Restores an AdsConnection. + + + + + + Abstract base class for an AdsValue accessor. + + + + + + + The Value/Handle ByName Encoding + + + + + Gets the Value/Handle ByName Encoding of the Accessor + + The encoding. + + + + Initializes a new instance of the class. + + The value factory. + The session. + The settings. + The encoding. + + + + Initializes a new instance of the class. + + The value factory. + The connection. + The settings. + The encoding. + + + + Tries to read the value of the symbol and returns the value as instance of the specified type. + + The symbol. + The value type. + The value. + The UTC read time. + AdsErrorCode. + + + + Tries to write the data within the value object as the symbol value. + + The symbol. + The value object. + The UTC read time. + AdsErrorCode. + + + + Tries to read the value of the symbol and updates the referenced value object with that data + + The symbol. + The value object. + The UTC read time. + AdsErrorCode. + + + + Value accessor class (accessing ADS Symbol values) + + + + + Initializes a new instance of the class. + + The Connection. + The access method. + The value factory. + The default settings. + The Value/Handle ByName encoding. + adsClient + AdsClient + + + + Finalizes an instance of the class. + + + + + Indicates that the is disposed. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Handles the AdsNotification event of the adsClient control. + + The source of the event. + The instance containing the event data. + + + + Handles the AdsNotificationError event of the adsClient control. + + The source of the event. + The instance containing the event data. + + + + Handler function for the AdsNotification + + The symbol. + The instance containing the event data. + + + + Gets the ADS Connection + + The client. + + + + The address (cached) + + + + + Reads a value from the specified ADS address + + The address. + Raw value + The read time snapshot. + AdsErrorCode. + + + + + Tries to read the value by symbol + + The address. + The number bytes. + The value. + Number of read bytes. + AdsErrorCode. + + + + Try to write the value symbolic. + + The address. + The offset. + Byte size. + The value. + AdsErrorCode. + + + + Invokes the specified RPC Method. + + The instance. + The method. + The parameters. + The ANYTYPE out specifiers. + The ANYTYPE return specifier. + The out parameters. + The return value. + The invoke time snapshot (User Time, UTC). + AdsErrorCode. + instance + method + Connection not established! + parameters + + + + Tries the read array element value. + + The array symbol. + The indices. + The value. + The read time snapshot. + arraySymbol + Parameter 'arraySymbol' doesn't represent an array!;arraySymbol + + + + + Tries to write the Value + + The symbol. + The value. + The offset. + The write time snapshot. + + + + + Tries the write array element value. + + The array symbol. + The indices. + The value. + The value offset. + The write time snapshot. + arraySymbol + Parameter 'arraySymbol' doesn't represent an array!;arraySymbol + or + Value array size mismatch!;value + + + + + Calculates the access method dependent on Symbol Type and setting. + + The array symbol. + ValueAccessMethod. + + + + Registers a Notification on the . + + The symbol. + Type of Notification (Value, Raw or Both) + The settings. + + symbol + or + settings + + + Only one Notification is allowed on the symbol. On case of double announcement, we set the Notification parameters + to the higher priority. + + + + Unregisters a Notification from the . + + The symbol. + Type of Notification (Value, Raw or Both) + symbol + + + + + AdsStream for notification (dynamically resized) + + + + + Resizes the notification stream. + + The requested length of the stream in bytes. + + + + Registers the notification. + + The symbol. + The type. + The settings. + Symbol size exceeds 64K for notification! + + + + Unregisters the notification. + + The symbol. + The type. + true if handle is removed, false otherwise. + + + + Gets or sets the value access Method + + The access method. + + + + Tries to read the value of the symbol and returns the value as instance of the specified type. + + The symbol. + The value type. + The value. + The UTC read time. + AdsErrorCode. + + + + Tries to read the value of the symbol and updates the referenced value object with that data + + The symbol. + The value object. + The UTC read time. + + + + Tries to write the data within the value object as the symbol value. + + The symbol. + The value object. + The UTC write time. + AdsErrorCode. + + + + AMS/ADS Net ID + + + + + The net identifier + + + + + Initializes a new instance of the class. + + + + + Constructor + + NetID as string + + + + Constructor + + Net ID in bytes + Not a valid NetId;netId + + + + Copy Constructor + + Net Id. + + + + Converts the netId to string + + A that represents this instance. + + + + Returns a that represents this instance. + + The format. + The format provider. + A that represents this instance. + + + + Formatting + Description + + + g + Standard formatting + + + x + Formatting as Hexadecimal (small letters) + + + X + Formatting as Hexadecimal (big letters) + + + + + + Converts the NetId object to byte array + + System.Byte[]. + + + + Determines, whether the is local. + + true if this instance is local; otherwise, false. + Doesn't check for . + + + + Clones the NetId + + The cloned + + + + Gets the netId string from the byte array + + The net identifier. + System.String. + + + + + Creates an empty NetId ("0.0.0.0.0.0") + + The empty. + + + + Creates the local NetId ("127.0.0.1.1.1") + + The local host. + + + + The _local net identifier + + + + + Gets the Local Net ID (System service must be running) + + The local. + The system service must be running + + + + The local value + + + + + The empty value + + + + + The local host value + + + + + The regular expression pattern + + + + + The regex + + + + + Gets the net Id as byte array + + The string. + System.Byte[]. + + + + + Gets the net bytes. + + The match. + System.Byte[]. + match + Regular exception didn't match!;match + + + + Gets the net identifier. + + The match. + AmsNetId. + + + + Converts the string representation of the address to . + + The string to parse. + The parsed . + true if parsed, false otherwise. + + + + Converts the string representation of the address to . + + The string to parse. + AmsNetId. + Format of AmsNetId is not valid! + + + + Creates the from bin hex string. + + The BinHex string. + AmsNetId. + + + + Converts the specified to a BinHex string. + + NetId to convert + System.String. + + + + Converts the to a BinHex string. + + System.String. + + + + Compares the NetIds + + NetID1 + NetId2 + true if XXXX, false otherwise. + + + + Compares the NetIds for SubID equality. + + NetID1 + NetId2 + Ignores the SubId part of the NetId (last 2 numbers/bytes). + true if the SubIds are equal, false otherwise. + The first 4 numbers indicate the global ID of the AmsNetId. The last 2 + numbers indicate the (local) submodule. + + + + Compares the netIds + + NetId in bytes. + true if XXXX, false otherwise. + + + + Determines whether the s refer to the same target. + + NetID of target system A + NetID of target system B + true if the target systems are the same, otherwise false. + + In comparison to the or methods, this Method alse + checks against the LocalHost ID, which means that is the same target as + + + + Determines whether the s refer to the same target. + + NetID of target system A + NetID of target system B + Indicates only to check the 4 parts of the address (for SubId check). + true if the target systems are the same, otherwise false. + netIDA + netIDB + + In comparison to the or methods, this Method alse + checks against the LocalHost ID, which means that is the same target as + + + + Determines whether the specified s are equal. + + The net IDA. + The net IDB. + true if the specified net IDA is equal; otherwise, false. + + + + Equals + + The object to compare with the current object. + true if the specified is equal to this instance; otherwise, false. + + + + Operator== + + The o1. + The o2. + The result of the operator. + + + + Implements the != operator. + + The o1. + The o2. + The result of the operator. + + + + Gets the HashCode of the Address + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + Compares the current object with another object of the same type. + + An object to compare with this object. + A value that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the parameter.Zero This object is equal to . Greater than zero This object is greater than . + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + A value that indicates the relative order of the objects being compared. The return value has these meanings: Value Meaning Less than zero This instance precedes in the sort order. Zero This instance occurs in the same position in the sort order as . Greater than zero This instance follows in the sort order. + + + + Type Converter class for the . + + + + + + Initializes a new instance of the class. + + + + + Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context. + + An that provides a format context. + A that represents the type you want to convert from. + + true if this converter can perform the conversion; otherwise, false. + + + + + Returns whether this converter can convert the object to the specified type, using the specified context. + + An that provides a format context. + A that represents the type you want to convert to. + + true if this converter can perform the conversion; otherwise, false. + + + + + Converts the given object to the type of this converter, using the specified context and culture information. + + An that provides a format context. + The to use as the current culture. + The to convert. + + An that represents the converted value. + + + The conversion cannot be performed. + + + + + Converts the given value object to the specified type, using the specified context and culture information. + + An that provides a format context. + A . If null is passed, the current culture is assumed. + The to convert. + The to convert the parameter to. + + An that represents the converted value. + + + The parameter is null. + + + The conversion cannot be performed. + + + + + Returns a collection of standard values for the data type this type converter is designed for when provided with a format context. + + An that provides a format context that can be used to extract additional information about the environment from which this converter is invoked. This parameter or properties of this parameter can be null. + + A that holds a standard set of valid values, or null if the data type does not support a standard set of values. + + + + + Returns whether the collection of standard values returned from is an exclusive list of possible values, using the specified context. + + An that provides a format context. + + true if the returned from is an exhaustive list of possible values; false if other values are possible. + + + + + Returns whether this object supports a standard set of values that can be picked from a list, using the specified context. + + An that provides a format context. + + true if should be called to find a common set of values the object supports; otherwise, false. + + + + + Returns whether the given value object is valid for this type and for the specified context. + + An that provides a format context. + The to test for validity. + + true if the specified value is valid for this object; otherwise, false. + + + + + Ams/Ads Address + + + + + The net id + + + + + The port + + + + + Protected constructor + + + + + Copy constructor + + The address. + + + + Constructor + + The net identifier. + The port. + + + + Constructor + + Net Id + Port + + + + Constructor + + The net identifier. + The port. + + + + Constructor + + The net identifier. + The port. + + + + Constructor + + The net identifier. + The port. + + + + Constructor + + The net identifier. + The port. + + + + Constructor + + The port. + + + + Constructor + + The port. + + + + Initializes a new instance of the class. + + The address coded as string (Format NetId:Port, 1.2.3.4.5.6:Port) + + + + Gets the NetId + + The net identifier. + + + + Gets the Port number + + The port. + + + + Equals + + The object to compare with the current object. + true if the specified is equal to this instance; otherwise, false. + + + + Operator== + + The o1. + The o2. + The result of the operator. + + + + Implements the != operator. + + The o1. + The o2. + The result of the operator. + + + + Gets the HashCode of the Address + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + Converts the Address to String 'NetId:Port' + + A that represents this instance. + + + + Parses a string to an object. + + The string. + AmsAddress. + + + + + The regular expression pattern for + + + + + The regex + + + + + Tries the parse. + + The string. + The net identifier. + The port. + true if XXXX, false otherwise. + + + + Tries to parse the from string. + + The STR. + The address. + true if XXXX, false otherwise. + + + + Gets the port. + + The match. + System.Int32. + + + + Clones this instance. + + AmsAddress. + + + + Marshaller class for . + + + + + + Gets the Marshalling size of . + + The size of. + + + + + Gets the Marshalling size of . + + The size of. + + + + Marshals the to a byte[] + + The net identifier. + System.Byte[]. + + + + Marshals/Write the the into a . + + The AmsNetId. + The writer. + Number of marshalled bytes. + + + + Marshals the to memory/span. + + The AmsNetId. + The data. + The offset. + Number of marshalled bytes. + + + + Unmarshals a from memory/span. + + The memory/span representation. + The offset. + 'The returned . + Number of unmarshalled bytes. + + + + Unmarshals an from + + The reader. + The net identifier. + The number of unmarshalled bytes. + + + + Class AmsAddressMarshaller. + + + + + + Sizes the of. + + The address. + System.Int32. + + + + Sizes the of. + + System.Int32. + + + + Marshals the specified address. + + The address. + System.Byte[]. + + + + The structure contains the ADS state and device state. + + + + + Initializes a new Instance of the StateInfo struct. + + Ads state. + Device state. + + + + Gets or sets the ADS state of this object. + + + + + Gets or sets the device state of this object. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + + Implements the ==. + + a. + The b. + The result of the operator. + + + + Implements the !=. + + a. + The b. + The result of the operator. + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + + Returns a hash code for this instance. + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + The structure contains the name and the version information of the device. + + + + + Gets or sets the name of the device. + + + + + Gets or sets the version information. + + + + + Gets a value indicating whether this instance is empty. + + true if this instance is empty; otherwise, false. + + + + The structure contains the version number, revision number and build number. + + + + + Initializes a new instance of the struct. + + The version. + The revision. + The build. + + version + or + revision + + + + + Gets or sets the version number. + + + + + Gets or sets the revision number. + + + + + Gets or sets the build number. + + + + + Gets a value indicating whether this instance is empty / uninitialized. + + true if this instance is empty; otherwise, false. + + + + Converts this to a .NET Framework object. + + Version. + + + + Converts the type to and vice versa. + + + + + + Converts the to + + The ads version. + Version. + + + + Converts the to + + The version. + AdsVersion. + version + Revision number not supported by AdsVersion object! + + + + ADS Transmission Mode for ADS Notifications. + + + The configures the registration of the at the + server system and how the parameters of the + + are interpreted. + The following general scenarios are addressed: + Cyclic notifications.Notifications on value change.Server side and Client side notifications.Binding of notifications to specific tasks. + + In the default case the or the (Server cycle) should be used. + All other modes are side cases for special purposes. + More about the AdsNotifications: ADS Notification concept. + + + + + + + + + + None / Uninitalized transport mode. + No event is fired. + + + + + Client triggered cyclic event. + The event is fired cyclically triggered from the client side. + Polling is used from the User Application to read values, before they are fired as Notifications. + Client side triggering has the following consequences: + The realtime environment on the server side will be less stressed (expecially the mailbox queue).Value requests are serialized one after another and are handled slower (synchronouly, not asynchronously)Implicit synchronization of the events into the UI Thread. + + + + + The event is fired when data changes triggered by the client. + The event is fired on-change triggered from the client side. + Polling is used from the User Application to read values, before they are fired as Notifications. + Client side triggering has the following consequences: + + The realtime environment on the server side will be less stressed (expecially the mailbox queue). + Value requests are serialized one after another and are handled slower (synchronouly, not asynchronously). + Implicit synchronization of the events into the UI Thread. + + + + + + + The event is fired cyclically. + + The Notification will be registered on the ADS Server side for a cyclical trigger (dependant on time parameter) and is bound + to the 'default' task of the addressed target. In case of the PLC target (e.g. Port 851) the default + task is the first configured task. + + Each time the 'default' task has finished its cycle the realtime system will check for the expired cycle time + and sends the message on expiry. + The used ContextMask for the 'default' task is 0. + + + Please be aware, that server side 'Change' notifications stress the realtime system and should be handled with care. + Therefore, dependent of the cycle time of the task and the capabilities of the system only a limited set of Cyclic Notifications should be used! + + + A system limit for server side notification registrations is 1024. + + + + + + On-Change event. + The Notification will be registered on the ADS Server side for an on-change and optional cyclical trigger (dependant on parameters) and is bound + to the 'default' task of the addressed target. In case of the PLC target (e.g. Port 851) the default + task is the first configured task. + + Each time this task has finished its cycle the realtime system will check for the changed value and an optional expired cycle time + and sends the message on change or expiry. + The used ContextMask for the 'default' task is 0. + + Please be aware, that server side 'OnChange' notifications stress the realtime system / the default task with value comparisons. + Therefore, dependent of the cycle time of the task and the capabilities of the system a higher amount of notification registrations should be handled with care ! + + + A system limit for server side notification registrations is 1024. + + + + + + The event is fired cyclically within the given task context. + A Value of parameter is interpreted as task context number . This can be important, if + the notifications have to be synchron with specific tasks, but should not be used in the default case. + The Notification will be registered on the ADS Server side for a cyclical trigger (dependant on time parameter) and is bound + to the task specified by the ContextMask of the addressed target. In case of the PLC target (e.g. Port 851) + the ContextMask is the Index of the global TASKINFOARRAY - 1. + + Each time this task has finished its cycle the realtime system will check for the expired cycle time + and sends the message on expiry. + + + + + + + The event is fired when the data changes within the given task context. + A + Value of parameter is interpreted as task context number . This can be important, if + the notifications have to be synchron with specific tasks, but should not be used in the default case. + The Notification will be registered on the ADS Server side for an on-change and optional cyclical trigger (dependant on parameters) and is bound + to the task specified by the ContextMask of the addressed target. In case of the PLC target (e.g. Port 851) + the ContextMask is the Index of the global TASKINFOARRAY - 1. + Each time this task has finished its cycle the realtime system will check for the changed value and an optional expired cycle time + and sends the message on change or expiry. + + + Please be aware, that server side 'OnChange' notifications stress the realtime system / the default task with value comparisons. + Therefore, dependent of the cycle time of the task and the capabilities of the system only a limited set of OnChange Notifications should be used! + + + + + + + + The client1 req + + + + + + The event is fired cyclically. Same as 'Cyclic'. + + + + + + The event is fired cyclically. + + + + + + The event is fired cyclically. + + + + + + The event is fired cyclically. + + + + + + The event is fired cyclically. + + + + + + The event is fired cyclically. + + + + + + The event is fired cyclically. + + + + + + The event is fired cyclically. + + + + + + The event is fired cyclically. + + + + + + The event is fired cyclically. + + + + + + The event is fired cyclically. + + + + + + The A event is fired cyclically. + + + + + + The event is fired cyclically. + + + + + + The event is fired cyclically. + + + + + + The event is fired cyclically. + + + + + + The event is fired cyclically. + + + + + + State of the AMS Router. + + + + + Unknown Router State + + + + + AMS Router is stopped. + + + + + AMS Router is started. + + + + + AMS Router has been removed. + + + + + AmsPorts + + + + + AMS Router (Port 1) + + + + + AMS Debugger (Port 2) + + + + + The TCom Server. Dpc or passive level. + + + + + TCom Serve Task. RT context. + + + + + TCom Serve Task. Passive level. + + + + + TwinCAT Debugger + + + + + TwinCAT Debugger Task + + + + + The License Server (Port 30) + + + + + Logger (Port 100) + + + + + Event Logger (Port 110) + + + + + application for coupler (EK), gateway (EL), etc. + + + + + Event Logger UM + + + + + Event Logger RT + + + + + Event Logger Publisher + + + + + R0 Realtime (Port 200) + + + + + R0 Trace (Port 290) + + + + + R0 IO (Port 300) + + + + + NC (R0) (Port 500) + + + + + R0 Satzausführung (Port 501) + + + + + R0 Satzvorbereitung (Port 511) + + + + + Preconfigured Nc2-Nc3-Instance + + + + + R0 ISG (Port 550) + + + + + R0 CNC (Port 600) + + + + + R0 Line (Port 700) + + + + + R0 PLC (Port 800) + + + + + Obsolete + + + + + + Tc2 PLC RuntimeSystem 1 (Port 801) + + + + + Obsolete + + + + + + Tc2 PLC RuntimeSystem 2 (Port 811) + + + + + Obsolete + + + + + + Tc2 PLC RuntimeSystem 3 (Port 821) + + + + + Obsolete + + + + + + Tc2 PLC RuntimeSystem 4 (Port 831) + + + + + R0 RTS (Port 850) + + + + + Camshaft Controller (R0) (Port 900) + + + + + R0 CAM Tool (Port 950) + + + + + R0 User (Port 2000) + + + + + System Service (AMSPORT_R3_SYSSERV, 10000) + + + + + (Port 10000) + + + + + (Port 10001) + + + + + Port 10100 + + + + + Port 10200 + + + + + Port 10201 + + + + + Port 10300 + + + + + Port 10400 + + + + + Port 10500 + + + + + Port 10502 + + + + + Port 10600 + + + + + Port 10600 + + + + + Port 10700 + + + + + Port 10800 + + + + + Port 10900 + + + + + Port 11000 + + + + + Port 11500 + + + + + Port 11600 + + + + + Port 12000 + + + + + Port 13000 + + + + + Port 14000 + + + + + Port 14100 + + + + + Port 15000 + + + + + Port 16000 + + + + + Port 17000 + + + + + Port 17500 + + + + + Port 18000 + + + + + Port 19000 + + + + + Port 19100 + + + + + Port 19200 + + + + + Port 19300 + + + + + Port 19500 + + + + + + + + + + Describes the AdsState. + + + + + Invalid + + + + + Idle + + + + + Reset + + + + + Initialize + + + + + Start + + + + + Run + + + + + Stop + + + + + Save Configuration + + + + + Load Configuration + + + + + Power failure + + + + + Power Good + + + + + Error + + + + + Shutdown + + + + + Suspend + + + + + Resume + + + + + Config (System is in config mode) + + + + + Reconfig (System should restart in config mode) + + + + + Stopping + + + + + Incompatible + + + + + Exception + + + + + Maxstates (no valid state) + + + + + + Describes predefined Index-Groups. + + + + + + PlcRWIB (0x4000, 16384) + + + + + PlcRWOB (0x4010, 16400) + + + + + PlcRWMB (0x4020, 16416) + + + + + PlcRWRB (0x4030, 16432) + + + + + PlcRWDB (0x4040,16448) + + + + + SymbolTable (0xF000, 61440) + + + + + SymbolName (0xF001, 61441) + + + + + SymbolValue (0xF002, 61442) + + + + + SymbolHandleByName (0xF003, 61443) + + + readLength == 4: handle + readLength > 4: handle(4) + var size(4) + type decoration(4) + + type name length(2) + type name(n) + '\0'(1) + + + + + SymbolValueByName (0xF004, 61444) + + + + + SymbolValueByHandle (0xF005, 61445) + + + + + SymbolReleaseHandle (0xF006, 61446) + + + + + SymbolInfoByName (0xF007, 61447) + + + + + SymbolVersion (0xF008, 61448) + + + + + SymbolInfoByNameEx (0xF009, 61449) + + + + + SymbolDownload (F00A, 61450) + + + + + SymbolUpload (F00B, 61451) + + + + + SymbolUploadInfo (0xF00C, 61452) + + + + + Notification of named handle (0xF010, 61456) + + + + + read/write input byte(s) (0xF020, 61472) + + + + + read/write input bit (0xF021, 61473) + + + + + read/write output byte(s) (0xF030, 61488) + + + + + read/write output bit (0xF031, 61489) + + + + + write inputs to null (0xF040, 61504) + + + + + write outputs to null (0xF050, 61520) + + + + + ADS Sum Read Command (ADSIGRP_SUMUP_READ, 0xF080, 61568) + + + + + ADS Sum Write Command (ADSIGRP_SUMUP_WRITE, 0xF081, 61569) + + + + + ADS sum Read/Write command (ADSIGRP_SUMUP_READWRITE, 0xF082, 61570) + + + + + ADS sum ReadEx command (ADSIGRP_SUMUP_READEX, 0xF083, 61571) + AdsRW IOffs list size + W: {list of IGrp, IOffs, Length} + R: {list of results, Length} followed by {list of data (expepted lengths)} + + + + + ADS sum ReadEx2 command (ADSIGRP_SUMUP_READEX2, 0xF084, 61572) + AdsRW IOffs list size + W: {list of IGrp, IOffs, Length} + R: {list of results, Length} followed by {list of data (returned lengths)} + + + + + ADS sum AddDevNote command (ADSIGRP_SUMUP_ADDDEVNOTE, 0xF085, 61573) + AdsRW IOffs list size + W: {list of IGrp, IOffs, Attrib} + R: {list of results, handles} + + + + + ADS sum DelDevNot command (ADSIGRP_SUMUP_DELDEVNOTE, 0xF086, 61574) + AdsRW IOffs list size + W: {list of handles} + R: {list of results} + + + + + DeviceData (0xF100,61696) + + + + + Describes predefined Index-Offsets. + + " + + + + Device Data ADS State + + + + + DeviceDataDeviceState + + + + + DeviceDataConfigID + + + + + DeviceDataAdsVersionCheck + + + + + Describes the ADS error that occured. + + + + + No Error. + Error code: 0(0x000). + + + + + Internal Error. + Error code: 1(0x001). + + + + + No Rtime. + Error code: 2(0x002). + + + + + Allocation locked memory error. + Error code: 3(0x003). + + + + + Insert mailbox error. + Error code: 4(0x004). + + + + + Wrong receive HMSG. + Error code: 5(0x005). + + + + + Target port not found. + Error code: 6(0x006). + + + + + Target machine not found. + Error code: 7(0x007). + + + + + Unknown command ID. + Error code: 8(0x008). + + + + + Bad task ID. + Error code: 9(0x009). + + + + + No IO. + Error code: 10(0x00A). + + + + + Unknown AMS command. + Error code: 11(0x00B). + + + + + Win 32 error. + Error code: 12(0x00C). + + + + + Port is not connected. + Error code: 13(0x00D). + + + + + Invalid AMS length. + Error code: 14(0x00E). + + + + + Invalid AMS Net ID. + Error code: 15(0x00F). + + + + + Low Installation level. + Error code: 16(0x010). + + + + + No debug available. + Error code: 17(0x011). + + + + + Port disabled. + Error code: 18(0x012). + + + + + Port is already connected. + Error code: 19(0x013). + + + + + AMS Sync Win32 error. + Error code: 20(0x014). + + + + + AMS Sync timeout. + Error code: 21(0x015). + + + + + AMS Sync AMS error + Error code: 22(0x016). + + + + + AMS Sync no index map. + Error code: 23(0x017). + + + + + Invalid AMS port. + Error code: 24(0x018). + + + + + No memory. + Error code: 25(0x019). + + + + + TCP send error. + Error code: 26(0x01A). + + + + + Host unreachable. + Error code: 27(0x1B). + + + + + Invalid AMS fragment. + Error code: 28(0x1C). + + + + + Router: no locked memory. + Error code: 1280(0x500). + + + + + Router: The size of the router memory could not be changed. + Error code: 1281(0x501). + + + + + Router: mailbox full. + Error code: 1282(0x502). + + + + + Router: The mailbox has reached the maximum number of possible messages. + Error code: 1283(0x503). + + + + + Router: Unknown Port Type + Error code: 1284(0x504). + + + + + Router: Router is not initialized. + Error code: 1285(0x505). + + + + + Router: The desired port number is already assigned. + Error code: 1286(0x506). + + + + + Router: Port not registered. + Error code: 1287(0x507). + + + + + Router: The maximum number of Ports reached. + Error code: 1288(0x508). + + + + + Router: The port is invalid. + Error code: 1289(0x509). + + + + + Router: TwinCAT Router not active. + Error code: 1290(0x50A). + + + + + error class <device error"> + Error code: 1792(0x700). + + + + + Service is not supported by server. + Error code: 1793(0x701). + + + + + Invalid index group. + Error code: 1794(0x702). + + + + + Invalid index offset. + Error code: 1795(0x703). + + + + + Reading/writing not permitted. + Error code: 1796(0x704). + + + + + Parameter size not correct. + Error code: 1797(0x705). + + + + + Invalid parameter value(s). + Error code: 1798(0x706). + + + + + Device is not in a ready state. + Error code: 1799(0x707). + + + + + Device is busy. + Error code: 1800(0x708). + + + + + Invalid context (must be in Windows). + Error code: 1801(0x709). + + + + + Out of memory. + Error code: 1802(0x70a). + + + + + Invalid parameter value(s). + Error code: 1803(0x70b). + + + + + Obsolete + Error code: 1803(0x70b). + + + + + + Not found(files, ...). + Error code: 1804(0x70c). + + + + + Syntax error in command or file. + Error code: 1805(0x70d). + + + + + Objects do not match. + Error code: 1806(0x70e). + + + + + Object already exists. + Error code: 1807(0x70f). + + + + + Symbol not found. + Error code: 1808(0x7010). + + + + + Symbol version is invalid. + Error code: 1809(0x711). + + + + + Server is not i a valid state. + Error code: 1810(0x712). + + + + + ADS transmode is not supported. + Error code: 1811(0x713). + + + + + Notification handle is invalid. + Error code: 1812(0x714). + + + + + Notification vlient not registered. + Error code: 1813(0x715). + + + + + No more notification handles. + Error code: 1814(0x716). + + + + + Size for watch to big. + Error code: 1815(0x717). + + + + + Device is not initialized. + Errocr code: 1818(0x718). + + + + + Devicee has a timeout. + Error code: 1817(0x719). + + + + + Query interface has failed. + Error code: 1818(0x71A). + + + + + Wrong interface required. + Error code: 1819(0x71B). + + + + + Class ID is invalid. + Error code: 1820(0x71C). + + + + + Object ID is invalid. + Error code: 1821(0x71D). + + + + + Device: Request is Pending. + Error code: 1822(0x71E). + + + + + Device: Request is Aborted. + Error code: 1823(0x71F). + + + + + Device: Signal warning. + Error code: 1824(0x720). + + + + + Device: Invalid Array Index (ADSERR_DEVICE_INVALIDARRAYIDX) + Error code: 1825(0x721). + + + + + Device: Symbol not Active + Error code: 1826(0x722). + + + + + Device: Access denied. + Error code: 1827(0x723). + + + + + Device: Missing license + Error code: 1828(0x724). + + + + + Device: license not found + Error code: 1828(0x724). + + + + + Device: license expired + Error code: 1829(0x725). + + + + + Device: license exceeded + Error code: 1830(0x726). + + + + + Device: license invalid + Error code: 1831(0x727). + + + + + Device: license invalid system id + Error code: 1832(0x728). + + + + + Device: license not time limited + Error code: 1833(0x729). + + + + + Device: license issue time in the future + Error code: 1834(0x72A). + + + + + Device: license time period to long + Error code: 1835(0x72B). + + + + + Device: Exception occured during system start. + Error code: 1836(0x72C). + + + + + Device: Exception in device specific code + Error code: 1836(0x72C). + + + + + Device: license file read twice + Error code: 1837(0x72D). + + + + + Device: invalid signature + Error code: 1838(0x72E). + + + + + Device: public key certificate + Error code: 1839(0x72F). + + + + + Device: public key of OEM unknown + Error code: 1840(0x730). + + + + + Device: license not valid for this system id type + Error code: 1841(0x731). + + + + + Device: trial license denied + Error code: 1842(0x732). + + + + + Device: function id is invalid + Error code: 1843(0x733). + + + + + Device: a parameter, an index, an iterator, ... is out of range + Error code: 1844(0x734). + + + + + Device: invalid alignment + Error code: 1845(0x735). + + + + + Device: license invalid platform level + Error code: 1846(0x736). + + + + + Error class <client error> + Error code: 1856(0x740). + + + + + Parameter at service is invalid. + Error code: 1857(0x741). + + + + + Polling list is empty. + Error code: 1858(0x742). + + + + + Obsolete + + + + + + Variable connection is already in use. + Error code: 1859(0x743). + + + + + Invoke ID already in use. + Error code: 1860(0x744). + + + + + Timeout has elapsed. + Error code: 1861(x745). + + + + + Error in win32 subsystem. + Error code: 1862(0x746). + + + + + Timeout value is invalid. + Error code: 1863(0x747). + + + + + ADS port is not opened. + Error code: 1864(0x748). + + + + + No AMS Address. + Error code: 1865(0x749). + + + + + An internal in ADS sync has occurred. + Error code: 1872(0x750). + + + + + Hash table overflow. + Error code: 1873(0x751). + + + + + There are no more symbols in the hash table. + Error code: 1874(0x752). + + + + + There are no more symbols in cache. + Error code: 1875(0x753). + + + + + An invalid response has been received. + Error code: 1876(0x754). + + + + + Sync port is locked. + Error code: 1877(0x755). + + + + + Client queue is full + + + + + Windows sockets connection refused (0x274d, 10061) + + + No connection could be made because the target computer actively refused it. + This usually results from trying to connect to a service that is inactive on + the foreign host—that is, one with no server application running. + + + + + This class encapsulates accesses to the TwinCAT Registry part. + + + + + TwinCAT Installation type + + + + + TwinCAT Installation path + + + + + Gets the root path ("Software\\Beckhoff\\TwinCAT", or "Software\\Beckhoff\\TwinCAT3") + + The root. + + + + "Software\\Beckhoff\\TwinCAT\\System" + + + + + Installation Path (TwinCAT2) Registry Key ("InstallationPath") + + + + + Installation Path (TwinCAT3) Registry Key ("InstallDir") + + + + + Installation Path (TwinCAT3) Registry Key ("CurrentVersion") + + + + + Gets the AmsNet ID from the Registry + + The ams net id. + + + + Registry TwinCAT Root path (TwinCAT 3) + + + + + Gets a value indicating whether this code is running within a Wow64 Process (32-Bit Processon 64-Bit Operating system) + + + true if this instance is wow64 process; otherwise, false. + + + + + Gets the SystemKey registry key (Don't forget to close the key) "HKLM\\Software\\Beckhoff\\TwinCAT\\System"; + + + + + Enumeration describes whether Tc2 or Tc3 is associated. + + + + + No installation found / Uninitialized + + + + + Tc2 Installation detected + + + + + Tc3 Installation detected + + + + + Tries to get the TwinCAT 2 Installation Path (if installed) + + The TwinCAT 2 root path. + The version (TwinCAT29 + + + + + Tries to get the TwinCAT 3 Installation Path (if installed) + + The TwinCAT root path. + The TwinCAT version. + + + + + Enum ADS TransportProtocol + + + + + None / Uninitialized + + + + + ADS via Router + + + + + ADS via TCP/IP (without router) + + + + + Indicates that and are appropriate (for establishing connections) + + + + + Provides data for AdsNotificationEvent of the class TcAdsClient. + + + + + Initializes a new instance of the AdsStream class AdsSyncNotificationEventArgs. + + TwinCAT realtime timestamp. + An object, that is passed by AddDeviceNotification. + Handle of the connection. + Length of the data in dataStream. + The offset of the data in dataStream . + Stream that is used to store the data. + The TwinCAT realtime target system (even when working locally) has its own TimeSystem which is synchronized with + the Desktop/User time at TwinCAT Start. From this moment on the Desktop/User time can drift from the local Realtime/Target time. + can differ. + The TimeStamp can be converted to a .NET DateTime Object with or + + + + + + Gets the timestamp of this Notification. + + + + + Gets the user object. This object is passed by to AddDeviceNotification and can + be used to store data. + + + + + Gets the handle of the connection. + + + + + Streams that holds the notification data. + + + + + Gets the Length of the data in the stream. + + + + + Gets the Offset of the data in the stream. + + + + + Provides data for AdsNotificationExEvent of the class TcAdsClient. + + + + + Initializes a new instance of the AdsStream class AdsSyncNotificationEventArgs. + + Timestamp. + An object, that is passed by AddDeviceNotificationEx. + Handle of the connection. + Value of the ADS variable. + + + + Gets the timestamp. + + + + + Gets the user object. This object is passed by to AddDeviceNotification and can + be used to store data. + + + + + Value of the ads variable. + + + + + Gets the handle of the connection. + + + + + Provides data for AmsRouterNotificationEvent of the class TcAdsClient. + + + + + Initializes a new instance of the AmsRouterNotificationEventArgs class. + + The current state of the Router. + + + + Current state of the AMS Router. + + + + + Provides data for AdsNotificationErrorEvent of the class TcAdsClient. + + + + + Initializes a new instance of the AdsNotificationErrorEventArgs class. + + Exception that was caught while handling notifications. + + + + Exception that was caught while handling notifications. + + + + + Provides data for AdsStateChangedEvent of the class TcAdsClient. + + + + + The state + + + + + Initializes a new instance of the AdsStateChangedEventArgs class. + + Current state of the ADS device. + + + + Initializes a new instance of the AdsStateChangedEventArgs class. + + The instance containing the event data. + + + + Current state of the ADS device. + + The state. + + + + Event Arguments for AdsStateChanged events. + + + + + + Initializes a new instance of the class. + + The new state. + The old state. + The session. + + + + The new state + + + + + The old state + + + + + The session + + + + + Gets the connection. + + The connection. + + + + Provides data for AdsSymbolVersionChangedEvent of the class TcAdsClient. + + + + + The _symbol version + + + + + Initializes a new instance of the AdsSymbolVersionChangedEventArgs class. + + Current symbol version. + + + + Initializes a new instance of the AdsSymbolVersionChangedEventArgs class. + + The instance containing the event data. + + + + Current symbol version device. + + The symbol version. + + + + Event handler for the AdsNotification event in the class TcAdsClient. + + + + + Event handler for the AdsNotification event in the class TcAdsClient. + + + + + Event handler for the AmsRouterNotification event in the class TcAdsClient. + + + + + Event handler for the AdsNotificationError event in the class TcAdsClient. + + + + + Event handler for the AdsStateChanged event in the class TcAdsClient. + + + + + Settings object for the initialization. + + + + + + + This settings object is used for the initialization of the Symbol loader object. + + + + Initializes a new instance of the class with . + + The load mode. + + + + Initializes a new instance of the class. + + The load mode. + The value access. + + + + Initializes a new instance of the class. + + The load mode. + The dynamic value creation. + The value access. + + + + Gets or sets the symbols load mode. + + The symbols load mode. + + + + Gets or sets the value access mode. + + The value access mode. + + + + Gets or sets the setting to create ArrayElements "On-The-Fly" (Default True) + + The value access mode. + + + + Gets or sets a value indicating whether Disconnect connections can be reconnected. + + true if Disconnect connections can be reconnecte; otherwise, false. + + + + Gets or sets the value creation mode. + + The dynamic value mode. + + + + Gets the default settings object (SymbolsLoadMode.VirtualTree + ValueAccessMode.IndexGroupOffsetPreferred) + + + The following defaults are set here: + + SettingDescription + Symbols load mode ()Create virtual tree (. + Value access mode ()Prefer Symbolic access of values (). + Value creation mode Create .NET integral primitives if possible (. + + + The default settings object. + + + + Gets the default settings object (SymbolsLoadMode.DynamicTree + ValueCreationMode.TranslateToPrimitives + ValueAccessMode.IndexGroupOffsetPreferred) + + + The following defaults are set here: + + SettingDescription + Symbols load mode ()Create dynamic tree (. + Value access mode ()Prefer Symbolic access of values (). + Value creation mode Create .NET integral primitives if possible (. + + + The dynamic default settings object. + + + + + Settings object for . + + This object is used to initalize the with application appropriate + settings. + + + + Prevents a default instance of the class from being created. + + + + + Creates a Default settings object with custom timeout. + + The timeout of the in milliseconds. + + + + Gets the default settings. + + The default. + Creates an settings object, with specification for and + . + + + Fail fast handler is active. + Default communication timeout 5000ms. + Not synchronized Notifications. + + + + + + Gets a Settings object that configures the TcAdsClient for FastReconnection + + The fast reconnection. + The settings typically can be used for polling clients, that detect + returning (getting accessible) ADS targets faster. + This has the Drawback that communication Timeouts are longer and subsequent timeouts + block the ADS mailbox. So use these settings only for Availability detection of ADS Devices and + should not be used for the general communication layer. + + No FailFastHandler active. + Default communication timeout 200ms. + Not synchronized Notifications. + + + + + + + Gets a Settings object that configures the TcAdsClient for FastWriteThrough + + Client settings for a fast write through (with 200 ms Timeout). + The settings typically can be used for polling clients, where the "FailFast" + feature will be bypassed. That means, that communication fails doesn't trigger + the FailFast interceptor and every Request will go out via ADS. + This has the Drawback that communication Timeouts are longer and subsequent timeouts + block the ADS mailbox (with the danger of overflows). So use this setting with care + for specific purposes and should not be used for standard communication. + + No FailFastHandler active. + Default communicationtimeout 200ms. + Not synchronized Notifications. + + + + + + Compatibility settings object + + The settings object. + The compatibility settings intitialize the TcAdsClient the same way + as it is done in earlier versions of the TwinCAT.Ads.dll (earlier than Version 4.2) + + + No FailFastHandler active. + Default communicationtimeout 5000ms. + Synchronized Notifications. + + + + + + The Protocol settings + + + + + Gets the protocol settings + + The protocol. + + + + Gets the interceptors. + + The interceptors. + + + + + Creates the default interceptors. + + CommunicationInterceptors. + The Default is to create a FailFastHandler, which is the default now also for a standard + + + + + + Gets or sets a value indicating whether Notifications should be polled from the Client side. + + true if [client cycle]; otherwise, false. + Cannot change ClientCycle value while notifications are active. + + The ClientCycle moves the creation of Notifications from the Server side to the clients side. + That means that a Timer (synchronous or asynchronous (BackgroundThread)) will trigger on the client side + to poll the registered Notification/Variable handles for their values. The polling is done optimized by a + SumRead command. + + If ClientCycle is set to false, the ADS that has been addressed writes the data cyclically + to the TcAdsClient object. The smallest possible time is the cycle time of the ADS device. + For the PLC, this is the task cycle time. The cycle time can be handled in 1 ms steps. + If you enter 0 ms as the cycle time, then the data is sent to the TcAdsClient object with + every cycle of the ADS device task. + If ClientCycle is set to true, the TcAdsClient object polls the variables cyclically. + The timer that initiates the read / write runs in Windows NT/2000 user mode, which means + that the time behavior strongly depends on the loading of the system. + Under CE Systems this property is set to TRUE by default. + Full .NET Framework has a default of FALSE. + + The ClientCycle has the following advantages/disadvantages: + + Advantages: + + Advantages + Can be faster on slow WindowsCE targets to create notifications. + More notifications are supported. + Realtime is less affected. + + + Disadvantages: + + On (non-CE) targets slower than ServerCycle notifications (standard) + An extra network round trip for the SumRead polling. + Notification Timing strongly depends on the workload of the (client) system + + This is only a workaround for CE targets and a large number of Notifications that cannot be supported from + ServerCycle notifications (standard). + + + + + + Gets a value indicating whether the + + true if synchronize; otherwise, false. + + + + The communication Timeout of the + + The timeout. + + + + ADS Client / ADS Communication object. + + + IMPORTANT: The Default setting of the property has changed to 'false' from Version 4.2.XX on. + This has the effect that - by default - the notifications events and + are not synchronized into the UI thread anymore. To re enable the obsolete behavior set to 'true'. + Use an instance of this object to create a point-to-point send/receive connection to an ADS Server/Device object. + The class TcAdsClient is a wrapper for the TcAdsdll.dll and enables synchronous/asynchronous access to data of an ADS Device. + + + The following sample shows how to instantiate and use the class. + + + The following sample shows how to call (Remote Procedures / Methods) within the PLC directly from the class. + + + + + + Synchronous port of the local system + + + + + Initializes a new instance of the class (obsolete) + + if set to true [no interceptors]. + + + + Initializes a new instance of the class. + + The settings. + + + + Initializes a new instance of the class TcAdsClient. + + Default Interceptors (FailFastHandler) will be used. + + + + Initializes a new instance of the class. + + The session. + + + + Static identifier counter + + + + + identifier + + + + + Gets the Identifier. + + The identifier. + + + + Gets the name identificator of this object. + + The name. + + + + Finalizes an instance of the class. + + + + + Determines, whether the is disposed + + + + + Releases the resources used by TcAdsClient. + + + + + Closes this + + The is disposed afterwards. + + + + Disposes the . + + + When overwritten don't forget to call the base class + + + + Occurs when the ADS device sends a ADS Notification to the client. + + + In most implementations, these notifications indicate changed values on the client target. These 'ADS notifications' will be received asynchronously from + the target system and distributed via this event. + IMPORTANT: The Default setting of the property has changed to 'false' from Version 4.2.XX on. + This has the effect that - by default - the notifications events and + are not synchronized into the UI thread anymore. To re-enable the obsolete behavior for legacy applications set to 'true'. + + + The following sample shows how to register/unregister for AdsNotifications (asynchronous change messages) via and + + + + + + + + + Occurs when the ADS devices sends an (extended) notification to the client. + + + In most implementations, these notifications indicate changed values on the client target. These 'ADS notifications' will be received asynchronously from + the target system and distributed via this event. + IMPORTANT: The Default setting of the property has changed to 'false' from Version 4.2.XX on. + This has the effect that - by default - the notifications events and + are not synchronized into the UI thread anymore. To re-enable the obsolete behavior for legacy applications set to 'true'. + + + The following sample shows how to use events. + + + + + + + + + + Occurs when a exception has occurred during notification management. + + + The occurrence of this event can have two different reasons: + + Indicates an internal error occurred during Notification management. + The registered notification becomes invalid on the server, eg. after a PLC Download / Online Change. If the ADS Server detects that the (still registered) Notification Sender is getting invalid, it sends + an error notification so that the client will be informed about detached notifications. The event arguments contains the which describes the invalid notification handle + by its property. + + + + + + + + + Occurs when the state of the local Router has changed. + + + + + Occurs when the ADS state changes. + + + + + Occurs when the symbol version has been changed changes. + + This is the case when the connected ADS server restarts. This invalidates all actual opened + symbol handles. + The SymbolVersion counter doesn't trigger, when an online change is made on the PLC (ports 801, ..., 851 ...) + + + + Establishes a connection to a ADS device. + + NetId of the ADS server. + Port number of the ADS server. + + + + Establishes a connection to a ADS device. + + NetId of the ADS server. + Port number of the ADS server. + + + + Establishes a connection to a ADS device using the local netID. + + Port number of the ADS server. + + + + Establishes a connection to a ADS device. + + NetId of the ADS server. + Port number of the ADS server. + + + + Connects this instance. + + true if XXXX, false otherwise. + Target address not specified! + + + + Locks the TcAdsClient for the time of a Connect against communication requests + + + + + Resurrects the connection + + + + + Establishes a connection to a ADS device. + + NetId of the ADS server. + Port number of the ADS server. + + + + Establishes a connection to a ADS device. + + The address. + + + + Disconnects the + + true if successfully disconnected, false if the was already disconnected. + The can be connected again afterwards. Disconnection doesn't mean disposing / closing: + + + + + Called when before the is disconnected. + + + + + Occurs when the connection state has been changed. + + + + + Called when the of the has changed. + + The new state. + The old state. + + + + Gets the raw ADS interface. + + The raw interface. + + + + + Cached timeout + + + + + Sets the timeout for the ads communication. Unit is in ms. + + + + + Gets or sets a value indicating whether Notifications should be polled from the Client side. + + true if [client cycle]; otherwise, false. + Cannot change ClientCycle value while notifications are active. + + The ClientCycle moves the creation of Notifications from the Server side to the clients side. + That means that a Timer (synchronous or asynchronous (BackgroundThread)) will trigger on the client side + to poll the registered Notification/Variable handles for their values. The polling is done optimized by a + SumRead command. + + If ClientCycle is set to false, the ADS that has been addressed writes the data cyclically + to the TcAdsClient object. The smallest possible time is the cycle time of the ADS device. + For the PLC, this is the task cycle time. The cycle time can be handled in 1 ms steps. + If you enter 0 ms as the cycle time, then the data is sent to the TcAdsClient object with + every cycle of the ADS device task. + If ClientCycle is set to true, the TcAdsClient object polls the variables cyclically. + The timer that initiates the read / write runs in Windows NT/2000 user mode, which means + that the time behavior strongly depends on the loading of the system. + Under CE Systems this property is set to TRUE by default. + Full .NET Framework has a default of FALSE. + + The ClientCycle has the following advantages/disadvantages: + + Advantages: + + Advantages + Can be faster on slow WindowsCE targets to create notifications. + More notifications are supported. + Realtime is less affected. + + + Disadvantages: + + On (non-CE) targets slower than ServerCycle notifications (standard) + An extra network round trip for the SumRead polling. + Notification Timing strongly depends on the workload of the (client) system + + This is only a workaround for CE targets and a large number of Notifications that cannot be supported from + ServerCycle notifications (standard). + + + + + + Gets or sets a value indicating whether the TcAdsClient object synchronizes the incoming notifications (obsolete) + + + IMPORTANT: Be aware that this setting could be removed in later version of this API. + The default setting changed from 'true' to 'false' in newer versions, because synchronization should be done + in the Application and not has helper functionality within this class / API. + Please think about of using .NET SynchronizationContexts or Control.Invoke(...) calls for + Application side synchronization. + If Synchronize is set to true, the notifications are synchronized onto the Main thread. + This is helpful for Windows Forms projects because this automatically synchronizes the notifications + into the main UI thread and prevents any synchronization issues like deadlocks. + In Console Applications it is necessary to set this flag to false if ADS notifications are used, + because the Console Host doesn't trigger any message pumps, effectively blocking any Windows Messages and + ADS Notifications. + + + + + Gets a value indicating whether the ADS client is connected to a ADS Server on the local + computer. + + + + + Gets the port number of the ADS server (Obsolete) + + + + + + Gets the AmsNetId of the ADS server (Obsolete) + + + + + + Gets the of the ADS server (Target side) + + + + + Obsolete, do not use + + The server address. + + + + + Obsolet do not use. + + + + + + Obsolete, do not use. + + + + + + Get the of the ADS client (Source side) + + The client address if connection is up and running, otherwise NULL. + The ClientAddress is only available if the connection is up and running. + For the different (possible) connection methods: + + + PortDescription + 1Connection is using the TCP/IP protocol. + >=0x8000 (>=32768)Ads communication via ADS Router (Default) + + + + + + Gets actual ADS Transport protocol + + The protocol. + + + Transport protocolDescription + Connection is using the TCP/IP protocol (Client port 1) + Ads communication via local ADS Router (Default, Client Port >=0x8000 (32768)) + + + + + + Gets a value indicating whether the local ADS port was opened successfully. It + does not indicate if the target port is available. Use the method ReadState to + determine if the target port is available. + + + + + Gets the current state of the local AMS Router. + + + + + Gets the current Connection state of the + + The state of the connection. + + + + + The session + + + + + Gets the session that initiated this + + The session or NULL + The Session can be null on standalone connections. + + + + DataStream size Exception + + + + + Initializes a new instance of the class. + + Name of the parameter. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Number of succesfully returned data bytes. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Number of successfully returned data bytes. + AdsErrorCode. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Number of successfully returned data bytes. + AdsErrorCode. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Number of successfully returned data bytes. + AdsErrorCode. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + The read bytes. + AdsErrorCode. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + The read bytes. + AdsErrorCode. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + AdsErrorCode. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The write buffer. + Offset of the data in dataStream. + Length of the data in dataStream. + AdsErrorCode. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Handle of the ADS variable + Stream that receives the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Handle of the ADS variable + Stream that receives the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Number of successfully returned data bytes. + AdsErrorCode + + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Handle of the ADS variable + Stream that receives the data. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The write buffer. + Offset of the data in dataStream. + Length of the data in dataStream. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Thrown when the ADS call fails. + + + + Trigger Client Method/Command. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Thrown when the ADS call fails. + This method is used to trigger Client Methods/Commands without parameters. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Thrown when the ADS call fails. + + + + Trigger Client Method/Command. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Thrown when the ADS call fails. + This method is used to trigger Client Methods/Commands without parameters. + + + + Trigger Client Method/Command. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Thrown when the ADS call fails. + This method is used to trigger Client Methods/Commands without parameters. + + + + Ensures that offset and length parameter are 0 + + The offset. + The length. + + + + + Ensures that offset and length parameters refer to valid position within stream. + + The data stream. + The offset. + The length. + dataStream + + offset + or + length + + dataStream + + + + Ensures that offset and length parameters refer to valid position within stream. + + The buffer. + The offset. + The length. + dataStream + + offset + or + length + + dataStream + dataStream + offset + or + length + + + + Writes data synchronously to an ADS device. + + Handle of the ADS variable + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Handle of the ADS variable + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + AdsErrorCode. + + + + + + Writes data synchronously to an ADS device. + + Handle of the ADS variable + Stream that receives the data. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to an object. + + + If the Type of the object to be read is a string type, the first element of + the parameter args specifies the number of characters of the string. + If the Type of the object to be read is an array type, the number of elements + for each dimension has to be specified in the parameter args. At the moment + only 1 dimensional Arrays are supported. + + Handle of the ADS variable. + Type of the object to be read. + Additional arguments. + The object the read data is written to. + + + + Reads data synchronously from an ADS device and writes it to an object. + + Handle of the ADS variable. + Type of the object to be read. + The object the read data is written to. + + + + Reads data synchronously from an ADS device and writes it to an object. + + + If the Type of the object to be read is a string type, the first element of + the parameter args specifies the number of characters of the string. + If the Type of the object to be read is an array type, the number of elements + for each dimension has to be specified in the parameter args. At the moment + only 1 dimensional Arrays are supported. + + Index group of the ADS variable. + Index offset of the ADS variable. + Type of the object to be read. + Additional arguments. + The object the read data is written to. + + + + Reads data synchronously from an ADS device and writes it to an object. + + + If the Type of the object to be read is a string type, the first element of + the parameter args specifies the number of characters of the string. + If the Type of the object to be read is an array type, the number of elements + for each dimension has to be specified in the parameter args. At the moment + only 1 dimensional Arrays are supported. + + Index group of the ADS variable. + Index offset of the ADS variable. + Type of the object to be read. + Additional arguments. + The object the read data is written to. + + + + Reads data synchronously from an ADS device and writes it to an object. + + Index group of the ADS variable. + Index offset of the ADS variable. + Type of the object to be read. + The object the read data is written to. + + + + Reads data synchronously from an ADS device and writes it to an object. + + Index group of the ADS variable. + Index offset of the ADS variable. + Type of the object to be read. + The object the read data is written to. + + + + + + + Reads the string + + The index group. + The index offset. + The length of the string. + The encoding ( or ). + System.String. + + The following code shows how to Read/Write string values with the ANY concept. + + + + + + Reads the string. + + The variable handle. + The length of the string (e.g. 80 for STRING[80] or WSTRING[80] + The encoding ( or ). + System.String. + + The following code shows how to Read/Write string values with the ANY concept. + + + + + + Writes an object synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Object to write to the ADS device. + + + + Writes an object synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Object to write to the ADS device. + + + + + + + Writes an object synchronously to an ADS device. + + Handle of the ADS variable. + Object to write to the ADS device. + + + + Writes an object synchronously to an ADS device. + + + If the Type of the object to be written is a string type, the first element of parameter args + specifies the number of characters of the string. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Object to write to the ADS device. + Additional arguments. + + + + Writes an object synchronously to an ADS device. + + + If the Type of the object to be written is a string type, the first element of parameter args + specifies the number of characters of the string. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Object to write to the ADS device. + Additional arguments. + + + + Writes an object synchronously to an ADS device. + + + If the Type of the object to be written is a string type, the first element of parameter args + specifies the number of characters of the string. + + Handle of the ADS variable. + Object to write to the ADS device. + Additional arguments. + + + + Writes the string (Potentially unsafe!) + + The index group. + The index offset. + The value. + The length. + The encoding. + + ATTENTION: Potentially this method is unsafe because following data can be overwritten + after the string symbol. Please be sure to specify the string length lower than the string size + reserved within the process image! + + The following code shows how to Read/Write string values with the ANY concept. + + + + + + Writes the string (Potentially unsafe!) + + The variable handle. + The value. + The length of the string to write + The encoding. + + ATTENTION: Potentially this method is unsafe because following data can be overwritten + after the string symbol. Please be sure to specify the string length lower than the string size + reserved within the process image! + + + The following code shows how to Read/Write string values with the ANY concept. + + + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Lenght of the data in wrDataStream. + Number of succesfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Variable handle. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Variable handle. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + The read bytes. + AdsErrorCode. + + + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Variable handle. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + The read bytes. + AdsErrorCode. + + + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The read buffer. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + The write buffer. + Offset of the data in wrDataStream. + Length of the data in wrDataStream. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Stream that contains the data that should be written. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Stream that contains the data that should be written. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Stream that contains the data that should be written. + Number of successfully returned data bytes. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object stored in the event argument. + The handle of the notification. + Thrown when the ADS call fails. + + The following sample shows how to use events. + + + + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object stored in the event argument. + The handle of the notification. + Thrown when the ADS call fails. + + The following sample shows how to use events. + + + + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object stored in the event argument. + The handle of the notification. + Thrown when the ADS call fails. + + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object stored in the event argument. + The handle of the notification. + Thrown when the ADS call fails. + + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + If type is a string type, the first element of the parameter args specifies the number of characters of the string. + If type is an array type, the number of elements for each dimension has to be specified in the parameter args. + At the moment only 1 dimensional Arrays are supported. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object s0000tored in the event argument. + Additional arguments. + The handle of the notification. + Thrown when the ADS call fails. + + The following sample shows how to use events. + + + + + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + If type is a string type, the first element of the parameter args specifies the number of characters of the string. + If type is an array type, the number of elements for each dimension has to be specified in the parameter args. + At the moment only 1 dimensional Arrays are supported. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object s0000tored in the event argument. + Additional arguments. + The handle of the notification. + Thrown when the ADS call fails. + + + + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + If type is a string type, the first element of the parameter args specifies the number of characters of the string. + If type is an array type, the number of elements for each dimension has to be specified in the parameter args. + At the moment only 1 dimensional Arrays are supported. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object s0000tored in the event argument. + Additional arguments. + The handle of the notification. + Thrown when the ADS call fails. + + + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + If type is a string type, the first element of the parameter args specifies the number of characters of the string. + If type is an array type, the number of elements for each dimension has to be specified in the parameter args. + At the moment only 1 dimensional Arrays are supported. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object s0000tored in the event argument. + Additional arguments. + The handle of the notification. + Thrown when the ADS call fails. + + + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object stored in the event argument. + The handle of the notification. + Thrown when the ADS call fails. + + The following sample shows how to use events. + + + + + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object stored in the event argument. + The handle of the notification. + Thrown when the ADS call fails. + + The following sample shows how to use events. + + + + + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object stored in the event argument. + Additional arguments. + The handle of the notification. + Thrown when the ADS call fails. + + The following sample shows how to use events. + + + + + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + The settings. + This object can be used to store user specific data. + Type of the object stored in the event argument. + Additional arguments. + The handle. + The handle of the notification. + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object stored in the event argument. + Additional arguments. + The handle of the notification. + Thrown when the ADS call fails. + + The following sample shows how to use events. + + + + + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Byte Offset of the data in dataStream. + Length of the data in dataStream (in bytes) + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + The following sample shows how to register/unregister for AdsNotifications (asynchronous change messages) via and + + + + + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + The following sample shows how to register/unregister for AdsNotifications (asynchronous change messages) via and + + + + + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the created ADS notification. + Thrown when the ADS call fails. + + The following sample shows how to register/unregister for AdsNotifications (asynchronous change messages) via and + + + + + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + The following sample shows how to register/unregister for AdsNotifications (asynchronous change messages) via and + + + + + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + The stream that should receive the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + + Thrown when the ADS call fails. + + + + + + + + + Parameter semantic + + + + + + Value of parameter is interpreted as task context number + + + + + + Value of parameter is interpreted as task context number + + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + The stream that should receive the data. + Offset of the data in dataStream. + Length of the data in dataStream. + The notification settings. + This object can be used to store user specific data. + The handle. + The handle of the notification. + + + + + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + The stream that should receive the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + + The handle of the notification. + + Thrown when the ADS call fails. + + + Parameter semantic + + Value of parameter is interpreted as task context number + + + Value of parameter is interpreted as task context number + + + + + + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + The stream that should receive the data. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + The stream that should receive the data. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + + + + Deletes an existing notification. + + Handle of the notification. + Thrown when the ADS call fails. + + The following sample shows how to register/unregister for AdsNotifications (asynchronous change messages) via and + + + + + + Deletes an existing notification. + + Handle of the notification. + AdsErrorCode. + + + + + Reads the identification and version number of an ADS server. + + DeviceInfo struct containing the name of the device and the version information. + Thrown when the ADS call fails. + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + Stream that contains the data that should be sent to the ADS device + Offset of the data in the stream. + Length of the data in the stream. + Thrown when the ADS call fails. + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + Stream that contains the data that should be sent to the ADS device + Offset of the data in the stream. + Length of the data in the stream. + AdsErrorCode. + + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + AdsErrorCode. + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + Thrown when the ADS call fails. + + + + Reads the ADS status and the device status from an ADS server. + + The ADS statue and device status. + Thrown when the ADS call fails. + + + + Reads the ADS status and the device status from an ADS server. Unlike the ReadState method this method does not call an exception on failure. Instead an AdsErrorCode is returned. + If the return value is equal to AdsErrorCode.NoError the call was successfull. + + The ADS statue and device status. + AdsErrorCode of the ads read state call. Check for AdsErrorCode.NoError to see if call was successfull. + + + + Generates a unique handle for an ADS variable. + + Name of the ADS variable + The handle of the ADS Variable. + Thrown when the ADS call fails. + + + + Releases the handle of a ADS variable again. + + Handle of the ADS variable + Thrown when the ADS call fails. + + + + Call this method to obtain information about the individual symbols (variables) in ADS devices. + + Name of the symbol. + A ITcAdsSymbol containing the requested symbol information or null if symbol could not + be found. + Thrown when the ADS call fails. + + + + Call this method to obtain information about the specified data type. + + Name of the data type (without namespace) + An containing the requested type. + + + + + Call this method to obtain information about the specified data type. + + Name of the symbol. + The symbol. + A containing the requested symbol information or null if symbol could not + be found. + typeName + + + + + + Gets the symbol table. + + SymbolInfoTable. + + + + Creates a new instance of the TcAdsSymbolInfoLoader class (Symbol Browser V1, obsolete). + + This is the traditional way of accessing symbol information from the target device that is still supported here + for backward compatibility. + For new implementations please consider to use the new symbol browsing capabilities accessed by the + class ( method). + + Instance of the TcAdsSymbolInfoLoader class. + + + + + The following sample shows how to call (Remote Procedures / Methods) within the PLC directly from the class. + + + + + + Creates the symbol loader with default settings. + + ISymbolLoader interface of the created symbol loader. + + + + + This method is obsolete. + + The mode. + ISymbolLoader interface of the created symbol loader. + + + + Creates a new instance of the Symbol loader with the specified mode (SymbolBrowser V2, new version) + + The settings. + The interface of the Symbol loader. + + The following sample shows how to create a dynamic version of the SymbolLoader V2. The dynamic symbol loader makes use of the Dynamic Language Runtime (DLR) of the .NET Framework. + That means Structures, Arrays and Enumeration types and instances are generated 'on-the-fly' during symbol Browsing. These created dynamic objects are a one to one representation + of the Symbol Server target objects (e.g the IEC61131 types on the PLC). + Dynamic language features are only available from .NET4 upwards. + + The following sample shows how to create a static (non dynamic) version of the SymbolLoader V2. + The static symbol loader in version 2 is a nearly code compatible version of the Dynamic Loader, only the dynamic creation of objects is not available. The reason for supporting + this mode is that .NET Framework Versions lower than Version 4.0 (CLR2) doesn't support the Dynamic Language Runtime (DLR). + The SymbolLoader V2 static object is supported from .NET 2.0 on. + + + The SymbolLoader V2 static object is supported from .NET 2.0 on. + + + + + + + The Symbol Loader (V2) supports the following modes. + The flat mode organizes the Symbols in a flat list. This mode is available in all .NET versions. + The virtual tree mode organizes the Symbols hierarchically with parent-child relationships. This mode is available in all .NET Versions. + The Dynamic tree mode organizes the Symbols hierarchically and (dynamically) creates struct members, + array elements and enum fields on the fly. This feature is only available on platforms that support the Dynamic + Language Runtime (DLR), actually all .NET Framework Version larger than 4.0. + + Virtual instances means, that all Symbols are ordered within a tree structure. For that symbol nodes that are not located on a fixed address, a Virtual Symbol will be created. + Setting the virtualInstance parameter to 'false' means, that the located symbols will be returned in a flattened list. + + + + Creates a new instance of the Symbol loader with the specified mode (SymbolBrowser V2, new version) + + The session (for session orientated loads / symbols). Can be NULL if not present. + The settings. + The interface of the Symbol loader. + + The following sample shows how to create a dynamic version of the SymbolLoader V2. The dynamic symbol loader makes use of the Dynamic Language Runtime (DLR) of the .NET Framework. + That means Structures, Arrays and Enumeration types and instances are generated 'on-the-fly' during symbol Browsing. These created dynamic objects are a one to one representation + of the Symbol Server target objects (e.g the IEC61131 types on the PLC). + Dynamic language features are only available from .NET4 upwards. + + The following sample shows how to create a static (non dynamic) version of the SymbolLoader V2. + The static symbol loader in version 2 is a nearly code compatible version of the Dynamic Loader, only the dynamic creation of objects is not available. The reason for supporting + this mode is that .NET Framework Versions lower than Version 4.0 (CLR2) doesn't support the Dynamic Language Runtime (DLR). + The SymbolLoader V2 static object is supported from .NET 2.0 on. + + + The SymbolLoader V2 static object is supported from .NET 2.0 on. + + + + + + + The Symbol Loader (V2) supports the following modes. + The flat mode organizes the Symbols in a flat list. This mode is available in all .NET versions. + The virtual tree mode organizes the Symbols hierarchically with parent-child relationships. This mode is available in all .NET Versions. + The Dynamic tree mode organizes the Symbols hierarchically and (dynamically) creates struct members, + array elements and enum fields on the fly. This feature is only available on platforms that support the Dynamic + Language Runtime (DLR), actually all .NET Framework Version larger than 4.0. + + Virtual instances means, that all Symbols are ordered within a tree structure. For that symbol nodes that are not located on a fixed address, a Virtual Symbol will be created. + Setting the virtualInstance parameter to 'false' means, that the located symbols will be returned in a flattened list. + + + + Reads the symbol value by handle + + The Symbol path. + Managed type + Reload type/symbol information and the handle cache. + The value. + + This method reads the value of the symbol by handle. The handle is internally cached. + Therefore this method is more efficient than , if the symbol (symbolPath) is accessed more frequently by the price of 2 extra communication + rountrips (one on first symbol access creating the handle and the second on deleting the handle on dispose"/>. + The following communication sequence will be processed: + + Reading the SymbolInfo if not cached yet + Reading the DataTypeInfo if not cached yet + Registering the Symbol handle if not cached yet or not valid anymore + Reading the value by Handle + Unregistering the handle when connection is closed / cache will be reset. + + + + + + Reads the symbol value by symbol path. + + The Symbol path. + Managed type + Reload type/symbol information. + The value. + + This method reads the value of the symbol directly not using the handle indirection. Therefore it is more efficient than + if the symbol/symbol path is only accessed once. Furthermore no handling for invalid handles is necessary (Project reload, restarted targets). + The following communication sequence will be processed: + + Reading the SymbolInfo if not cached yet + Reading the DataTypeInfo if not cached yet + Reading the value by Path + + + + + + + + Writes the symbol (by handle) + + The symbol path. + The value. + Reload type/symbol information and the handle cache. + This method writes the value of the symbol by handle. + The value must be 'marshalable' to the symbol types memory layout. + The handle is internally cached. + The following communication sequence will be processed: + + Reading the SymbolInfo if not cached yet + Reading the DataTypeInfo if not cached yet + Registering the Symbol handle if not cached yet or not valid anymore + Writing the value by Handle + Unregistering the handle when connection is closed / cache will be reset. + + + + + + + + Enum SumAccessMode + + + + + + Access by IndexGroup / IndexOffset + + + + + Accesses a value by handle + + + + + Access a value by name + + + + + Acquire handle by name + + + + + Release handle + + + + + None / Uninitialized + + + + + All Access methods are allowed + + + + + Only Symbolic access is allowed (No Processimage IndexGroup/IndexOffset) + + + + + Uses the symbol path access. + + The symbol. + true if XXXX, false otherwise. + + + + Reads the value of a symbol and returns it as an object. Strings and all primitive datatypes(UInt32, Int32, Bool etc.) are supported. + Arrays and structures cannot be read. + + The symbol that should be read. + The value of the symbol as an object. + Thrown when a ADS datatype is not supported. + Thrown when the Sync port is not open. + + + + Writes a value to the symbol. Strings and all primitive data types(UInt32, Int32, Bool etc.) are supported. Array and structures are not supported. + If a string is passed as parameter, the method attempts to parse the string according to the ADS data type of the symbol. + + The symbol the value is written to. + The value to write. + Thrown when a ADS data type is not supported. + Thrown when the ADS call fails. + + + + Invokes the specified RPC Method. + + The symbol path. + Name of the method. + The RPC In-Parameters, or NULL. + The return value of the Method (as object) or NULL if void. + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + This method only supports primitive data types as . Any available outparameters will be ignored. + + + + Invokes the specified RPC Method. + + The symbol path. + Name of the method. + The RPC In-Parameters, or NULL. + The RPC Out-parameters, or NULL + The return value of the Method (as object) or NULL if void. + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + This method only supports primitive data types as /. + + + + Invokes the specified RPC Method. + + The symbol with RPC Methods. + Name of the method. + The RPC In-Parameters, or NULL. + The return value of the Method (as object) or NULL if void. + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + This method only supports primitive data types as . Any available outparameters will be ignored. + + + + Invokes the specified RPC Method. + + The symbol with RPC Methods. + Name of the method. + The RPC In-Parameters, or NULL. + The RPC Out-parameters, or NULL + The return value of the Method (as object) or NULL if void. + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + This method only supports primitive data types as /. + + + + Invokes the specified RPC Method. + + The symbol with RPC Methods. + Name of the method. + The RPC In-Parameters, or NULL. + The out specifiers (specifying the out types) or NULL. + The ret specifier (specifying the return value) or NULL. + The out parameters. + The return value of the Method (as object) or NULL if void. + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + The RpcMethod optionally support In-Parameters, Out-Parameters and Return values. Therefore the parameters , , , + are allowed to be empty or NULL. + In case of using primitive datatypes, the type specifier parameters ( and ) are not necessary and should not be set. + + + + Invokes the specified RPC Method + + The symbol path. + The method name. + The RPC In-Parameters, or NULL. + The out specifiers (specifying the out types) or NULL. + The ret specifier (specifying the return value) or NULL. + The RPC Out-parameters, or NULL + The return value of the Method (as object). + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + The RpcMethod optionally support In-Parameters, Out-Parameters and Return values. Therefore the parameters , , , + are allowed to be empty or NULL. + In case of using primitive datatypes, the type specifier parameters ( and ) are not necessary and should not be set. + + + + Invokes the specified RPC Method + + The symbol path. + The method name. + The RPC In-parameters, or NULL + The RPC Out-parameters, or NULL + The return value of the RPC method as object. + The ADS Error Code. + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + This method only supports primitive data types as /. + + + + Invokes the specified RPC Method + + The symbol path. + The method name. + The RPC In-Parameters, or NULL. + The return value of the RPC method as object. + The ADS Error Code. + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + This method only supports primitive data types as . + + + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + + + + + + Tries the invoke RPC method. + + The symbol path. + Name of the method. + The in parameters. + The out specifiers. + The ret specifier. + The out parameters. + The return value. + AdsErrorCode. + + symbolPath + methodName + parameters + + + + Tries the invoke RPC method. + + The symbol. + Name of the method. + The in parameters. + The out specifiers. + The ret specifier. + The out parameters. + The return value. + AdsErrorCode. + + symbol + parameters + methodName + + + + + + + The following sample shows how to call (Remote Procedures / Methods) within the PLC. + + + + + + + Tries the invoke RPC method. + + The symbol. + The RPC method. + The in parameters. + The out specifiers. + The ret specifier. + The out parameters. + The return value. + AdsErrorCode. + + + + + + Error injection only for Unit-Test purposes to simulate error conditions + + The error. + + + + Injection of an SymbolVersionChanged event (just for Testing purposes) + + + + + ADS data types. + + + + + Empty Type + + + + + Integer 8 Bit + + + + + Unsigned integer 8 Bit + + + + + Integer 16 Bit + + + + + Unsigned integer 16 Bit + + + + + Integer 32 Bit + + + + + Unsigned Integer 32 Bit + + + + + LONG Integer 64 Bit + + + + + Unsigned Long integer 64 Bit + + + + + Real (32 Bit) + + + + + Real 64 Bit + + + + + Blob + + + + + STRING + + + + + WSTRING + + + + + ADS REAL80 + + + + + ADS BIT + + + + + Internal Only + + + + + Array definition for a single dimension. + + + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class. + + The parent end position. + The encoding. + The reader. + + + + Initializes a new instance of the class. + + The lower bound. + The elements. + + + + Reads Binary (Ads-aligned) data from ADS stream. + + End position of parent structure (Error indication). + The encoding. + The reader. + + + + + Gets the lower bound. + + + + + Gets the number of elements. + + + + + Class AdsArrayDimensionsInfo. + + + + + The dimension information. + + + + + Initializes a new instance of the class. + + The dims. + dims + + + + Get the number of Elements over all Dimensions + + The elements. + + + + Gets the number of elements over all dimensions + + The array information. + System.Int32. + + + + Gets the lower bounds. + + The lower bounds. + + + + Gets the upper bounds. + + The upper bounds. + + + + Gets the dimension elements. + + The dimension elements. + + + + The class TcAdsSymbolInfo represents a symbol loaded by an instance of the TcAdsSymbolInfoLoader class. + + + + + + + The id_counter + + + + + The index group + + + + + The index offset + + + + + The size + + + + + The data type identifier + + + + + The TypeEntry Flags + + + + + The flags + + + + + The name + + + + + The short name + + + + + The type name + + + + + The comment + + + + + The data type + + + + + Gets the DataType object + + The dataType if available, or NULL. + Tries to resolve the DataType if not cached. + + + + + The symbol parser + + + + + The parent + + + + + The sub index + + + + + The sub symbols + + + + + The array infos + + + + + The attributes + + + + + The _id + + + + + Initializes a new (uninitialized) instance of the class. + + The symbol parser. + The parent. + Index of the sub. + The members of the created instance must be initialized afterwards. + + + + Initializes a new instance of the class (Created from AdsSymbolEntry and TcAdsDataType, browsing) + + The symbol parser. + The parent. + The index. + The symbol entry. + The type entry (can be NULL for internal Types) + symbolParser + or + symbolEntry + + + + Initializes a new instance of the class (Dynamic creation from Type) + + The symbol parser. + The parent. + Index of the sub. + The type entry. + typeEntry + This is used for dynamic reference creation + + + + Gets the parent of this symbol. + + Parent of this symbol + + + + Gets the next sibling of this symbol [Obsolete] + + Next sibling of this symbol. + Use the collection instead. + + + + + Gets the next sub symbol of this symbol [obsolete] + + Next sub symbol. + Use instead. + + + + + Gets the sub symbols of this symbol as a collection of TcAdsSymbolInfo objects. + + The SubSymbol collection. + + + + Gets the number of sub symbols [Obsolete] + + The sub symbol count. + Use Count member instead. + + + + + Gets the index group of the symbol. + + Index group of the symbol. + + + + Gets the index offset of the symbol. + + Index offset of the symbol. + + + + Gets the size of the symbol. + + Size of the symbol. + + + + Obsolete, do not use + + Data type id of the symbol. + + + + + Data type of the symbol. + + Data type of the symbol. + + + + Gets the name of the symbol. + + Name of the symbol. + + + + Gets the name of the symbol (short form without prefixed names of the parents). + + Full name of the symbol. + + + + Obsolete, use ITcAdsSymbol5.TypeName instead. + + Name of the symbol data type. + + + + + Gets the name of the symbol data type. + + Name of the symbol data type. + + + + Gets the comment behind the variable declaration. + + Comment behind the variable declaration. + + + + Gets a value indicating whether this is a pointer. + + true if this instance is pointer; otherwise, false. + + Gets a value indicating whether this represents an array. + + true if this instance is an array; otherwise, false. + + + + + Indicates if the ReferenceTo flag is set for the symbol. + + true if is ReferenceTo, otherwise false. + + Gets a value indicating whether this represents an array. + + true if this instance is an array; otherwise, false. + + + + + Gets or sets a value indicating whether an ancestor is a dereferenced Reference + + true if this instance is ancestor is reference; otherwise, false. + + + + Gets or sets a value indicating whether an ancestor is a dereferenced Pointer + + true if this instance is ancestor is pointer; otherwise, false. + + + + Gets the Base data type of the pointer (the referenced type) + + Type of the reference. + true if XXXX, false otherwise. + + + + Resolves the ALias chain of the DataType + + ITcAdsDataType if DataType is available, otherwise NULL + + + + Gets the referenced data type of the reference. + + Type of the referenced. + true if XXXX, false otherwise. + + + + Indicates if the Persistent flag is set for the symbol. + + true if persistent, otherwise false. + + + + Indicates if the BitValue flag is set for the symbol. + + true if is BitValue, otherwise false. + + + + Indicates, that this symbol is a static symbol. + + Static indicator. + + + + Sets the BitType. + + if set to true [bit type]. + + + + Indicates if the TypeGuid flag is set for the symbol. + + true if is TypeGuid, otherwise false. + + + + Indicates if the ReadOnly flag is set for the symbol. + + true if ReadOnly, otherwise false. + + + + Indicates if the TcComInterfacePointer flag is set for the symbol. + + treu if is TcComInterfacePointer, otherwise false. + + + + Gets the ContextMask of the symbol, indicating the task the variable belongs to. + If ContextMask is not zero use or to add notifications. + + The context mask. + + + + Gets a value indicating whether this represents an array. + + true if this instance is an array; otherwise, false. + + + + + Gets the array dimensions. + + The array dimensions. + + + + Gets the collection of Array Infos. + + The array infos. + + + + Gets a value indicating whether this instance is oversampling array. + + true if this instance is oversampling array; otherwise, false. + + + + Gets the attributes of the + + The attributes or NULL if no Attributes are defined. + int AttributeCount { get; } + + + + Gets a value indicating whether this instance is an Enum data type + + true if this instance is enum; otherwise, false. + + + + + Gets a value indicating whether this instance has RPC methods (Struct types only) + + true if this instance has RPC methods; otherwise, false. + The DataType (Structure) must be marked with the PlcAttribute 'TcRpcEnable' to enable RpcMethods, otherwise + RpcMethods are not passed through to the ADS symbolic information. + + + + Gets the RPC method descriptions + + The RPC methods. + The DataType (Structure) must be marked with the PlcAttribute 'TcRpcEnable' to enable RpcMethods, otherwise + RpcMethods are not passed through to the ADS symbolic information. + + + + Returns a that represents this instance. + + A that represents this instance. + + + + Gets the Data Type Category + + The category. + + + + + Gets a value indicating whether this instance is an Stuct data type + + true if this instance is struct; otherwise, false. + + + + + Gets the size of this in bits. + + The size of the bit. + + + + Gets the (aligned) size of of the Type/Instance in Bytes + + The size of the byte. + + + + Equals + + The object to compare with the current object. + true if the specified is equal to this instance; otherwise, false. + + + + Implements the == operator. + + Symbol 1. + Symbol 2. + The result of the operator. + + + + Implements the != operator. + + The symbol 1. + The symbol 2. + The result of the operator. + + + + Gets the HashCode of the Address + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + Gets a value indicating whether this instance is recursive. + + The parents. + true if the specified parents is recursive; otherwise, false. + true if this instance is recursive; otherwise, false. + + + + Enum ADSIGRP_SYM + + + + + The hndbyname + + + readLength == 4: handle + readLength > 4: handle(4) + var size(4) + type decoration(4) + + type name length(2) + type name(n) + '\0'(1) + + + + + VALBYNAME + + + + + VALBYHND + + + + + RELEASEHND + + + + + INFOBYNAME + + + + + VERSION + + + + + INFOBYNAMEEX + + + + + DOWNLOAD + + + + + UPLOAD + + + + + UPLOADINFO + + + + + DOWNLOAD2 + + + + + DT_UPLOAD + + + + + UPLOADINFO2 + + + + + notification of named handle (0xF010, 61456) + + + + + DT_INFOBYNAMEEX (0xF011,61457) + + + + + ADDRBYHND (0xF012,61458) + + + + + POINTER_SUPPORT (0xF013,61459) + + + + + dummy IGRP for dereferenced pointer: read or write access via this IGRP is not possible (0xF014, 61460) + + + + + REFERENCE_SUPPORT (0xF015, 61461) + + + + + dummy IGRP for dereferenced a reference: read or write access via this IGRP is not possible (0xF016, 61462) + + + + + VALBYHND_WITHMASK (0xF018, 61464) + + + + + NOACCESS_TO_SUBSYM (0xF019, 61465) + + + + + dummy IGRP for dereferenced pointer to bit access ( ADSIGRP_SYM_POINTER_BITACCESS, 0xf014, 61466) + + Read or write access via this IGRP is not possible. + + + + + dummy IGRP for dereferenced a reference to bit access: (ADSIGRP_SYM_REFERENCE_BITACCESS, 0xF01B, 61467) + + + Read or write access via this IGRP is not possible + + + + + The class TcAdsSymbolInfoLoader is responsible for downloading the list of declared variables and the data types from an ADS Server. + + + + + The _ads client + + + + + The _is enumerating + + + + + The _symbol parser + + + + + The _symbols + + + + + The _data types + + + + + Initializes a new instance of the class. + + The ads client. + The symbol information. + + adsClient + or + symbolInfo + + + + + The symbol upload information + + + + + Loads the declared symbols from the ADS device and returns them as a collection of TcAdsSymbolInfo objects. + + True, if a (new) loading of the symbol information from the server is required. + A collection of TcAdsSymbolInfo objects + If no symbols have been loaded before, the symbols are loaded from the server, regardless of the parameter forceReload. +

Note about the PLC: Please attend to the PLC Control that the 'Symbol-Download' under Project / Options / TwinCAT is activated. For further information please see the manual TwinCAT PLC Control.

Note about NC: The Symbol download has to be activated at each axis. This can de done in the configuration dialog of the axis under ‚General'. The field ‚Create Symbols' has to be marked. See manual of the TwinCAT System Manager.

+
+ + + Gets the data types. + + if set to true [force reload]. + ReadOnlyTcAdsDataTypeCollection. + + + + Returns an enumerator that can iterate through all symbols. + + An IEnumerator that can be used to iterate through all symbols. + + + + Call this method to find a symbol in the list. + + Name of the symbol + TcAdsSymbolInfo. + If no symbols have been loaded before, the symbols are loaded from the server, regardless of the parameter forceReload. +

Note about the PLC: Please attend to the PLC Control that the 'Symbol-Download' under Project / Options / TwinCAT is activated. For further information please see the manual TwinCAT PLC Control.

Note about NC: The Symbol download has to be activated at each axis. This can de done in the configuration dialog of the axis under ‚General'. The field ‚Create Symbols' has to be marked. See manual of the TwinCAT System Manager.

+
+ + + Call this method to get the number of declared symbols. + + True, if a (new) loading of the symbol information from the server is required. + Returns the number of symbols. + If no symbols have been loaded before, the symbols are loaded from the server, regardless of the parameter forceReload. + Note about the PLC: Please attend to the PLC Control that the 'Symbol-Download' under Project / Options / TwinCAT is activated. For further information please see the manual TwinCAT PLC Control. + Note about NC: The Symbol download has to be activated at each axis. This can de done in the configuration dialog of the axis under ‚General'. The field ‚Create Symbols' has to be marked. See manual of the TwinCAT System Manager. + + + + Initial block size used for Data type and Symbol Upload (enlarging dynamically during upload on large data blobs) + + + + + Call this method to get the first symbol. + + True, if a (new) loading of the symbol information from the server is required. + Returns the first symbol or null if no symbols are available. + If no symbols have been loaded before, the symbols are loaded from the server, regardless of the parameter forceReload. + Note about the PLC: Please attend to the PLC Control that the 'Symbol-Download' under Project / Options / TwinCAT is activated. For further information please see the manual TwinCAT PLC Control. + Note about NC: The Symbol download has to be activated at each axis. This can de done in the configuration dialog of the axis under ‚General'. The field ‚Create Symbols' has to be marked. See manual of the TwinCAT System Manager. + + + + Initializes the upload symbols. + + if set to true [force reload]. + true if XXXX, false otherwise. + + + + Uploads All Symbols and DataTypes from target device + + + + + Occurs when new types are generated + + + + + Occurs when a typename cannot be resolved. + + + + + Handles the TypesGenerated event of the _symbolParser control. + + The source of the event. + The instance containing the event data. + + + + Handles the ResolveError event of the _symbolParser control. + + The source of the event. + The instance containing the event data. + + + + Reads the upload information. + + SymbolUploadInfo. + + + + Reads the data type information into the Stream (blockwise) + + The datatype stream. + The information. + Initial size of the block. + + + + Reads the symbol information into the specified stream (block wise). + + The symbol stream. + The information. + Initial size of the block. + + + + Gets the size of the platform pointer (available only after SymbolInfos are downloaded) + + The size of the platform pointer. + + + + ADS Symbol Enumerator + + + + + The current symbol + + + + + The symbol loader + + + + + The is valid + + + + + The next nav type + + + + + Initializes a new instance of the class. + + The symbol loader. + + + + Checks the valid. + + + + + + Indicates, that SubSymbols will be dereferenced (POINTER and REFERENCE types) + + + + + Advances the enumerator to the next element of the collection. + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + + + + Gets the current element in the collection. + + The current. + + + + Time base class + + + + + The internal time value + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The time value. + + + + + Initializes a new instance of the class. + + The time value. + + + + + Gets the marshal size in bytes. + + Marshal size in bytes. + + + + Gets the time value. + + + The time. + + + + + Returns the value of this as Managed base type (DateTime or Timespan) + + The value. + + + + + Returns the number of ticks that represent the value of this (uint32 or uint64). + + The ticks. + + + + Gets the type of the underlying ticks resolution (uint32 or uint64) + + The type of the ticks value. + + + + + Gets the type of the underlying human readable type (DateTime or Timespan) + + The type of the managed value. + + + + + Returns the 'Value' as object type. + + The untyped value. + + + + + Converts the Timespan to PlcOpen ticks. + + The time. + + + + + Converts the timeValue (PlcOpen ticks) to TimeSpan + + The time value. + + + + + Converts the timeValue (PlcOpen ticks) to TimeSpan + + The time value. + + + + + Determines whether the specified is equal to this instance. + + The object to compare with the current object. + true if the specified is equal to this instance; otherwise, false. + + + + Gets the HashCode of the Address + + + + + + Interface IPlcOpenType + + + + + Gets the type of the underlying human readable type (DateTime or Timespan) + + The type of the managed value. + + + + Gets the type of the underlying ticks resolution (uint32 or uint64) + + The type of the ticks value. + + + + Returns the 'Value' as object type. + + The untyped value. + + + + Interface IPlcOpenType + + The type of the t1. + The type of the t2. + + + + + Returns the value of this as Managed base type (DateTime or Timespan) + + The value. + + + + Returns the number of ticks that represent the value of this (uint32 or uint64). + + The ticks. + + + + Time base class + + + + + The internal time value + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The time value. + + + + + Gets the marshal size in bytes. + + Marshal size in bytes. + + + + Gets or the time value. + + + The time. + + + + + Returns the value of this as Managed base type (DateTime or Timespan) + + The value. + + + + + Returns the number of ticks that represent the value of this (uint32 or uint64). + + The ticks. + + + + Gets the type of the underlying ticks resolution (uint32 or uint64) + + The type of the ticks value. + + + + + Gets the type of the underlying human readable type (DateTime or Timespan) + + The type of the managed value. + + + + + Returns the 'Value' as object type. + + The untyped value. + + + + + Converts the Timespan to PlcOpen ticks. + + The time. + + + + + Converts the timeValue (PlcOpen ticks) to TimeSpan + + The time value. + + + + + Converts the timeValue (PlcOpen ticks) to TimeSpan + + The time value. + + + + + Determines whether the specified is equal to this instance. + + The object to compare with the current object. + true if the specified is equal to this instance; otherwise, false. + + + + Gets the HashCode of the Address + + + + + + PlcOpen TIME class + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The time value. + + + + Initializes a new instance of the class. + + The time value. + + + + Initializes a new instance of the class. + + The time. + + + + Initializes a new instance of the class. + + The days. + The hours. + The minutes. + The seconds. + The milliseconds. + + + + Initializes a new instance of the class. + + The seconds. + The milliseconds. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Tries to parse the object from string. + + The string. + The ret. + true if XXXX, false otherwise. + + + + Parses the specified string to a object. + + The string. + TIME. + Cannot create TIME DataType! + + + + PlcOpen TIME class + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The time value. + + + + Initializes a new instance of the class. + + The time value. + + + + Initializes a new instance of the class. + + The time. + + + + Initializes a new instance of the class. + + The days. + The hours. + The minutes. + The seconds. + The milliseconds. + The microseconds. + The nanoseconds. + + + + Initializes a new instance of the class. + + The seconds. + The milliseconds. + The microseconds. + The nanoseconds. + + + + Initializes a new instance of the class. + + The seconds. + The milliseconds. + The microseconds. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Tries to parse the string to a object. + + The string. + The ret. + true if XXXX, false otherwise. + + + + Parses the specified string to a object. + + The string. + LTIME. + Cannot create TIME DataType! + + + + TimeOfDay class + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The time. + + + + Initializes a new instance of the class. + + The time. + + + + Initializes a new instance of the class. + + The time span. + + + + Initializes a new instance of the class. + + The days. + The hours. + The minutes. + The seconds. + The milliseconds. + + + + Returns a string that represents the current object. + + + A string that represents the current object. + + + + + Tries to parse the string to a object. + + The string. + The ret. + true if XXXX, false otherwise. + + + + Parses the specified string to a object. + + The string. + TOD. + Cannot parse TOD object! + + + + PlcOpen Date base class. + + + + + The internal date value + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The date value in PlcOpen Ticks. + + + + + Initializes a new instance of the class. + + The date value in PlcOpen Ticks. + + + + + Initializes a new instance of the class. + + The date. + + + + Gets the marshal size in bytes. + + Marshal size in bytes. + + + + Gets or sthe date value. + + + The date. + + + + + Returns the value of this as Managed base type (DateTime or Timespan) + + The value. + + + + + Returns the number of ticks that represent the value of this (uint32 or uint64). + + The ticks. + + + + Gets the type of the underlying ticks resolution (uint32 or uint64) + + The type of the ticks value. + + + + + Gets the type of the underlying human readable type (DateTime or Timespan) + + The type of the managed value. + + + + + Returns the 'Value' as object type. + + The untyped value. + + + + + Converts the specified DateTime value to PlcOpen Ticks. + + The date. + + + + + Converts the specified PlcOpen dateValue in ticks to a DateTime Object + + The date value. + + + + + Converts the specified PlcOpen dateValue in ticks to a DateTime Object + + The date value. + + + + + Parses the specified PlcOpen Date string to PlcOpen ticks. + + The s. + + + + + Determines whether the specified is equal to this instance. + + The object to compare with the current object. + true if the specified is equal to this instance; otherwise, false. + + + + Gets the HashCode of the Address + + + + + + Converter class for PlcOPen DATE data type + + + + + + Creates the object + + The value. + DATE. + + + + Creates the object + + The ticks. + DATE. + + + + Creates the object + + The ticks. + DATE. + + + + Tries to convert the source object to a object. + + The source. + The time of day. + true if XXXX, false otherwise. + + + + Tries to convert the object to the specified target type. + + The date. + Type of the target. + The target value. + true if XXXX, false otherwise. + + + + Converts the DateTime object to the appropriate PlcOpen Date string representation. + + The date. + + A that represents this instance. + + + + + Tries to parse the type. + + The string. + The date. + true if XXXX, false otherwise. + + + + Gets the bytes representation of the type. + + The dt. + System.Byte[]. + + + + PlcOpen DATE class + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The date value in PlcOpen Ticks. + + + + Initializes a new instance of the class. + + The date value in PlcOpen Ticks. + + + + Initializes a new instance of the class. + + The date. + + + + Initializes a new instance of the class. + + The year. + The month. + The day. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Parses the specified PlcOpen Date string to PlcOpen ticks. + + The s. + + + + + Tries to parse the specified string to a object. + + The s. + The date. + true if XXXX, false otherwise. + + + + Parses the specified string to a object. + + The s. + DATE. + Cannot parse DATE object! + + + + PlcOpen DateTime Converter class. + + + + + + Creates the object. + + The value. + DT. + + + + Creates the object. + + The ticks. + DT. + + + + Creates the object. + + The ticks. + DT. + + + + Tries to convert the source object to a object. + + The source. + The time of day. + true if XXXX, false otherwise. + + + + Tries to convert the object to the specified targetType. + + The date. + Type of the target. + The target value. + true if XXXX, false otherwise. + + + + Converts the ticks to a DateTime string. + + The ticks. + System.String. + + + + Objects to ticks. + + The value. + System.UInt32. + + + + + Converts the DateTime value to the appropriate PlcOpen string. + + The date. + + + + + Strings to ticks. + + The s. + The ticks. + System.UInt32. + + + + + Tries to parse the type. + + The s. + The dt. + true if XXXX, false otherwise. + + + + Gets the bytes representation of the dataType. + + The dt. + System.Byte[]. + + + + DateTime Object class + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The date value in PlcOpen Ticks. + + + + Initializes a new instance of the class. + + The date value in PlcOpen Ticks. + + + + Initializes a new instance of the class. + + The date. + + + + Initializes a new instance of the class. + + The year. + The month. + The day. + The hour. + The minute. + The second. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Parses the specified PlcOpen Date string to PlcOpen ticks. + + The s. + + + + + Tries to parse the specified string to a object. + + The s. + The dt. + true if XXXX, false otherwise. + + + + Parses the specified string to the object. + + The s. + DT. + Cannot parse DT object! + + + + Converter class for the PLCOpen TOD (TimeOfDay) Data type. + + + + + + Creates a object. + + The value. + TOD. + + + + Creates a object. + + The ticks. + TOD. + + + + Creates a object. + + The ticks. + TOD. + + + + Tries to convert the source to a object. + + The source. + The time of day. + true if XXXX, false otherwise. + + + + Tries to convert the to the specified target type. + + The date. + Type of the target. + The target value. + true if XXXX, false otherwise. + + + + Converts ticks to timespan + + The ticks. + + + + + Converts the ticks to string + + The ticks. + + A that represents this instance. + + + + + Converts the Timespan to string within the specific PlcOpen format. + + The time. + + A that represents this instance. + + + + + Converts the specified TimeSpan to system ticks. + + The span. + System.UInt32. + + + + Converts the specified string TimeSpan representation (PlcOpen notation) to system Ticks. + + The s. + The ticks. + System.UInt32. + + + + + Tries to parse the type. + + The s. + The tod. + true if XXXX, false otherwise. + + + + Gets the bytes representation of the dataType + + The tod. + System.Byte[]. + + + + + Converter class for the PLC Open TIME Data Type + + + + + + Creates a object. + + The value. + TIME. + + + + Creates a object. + + The ticks. + TIME. + + + + Creates a object. + + The ticks. + TIME. + + + + Creates a object. + + The time span. + LTIME. + + + + Tries to convert the source object to . + + The source. + The time. + true if XXXX, false otherwise. + + + + Tries to convert the source object to . + + The source. + The time. + true if XXXX, false otherwise. + + + + Tries to convert the object to the specified targetType. + + The time. + Type of the target. + The target value. + true if XXXX, false otherwise. + + + + Tries to convert the object to the specified targetType. + + The time. + Type of the target. + The target value. + true if XXXX, false otherwise. + + + + Converts Timespan to ticks (long) in PlcOpen format. + + The time span. + + + + + Convert to Bytes. + + The time. + System.Byte[]. + + + + Convert to Bytes. + + The time. + System.Byte[]. + + + + Converts PlcOpen ticks to TimeSpan + + Number of Milliseconds coded in an UInt32 + + + + + + Converts PlcOpen ticks to TimeSpan + + The ticks. + + + + + + Split the amount of nanoseconds to days, hours .... + + The nanoseconds. + The days. + The hours. + The minutes. + The seconds. + The milliseconds. + The microseconds. + The nanoseconds. + + + + Converts PlcOpen TIME string to .NET TimeSpan + + PlcOpen TIME string. + + + + + Tries to parse the type. + + The s. + The time. + true if XXXX, false otherwise. + + + + Tries to parse the type. + + The s. + The time. + true if XXXX, false otherwise. + + + + Converts Timespan to ticks (long) in PlcOpen format. + + The time span. + + + + + Converter class base for PLCOpen DT and DATE types. + /// + + + + Converts DateTime to PlcOpen ticks. + + The date. + + + + + Gets the Marshal Size of the dataType. + + System.Int32. + + + + Convert to byte array. + + The date time. + System.Byte[]. + + + + Converts a PlcOpen Date to .NET DateTime + + The date value. + + + + + + Interface ISessionProvider + + Interface for Supporting Session / Communication providers + + + + + + Creates the Session with address and communication settings. + + The address. + The settings. + ISession. + + + + + Gets the name of the SessionProvider + + The name. + + + + Gets the capabilities. + + The capabilities. + + + + Generic ISessionProvider interface + + Session type + Address specifier + Communication settings type + + + + + + Creates the Session with specified address and communication settings. + + The address. + The communicationSettings. + The created session. + + + + + Enum SessionProviderCapabilities + + + + + + Supports DataTypes + + + + + Supports Symbol Browsing + + + + + Supports VAlue Read + + + + + Support Value Write + + + + + Supports Value changed Notifications + + + + + Uninitilialized / None + + + + + All Capabilities active + + + + + Abstract base class for a Custom Session provider + + SessionType + Address type + Communication settings type + + + + + + The capabilities of the + + + + + Gets the capabilities. + + The capabilities. + + + + Initializes a new instance of the class. + + Session provider already instantiated! + + + + Initializes a new instance of the class. + + Session provider already instantiated! + + + + Gets the Singleton instance + + The self. + + + + + Gets the name of the SessionProvider + + The name. + + + + Creates the Session with address and communication settings. + + The address. + The settings. + ISession. + + + + + Creates the specified address. + + The address. + The settings. + The created session. + + + + + Cannot access virtual Symbol + + + + + Initializes a new instance of the class. + + The symbol. + + + + Insufficient rights for access + + + + + Initializes a new instance of the class. + + The symbol. + The requested. + + + + Value Accessor Exceptions + + + + + + Symbol that is bound to the + + + + + Initializes a new instance of the class. + + The accessor. + The inner exception. + + + + Initializes a new instance of the class. + + The message. + The accessor. + + + + Initializes a new instance of the class. + + The message. + The accessor. + The inner exception. + + + + Creation mode for Values + + + This setting is used by the ValueFactory/ to create Read values. + In default primitive mode all values will be transferred to Primitive .NET Symbols if possible. E.g + PlcOpen.TIME --> TimeSpan, IEnumValue --> .NET Primitives. They won't be wrapped into + + + + + None / Uninitialized Mask + + + + + Convert to .NET Primitives, wherever possible. + + If not set, Primitive Values will be encapsulated in full metadata. + + + + Use IEnumValue on EnumTypes instead of .NET Primitives + + + + + Wraps all Primitives also in IValue Objects + + + + + Use PlcOpen Times (TIME, LTIME, DT, TOD, DATETIME) instead of .NET Primitives DateTime and TimeSpan + + + + + Default settings for the value creation mode (Translate to Primitives) + + + + + Specifies the Notification type of ADS Notifications + + + + + None / Uninitialized + + + + + ValueChanged notifications + + + + + RawValueChanged notifications + + + + + ValueChanged + RawValueChanged notifications + + + + + Helper Interface to access Symbol Values as byte Arrays + + + + + + Try to read value + + The symbol instance. + The value. + The read time snapshot (User Time, UTC) + Error code. 0 represents succeed. + + + + Try to read Array Element Value + + The array instance. + The indices. + The value. + The read time snapshot (User Time, UTC) + Error code. 0 represents succeed. + + + + Try to Write value + + The symbol instance. + The value. + The offset. + The write time snapshot (User Time, UTC) + Error code. 0 represents succeed. + + + + Try to write element value. + + The array instance. + The indices. + The value. + The offset. + The write time snapshot (User Time, UTC). + Error code. 0 represents succeed. + + + + Gets the value factory. + + The value factory or null if Raw Values only. + + + + Helper Interface to access Symbol Values as byte Arrays + + + + + + Gets the connection. + + The connection. + + + + Value Accessor interface for Notification handling + + + + + + Adds the symbol value changed handler. + + The symbol. + Type of Notification (Value, Raw or Both) + The settings. + + + + Removes the symbol value changed handler. + + The symbol. + Type of Notification (Value, Raw or Both) + + + + Tries to get the current Notification Settings for the specified Symbol + + The symbol. + The settings. + true, if already a notification for this symbol is registered. False if not. + + + + Gets / Sets the default notification settings. + + The default notification settings. + + + + Factory interfaces for Accessor implementations. + + + + + + Creates the specified symbols value from raw byte data + + The symbol. + The raw data. + The offset / start index within the data + The UTC time. + System.Object. + + + + Creates the specified symbols value from raw byte data + + The symbol. + The raw data. + The offset / start index within the data + The parent. + System.Object. + + + + Creates a primitive value, independent of any settings. + + The symbol. + The raw data. + The offset. + A primitive value. + + + + Interface IAccessorValueFactory2 + + + + + + + Sets the value accessor + + The accessor. + + + + Gets the value accessor. + + The value accessor or NULL + + The Value accessor can be used for the possibility to Read Values on ValueAccess on the Fly. + E.g. when dereferencing ReferenceTypes on property access. + The 'on-the-fly' access is optional and doesn't have to be supported, but the DynamicValueFactory can use if available. + + + + + Remote procedure call interface for Accessors. + + + + + Invokes the specified + The instance. + The method. + The parameters. + + + + The return value. + The invoke time snapshot (User Time, UTC). + Error code. 0 represents succeed. + + + + Interface to access symbols with the 'Any' value concept + + + + + + Tries to read the value of the symbol and returns the value as instance of the specified type. + + The symbol. + The value type. + The value. + The UTC read time. + Error code. 0 represents succeed. + + + + Tries to read the value of the symbol and updates the referenced value object with that data + + The symbol. + The value object. + The UTC read time. + Error code. 0 represents succeed. + + + + Tries to write the data within the value object as the symbol value. + + The symbol. + The value object. + The UTC read time. + Error code. 0 represents succeed. + + + + Interface for Accessing Symbol Values + + + + + + Tries to read the symbols value as dynamic value. + + The symbol. + The value. + The UTC read time. + Error code. 0 represents succeed. + + + + Reads the value of the specified Symbol as dynamic value + + The symbol. + The UTC read time. + System.Object. + + + + Tries to write the Value + + The symbol. + The value. + The UTC write time. + Error code. 0 represents succeed. + + + + Writes the specified value to the symbol. + + The symbol. + The value. + The UTC write time. + + + + Accessor interface for dynamic values (Read/Write Access for Dynamic Values). + + + + + + Tries to write the value. + + The value. + The UTC write time. + Error code. 0 represents succeed. + + + + Value Accessor base class (implements RawValue and Value Access) + + + + + + + + Initializes a new instance of the class. + + The value factory. + The session (if session based) or NULL + + + + Initializes a new instance of the class. + + The value factory. + The connection. + factory + + + + The connection + + + + + Gets the connection. + + The connection. + + + + Session object + + + + + Gets the session. + + The session or NULL if not session based. + + + + The value factory + + + + + Gets the value factory. + + The value factory. + + + + Reads the symbol value. + + The symbol. + The read time snapshot. + The value object (Primitive type or DynamicValue) + symbol + + + + Try to read Array Element Value + + The array instance. + The indices. + The value. + The read time snapshot (User Time, UTC) + AdsErrorCode. + + + + Reads a value from the specified ADS address + + The address. + Raw value + The read time snapshot. + AdsErrorCode. + + + + + Try to read value + + The symbol instance. + The value. + The read time snapshot (User Time, UTC) + AdsErrorCode. + + + + Try to write element value. + + The array instance. + The indices. + The value. + The offset. + The write time snapshot (User Time, UTC). + AdsErrorCode. + + + + Tries to write the Value + + The symbol. + The value. + The UTC write time. + AdsErrorCode. + + + + Tries to write the Value + + The address. + The value. + The offset. + The write time snapshot. + AdsErrorCode. + + + + + Writes the value to the symbol + + The symbol. + The value + The write time snapshot. + + symbol + or + value + + + + + Called when [raw value changed]. + + The symbol. + The raw value. + The UTC twin cat time. + The UTC local system time. + + + + Called when the (Primitive) Value changes + + The symbol. + The value. + The tc UTC time stamp. + The UTC local time stamp. + + + + Abstract base class for Accessing Values with the RawValue, Value, Rpc and Notification concept. + + + + + + + + + Initializes a new instance of the class. + + The value factory. + The connection. + + + + Initializes a new instance of the class. + + The value factory. + The connection. + The default settings. + + + + Initializes a new instance of the class. + + The value factory. + The session. + + + + Initializes a new instance of the class. + + The value factory. + The session. + The default settings. + + + + Registers a Notification on the . + + The symbol. + Type of Notification (Value, Raw or Both) + The settings. + + symbol + or + settings + + + Only one Notification is allowed on the symbol. On case of double announcement, we set the Notification parameters + to the higher priority. + + + + Unregisters a Notification from the . + + The symbol. + Type of Notification (Value, Raw or Both) + symbol + + + + + Default notification settings. + + + + + Gets/Sets the NotificationSettings that are used for Notification Defaults. + + The default notification settings. + + + + Tries to get the current Notification Settings for the specified Symbol + + The symbol. + The settings. + + true, if already a notification for this symbol is registered. False if not. + + + + + + Invokes the specified RPC Method. + + The instance. + The method. + The parameters. + The ANYTYPE out specifiers. + The ANYTYPE return specifier. + The out parameters. + The return value. + The invoke time snapshot (User Time, UTC). + AdsErrorCode. + + + + Value Factory + + + + + + + The Value Creation mode + + + + + Gets the + + The mode. + + + + The value converter / Marshaller + + + + + Initializes a new instance of the class. + + The mode. + + + + Initializes a new instance of the class. + + + + + A Backlink to the Value Accessor. + + This enables the DynamicValueFactory to Dereference References 'On the fly' + + + + + Sets the value accessor + + The accessor. + + + + + Gets the value accessor. + + The value accessor or NULL + The Value accessor can be used for the possibility to Read Values on ValueAccess on the Fly. + E.g. when dereferencing ReferenceTypes on property access. + The 'on-the-fly' access is optional and doesn't have to be supported, but the DynamicValueFactory can use if available. + + + + + Creates a primitive value, independent of any settings. + + The symbol. + The raw data. + The offset. + A primitive value. + + + + Creates the specified symbols value from raw byte data + + The symbol. + The raw data. + The offset / start index within the data + The parent. + System.Object. + + + + Creates the specified symbols value from raw byte data + + The symbol. + The raw data. + The offset / start index within the data + The UTC time. + System.Object. + + + + Dynamic Value Accessor implementation class + + + + + + Value Access Mode + + + + + The inner value accessor + + + + + Initializes a new instance of the class. + + The inner Accessor + The factory. + The mode. + valueAccessor + + + + Reads the specified array element. + + Array instance. + Index specifying the array element. + The read time snapshot. + The typed array element. + + symbol + or + indices + + indices + + + + Reads the array element + + Array Instance. + Index specifier. + Typed Array element value. + The read time snapshot. + AdsErrorCode. + + + + Writes the value to the symbol + + The symbol. + The value (Primitive typed value or + The write time snapshot. + + symbol + or + value + + + + + Writes a dynamic symbol value. + + Dynamic value (non primitive type). + The write time snapshot. + value + value + + + + Writes a raw symbol value. + + The symbol. + Value as raw byte Array. + Value offset within value array. + The write time snapshot. + AdsErrorCode. + + + + Writes the typed value of the specified array element. + + Array Instance. + Index specifier.. + Array element value (primitive type or + The write time snapshot + + arrInstance + or + indices + or + value + + + + + Registers a Notification on the . + + The symbol. + Type of Notification (Value, Raw or Both) + The settings. + + Only one Notification is allowed on the symbol. On case of double announcement, we set the Notification parameters + to the higher priority. + + + + Unregisters a Notification from the . + + The symbol. + Type of Notification (Value, Raw or Both) + + + + Invokes the specified RPC Method. + The instance. + The method. + The parameters. + + + + The return value. + The invoke time snapshot (User Time, UTC). + Error code. 0 represents succeed. + + + + Try to read Array Element Value + + The array instance. + The indices. + The value. + The read time snapshot (User Time, UTC) + AdsErrorCode. + + + + Try to read value + + The symbol instance. + The value. + The read time snapshot (User Time, UTC) + + + + Try to write element value. + + The array instance. + The indices. + The value. + The offset. + The write time snapshot (User Time, UTC). + + + + Tries to write the Value + + The address. + The value. + The offset. + The write time snapshot. + AdsErrorCode. + + + + + Class DynamicValueFactory. + + + + + + + Initializes a new instance of the class. + + The mode. + + + + Creates the specified symbols value from raw byte data + + The symbol. + The raw data. + The offset / start index within the data + The UTC time. + System.Object. + + + + Creates the specified symbols value from raw byte data + + The symbol. + The raw data. + The offset / start index within the data + The parent. + System.Object. + + + + + Session Exception + + + + + + The session + + + + + Initializes a new instance of the class. + + The message. + The session. + + + + Initializes a new instance of the class. + + The message. + The session. + The inner exception. + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + info + + + + When overridden in a derived class, sets the with information about the exception. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + info + + + + + + + + Class SessionNotConnectedException. + + + + + + Initializes a new instance of the class. + + The session. + + + + Initializes a new instance of the class. + + The message. + The session. + + + + Class ClientNotConnectedException + + + + + Initializes a new instance of the class. + + + + + Interface IConnectionStateProvider + + + + + Gets the current Connection state of the + + The state of the connection. + The Connection state changes only if the is established / shut down + or active communication is triggered by the User of the object. + + + The following sample shows how to keep the updated by triggering ADS Communication. + + + + + + + Occurs when connection status of the has been changed. + + The Connection state changes only if the is established / shut down + or active communication is triggered by the User of the object. + + + The following sample shows how to keep the updated by triggering ADS Communication. + + + + + + + Interface for a Connection state watcher (observer) + + + + + + Gets the of the last tried access + + + + + Gets the of the last successful data communication + + + + + Gets the number of successful reads / writes + + + + + Gets the error count of accesses + + + + + Gets the number of errors since the last successful access + + + + + Gets the quality of the current cached value (the age of the data) + + + + + Interface IConnection + + + + + Gets the Connection Identifier . + + The identifier. + + + + Gets a value indicating whether the local ADS port was opened successfully. It + does not indicate if the target port is available. Use the method ReadState to + determine if the target port is available. + + + + + Closes this + + Closed Connections cannot be reconnected (when disposable objects behind) + + + + (Re)Connects the when disconnected. + + + + + Disconnects this . + + + + + Gets the timeout (in milliseconds) + + The timeout. + + + + Gets the session that initiated this + + The Session can be null on standalone connections. + The session or NULL + + + + Reason for the Connection status changed event. + + + + + None / Uninitialized + + + + + The connection to the target has been established + + + + + The Connection was closed + + + + + The connection to the target has been lost + + + + + Communication error to the target (the connection is not shutting down) + + + + + Communication was resurrected (available again) + + + + + Event arguments for the Connection status changed event. + + + + + Reason for the event + + + + + Exception, (only for + + + + + Old connection state + + + + + New connection state + + + + + Constructs the arguments. + + The reason. + The new state. + The old state. + The e. + + + + Constructs the arguments. + + The reason. + The new state. + The old state. + + + + EventArguments for the ConnectionStatusChanged events. + + + + + + The session + + + + + The connection + + + + + Initializes a new instance of the class. + + The reason. + The new state. + The old state. + The session. + The connection. + The e. + + + + Initializes a new instance of the class. + + The reason. + The new state. + The old state. + The session. + The connection. + + + + Connection state enumeration + + + + + Unknown / Uninitialized + + The connection is in Unknown / Uninitialized state. This state can only be shown if no connection was + established yet. + + + + Unknown / Uninitialized + + The connection is in Unknown / Uninitialized state. This state can only be shown if no connection was + established yet. + + + + Disconnected + + The connection was explicitly disconnected and is now in disconnected state. + + + + Connected + + The connection is established and active. + + + + Connection lost + + The connection is (temporarily) lost and can be reestablished / resurrected after a (resurrection) timeout. + + + + Interface ISessionSettings + + + + + Interface ISymbolServerProvider + + + + + + Gets the symbol server. + + The symbol server. + To initially create this information the connection must be established. + + The connection is not established! + + + + Interface ISession + + + + + Gets the Session Provider + + The provider. + + + + + Gets the communication endpoint address string representation. + + The address. + + + + Gets the Session Id + + The identifier. + + + + Gets a value indicating whether the session is connected. + + true if session is connected; otherwise, false. + + + + Gets the Connection object. + + + The object is established by the via and is valid + until the method or the Dispose method is called. Any possible resurrections after communication + losses will be done transparently under the hood of the so that the + instance and instance. + + The connection. + + + + Connects the session and returns the established object. + + + The will be valid until the is disconnected via + the method or the Dispose method is called. Any possible resurrections after communication + losses will be done transparently within the so that the instance and instance + remains. + + The object. + + + + Disconnects the + + Disposes also the . + true if Session was disconnected, false if the session was already closed. + + + + Closes this + + Closes also the . + + + + Gets the UTC time when the session was established. + + The session established at. + + + + Abstract Session base class. + + + + + + + Initializes a new instance of the class. + + The provider. + + + + + The provider + + + + + + Gets the Session Provider + + The provider or NULL if instantiated directly + + + + + Session ID counter (static) + + + + + Session Identifier + + + + + Gets the Session Identifier + + The identifier. + + + + The (established) connection + + + + + Gets the (established) connection. + + The if connection established, or null if not connected. + + + + Gets a value indicating whether this instance is connected. + + true if this instance is connected; otherwise, false. + + + + Connects the session. + + true if XXXX, false otherwise. + + + The will be valid until the is disconnected via + the method or the Dispose method is called. Any possible resurrections after communication + losses will be done transparently within the so that the instance and instance + remains. + + + + Handler function connecting the Session. + + if set to true [reconnect]. + IConnection. + + + + Disconnects the session from the target. + + true if XXXX, false otherwise. + + Closes (and disposes) the underlying + The itself will not be Disposed and can be reconnected. + + + + Handler function disconnecting the session. + + true if XXXX, false otherwise. + + + + Gets the UTC time when the session was established. + + The session established at. + + + + Disposed flag. + + + + + Gets a value indicating whether this is disposed. + + true if disposed; otherwise, false. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Closes this + + Closes also the . + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + The symbol server + + + + + Occurs when connection status of the has been changed. + + The Connection state changes only if the is established / shut down + or active communication is triggered by the User of the object. + + + The following sample shows how to keep the updated by triggering ADS Communication. + + + + + + + Gets the symbol server. + + + The object holds and caches the symbolic information. + To initially create this information, the Connection must be established. + + The symbol server. + + + + Handler function creating the + + ISymbolServer. + The connection is not established! + + + + Gets the name of the session + + The name. + + + + Gets the current Connection state of the + + The state of the connection. + The Connection state changes only if the is established / shut down + or active communication is triggered by the User of the object. + + + The following sample shows how to keep the updated by triggering ADS Communication. + + + + + + + Gets the communication endpoint address string representation. + + The address. + + + + Handler function getting the address of the session. + + System.String. + + + + Gets the name/string identifier of the session. + + System.String. + + + + Enum SymbolsLoadMode + + + + + Loads the Symbols organized as Flat List + + + + + Loads the Symbols organized as Virtual tree (Symbol Parent - Child relationships) + + + + + Loads the Symbols as a Virtual tree with Dynamic Symbols (Only available within versions > 4.X of this ADS Api) + + + + + Interface ISymbolLoaderSettings + + +
+
diff --git a/ExtLibs/AdsApi/.NET/v4.0.30319/TwinCAT.Ads.dll b/ExtLibs/AdsApi/.NET/v4.0.30319/TwinCAT.Ads.dll new file mode 100644 index 0000000000000000000000000000000000000000..fe83ef03f3944dc841c37d5dc5853cc74734e4b8 GIT binary patch literal 581632 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�oq72i+#b_7{2xEcg(&CHGHik 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

4K8_yCIG)So9HY0zAgWV{v=Sc_=qIcjtzZ+z!Y( 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%0D=79TR7Xs&EZv$Qsdk65Xv5SE3j9m=8D0V6E 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

4=xht}b)f6VrFSTd!tA?mpl)F>rHW3j%v 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⋘M$l>A!n2Id+UzQK6(>alLje0Ia(e@nzT9L_aJfUs1ROdXo)UX2~B)qyttvo z^-$Lf%*3*4H|ewEstcj@7fy&x(7ssZz7Nn2Qg#?wZKR}si&!bXHS~I-OO?^ zjABnRJf_HTz-CuHr2@K2`Y@$QWRM!F!L4dGqwS=THX!0tjRbEG179l5&HR@_<=TSY z$?l{^K0xg1XvhYulvgD4J$d0w28UpvSjwQ2s=Q7Hi%}iO^fNGx#8mU?U#1L{SOiB| zvhFixB20>Cq{2D-;1f{17whwZ5?ys8t&{;pPYvWOskn-|ICr#FrS!4_Cnu%8mGXtl zLy)W7rRxy&?M5JUoJ1@9xr6i>hIL^+EEXzkx|oY7yRCOfrN#|W!%}uar$y0=dS7&> zmK6Hd!wPSKTJ*+^ZxS_SU6dO9HEV~AZpMU%U4hs8=u)*#1Li1co&L@yvPM^J0a}3T zX&iJRk%putrXgvGX-Hb4hoZhax^VBv!A(Pg zn}!584GC@<5?l{OpUpGFU{G~~jz(c>sM6?4O@>U^*X74n*5r_4F%KgPp@2Rv&LA!k zU8m{ue(OWggxKX#qY;g?Fh#0g_d+FZwn=j{Uh7*Jt%q|xc_XQ10$~Ci75$5Mio&Ad zos_6|_(yLfRuj26R5YwSUrYQu@E=Y5H|c{>v_%jP5mwuR zy472|K;ePIrqsAPiU!m-(P)Z8O+9HS`%a=-`fe(^9xdTI*AlMbRURcW-neX>qQ)g$ z5%(k-zL;jJg=Ud9n&y^~R=yRtFU2v{cY3D3XbqQ#HoWHcAJe+n?@B7e^mqcrj z_IjA(GH0pVty>|c_P&2Za4!NsI)YOJNFJ@;jWVCez@cvNIWKVVsIK`#D@xs%`^7V| zFwcY+bwt-nYw=OMYYDSFfj ztl0Yz(j4X~2~!KAk{U%Ddr+8N`qH~-`8J!+WG?KsuCj}9D${OsVX8@F7YMtu@u;il zF7@Y4vg$3Lmo>jhj_g&tqGh|G;l0$tCEDn+oks1di{{t-+qBQrDqH4Q5sVl+2n&i- zwP@7Gfv1W_HEv}NH7Q{9KDdZRiML(3r1o(OBsejZ?(n(grDUN^1(dL?a@LonBR4GL#mwgaNhEq~R4V(+OjGBYa@2 zU6E~HmmXGRb9c=P6_>@y#S(Im*+sz`dC{s~NWNqR#jVV~*-Conq7e&jZh+3j*}}14 zI|T)4F^j)c?hHDQ`0G0Ue~#xiT6I12&+&o;dLh@wZhf!K!W2G*MVVRDUp}vBu1WRS zuMyI$@EE#pw57KPKQ@GVR!5eU8KK`U)*#bug?Y^5+XHry(*)S`8Cadt)y<8!gxP^de{5U&@%fUdXX%S-!S%AD_ z>L@BitMk3+n*n4wQ6CE<(P-9)7=2n?pNrdaeV^aN5j43Rl#3^U6>Lcw&2GSTU0xLI z2G;1)JAthFi2|QG?k1+3JZ66^?X}(=&brfy=uzZeL3HXmO_LhcH_)4}fv>D+6 zOQ|uIH%6*8JE?X8In%fP;@aq6-v8+KU$q;8tzX01*(05>dK)24_IxdFk&3TQj8>i{{zC1u$(pU! zqAJ`?4mZg}%dd%U2XeXs@i~UgVFJ?T{wZM9}?^SN|xyb0t;+HWE@0J zwaX_0O>j~|Zs931@*QWXm?(3ogx>6yI595e7pY4WSPC+^Mtxd#cB%DmCu5bZU0Eta zHB$M4;-Wz|RXQC8!Y8If~U-va8Qi(Vc1Cwnd*eF6T>Xk_*K@w~=1M&SS+t6}tocY6Zc$stiLe zornxiBcQ5V{4LI+MUrz~J zps%o&;cOtSSE|XTHa*h0UuHN6L3;jXi_VXe{AW8m_a#?Re(*x5e#H9-Gn z9=b3u+)IMgYKv^ZV%g3i^3kZ&mLoS2(}+kxHytIMlQC$9YiBWEN-l0Uwn1z*<$U zr3%Z>Zdqc?v*F&nD&>A)o?YOk%IANb_xBqU^Mx`geNO(tI1p67n?XcSw71d8(SS;b zN^We3N?v|YKf+pnbbgroeZE(hcIW+7ff2dkOuGTZ#$YCoN~~ULhjNwyZ-EtS(NqMN z;zjtp-eQH(F#U)fDos$T!{n7SBOU&Am--RP{PssF^R^|3FyG?EDKs=g>r*u**WN1w z{@3uz(!>@Pv(uIa>CNe0G%LfhYMV-Ml(Ox^+8$^qZM~+~EJl3QC0Z$? z-EFY`TbQOr!-=^p*=#D|B0nhy>}E&QhnBMHD?nMYoJvrSqjig^Ageq(zwr94j-pTc zh!tjpC1HPWSCr|BC#!Em+P{%MJ#V4?TfxFkM31l(9ZhT}q}I!Hd0X$>FQxPyCQX%> z9miUq5ly+7DoeFlO6ZD|H>40#y3X&_R$selwluWD%6;$-$=)tp1}cuWY$IP*O#66r z4PCL1$<17WYlHHsy^oW^X4{)I= z+pWD-c2W`%rgCjw26XK^d-%Y$ZxQceiLrNcdvEvk+QzadE3Di@=X%#_MfQs}U?1$U zAG+L}*mrHUC?yZ1_ty8eK%?qY=|m}hv(%wtdgqJONSlJwezl<4iMu>ZXmJC=ZZ6TO z(r*L#;z8-jk5CJG{PL~56OUP%A8C7Pwkuah5$7yKpMk5n;3Khraa{!44XCQe4n&~+ zrpg3@28qhhgzKwxxfSly~u`vjK;3wTkGema49n!L>m& zE3|l=ww4OcVM_HhXKPr1k%#{|Y+AnAJ=EYcXj55u=SqJ`($>4F{Ux*^Y}8ksb|&@t zaCD~YsKSRJX;Hh-`gtD7|5_SP)0gD*!M>x>khQ=_#ZTX}Nd^>)h0i)9O_=v0c^NOzT%C2u?*LPLd_d8wRr@OvQ z_`Ym&D!*}EDQ&CO!D~RSQc{;;e_qbAa#XoJ zfp3QXUCe<+XX)}|I=My{yZ)h>LDc5cbFVy#o|J4vOHJ`d5(zyR`S^ zHhI!V%d*SJgs;qQ0zJ&J=ge>BPqPRc3Ffk?KCDl&Y0uFo=S$KGR(oxN4W|~t>BYYEC0dqD zp~ahgKWI#{adY$mo*EB&A6>b4O(Do_Tj^0>2Forqv5obzv-LzaT}D&;!i|*pakl`c zi_kLhsoy0p6(0Q6V99_j{X?R=q(tBR?Ygd{-&E#h8}?nlT3PCI7tg~M4mZu;kKj?L zyG|&BnRB<^1DE0yk`C2d2dG)#YH1yjKd+X-KlF9b`ae?6D>YMl?ZoYb6W7)9OT(_| zJ;?jj%mJ#AE$vPyeUR2ALkm*3CI3x!vrEd+-F%+P6pQ)3Tdz_ss~o-B!{S`7T&209 z)md&RzALN9k;G(g3z?tng}P*_o>j46kUg8lP#T0=zzW0aQ(tt5kg~GcNZ6ip2z=)a zpLvT?N{RIIMcEc@H_GtdO0gUDY&!O34nLHTpY4LRB&8&~Xo6E4(%5}zT|Lc~-HWni zW$TbBce&8;^Q2Y*^@G+J zH41IHdpOlUqr1f4??ZkHdSD)g&qEp^E`jJN9XUN9BHX4YZalYJK?{{TGBQ)@zay2I zdd{YcCQ@BG+tNS{S(!c9d$bu+=gLy)JYat*2rN)Bdec$3X!KqkWVWzOl1-gr^)PtL zpJ|F#x^&|=d8D>3->7yNthq@f8dWlTuc0c{+(F`YvpmB(01PyQT2+F6* zkD`C~n{LixzLnp_?+ww^CUd)wg0r!Le9l}$cK@c^5w-s8H(f-!d2fpGr5QOp7{ctS z#qq!pH0x^-TQW~});`w^$I-6V?@Q!%vqE-835+4-Jl+$l&A|Q9nxEzkl}x8;HAk!Z zOU-c6iXi;nOwA;yC{&q;@k2I}w7Rf=~ z&euOI+$g1sNQkz#ZllIhCp4vLkxU||56UfcP1yOMTIUrsF;5BE+0Fyr@I4rz2$7?B$1mnm<&oQwQPbxz1DWWi2YYY;l~}*%scWX9Qeq7w)5#A-yZ=4u!?B zEm`4KrV`bEw~2ac(fUM`mQw0Fp$?%+i`Kgk)~QU*$Xa;xUAkG?c*L;O6~-^~)FEwp z$x7D5luO5d&P%Tz%)4yB1&(jC9x^~!U>IZN5C`D|x~^_#G*-U;Pg$H!Mw zg_PWdT&=e|p#&&82;+xebVNq{N_!LvNc$!~4Ji zQ~J-Y*eYdKx$T7}14D0`JjC8rU8SC)ZV%_+9!^XUIv1@JUxX%)o+F)|o4#FUq}_}t z@h)+vY)xh0P8HX%H6wIv_C!aPq9LF~P`?Nyk%-JVfkU1fx+c>esI8aO-@cxzo^~di z)u`3%{FLDnf!iF_$UWrJtSkoN`<1j(q}e(&RpO4`>M)WNM6qpcR9AZMh^5mDJ+cIu z4d6??Xbo~hAeoQd_^-$+nyRbWcBUl@Wj>;P#AQ1(i@VT;XzR=J`%s*}BTqs0=K3JtQcBP?jG}mU(vmS!+}J-pTOVWD1Y4^=TS* zYq}V)TbDHfYd4Q33GcTXC{Trq^UY5 zAu`d7CGrZ)Ha&;(D^}yPABS;e2LxmBPE84p65n>E(XOEo>gfhxH@^C2D-ALsB@k17 zNXf+McgOzpcI#1%5uayL8&RPDEfoG3OeMAFu4R;{mo>KZbUWtf4TZA#h|-oykrg48 zCS||rSWtX`?X)7{!VNRBc58EPXq1G)U}M%kk*M`2AGJCEWtwo89kTF#$yYtKMOejc zU;c-g>9cn!s0oI386#bMBQ zikUkh`^G;v8Xsh-a~q6TAvexB+jS{9Fwxz{4YXjE(oEQ%r&G?^@)GI);$Eg6Od4XC z;wEnTj#!$^GygQ5jI!c~VicMpqt7o+n@&r?E-K!noGL|Au=rLwmDp6<$DP|;$Ed*^ zagtUt&-JABNj@45S}I!D^59P;uxOd9=|SF#I5+DGesoEgvem|{?N8Hiy3|WcxThei zdpdtSwRcEIO5Zj{F=_RR4jiMXQ6%K-D1U(=$HXU z13WuhJa7ai+k08A1ee}LlaMQ02GB0a&xmKswHmxEPI-`;x%R%Etsz^X(`M$(1$nMo zoafxjlr|Hsa^Yx8x1U0fq!+IR?KyiMx|_X-Fj*9Eq?h*_p(dxAR$cEbdr?MO&PKfxRKEXRxM^tS!ej}4zb&?wwa2HE@8Pg zpsN{D#V*w_3M6+*>2H zIMrHQL{D4z4f@UpteCoL?d9j!>{F&7Ob0DA;(G~hfsX3EAEAiY>yw&KZ=@7S$WFAdzK%=t z5=YZn$OzRrNDp~35&y{&dz#->{FF%UqZQuXkY;rh?bt!f4$*FPtnL(${H3mv!7q!m zFnm(dNlkj*soqvv|5*`A_*_MpDYQc5#>RBetKP!4N|mZdeR{ULZQt1 zphlAHt82|Jn@TF-U`Ciw(;B4Bw2$AgEZsju*##GPINpW_f$=D=0KJV-kLMS@nx0J=#K8+0z8N4%Lfv_vMmfa3RE40KVR1Cg(uxfGf5Vr9kNBd z?u|vf=DPG$E+WjBPs5s{!h%UCJsnd)sP|PRrPESLHotg&5O}jngK)78*rM>G9HEt{ zC^N2BfJ5x9i0$3g|30p*=cquoX8Hb-rN`^4Iso6cyGmrn!ZYDQyh{}-K|QF^ByCSO zq@~QgOD*@LBQlKW{DISSk4wI8~Qqv?&JevOcHt}kr;WnpAn zT=@Ji3q^}FYNhD)5I0=@vT!6@=eHdfeg*6ViSU<)Ayvqg+rn^ql|fY3$-Z<~!QD`6 zP#pb^8CRhgLo0n7s<5KFXS(rN2mSslQHGbG5wgVm!_8&VJ<`z--E(WQT+(|uGfNRJ zV}+$h!AQ5mO0aPiQk=(S>`)8F%l)_V)|V{Lo-XCdVe#g}YO_ea{x!B^F*a!jcWQoI zE`N5+9)YU}S~Q^Ehz1VGU2!v*Om7_W-i=n=Zn)0(dAI>lBjlEZlSV7^0a|)R8Mz8>qx8)qOQ#yXI16%hh9U<^`z5ZdX!ep&8GEt zm$1&JgRj|?zYeJ3Fz~1Bd|wuNULg$V_#Cy>r-cgb!bd@Ze}*P)oL5;Vk=G~ZkG)7o z!cvIHrac=9vS~g#JWr`k^YhRj7X?vkUT1|J4POB#*D(R7cSh_=-d$sYsKgBk4}R=e z7~I95f7I>l5JX2hf-O;YDF`~ayawCbS21a3Z-r3PbY@mhhp;r^t2cE78yH{ss+}aw z-#xJy&e;b_2G)aqhWZ*PIX`sN`fpl^j{Gc+vQ+Q*@v-6c&yR|LKTa*LTgw&we)86_ zd3#SdJzv2>+#??+wGNj1$zzAC)5q=$r(#3Ae*n)z>B(BkLrFy()Stwx7jET?9?L7+5^h~I z(gg2QZ)&P{i$yBTEv?-2n#6ijxj0!U=@L8a-^=eZD%2e#IuAVsQ;C+ieC*ukdD6uf z*>HQ+zf>_62DGu&)l`Xa(Y|wGEHAL{h9V^P`{l~{jRs9S2bmg{9IB>P83haX_m&c9 zBrk}cU190XFIw$g*Pxv9_tR^l?Vu`zDf|kqF7Ji$QR@KQO9Pw_t1oFk8u_Sy@S3g0WP2OsYZsjAqFQVGN}P$MK3fJCZ)Uf#cvqnK^S2K5xJF{Z2 zE?_E138{fKEX1aYf3$q@Izq%5G;#Q?v`xI^G3Ks}3VMDzR(tzCEY>-1+G2Ipp`TEb z=$t17Qxk29i?r?%?a;Ilsm%bAo>&S($PXvK`t`rN6e^$iE#cPfLx ziCfPPG>e65V{}D4))%**joWX=?Wf8PV0scyyHbefUX*9F5Vv<)^5Q@+s-UFDP@Az{@VG_(ng?Q%u;5mbbH}T8|cvRilae1h&c~m*~{5>!v(~F?DK>@_o8(zb zo@+wP=HQvaqXx`BEe{PakBamd@a-O@IT6yxV`(f#Y0RTELYBdi$I@7g(#W$=R=>$J z5#)fE5^!_$I7xaV8;{FNj1%*G#*2m_R9>$qALFb zRkgnvE!XgD(4(ZADC_wHo=Iu*0g`zH$zz0Ey;|6;CTbjY-e4pa2@EqJ9XF13Ljv?i z=7t_WD5x-+V&p^1?a5nvE(jxfUr55Wj{BxViMpKa_2c!Wh9<&02=SHc)nj1de{AD;$s7)zH+%t6?j87ixKs)- zTTf05&_!P43!>51^OdMb*5~dDnqlD3_gMLPn>yX;YtjW(x z8ZMOvD*8v8hAO4fu>XTRND;UGv^d=C;}N&FQIXM7h4S@JZ$?X{w4Bjpp^^y%3LaL$ z!@vP0LuJaDs8os-ufTU`Dn3y1QhoZNdTE3(uk9acDrIXIk-_uKkkNeWCvodF=m8|z z9N+%yk!V0rsM1U2vYJTOFifiz8?!=j(U9I=RboI^{DNP-0rhfx2FxSz=)q&mqk!>eMyGGG5}4cf?29YeILg@t$2nkB@?jg?p_a zI*_iV4lC+yD673jIgsxZk_eW>k|TIYpz1H|rB2h2DGRgRa>$2(RlCS6ZxnSwL?1aO zaT`TOZ=q2u3bEqd{ot86DCQXkm*QIA@n`$(LFzQsfIf(ZSLo#w4X$rW5M0(T=0KST35UexVEMcfnG68BP(gNpf5AKzUo46a+pDT7u)T`0SQX$=tI$&;*xb7l zucBIKtVFqSds6O<&7AG;s!_>U3LSskU|vgSwl6P2kH?)Q=AHJY;q0^~ zHtHp^f@lb+w4ta^4e_=>DkY%R+wW>_h}*mQK~V9rDtKw{t2We#)5bX(RkE|mUvves z_Vp`)Do!#|*B1_eVuzr*RO{_O8$#}A@8j2pW>;)f8DV{8i>vl&w%%*r+Ka1I9F`MIQ{VZm4iI#Q_#>W^K@-&LnnOUPa!a%WL>wA)h zP=Iz>(p|~ujXOKVgF6T7?K3nCPGG$?`-WoYP7qdEvu{Ac_zi%K>FJvk-(f5-#4|q= z3Kx!kvb2n09=A`%o#!Oev|DleD2Qi3NKxpViaWFA@~YC1Fnv-fES=$)q>rme;!&jV zsK^s4qkSS9X_Y7?j z&otGkWe6KIwB17XXxGZ+vC?qagps&iFH@hbHK^ zke`_AcZSX@mE)PWuhD2g~vFL4;lTrw>|`1X~86`KJ#qD-BfR`PVIvlB_BX zEA4zgAjmD5Xy$EmNNIUy-qx$>gP$l3c}j%VkXUK?1GU81Z*RFYI5gB?0$^|t4Gqy? zhsoPAP>3bWc;!Jb1_?GxF>;|L3UK~AC?;HzGa!K}o<2qDQ}pH5+IW3hd=8J~SRN%Z z@>teiLIPdZFX%|_2vR>m#)4;*8yAytpCUQ?Nm_R)Jq`i4cV`utl z<0bL*vlZ}AiKpL&sZj3pcWp}2EYw$SGOO`04mACo!+619ylC!mb6+<1gq8OSA~3)K zCe6y5G*ALRn(xX?T`(#*kl0l`{f;&Csdzy@Yv@zRTP5j)D2W41b`!=47Z#Ya+8uJd zTLJ3yyJ8IW(h%hg4UL0e#Wa{J$Hmvj$C(-mL{o1u*Xf@yzleaQ-yUC97#fF!>7wW9 zpK+xBJ`_#OC7N!>5r3m)1>O|KY0Y@N@HBkBF-~et95BOYpeoqoDt-(DSfyzruZert z+uySZwe37uNf_7Fs)h?15U5&W1NrEsp;H_god8D9D!UjenuWI3)SJNb#yh^fo8bmmEBB-rlE3o61P%p7Ef zs7h}s_bJ2N+ZUGVRi&DHUCg=lJfwtX4u29qLJ(7`nI~1E^!XE_HvWl|bjF0wnNx|M z#>|`oCsj3z9F}pzD02}364yK9hPwGl%~1VmtoS+jtx&T{MT2VY#dv-yKBAi1AnLp) zSe~(n@hbB~O|9>|8_zuF^Y+{u;mufh^Mb#bc>(M+$`aUSz!viX9ReyEVm^3~kc(vm zIC@{NtuJ02hsD!{B0k7&?q}-Jc}ygym(yJJ_`C7kg5FY9lN)A^C;dKi9GQ_Bmvc|mobaR}mYGbhVN0VlovAcCf@Lm<^tf~jhTYQT{63MK7S4Qdi& zfRA*rF`j!eK4#59(0E@S-gMrh2mtqMJ|L{pPsYbo;5>tn5d!8>uHw$?^o~r8Q9Lh{ zy5H)z-3WYswo0=3gDx&B8~r46?Bs~VI!vb~gJbG|Gh*hNDi+HKB>h9Q0Fu{qh)qc5 zxOn<6B?&fo#!v!aWILotahl?C_!)kwm(mz44h(>E$|pkf@-lc92ls%gKmRHrRUf8d zZ_IyQNh;^hQE@VFtJNeDV;Wijb}3&HeG0&`^oB}UhT zY~?_(2!!3a6C;?m=4ijgz`oH^;KdVF6L)LqdQv@69B7u=kwe&(k72GF%^%g;FVE;mqU1E^u;?Y)W1UG`UX+==nXoDAyq2DukHwc zRoHg&uJt@^2U8l>u$q2*z=g><551N8VCI7nldY!yK4gDUQ)f)03X>(N+DAprcseya z5^LecgkDE)nL9BFCfY}X=&a6v&a3(3$d(A>}DY z$WxAmrwXDVQW_$jawI%e7>4^)(Hs}+j3yNPt=ifCW0`F;sS*-L^yeLFE^N+denPT} z)Lu=pXtfhkrrhQWf1f@YAB`WEwA6_t$w+nu({P71Qra;0#8Ol07;#I>%Jn;vkQ*C$ zZNhzgtTxc_LZ*Nyydu+h|-63SFNT zR5Zr1d6z1}xJ}vOXDXB+?r~fr_M}FgH_iCs%O4D$`W?nipNEG|sFnP!gs!RF<5J3! z5@t8WvsxL03nd^(o(8$ zeh5V>e0CE8toNFp;{K-R#Ix7Lvo|kOIo@=u7{JMz6gj~JS4^Nm7{F2%el`qduL0a_ zL_dg+9guE*L^P*b&QEq3>dXch>IRhocb(bb_9~L#l?bTR_FAoXkHu8s-T(~X#zhH& zFuTcXEAedu6-oeiQR+p3(wPkxl^l1L$1oF`rmU@}Bs+BLU;u2r^nLX}>nZ40O~)QT zJ+ihWQI>jH=|2a9q2jE>@LpI3=EQ)EmJ?lzG7~_kG=roX&)y*>IExxOQl3mfsu)X` zfJKkB2%`%!l`F6q6f>ss{)viJ3S-Vl15!X+PmEtO7cdJjg{q_Qj z`Wndx&k;)d4`b?&irBE8?|OV0Di{0#R=^}#rR!t*TVCi&fZ)CJTv>otmB2>mW!Lg& zw=;q|&#g+#gIy4*M@XSohH((L6C~qL(K!K2f!e+TS#*|b9m(wrGbVUHm$;>3(q2Z z9O(EER4Bm}iDbn5k)R4r1sMUEpgWY1g^(m^lQ=}ug7J8^Axctf#x-Pqh~Qs^)<`l@ ziDx$|sTf({6iA0C48&?w{7|B0Wx~d1QVB&^CFC)kKdr8!Tw+R7q&^7cSlq@`?&en3 zg$u&mx-r0rWP}=N**=^0dGy9Zu+4}7J;F)QzlK2o<4T~3u8UtoR)87hBf2)gF^BFSV zf_)&DK~wSULMR%$4KWn3jMWbig|J*$R+u1VHWBE}WRQ^r%M9k4s;{*USCEh}6bUF##e`0ivf8#34Zp@jz7AAtKd}OpKJrMiPi4iI127k*EOCQwidT zAclA#D(nzPx7J1{M$2QP3B=LFM@)c7RDkHI1d&nKO(N=1SQ}!rI;WK)Z7e8b)U*Yw z=dqCVX#v#PX{W|C0b|i*0e9`xhBXv1WNI1GL|c!R0H)1zwtC#DVRMuwsFj%tKL^1! z6)b1%=LDLmm$l2;Q!LaFgZ4KiZZvxe_Cpe_YT6vrZY5bOrK-*4Ym)lsNJ%fOsz&!(vsuxDm)z+GX0cUp`@iuZl}>W!Au!_P79Hk&_M&Mo5-v% z>FIkdgW4lK&cK)v*cMxhT2u6OSGX8EMpTGL02oer?6*oa&qS<*;8SS07+O28>rX*9 zcFjL6d&&IM$(ks|w7!P~%hW?|R=8@0o8#qTReCylae^42S{vVh-^R#-tbM5*%0YDD@*J0mQt!3wiNE)riZ4#>`KPQQGEa!PV4a)#s#%Nda~3aiw{mT}|u3h`LL5F~xfV z*y@s9>Ti)km+ZeHMkZ?@BH)t!Rh$^|1W0sCqPsYepa=nNN%R&cMl}JWR|%cAg%uQ! zYvhaZVpG?$lt%3U+dTS)hGg97OtL(F$7s~gT1JKGfhFgoNpxpK90HR*e*?7wd#PC) zLL!3=CkdIw^nRGd?T{BvJ~RXmcgUShm@(TcC~{~hL~Rb9jq+?jrn{yZ4XF44gXHWt zm9+ON!~sLERGArAvZ{1VRPB>YDE{Ysx^3&momV6rEWAULiMDN!7?3@b+NX$H@l;8}}Dm49L~ z2YN#Y8N`ht^`_vtCU`an&s6Z-6g)TMG0@usFbnO>h3?3OcI84yubI~F&4nJwg%0FG z2Xi3|(HSU5bD_s`p;j(5n+q-ELQm#GPvt^S=R(isLf_4WBweO``$8`CVlH$%7kW8_ zM21hik|9Hp^NiMwH5^TnW01H6(0YEvrf0VD4C@bx-Q<}n#!O2g>x?XZO5c8)MV??b zd*W5LRq!I1te$uk^Y0U{4q(JaPb!tHd^6ebh8HLaqwMrCeWy&gc%iJaA%V%YiZ;1c z9y8dY(UvMy(0(+Aq;Oz1kbMU&1vJ5VpzCKsO>TF}&)nB|w(59V;_+ zGs2NhieCFAd33bKJQDI>LPk>4DNOPb^4?$iPuo~pe`%|CEv-=(7*BstfgQ!|zeEb5 z2FS%i{S!Y{EwspYO6nITa;sD4R96W-l~j``-mObgsw&i=bBdq*RLeaUd4Y~oAbP&U zoM76Qw}8|L&<&(Y<{~CJwpSs`e!t#XAV%5+|JYZB^o8;#n;tPd*~Dd)C7pyt7~Eg+ zLoS9~gv&DKIkTn>(7~iNcgWm97{AJt5Y15TRzoUovIbA3P_5?sRTn&SuOgcYnuPrc zR28WZQU|=n)*jlW1n}NLisMo82c;+^HqQgGQjbx8u(PXtK4{^T%-rksxieBS=B4DZ z0?UCGY1US%B=xy7W*T^&^=NDbZ2iDy2ZGFlX&Qx6#aoSJ7oZPbpBT6Vt(zKyS>at? ziWHszzt(z7bq5b9#C=*(W&4_Jj1$FX2}K>CWO`{rsX?)=py*f@x{~T<1!~_C1sm8g z42lG_&yLYqW$LG77PIQ@e*ie!VmTjEpnN@8tkVOtgdP|Q^uYF@$FM(8KDJqpjSx2) z0;2>_9sG?glS5VW{o1=LwPqF^(0ri|#ggR&rr+m99d=Yl%~68ZOU#?)BBH+Dw%Bd@ zSNB|9SG=@z9<6_!q4K=Cq)Hdj72ZFJjN5;M)L;$e02Vq|Lo3na(%x)S z97!6el62!K71MepZk>)>uLeJ!QziDyDcQ;}Km=AO=9g$#q21 z3yR=4p+0QZVGXI@NYpnc))&UKmSntTc|<5#i`Nz#lYxF_?pv{jwI6)sxmkFzwJz*t zc1}+QG~!0+B;Ic@j%s4|^Mj>wWoTIYc-ptaK{RmKd9LL!%w4uCg$+Suvh%V!>(EC@ z7SJXk+v@@rZ5s`;S`ss2JSGW@vYtdQgb@8^);!Cq%{!SOl*mxN#v5q~s0!OrSP)<# zkKOzd^|Y(s&yFM@MYz>+lF2sq5TRq4L?uaVAs5JulxzIJrs!gh^*t*dUzbAWq9g&- zGG|EE0Z;2J1&i!BQ-6_Nr#mga{W1ov3Cifx83aJe*r)x>X{cK5F2if3o}&rrJErMO zh~+vl;#HVxZ!WaUlzvJVB?$L05W7ARe1(cD}($XN^GB3Atqx1lci%J7CWCN;+3avJJHvq21|_!6_+ z+**ogkj&X8T7`zX5$W+8ODyfntn@yNg;>z5t#zGu)LzT(lyAA?`7!<4KbLvPSOa(m z{#%?q#KzTnzRHRvZ1Lx^IQfQHlKxyf38p73Jk3y>ur#lwXdw;Y(6qFMRx4_$DvHNqlYCuAPcXJ#tK9{nI#{lRJaLw^zG|CNzl~dBHfDbhYg%wF zj!e$IJXHcu=1VZ~QPI!<13nkoQk3d#;?DO$IULcG|SD%cRSd$D%l^TpQ(P`hmW^TqRV^Vv?cxWFK4{Z$Nq1AdGNfNOh zLfQ<*LmReu1CxG}8S^LYd8_VNiYr~XR ze#$F9<&~fE%1?RarwYU5TnC=<4;%1z<7#ysi%)mkKZj~eR~f6ewGpH5H)2iG1&Va;A98{xE# z_kno+U_3t?&p#f|;aQ014~UwdhMG0VY>zDio+UJm2_^u$PoNKD3uFghf|^&ChQr*z zERxIcIC?j?ey};bJrkl&YzhWSWf>K5YNFDKh9xDu1^6YVZ{fMJ^urC*8u=H zH{beGxC(f8i$0!&@{14jE?l; zg_197Q9re`G4A7Wvcw3@XVD%(8}`;q;Hf1~=UoYK99St|ppAA3-LyUlB}U_m?Mfz9n7-6#~nd0vf6 zKzQP3yoWs{NVBvmK+$aCvE#TJ!(wK(zuqulLcGOk0e)dEFZEo*GZuYwqfa6hc#n95 zb_q}oJ9oh3ny5UXI}0PpHZ^6@;Q%hF@moyj{eqV*->@d4ByU$jMue#^+$200_?naq z^Cb^8>22y{d|H(g1)A6keaZtjpL^d5VQTf(bPvz7{T=qeP5>?TwYl3PZhfGcsBPz^ zX3sQC^A@4ATt9oF-eJQ4it2F-o@6moW$5UUe&!$N7!p6J0@^I!hpA!(Jk&N7Fn^v# zuzfLZLtPr^v!{x-yJy?%}Gi z1JTe{u8h+ck{*lVH1;Om>!!T+=fbUiJo_1(*5_~@xE^QM6wdY=aW?%f&UfWRU%=TbXYyv8U;Kj0 z82A+;?N{yN%osOIU~^~MV#?%{0;YC0#$aj3%8s@g6_-WD8h7BZoep4|0a26Fl(Rw3 zW;xM&I0ZRHIel{aER8o!(8us_e5nJT|8_uAdk{lL003e4253&Ie zlLQVpBAXl)(mx<)P)L1Kp9lJh%qHp|%}=XyCe$eEI}RnCoaJ}>7cIosrHm-8h#x5?Qd zXQ!OohH3?{!}uPr8l~Y#`Nh1UCnx!In810 z?}=Rp6iG{(?HuA{4&J%a>u!I)ie5A2rO{McrJYG}XZ!AhS59AZNhe#~X@5!7I^!Zu zn415&H(D32hmQE=TW!MJefgFjG|u4y=#B){>%q`zb;V{>+#D5K2pr3bQLPv?i_zvH$u^U& zza2%}h+>Ev}EY`-cO(zw#fz@B!o>;P|l5 zYJ?AIToP@#3({B@eTy5l*G2yocdD;p=q!%gz}u^N^Qov^bRzxN{PmAR9|Z;aUeB@Q zvnB2iqv@l6Y2(|GJ`HFiIvJ_wM*F|y?~SzP#M2z}|CFB_x&BxG+Q{$z`aU-Db!YVd zCB8K>`EfoT^6TL0tvLTh%%V~3CIduaWReS01~ zwExIs>$mSa^w9pphxb47@ZoM`8n@-hkwg3Md-TY@$>u|c_dIgw!2bItn_u2{Na?TL zxPF8FPd0CO^uUov5AD15;eC%DIkfx0WOMtY_Z`^3=L`ED+xf_Y`yRgbzE6L8_f>nY z`kl+KzH;Nf4V$iBQP^3m?RaqiK_Kn_+WtMej{vUFdf}f-{m!R;=k1_wyASODmR0V? zM-Dx-`^b@fhq!aLR=i-acmYP?zQK4qmr`%yd5q^2&yD<*F?@GkFw^7{x(<4tgO8yYm{uGoCWQYep|ks^1Y95W(;TgCdIue=P5axe4=FRlIII}1E*sP~?r*T?;tSVqj7!=%hi-Wwu<}Bv}z3G=z##ykdCUz^R zg4->e&R(2_$8l!gz?r@Vr}dZeP086PM>U$>jMLeP)A~M*Wl0S%opCt^OLc3%s5Gw% zzM!^WP|(*Lz}?)*fW^5}yqKHBnQ3xCrGZn_^!qpqv&#RLf^RDYntr^nAjh!N77)K9 zj=1&{dhsMq>n94<$vaa6ISoQHZzQPGJ!&J4McK6%p5^7-<4XThsM7qdt`7v)=dHEx z3CJ!vCjnU|e(nsR`B#-f4d!+^g5TAPm+^I8k@GV-Z^`*F&WtM8d0oyK72!K|%xBl$ z%co_#*-b!Mcu~#^6jtR=mm74Rlf&(PPENBe63iY|+>vhMI0EmD!$>brM<>mbn0Qt- znYB6{u(EhND|EJnum#@MXO9Q)o!TOfrYTCl9%JLkwD&d)bR(&>mQf}uO zb2pl+ali^gmt;FP3BYMN>de`9a28I<5k?mDV&M%rZ&Hs=zZ~vY1?VPoH}h&%$=gl& z-j!qcJSg7>Nwe8A7Fzqnt6gvVCDJUY;qAYW^B?7iu%GyGzQdpALZe~5*2{AVwtTT_x24gD-;L&i-RM@ z!BNsb;i$5G^#nVQ#Ouc2*TVa)TlFUN%E6D4aD>B(A4CORsMirA2`3s+W!1F+j%B9^U2=p&TLH^ z2{KiMOg%i3G{jy~Db>{c)J2e$C#h?QCdnB^8*Yxq+mq+UDqUc;zpT``}bOGYau>b-%BkhOq*NC2pq?k*AQd^mUmV@FWG&lupxsDTU_Ar3=do` z0@7oMhc4Rp(6Dew2=hBzDcRagG%lA{^L2ydU-Ie|d-X~+Bz@JwuT~wxcL?dS5FWVP z$q$%Q9>$}xc?>CUgJMn%YpYu8$A;*BZa=NyR2rnxC8D8(Qzh;HC$;CMWPqFwKuAe8sbOPhF!8q+OUiJ2~ncHE!+J*6|!+6zTcy)v+zP9j80_at%#fboc zv94OZ!Y(;I5>%>p6XdN*u zOtIBZn<4F=SMNIp1l;htC~THlNnvEQcWPkahidS1!w`!s9K@Y{U(qbQuxkU^EsBu+ zG>qeo9CCoCw9X8QwY1K#{QzMww(lWXRQp+tzG(=%P^6h3D8voyN_`EN*=q}diHVkY zdQxL3z^z=O*e;d;r@Z+l&D>V%NTfP_Y^Qg0$)DQ2g(05PyCz$KXeP{tn!q}&f}Gj$2zGRH^^EFF7W2{{WzutN zDO+qA@p`fi2_MOHxq82QIJ(a1bc^FP069NJ+V7K+U9OT%VIq9QLGIf$i`~H|1VvkS zVcZDhCp2bbt`LBW2@P;mKDyKI)uBderPbOUp);weRd>|Fs;>SjhPaxSg-gTi?g7Q9 zmjy$odZ;8U&*13bl7rSQjR|Od2cV*h%F0#ioFuwdrU%qB_NrE1-n6@;9C22iTDhLY zg(}s`BTZd{mVf|VT>!(-O%hE-&1&>FSEK>;+hLO_#d zl%bBa5{zlk+N}q{v8L|&PAcOC)yi=a*)1$>zb6^VV1vmR{IWNekHT=Hf!B+BmsKyq zj!`_kfysM!sE14%&;dJWkCy9|17|X!O5LE3&Gy?>Ltr<$VjV0%>R-r-3lemCrilDN zcJEm=MTh1*WZ-KmxElqTpq?PZOyA^GP!;VOX(T=-JxFz;VN<&Kn5SuMLm#@)aL|*e zm4;VOo1M_R@#XwPzbd3(Bm%6kH(W`X6AY4A3d=%Y-sIauR;x4?wqlh^V;pr!MQaU5 zfCXuZgr+thgp(}Ct@+22;lkIj=++@aDx0U246JE9gHC3dwk~^Mu^f+HIGh;`cvNrW z!^n6pGx=M@4sDP%DM}{`6N$pc3mA2(OX>Z%mWI zpazm8>>s(ky++L5P9nCO0~>Ux+E`DM&EULk@=HAW@*b>zBU6zI6Ne(fg4$7^Qrjf8 zsy!;A{kCQ*<}q4heAl?#`%d3_uyyN2Py=pu@*^AcC!a%Y0ndobvaJvl3wr()NZkJU zpVL;Qruw0%6?x1OikZI2z=&W$Cg1HN-o0<)^G|)*JgI8yy_agUnnP%v(JLlCU;}lt zx!=v8?KoKgdtAx%B#0|OJiwhvX%?*rqG{=I^(VV*xj@7=+Or*A-!B3F3+6s&Q#hA+ z97nMt3$LH+rsO_a#Z2F8k6DEXSb@{`R!3MA*5^v7%8TsDKufxpV>*=iA{WR&k2_UB z$I#U|X@yzAb7S()HI$|^KB((crth$%e4i`AQb3Efc~yks*w4JSq_}tP-J3v`+($3Yqdli2W}_)&;{dw%<%LzNxzCqYT0y57l5gQVo1q z5Fwx5w%@h4d>cU|u-ovpn^-)!#28lh4M#<+VKvovx8S%BT;tP(He`pCGWo#6Hfv!i6#N#qHlS7zC4-`c#a+gq{9g z8fq$(q*>EVvnCU}wi~-vvBoj(C<{+_aHXsUCZ4^zT^6i}{P0@+rw<4P(>IxWv%MHI zq)d9fZ?;E!5}paAylGM{G*T=|W=kX^c!zrxH^kvrn@csl*^CYakigG2^eTk~(-dQXHYqrbLc+ERcC$?&{;0+| z(451NSf7hq4*YzKU{$=fK}a9VMI^d>~H5H22! zR>%yz@gp8^88b-3YMBKfoLN3nb1#@02wp6i7!nyW-H6#!R){!1X^l_Te0tVIA)Y`q zKVyi~+vAQ;;V-%p@q#YYM6sj>uJO&C%=l0F$elZxJgumX-Kj!j0cA`yo<5=~@KG^w zlGgXFcGyfbXLmyzJycgy+D90}m`&`x)eE7;_zMG1Vh$E2L|P3)g~V1R&>T=8@$kVl zmxLYw3fw{_rTPP20lUp>NV*^xdDR~6x=&v;$WVQ%1RI@>^m!m%tBj#TACBQuHH5h~ zpi<%+8w!FxOc&FSQv*$0bk0dd@!+jN=2JI}^AfsPAFj(iGyPunyR=PhXunx;RYpGk zxoVUIXsam$3Q{HehLH{X?Uz2V_C1-U`}d;VC0OZX>kGnbjQVM&H+2cv5s!vM=#)ZIoqs-$myR zxk*jA(sqzkS=QmRJW|*auT4luu*7m%GfDXJ4vDRy$M6`qnK8YIXU2$7#pa%q+cBZE zgWb7+kyW3{kQs5ZOu&R?jf!M&)LZA>}2= zfQ`A<+=F%(J~*&fOst-!MzAUv2jjU}J51%l0~S0T-tJY9V_8XJ&YX~#W5AvmKfj-a zAg2roz7>L;P9v|lffZ!IISzP+I#@=~s{~SoB+Q6a(uBFk4T1CD#ei*bmXBy1YKjST zUSZ`6 zeQ*wxWnEftJ@~lwg3|xER^bvg(WFA*Q$31gUhxjq@tJYOu+46i9(2zb(Bg|MF@|}G$N)Lb+bcPq2#Q;k}j(NMHp=BeL#bcL0 z?v-3hrPcg?VFdr&;~>Q;<7gM>q5|I7IF%0*ZucFh@4`C)5bnF_-bmBwGddxid^0cb z;SFl%V@2Pps%eCQ2$lqDO!(Z$-MczKXDGc^3UoJQ))qjK219vc2{750oGT2}BZ|$| z@cp!gMz7g-Z|Mu03|6cIy71HoN^(%ng8{73b|&lmNCvD%Mdsbi%jr8CPnma&U+g(D z>GDx|8>liq!uv*Q+y{Xk$bG9EqoQyZF!(wUE5oYf%yzl+2gm4lR(I`l=ZFM4B0gDM z0TH{Vr$C5x>hh$1DTj1HQb@3qGA;#vFz~CF3{4EP8N6GF>8)6%p5_HG*5hkW#r()1Z#1;Rjks@ zJQ;U3YpnBGF1)XsF0HB{N{BVU6FD@2nrl7{I~`0$g|r9;BOZeOo**HipflzusQJT; z5cA(10i;ATZpNE?yc&riG9`L&m_n$lc-@H=k!D{@H~(FF)K~M*lz7$A}ml|J>x>0jHLe7Xx(9|mup0H)G`p2kA% zwU5bIiB9rQN;YJKV6{Znhc;f5Hi%E&F^&815fVQ7upwBwKiuiD!#yD5jvZqLwCkP#r~!Me=mZVG_`^ATzGSH}1kCmn>NdOjJX*ie;-= zc{R=rPk2PdIZ!;iMx%`784=$R?wCZe!>-4|io-!DbXG;#8e@`6jZFlPeM+LOm0 z$+CvTQ+6b7-;}LNMhVsy8_SF{qI*Vt_=!dhvuI1fH=JNY%L?`!NS^)4lid>*j}UCn za`LPs&!OZwoIFR8=ct~rKgzR7i8Civs=@r^6{2MPsy?wbNi3WL7SE$kYR=0oNQj9} z7F0Yo&UH;lrv_yP-laE$n1)GL%5HUo~b~R}9D1%vA zg1ls4Cs7io3;?qX=AUvu9qd|nRec~YsQ|!)q*XhvO}Mw41ZJ;^`f1|iA?@_N5+Kp{ zrtgK1sLr;yM@G^;i-M%@(=nBD1>FD^7=6qoy>JY%gFqFq%>3$CAKqtQ1+SS0{mnu4J{W0&Vh|w6GR0^-9u&wv^B=x2r#Clcq^Z`_i|X zKDr)BAtecYP0IWBKKIUygfzUQytSJ3M)tn<+_TTmKKtx*&OYbtIR|z=K$2*NhNIAh z;k>MaD#w98FC-xNqK36|;(oaKk11^roEIflM%}dxaxyH_gyuiCnJHY2r|e+jD-%)f zyJq%wrxwcU0DAG(=_kad#YW*?KEm6KWJra}aHbgrM^%Z|*^lF??TJx^fkp|LW3h!b zzjMtjY*d1uW1b^S#nw?HYgf}ccK{V^D=(qyf%97N@HhAnU0IY-RyCh&ojr+A(sJ#o zQH!zEoa%l)$c;}a#H!G>zE)~VSAslI4;EJ+?QZj#dbI|KBB zbb=6ug0+_Xxe(1=$*NA^Tv>Ilt~yx}2m;VE2Tqm=0_VD_lM_$_Unmcp7x_+Fs=uqR z7|666{`y6&@`b7=bWvD7AYML*X2aP}1}f!?EDl%~#qnLMDz4QP7pJfKSmA|@v9{t` zS8=VcxGt=?E~?0a?xqRs+zOA3%R)VBki1ZA#7lKy#rC9BWl)Q0;pXTWJZ%i@HSnpsUdQ zIrAsQPL=&c%hAuTDbgmK64K=;PgSuW(7_e$uaz@CrF0C?dQ)HZ6t@jl2y8Dncb*2w zQUc)^%v1&*RIca|v$A0`cNXbkdtmOtb?l*ua^gFso^i^YXBERHOR)%ptjJ1ObO!4X z6$O_K+q7EoyoA}qYjhn~l|8M^mS#xC)zZ9yzDerWMr&!l$gI*6ZSA+Ff(#orR0zd7 z2)FuiL@8&S;n>bh=I_@UJv0=THFxOipMXh9%Ib2|xhB#EF04l<0g) z(_@Nl=inT6`+;Fu^x#{gukYY^Ibli5c5{)qsc}JU=O`}J0~)p9m;k7*U_Yd5WoY~s znwiugff&20fwxI_BIyW$O5p`UE|Uuu-lg$Bp)Z-viC(6v4xvT&(=t;TBF$oLD77pM z7lF_*3O^EcFIYj{h=VNPo~YKsMM0|EY+bDtwiWWUz7QLI(+y}IpAz2qbA4++Wk*yB zE(Kw9_1UnkvZ92C`pGPbWm<|YV=z5|Rj{^l#jtp>1oMnv`De~C`xC#7^HfibH)@u! zoXZ1gnf?OHBeXigJ|c}v-hA@3ij97;BJ&8@qU!RlsJiMWilT%OjZqX$8tLcO@S+eg z6{=@#;%qr-;xJw`2tRT8BJp!1t_i6_R;~PCI^QE#PQVRJ6cj}+&uZ$=!*bO4n!@NF zHv((3HGa0b1;vrG_>#SRk*)E|B*&yOt<_WhZ1lN5@mHF3=3bM!8Ys-YP~+30ebhHK z;kj=H1@YHNUI@PF0W0jb3kNUT7_V_kg?}<5ua}wFVO=M;JLzGKXyp|*-a$y25^wW^ z&=p$R{cq{|ka+lieKpTBQY@A^eRk+4U&0Pvw%*heNfxdk>efL$>M625do&DDC^Qwu zxE2&@_G!&v_G!y+{cPoQSS_S}(NjHb`OUk+?^!YFuqy)Kb!x;^mNmvR4+?Fp&H5GC zZa)KoXs;$AE5UvWti=ZmZ?Bz($(5_3xSl0hJNF?EwKC8n`@qRt)Kmgtkgr0ra;?u; z4wlu1Df%)^N7ZwhiOhOh#CQiu5)>{DdE-R3Cq#Y6uSG)W;48kL&`)%8?S)T&LZV0j znK*NEkPc89n-b8m%Es-f(WsUT7De3 z5JVTLJ#)QMuenloJ=RY9=QHQ%Af&$%aX^@mrM2pAJ@bD8dW+n^{V&^Zhh4($F0rgo(6X zlF#{-RksWnBzxwh%19tZOb;b4(#MiC$4|0G<6OYBl}oGFRTeDO2pcVe{asmCg&p#i z6;^s;{;g0SYIx;3)Cxv_@ng{7CBlfOdf~~~>&F%CkM&fW5SJDxXJu7QqSSuPK1sMB zlB5;5Q8Z+|msHnFu6{}|MqDJK!z3rFGGr-IMll;myioaCh$s%3PPa5~Q#Z9MM^NfR zDn^!Y`QY$CyPR8t2#lV%L`zPzCZT5TFr~$jag^HlNr7U(m@VvUYFl>?gd`+11 zx@4?NV?>aB(DlN1v5mnk^!T{*tQ)LiZ1piDQNcjT7UlyR9F_!luh_!c1no|~Aq^j{ z5zr+qG-5fGo8=-3CX1_59Cm~GvJ+aE6)-`LM67&ZMOXXLVL!NTVS;4{`9Mix2Dk<_ zT-IIaK=iH4D$Pcwvm02QfQSuE8;zJ<`=9Ew!N~GR)ra=3-*ROkHxjAaUvar8K=Hj{ z^~Op>S*)Rq(&=e%nI++%>`D;+@@6f@29RtuE|)ajh0hqju2h!_1NWfaVL@O!LY%eqG0k_U6_LFA!P3 zc!l`%ui|m~VFEO%>lbkeqV))$@)J0oP4bAzV_H1Cj9?Mu>72wXNNdvuV2?z`7w-od`+Hn!^BvJ3(DpD=U$Xxff=>LiwP1# z&nDc%>V6dhnkDe;m(=$mabw&lKI%UGn!0b+=cB9Jn2usmtgmKyA@QJ44Sz!%7BjfVIK%dYo${3 zMhOYW7Oy;C6x^KBJO8NousJEu2cfa`xCSvwncau9&Z{L;#r?2V5~aK4(XYBC6MOa2 zFY9a)gr;gKJS%KKRun5MD_Dq-+v$gdFKeZ8**y>+Ou>b^mEz|9QWYv)h*9qcS2f{% zR-cbcET)7j+gM~*pJ&yFsh%LtS-hgy)bu%WesKhr);DIK`G;v~uG27*oR*qu0qmY=qEuR~hPI{Aa zRK)OjAwN}g2*>e3{H@|BA!GQJ!`t_H$$Q81>9pHhF6B9~fxzx96Qc**Yu&zl$i4Lz zH`37&-W}m9Zqu~0136#}!)F{|{$n9Cir*$?FQ_76er#AH6_fQ-=!nER`e*U+NIV(~N5c|Qy~PD|cO_G! z-5ouV?#^_qr^8EjcX{cKR5%t(babR+$&SvL*VEk<^SZm^-RYiWM>3k|OvXCAbSfN8 z_4I_hVjXcWeiud%4_JHuZy5n7)9i#DRINXyC zr_yPX2*=`HG&$;}!d=~+U8CKJcu%Y=k&Z``VFJb?9r0*Sv^$bWb|xV;4w1=ttUKwA zc6FxXk#tWa8c%g4yCSJLB*#0Fqn*)cA{vP%5|Lyq)$PT)Mx*Jj#ArI!<;BwBNTM_B z^(00|STL_GgNd*~H9kM7&axa4Q%$=Gq9ZA0H7`*)_WyvvYVnQ*Ol6MDaGSG?)qv=Y4{A zj_qvEm9yDes_6l?Na#a}LUBBi9fF7&^0dhddN>I`EN9y)t|6~ff)T~q^fHb~NrXhM zHjZ+ytqjN7UHc4$Lf5$zrjX4iQts5aSMan*n-UWps~Y-X$3c%YEUg5}qlIyZ(tkw-4q@(TGqunGl(#@{4XdUvR5s zf-NcgY0I^P3cJrSRzJix1RajqbaAv<_ZVoEO2C9wTR{K#E z)u8$N?Uv5rZH~D*NTxQ9pMRw}5LCvK;iJ8M1IE1HG4}+hwcGhKVgD@vTf z)cO%mvK=@8_bEHpOg}&fqIkgD`yIxmCJoPVpap0ZFK&D zels|PK%mVrZl1`{`i!}ZT3h7Vd;wBw%ngp|9!$A6xc3jHPPuy-D^mqx?{)9@U8maJ zp%RT2AL=mYB}GqEpHs$gBKWR@UT%z@lN7A$lzSv!%&0brU*IONbiO_jZ&^9o?}P4a6U&QRvKHe;ymZ2>PRWT@94K1mhHq%Sw-^hY@3?Sq5;Lbf}SNx2kr zI8hk$N`A2gF;c4aA%v}`nh*=bQ@baaHrtH?;t=in`Z&s0WT@j6`bvZIvv6{YqvNx=keGQZU^ zE!9q_-z#Rua`C=i^xN>>Ve%{vk0(m-x_*x&@@q_diL|cNw7T~W4X0ns%y`^oy6B4P5XGZJFSoa*uX4#ym=knrP>-|h}% zy$MFpqO!*S=%arx30r0yQ(91kQY$}x5#O{tC>=FIBsoVMvs*@n+ODluqYMP))t zpqUu6gR$6h6V8nkRZAR}ej}v5yiL!amg@ zPPw5FUbjz9R(;w6k<`GRl}}$JU9Q7uLoK=A)*v+9@AfB338AQHdFr0hDHmO2pyf;! z@+4oHaiu@i{>fP~B5SOvOCTyTU zEesoQuQnv&-o7~1Sbaij)&JUAaHX_9A*g#n(3;sW>q4sggpSD2Tn!o&Z>gX$^_=^KJxXX)9ZD4Mbr&b6W7->(oU2ta>Dk-wC9{cwo#j|1 zyHM=Q7YgtyJ7df_xb$a#{LjDZ@O~J``bz~zy<)yxNYc~-mtAFA>JZ?_PkIRORd39U z;V3iV1$ol<+vQy-90{u1~y@D<>%fUg37 z4ZIAz0(=+v7vNRkd%*XB9{@iDegqu->Yk^DfIESA0mp&6fqQ@v;79+m=c(6$ht_vI z^)T=&z+=GIfUg5D0DlYo9q`|Q*MNTo{x|S%zz=~R0j~p_F6?+}Gq44?47eP)0@w;{ z1GWQK0^L9luorj-a3gRNa16KuxD$96a2N1y;5cwMa1Ss7lz=iY4a@-d0rvwZfm6WG z0`CVt1AG?v9Prz~=YcN(&j7yz{4Vf&z(2mc`O|Ov)z5y}ZGGm#9l%cDD&QL6T3{E@ z4(tZL^V+*F9=`UK=-<5fo$gZn=uM^9|Eg~ac=GxqL%rXNpZFm^W4m;{F@MPW?}3Ma z-vsUg$^b*ZSq-3@nd^ZmD*ZU{zkpu=t|iQSk>gu|cHm*c6o89xe~0&<15X2gLfEH( z5?dc10Xl)(fh?v8KM%YJtRb!6;QdFy$u-8@4SXK>W#Bd7>%gVN`K^`4{3Xx@90SV0 zBfuBfN&g1$ud<`g_Xg5=necxBd>S~!cLD2ekR?-NevS8YfCoGP>;m=!kCM(Q zKrY8}fO`PB6zk)ZZ4US!z!w3wtIa>Lh5pCDZvtn53E(zh56}X<0zH>;YZKNvCJVpk zfL{SV3-m!oFJ+J5=9EeEPrx+cz5zT1$lqPW{U~rNxB>hy2sAg^JIMO=(vJjp^~`W> zp2v-Nc`oZ1;=Z3r{@MG`m84+0yT^=1Zchy73WIc2F*m1)wd3kiFHn1i6E2MRqFV~CRZC!CZ%x9g$1%nk;R zWtb|xXSg1^#|$iwj>5G&>Y>Btz4g!$bFv;fYCcvE9W%dG4;?pOt%vS3->Zl2GM6zV zFT=GcT#MF2_n4nq9vy>gxq9fZ`7ia*5%ZaP=&1SAdgz$>$9m|vaZzWMDR<0tn%MH_ zIB2=CaGBU~#*s`tbhr6nJ#>%Zm)*-H-U(CB*F%TR-_=7$%&Ya#QL_Q^-6hBF9`klkOK5)))316L*4iz@9{^PnYS#?0BJlZ=}$ER8_1SQ^n~{%vVQx49C9e~HX{OeY9`1|U}>olSHVGAUXcYq~R#j0(&KPPFJLkG#mgb6+UJ^qjEN)UP z3+qa-7~$lwGxDvHywnb7dvA{QK$g&QiL9&E3)nOi-F%X}ue?;qX}K*g+lh%2iA+{k z>zzy4SH}S*(p_+`Qa|P*S^T~T5X9622wkB$l zY&k^gqxoq`E{%Cp$hpKW##(Zdc6U|CxkNIzyH*l7W4G%=&Svq?VJy|Zz#DrpyQPkK zg0*zadMCWBgem2PpsA2^X}>pG9uqHNO$}A8)+E5^N?$fnEILqubVq00 zA~?*&oJ(|pUrnGEP;;sJ`&%%z)bEhBL$*ElOkr@wJ4l@+_lXQwYEkg5YLXxpNv`ac z*>t&WOx7tw&h{!6`-QUCCKg>a?77k}ieE^q&k~rYBvR1Kc9R!!HU|7oWz_7195+bOw~GctJMjcjwI}rLjcUd8GTCraE43+MhU8SryQ7&gidd~e zk?jl?v3g&dq`%q6No%KfU{M*fCR)Qg%N~tWyM%NCK~K{(CH!S~VBm;kN?)Off~STl zpf+jSa2K^bzp55{Uwo8!nB@wclU`259?`1tOpLM*BROsu!WMyE>5fDpr=d3aQs?#- z3W*tOg%@%nejQ5*u{X<{@Z8-uBHdY!jm&`kB1EzunixxD=&G7~lPujMMP7~$GUT-S z7Clxjt$efue%|yX1~`P;SoKMISnlFg2~_EcE)N3vK5kKO6Ld3#zAV5At-^9Qo1uYA zLOTK!7Y&x#TM^_!BT;8t5JZvm4H=AJZ8s)7+*xaDM9H+9@&|#W+USLxEkP2}nzRRS zOH*`bh=Vd)tWg(;>P~x2p?j}4<0jcTw34_m%;hy<=m`!F9IB29ZwoS%602#IN@_{W zcq@$2u?Z4}4%^16 zBdnKAOcq6eF0+F-QL&?E5H6NSErV%YK?Jh!OIOq5OUGNK>cEvC=apSW8?KNa2iiQ??NnHo^hA~j_0n?>}^+^$ep=4)mGLqgRg-OC( zO8%9s4kaetU`X2{Dve-*l2mF`qWHQM<*89*w)bMmJ&9P-2`Vj-Ifl>V zxYhGQR-jZ9Bp4Rn(q|yj`6Q~8$aAeaNAvaD2LlKl7!+7dZugSOu+1*Li5*ZN+t>d> z&Ne&D95^&|i^|NRO1#oq>)FCDHLCCQ158kkOwL;SAFe~g90X&m=$AUMtZFCd`*8wgIL=|*UxH)(^DN4 zDm9tnT3a|jVSg|nebb(lSM#M41_leiLKioV9Zp<0bM#1GU`%hz?uV;rLM}>`ZLTmU zd}@bt^P*_VMeVeG?!9RWosvS)nz_2W2K%v#5w7!thQNF^d`dN6VWZDgse!#eQ9SH% zBG@JA-%qO@z)vgPUwG$%rd?*=%X>ca@4xi9+{z7qb}awg+8Z|B_pLh*KUTc4U><+` zn$w5et8N?X{?LaW`S#|HJ753Rk-vRu^SKXxdg42O`r(leyF-t^@0yo>ee|8bIJ@!Y z-w(g~wJ%-#q1PTxzw7h4?Dt2%`|>Z$oXs96-=5z0>A(5Gw*Ps+UH#DAm;Axm*`Mhg z=^L4P;@2NeNu^)kwPr-#?9_-siaGdPlR3yH@X?|Ep~rf@`P9j8wf6to@gM!yx#?$r z0NV8JJ-)A;!Ce1%^mw!@e7sml9`~*G7%GqFN8fvV*h@?twW?`=lHa9;CR3x5(@+23 zLtkVy(f|7mal66S!uO*!;fxu<;-){FWf>r6^b&2)3#GDIjq>_6q_Oe+ENeJ08M79% z6_EG#Men8j?jdrUxz6k+Y~!!Nfd&T}9B6Q$!GQ(`8XRbFpuvF#2mXKL06#gT*jxDR z;KI_|qb4|Z07>tCc zG_5|ur<&$5(iCF_yOl3# z#Y{+{i?{IVW+ckd+9_$+9MorPO1d!b5T#6!UWjLwf5v>w>?Qs|;*M!d;rb-T*iwoy zxFfuLqn~R&1sDF~Jan;Bk-86)+HOF;1Pl$KeF0ro+EUOd^;4kcL?YgbdaTm0yC(kw z%Gbj_A4GzMuR&eQmq_N~x_u*mZG9dg9WewcBOj%j+F2YQ`xL|Zab{uo#Zpj}0jxb# zUV7n1QF${8l{0X1xi}rZ+$i%Jj|K-C9B6Q$!GQ(`8XRbFpuvF#2O1oBYdP?2lfkaq wJQICulWnBd;6Q@|4GuIo(BMFW0}T!|IMCogg98l?G&s=UK!XGSc{uQY0PTn@oB#j- literal 0 HcmV?d00001 diff --git a/ExtLibs/AdsApi/AdsToJava/TcJavaToAds.jar b/ExtLibs/AdsApi/AdsToJava/TcJavaToAds.jar new file mode 100644 index 0000000000000000000000000000000000000000..e82ba82190a00cbd08d7c66658bde0b03dfb146d GIT binary patch literal 24221 zcma&NW0WS*wk?>pZL88oWmej@ZGUOowr#W0wr$(CvogERJNLeR=l1E-9b=8ye`bsr zd(XAknz6?Wc_~mZ7$6`hAfROD5>cT4Kjy?e~m9)7lHN0d#`$Acz&@4`py_)6 zZl%_Aw?$}fts`GY;eD>NBH%1*>&Cf?Ftzgi_;3(Rd$_-aUmi|zq_x00cFaZDgv+_1 zgeBd{Q3%qg`ii+5)qwlov;KcB5a{1o8=ElvzXRa@2{1Gf@f?DE1Q~nzLX>PWp%LHRfCX7F$5zdpj#6pxSPtE{3)Kgw4v#}fCweC!ZiZ| zGCfZ^PBzoqSZ)Yw0YDz7DfxLy{kG7aLG34qrHCI z!Ir{Cvg8{A!Zsqsa%Vy(5k-nEhDb3ytO>-w=qt`x#i2fy)2w(2e@P#V31^D-$Aosu+E0HqfOs}F==EXqdf9%ljBNwZ{YB<%xe_|6Ba|#1HM4>z7MNpN* z$NDGiF5%Te)1SEM*pZK@^x<;VgsTW_OB|MznUf^)oE(BbW@%`WU^MIlual^D!>tag zK1Xh(Tb-c(cQ*W!fnT{h$NYcy76UR65dObm;P3Lgm^e87bMd3qtN>^$*gn(OmqQbV zhzP6t3=<%1tFX<)6clXieW|lJ7?gc6T0$ty%_GnKzb~rHpk1M$lXMs2l#|LVD}1P; zB^Mrr`l!*16&EE{inl8z|7?B*R{WWtKgr_C$##|=kj!yRe|hG)@!V$ldh+%4K22aZ2 zL>TVLO@&@g)J`&{^k_OAYI=OA4J(0@a3~mxe*7%y@m3QomBdYlXfu1tEPD&2?>I#P zxUh%O0(Q~(x4UPVlh-DFjQRoB^`a>Zs;ccGwds*20B2g-MOI(Nbl#S*g)(Let)yf< z_PF8dPw*#n$LS@C`nKzMy%@~>niefgP{xNQ!i$3QyaO$8pGB+rOtM1^KYzD+jff6@ zxm{~*@Q3}!Vb!m_)x?3dg-wh=kfi~Z-~uHBFLi9p0VhV=DTSJKmeQc6U)`~Y$22OC z$(EamC!TaNY7;EMpH9KAyekX5zJrS57j``!fEs<3_tgvPEA%o40UF99tmKep{`?Go zL5bg2989|zSV&=Q6xyY1Iq+&?xY%)f=rC(7mBTF=OCdPo#1)}F4eVAiS0f=gjciI6hJ-muG8 z&Z>JcC9k*F*|JgOjER0l!%srjfy5oh4Q$K$Wpm^axlnxIvhDtU81#!KpK*8S`dxBu zvqxaRA-WR15!wBKd1QoeZ}E#VW+t%thJ3(!}^Nd8NscBEp)wnsnRLZr&61+V#Xw zTI0Y!{LS@M9een`fdaRWnThX@6UwyaaHG?P$B(jajkwn0JePA88}Z;}#wur&Zcc;| zVJib3+hX@ED8L%yNap($*@e4Uk~{vdOq9UZ`z%%L7j@|~tu%h7jdoRnI9iPkgbZmw zBWZUHr|NYEWDQ3`GlJ4x8nIN_Hmc1@WX%Q1MoE?IN1ZSmZd&cnB~4vZqOR|{2cF{F zB6gSbQT5zVOCbQ#c{kj-jk5N@)tQCATRW#glNuz}u_>@5H*bPIcVWtDy~a3`Y9T-C zIxp$s5h@>?s|MOB6fJ7_0T3O94R89`n1#QpIjmd__Ts=c>d8^4U8HT&eyZ&7v?>uq zYZT4MZzi|Du)fxURR-6@{Wu1twksgFekz{j>-nO|;*sEodcxqK8J9~xXjQ*xhi1$Jd|KjmiFX-DELEx%I;l9?@{XZK!^h=kP=_o{Q5sX|+1 z#(FqnWIZtJ9*7i$B$YiN3D>LarIXexg^I9IRjFJnALVdqRuZb^0!gwr zI$AFyD;5s)L)G^0ZE;l;qW6%BGtkt4le_GGa>fob>pm@!)_in(^f$Vt9l*x*U^Y!k z`TcekF7%3ZF)@JW*zWazv?06p#-(#mb~O5Z0P&N}{94#@|NtSWi`DYwmlt1o@E$NUvGXQLG3exuhAL&JT+lcwPQ1&wb+&y>B>yVsO z^qf)|kWZPNLN&rJO3}kfnN0rS`>)cY9K|b6N1Imbg-<$ah+i15Y)XfG73)$rx^wrRT!lkhL?<=)2&84;80((&%WH+-9 zo|+!#WIFb+wEX$>_y)2Isene`a6go1muIRQ$dh3hm^IV)hUoeMg4~4V@Ki_;=z)&F zDU?qNvaKVn!`tDio%^#`_LR$KCLOwbp#&#-C@X&*+iv4%dw>%U;Yxz&GV{7As+CBp zi=i#!W;lL0OH87b>AjpPoxpHAI5K@?LolEk&F-f?0X{5*Dy{h}HuX0d6I$`obGE+m zPCM$g$ZBD>$~y#H1YU_`afZ6nu>@QB%qcrAKtFnuCdo_@M*8Q91xDHYAicYlI=KnC zZTpI0g+NWvV#yD3(xoq=E7UW;&QPZEtX8FjDws#!cVa5jN!9U1-@D0HPifq2+WN<+ zVzVmvB*hebD}Jj^e)n;Ck4+vuP1%W*jVK+hoqy$|TJ~bW1`G(u;;$qm{Wo&(ADp;5 znFu}o`{W?o zG3UfP_l4{8b_KHoNYtJ>98Gki9uYCZfOgD)CngjnO`Iem6xB^Qh+>EleZ&cm5}j-X zMvcd6*m;TuW}O}b&8a4Pr!Gar$*5V=kq3M{D_~V(qrOWChGZ?D9Q@qcd2N5qeWM=3 z(n@4PhcyyiwEd)#yy3TTd-E!!z*2`XfC?*3ulZi2^0B}8d|c9Jss6zX;}}dKzxlUe z+X76%S|m7dZWXI>vFV9$Rl|IST2$##>EXe0yH&FEjHc?WXA0pJo7LEM-5Boyr^?LZ zWyJuT$FbU!42vF9wnMj1=%78Yvw;2&_HyZCrF*ayd}#W(qi{^AWe>lk^}5awJQ3=9 zkBUt+wFV)<1y;EhQ^KkDAp4Pa+I^YEz9*-*Yfo#Sk9Z!n>NfHV39X3jqJyw9reM}~ zrBh)w82nX+=JtR-k2lBU2o-i37TdOFQ!ZWg%z!Zw7b%8%>6z-}&WcI~wQBfm=5y0x z#jdJaMrAxwgEFqivt30p$H0-lrsR7k+rcVl!wjfaXH zrdoMkfOK>I!U@lc%lLwj6sPn>>8twstC-4R1d9DOqzKjU9l>>uq4r)DyGtHce5N@I zi5|Hv$$faIgP#$HattV*b0caiY~Uzk!aYL)IaV&o zZ>bPECkV2Hx@jjU`z)T&*ya`B&#pkHPnK0Rf; z3d%bYmofXttzB}83p*xt><@iXIMPP?5Nb3b z^ay_#L$26`#m^*QAhpbiOH#tO(q;Q8RM@`ln9Bi>}beKCuc<-nx`2Z$~c! z0w7$}LJ{!_hndx8eDuv!rm^*rh{+EzZ9lYeTFmJT{@#01u^Bg`CYa0Ipe=(|k*5_h z4!-qaUYlR}(Ttlcd~Ejw9+3`*w~@GHwnB=~S)%#;9^at*8&k(i>!uj?8x_3G2J$&G z0T9+6b%#wS4tUZT*^8pqYXsC9_+qYKq%dth?!p~|eTsMHmaWeyUtu)71zT>FQ1loE zeb|4BYW*QtFO77$y;|@;VBPj9zf@KqQkD-^$45-Urg!+;-{XPd!-Ii*y@V!NbWJFQsatPuC+X>1u`?~MKqqAx^7Ywb2qvKDpxkilgW>(e zpcjm%GRP6FLvfXaFIbC}Wi!|?F;MQVymzmU(@!7~Nm-+=fjQjh^KyZfJSZ$76$>ZL zBY!>=Sg}?Q065Rh3{yx9C($t{kWgtC+di7S;F-c@`(mHcvoa#C+rbO+Jw3)09F4cE%M@&Lz61RpHTy$EtEDAQ>|AUfP-;$C`LLi_J zbs!-6f73wzc?$H8a~%U~Yhi0^QD<8tCkue>KRN31g!Ix<>-ugxu@s9DvmPN07t0uA znUH8$7)`LAh$mM|$X4i8vF1{!6fdVuEt02_7xhQTL(^O~f`IXF&M%iZGe#Sy_3j+; ztQt8rPM#aF{odJ`!x#IF*U@;h@BMbNc3#0+G-4S$B99;t2#Z@}a@S zrzP8WuJ6YF&hyQi-iOcEj~;RTEj8Yt`syBO->f|0pAG>e_-OgiiBG;xam$Sa$^oFkE zBa^x_d(`6ehOd*8KXG$*583`1Pw!hW(ctu^*Z#TI_q`vW^L4)KTlleacEpGGnG2TF z@NlAIEpLLLVqdPUf?qL|uX#3iEPsWtBoHgx-g-&xM7U>$UxDk|G+9iqI)QHq?k^dt zDUzMCx?~xu8TeySv!h+vAelhVsfwX)=LXh2S{ZW}dXF7UVX#pDj zxLkhKa7NyV6E8d(eBjTYFQ~3;dG+A0WxjL7p;_UZh53)s_j++!#>3JVJsK~M zU5lZl`49dyT^9+ZeG?~6NdSQA66bz?f)9Nh-n}q~*W>%L>ZP#j@#{@+PM0|NhQW&) zuc*Z`vOfi_JD7J4o_xo)2soQO)1%D7ajZmU(MbTAd;Ze{5$dPvdO_jb$9&XmE*siyXQXJ6MZ&}o0 z1WK%T1MD59xfsS|S}0<$)PTd3wO$2NnY=;rmA8ZXWL4c^CC-Y3 zppYnJ;9Ly({-V^;5SGBu$$$puIaoyhyJV4_xvGVhx*!oiyta5w|J#(4LS0o{3B2E* zSgyyH_BR8+{j0R&8M{Dzv9XqVl$Kt*OwpBzy5#o9M8JiPS@YU-4Mc z@?q8nT7!IO1WzAS(62~`@%8dR7_{lJheb< z2ydaoJbn7Bk=iF)G*a?Yvi?Z6_4UMZM60;l46eV^7A_-$g#H+T3eEX+&1L9OFH&L9 z?i*Jz@SxnE;ak70qVw=<`}2?Tb;SN6EL=1rYvf=(#=nmSk5Ua?TfexA9^#qnQlv55 zvB4omTHfi9-hfW8;~87Z#8jYPN`eXUU>}F+c(_x~OXR?VIlD5U$mcg#7DsrGULHC& z?_xWQ1^0TBFJ9@p?-_`5yEvI;q6{OLgd-p4uJk2Lc0Ayty3*)fDP_7tHc}r%`c~m0X6r_U) za2M9qDJ0GH{8UJ=ZUIC^9Xk;stNPEx(3(JCf}{#UD60GOAQH&FzC@C$(cq%-tkDv6%($$Wd%l2K)adiGHK(HNbbpNK zFj38rx%fQ;$8`B!d6$)u+X4zQK$iqtVFGOf14`HtIl>325O8+amSG7?0^?=4TgdR} zn+K#-IRayVEm6mmG=jXOH1geBE*TzQi#nI$V1Oan}c?PSjm(J|`-dKB(;VoK1K zNk&E7f+$PZK&+9xySeIpQ^yo|@DR>J*d`(Sr@Se9s3+t|2*@0<+$47%2Lt;GE*t4} zoXh72vRa79xJ+Vx+-deyUcs!*q6DCVbtsYoEx;!%Uq<~VV6#PfhNGJ*;#S^?>XKzZ zIr61ecyU&`UW3cV(QfJQHjEj{*d@+P~ri78W^o#U8ATJ9TW}dY&c8oA3Vt39ltp+ zZ3_2eehC8r@%MoQDkMu-{&SX+w{BfN@g{=6j$g^-_i@K=KM=2&P(#~Vd6B}qobz5z**v2>NDQq)2ANm{HoCz32(~Xm^CR2ERe~^3jlS~CI4v!Y zQoZP#UrxmtV&oei$*bQF`vJ;o9aNL=Q=Ee`Xc*i2>KRtOQ9=U&Jl(FIt@z8+Oj10tak@m-Tpu!3Mo$- zlUJZ!tpHI&JkpbLa*G-|{HbnIW?Y9f(v*>OiPR^B4)XR`uH^TYuSP`ABwMN;VA`TU z-$cr5A}x16LRhV*zQ+$CZY3&K)z74!X*r5UdN{{!0Kru*-b8ysbdR!c2 z{Ubudp2L4ASRHoz_N3ETFo~6W1Nzw9iX&g%p9K) zmXkI<;33gwZO9D1QFT#B5Z8w~g1$`a3}sTVa3Ch!@crtxpT@3Mxkw%-Nsch0lyi4C zxR|s##*{8SqBKU6CpYAlQ^SDjr*KO&$qY3wI?zoT{wSU?8hN}PfZR@FkeI=4VLR1C zR_;~MYWB1zY^#bzRn>46JUFQs4Y~e~%Ee`^+B8KcdO;SZl8zF>vZnp24icD(*8Nz* zti-6~-Dga~$b*Wiv5HQS>)2kXv?wvT#8?V6sbRz}Dp&MZ=e-J(*<%+}1&KgHLP}+} z)yt1|TQi5IbxbBs4a@0&%@@$0(~*?U)FP^_)&wV{1*$>s&1q|+c2@`826qzo$uxj} zprlfcp!z==i;C;%_LFT(|4f}KI&K6IF@_R22lwv|so$HEuw-X0p(SU~+61z?IU69h z^2)I#jgeC(9@uN91_a#m3pL!FB6+c{9Dj*8~#kkCYm z3^SZ^CGe{4vv^e+o_M1gCptDHwBxU_i<0+a`o;fj&<*gTwXm2%5A^CVH6%lsJ|Up3iAS^k-q08PvcD7g$P#Q!`O(GLEmaQ{5|V^xvbx zr<2-ZW)-Ysq!j!;-VSyz6QAh!5_F*6Z?Ft{m{zem6$$9aD3%rMrz_5w&E|8>sMf>`Y)GDzYe?Bo;Y?&UQ6j&`_}1z{Ja?$(&RQQ6@dwA-T<(olY8Oau-f|VQ$rkwb^IdR=wu# z4Q5vAM33JwQ#0jwY|qQ5?9q~0JW(aaK$&Dm%V3K^+>I9f@eq{_Th-90cPO&)f^<#7f|2)Uv45MN98U;4QEGMoP z;~LCVoVq;r2|7xK6O?b^-ybr1oV(-SAMO~3xf-FRW2q#A7>52UpT23QSrlgh}gMNaDS>O;9*VoDolP?rbq3Y9|b?cUfc0n zydWKdqx7CoC&MBGqoaMkI;XTIfa&BzdH>k9d$gLT@{?h@684jM@7TnvJ~K7ZJ>x`c z%2szMwbh-?bdQa7DR*tjR(B$`-5p=&+&wUpu(|C`z$ZSF;e=+hGn}Kt z9acy4O_D=zNUh_|o%IPP#^ziu#)Ktp@zHN8njl;v1Q=8w7y(8j{vm?VxTU+i+n>!z&-2>1_y!Y6m zlZOotw~z4^7(%yItSJS`kCycsmppNziQ1*j-zl5>s@zNT9BO0MvRG6p*hP#=9b*bK z)A*0J&eiP*RzI^X*hSeX7p590>MJj{&LPlok8KMN*29%6u#1fzj7@+3s&8KN1f#Iv z^=F%v-ht0VJ)1~elYTcR$+qg&{=ir*sEgiq^N^`Y?~Y)D?XAl^9;NB_sa^?v9e={KA0_sRFBG93$79h&|vJh z8BgodeSF9H_s}2RJpSyWvbT)R_Im%(RXEbOR!QAmVV$2ci`gsuPMIe&4e0`xQs9l! z{7MV(!POl{pIrz&oGE#DPs5%59kSsP$NO2a?^+G+1BFc|Pv!wK!rm%^4*8Jb^=)jr z#i)MV%ZAJcBPu1?DZ2bilq#A2UBALAEIcLG(Ni@IcbKFK{UoK?+G?_lesU}&PdS>E0d*wH@b<|08ZrAc8awcy28f$t zf2e<~I487Mcn|})ti&soon}Awt`SN%94F1*kKL@GQh$cjTN?jZsaLRDbQB--+seq> zWE3CxTPt!e^xF%vPmf)Wx=Q#@(OnLySGrz6^6iFSt;q`ZtH&-b*(buTtK_RrFNfso zRxgLd>#yFMo@VY zUA-?7Y41A>Zx_J33=*#sy?V*FLcMyaw*$R9Nw+P2J*0a#Aii?_u^_&B{olZ!pwQo# zw}|AQq`SG|ucf_wiMKQUzCZRx{Bq-N6MN;PUe$Vg;_dKn0py?DyE{^^h`qiEw++3% zDYtrl-xPa2px;XUGjltq9Q6f2l_wyuWSfY1akoTv^8G@+2GEG0Vq`uO{)LL3aBj-|AAX49 zuSB;KWS)& zYMZSVBu?7!?8wfqp{P#a?Qg@py}5HUvK;UkBYcsn4*O1~+>U6_egDuJ_Z`l--5mGr zQ@tNir}S04wH&@gXb#ij{1d%hjAeG!iR7hCnmvErb%$}N&o3sYu$ zwn`cIs-iQd<2{USxrFAAW7A3AfeOY~b|d{9V?L!NVEM9rDX?VAXvJuk+9RoNi z2MBw>;l!Xfmmcx8OsB@CR--44-jC~(c+1w>{mLP4cmV2)%Qo?K_BxNwdY9HkkLtih zqy67DX1_D)Ip~eLLwkMlK)2tW{1QTDFGLC@%sNx;Mee1~?Sy+uak1oqzvXv+Mg zA@b9>2Fqs2bHqH==hB+~{d2;*YR*BmV99valG&UMyDv>eDb< zpF0*d;88d^Rfs40ARD%b(oK-`SG0YF^@MD+WvXmjgH=ejn()%OA;tyCab0`*hUPGJ zRis8!Q`V9OO|+M;`GkazdczSikG;J3y_7Ceu*wkHPl0?`v~~dlI;twr;HSJgdjy!& z`y|mls(Vlc@rNkUJ;^FN-0SF&i>mj{=n2j9`h_Zb7~2b~lAX}Amj>nwU{#AQ@rVLZ zqjgaqX*{j7GiDz9yGA)jwZbqGnlj^f`v>Lae8i{UHE9M`lM*5jze`|Untv#8ak|II zSp^nq%2wRWo=S0*Un#R$F)Z&d&F)K@-)UmqQmYzycd-im>dER+l(x&touzn%a@$A-b-r^mxtZu1?xUgv6e0OL1 zu-%J57zn`^&2z=_-|nm3twm|R-mM+(_za`zTLJE_-K$-CC0MM|(8ANg&t|ErT*cXe zXu0v*a79*(?InqY;caqN3>>ULqtpemm?BDLVcSR94cj@-gmO)itpl^?E{GkvNi z;kf(P`tdv13#sjOpKJTm*3~EV^HN=gKKfAc^jg{kCT!p|Vn5=iEdSYf-AJcCZb$8t z{?TEkI=)O%-IMv0_qE!%Ra|Tap7s26!^KUX9w{Dg(PZ6xd#Tfg#X?g{@(N31+cPcHBk{>^Xi1_{Co*SAz*0<(6G zq?p=C2d}{ixqQh5rQPdqz_f3|={tZ*WD0x7m z5&bqg#0_?HG1>)j9fH3zR#j-3=g_`(p~XNbyDwdz zhT$hAoR#agR(ht^h;chB;;kiPu#e=tNRpK=&Dky(Cq2Y=fPVF})hhMo#uXsZ+!eR6 z1AcuA;>tGArA44ai={bnr+=q(=t~YMzzJ-N#kH&KPOpX`fVteSiXqcr1BMOx#P;LY z?4ho?10ic0VaDGixI+95@sXN8rKUkiv1Z{bY%UaXDU4Eb#9wI_TVL{mW##d|hM^;Z z!q!bAv{cW={e&EI16t}fM%%rcm8@r^#!~WD6WyyylVZ#%#h*9bCwY$#lfV=v2*D~p zIV+vZs`?B}su6H6?3J-D2$gUwZJ8D~4a?ewR%=t45I1}ikcig|na%Gw?+ zI2%D;wl(6_Z|IdPBwQ`pkTaWVJY2os;5Kyo%VT&=?H`4DfKM^~d;(_y43D@0J_gHY zSf(BLZ^>-oU)k2-c9vZBOaVYma1SLhxaLrU5ca9x6cR5y~Yt^M##E!Fuh z!d=4o%?~PCfxa#qU8zM3oIL9k;GjT!KqzocFmO#Ea7`$%tsn36SvA2;0gTyuiRj(`d>f)&(K=6H2dhph0mV4|HqBCN_lJl zFn5h+pCsUGu6ZIo7A%IZ^*UF zD7UKi90vVh?qUu(fZVu147R}9l{cGGWqQy(xCI+!FHf*mtGo$rSaH`i`L#|45 zMGoQ8)$$%#teL)lRUZ3}^nGxtmO3mKRaB`o)v=wsR|z%M%Px&Imqn`A zYWDS8l5>~Q8(>y0T{1VNY?UoHWG}?NRduu6&M#2`{G$(nd_+nLuE7nHdviCcr={~6V25t&+ ztKZ<<(|z~8|A%h?23eMk`>*k=;qR|LbpKzz0Yd{LD>*|;6Qlq7FQGa`3xF$vHu9~s zp`piaV{UhCp(t2xL}@Q0^n+C1Io#w3!v50q>VdjyGq~Ta{OXx`1sJ{`-UO%mkYoej3%-rK_7JQ#LqJ% z4+E}>Afb!UDsU6)yFvm{M^(M(KaathrgGy5YFL%8`|-|!X8ogef>Bp@PO>;F#W!t^ zE)%!Yuoz~!S)<84c+cxto_l#;MT=p`)oq)dMk0h?l>sM1r`j&WDYH+pr1yX;$Jb5& z`epUTi19_Vk%KkdnD$U{{9;7K|@- z4!&D~?!@gVCxyno-kha2*`+ap{(U-cg?E-NWQ{&%Okv=~^g7Ov%r_8xLC5%jctE%a zzP`IYg(=!lQMeduL%Tsb(4esrU!YMizkV2^U7~r&g>VK{;Pp8*%OFH}1}LN)h9Pt0 z6Wcx-Pi2y)r3xXoGu{~)WZ|qw^xJt};8^b5HKRMwR!S<_Vg!wP>>9)-t+~7QgiVVh zdPAG$7GZcw@ihi4Zuto>7VeMOly%5kP5_Y{P;ITVOu;Q_H5?xOh7+BVHv0EVupkk;ZK&*WpEzL`Xp99 z6EvjVT&-QSm~Qm06}Kb+hXbNby#DgP&D(ARULN zI*#fyOkz}iYt}z(8BRCli(wBP(lyaKDEV8=4f@ooxC;S%CDYs|^?1ZYn9OFmxEN0} zPxfNNW~h3;(J6Hohw~>m!nKlSW$HQh%sm;hm3;RA6&r=s?RQA;q7v9Iw?l)S?>{Hy zg~XD$brL@|3jm=VVCzMPCdCUD>75pn205BwE?YCR0RK%79>px-M&oI69D z_=|)Rcu|VRXPks#8bGj(A8m#vT?UnX?v&?#jG*)HXs^eqV3I0GzQ8O*R_-poch_ScVEzz@#fqJy*SVZ`8GKhz{hB+Ep9jOvlVM zwGo1m_t?B(nOez60o0EdT+Ce6b{?#^IHFDE^lYBb@prbHWCmKew<~U3uZB^Wo@je~ zq04{wai3)QQ0+ueAYpGc@Qci4N+vt&rnnaL30}CNB+v6J>#h@q?+fEKIbTXUg~LT1 zlIFz4z6vGb6Pk~Oi-l-XHY9~+|EU?%Nx+uDTindKo0Mk?BSz<} znf&~9-YmE^-#ESw=6qgB-3TJ(6ls#rNaDpMzuO^|B;*Sz%7kHlmNf8T+(;#+zS$u+>Xhd1t3Q;-46nwLIXmBaQn(4vSfInRnbas%AY}h{fR{`GlWtRCilyb3`#hV z&qd8=jc5CV_^7suR-qPlC?Me9B4O^F^G5?1b{c z``W%l#eG%k=Rs?>{yYj4c6UlRu*4c2Mm%zUMB- z`8Sf_lU_GU-)f6?u|R#eh6hxe_s#=WeM9V1I%qthY1MoKE7~YIArzOQPcBh6Aty3f zJeR?n({zlxY>rcIfw|LKxGVj@(SSZQ2T?9i^=J{jy}F5Ol$OLeT}js(@vk+pZ=Uq2 zgw)f;Wup^&q{(UxZG=mZ*SZKv31!J@H!7ns|CQ+V7q(meza$&}mB?iOsmLig894n{ zTk=lYuwD3Tcs4^lS;brDhb@-ZjIr>`U=deNu3G&OFO9brGk|Z6(&8+R|HIym+BS|~ zT>BP?2hGsbC}9d7Q}^w|^*MLWZMo}b6)bDo#Gb3x_9gUU4AqKrPMbn<>j=1U2fd#+!rLf;kHM&Sqa&$> zL~sR05M$^5BmCvDkYy=TM2}hxkvV+!?tmc4A-tEj(St-kPK@MJo;2oF7Rc`PhmYLp zkp5=nMIG5=Lm+SEHwVS+ zu(oVJQ-PsawXG@QoW-?_fs>2D{w_$L?KdfLFZP}?vEKAm`? z+{4C2nNTmkvCQgYhkP&~)$xp(`u33`)zmx34HJg;7?q7P;zVN9GNO2l{6*q}35L;P zg5+TaVt>O4@vkL{%OG6+wR}hqD}flQ6ER!kplh*R+BYdLeI^}f`kPMGRj(D9qFs`t zlY<4k+fG!;!h$`{d3BQzsXQKJ@KcqpTY9);r1*PD(9KG$%1^9=xJIF|XV1`(Xf$Y3 zygYb@SA(x7D4j>)(3Fc3vzuzQE3C?zH6N(E{74!?*qXfpj#y%2TKpx8F<=@)tC`TA zUtDn%Wm>!>J$7eix-{QvdDiKg%zKsAJ4_yrQk&ek zu1V!ka4031F)KU~3Q8i%zWtDo2HWOtzrLZsauPQom*CEXcJuuBW5hb0Ij{Ifjiq;W z@>Y_bSlx%|F!H_yjXj{qGO?5!cF)jPJJ6iQo=ntx$%NY1P~T+vut8*=|Wtj``y^rFg<=$6>`tohQDtLJlxq(fUXO@m;VGX2 zg%CKGubU1B=%eXsA7*KFR{2l9=qX?WXYe>%qvg$i=aZ0TzO%4$b?Wk&Q zcIG6=+l=*O^ax|lYvxl_JARI!!{2ZQiV!QqzsFD)Q@3 z4V&VM4ZuHTn^rGyuY25`iXt!lkW`6|Dx4uM@M+<}I%8iH={wVfdfcfEIV`SNGohaA z>B}!@PjVSfh?Og5WqoGi&WaiM$7Fp5C3Cq`|is7 zY|0fQvgrqOT^vi|QC=fr;3YW-Oiq777Q8CwGY~gBA`9LTKY~A0f+^gcf1Lmp!+rho zNMG8jaQDfqE3VC{$A_v?;Rto*c`25RfMvtxj?9RP2x`K&M1re0FU!A3t&pLfr=4Yv z82BW&VKLs=wTqvyFMbx{e6PY8EB2xteaI^Bc~A}7cY*8Y(>pYp+glreXPv$Ll2Zz4 z;!aI1z@z78nPa3?d`u<$0o{pvl;*lF7-?FBUF{Ae$<3}+rxZY+Oov0-$nXqV&w!iI zL9R`oEVXm_j7_^ktWUH-qUNDLew-)iA(=baX30nzs8luv$$5~5B9VowGI z+DTpGmBir<0)3LaRV&G9ds|92yTiQ<#pBH=7iLDj0l~srGNnpY;T^_|Jt!I-)1&0G z-7LTv!B=w7NK(RP@KVG;iT-z_G{V6e-Ps(GFUI_*{;j5oqtjoja)MqfAXZKx*4|dF zXcSV>fbR|k#hODqBRdP|N^jjaoI2)crmB)-I(xu-p9G)q{2HQ1q+~IKgU7pel)mA* zY77R8ilC%s71M^50Pv;~Dril3gPI7Ah)3FZu%%m%iL}$GIlUI}Ip*TpX3B}`oQJYk z)ZAzq4OOC}W&k>KuKbTmsf8e9*ftbGI!CWkCE8qz#b+=BXN{iR_B3o)v8kJ_`gkyQ zAV^-hi^1v4;%W@3%c*Ne3xKRF7UStjzpF6*F(E&Ck1)rmFt7H^VPQ{@`a|!J;IyNX zFq7uySU-Z1n?N;ZW8&V6y9V6~(`4HElZ~~fvlyybt_mX&g(}7r-b_GX${YD7*W)H* z*hVMlGKN_uAT5@gqy$WeiP7}gj=A*mXua*4j3x5RD4GtTLLWQdbYWt05ubGM&Ezr- z;#F%g4px>K8>gT7;d8p#P!|uht=(S4n;>kS7V>JsfrOqY2}DEAY7onC)e!EY ze_D$Be=DhMoWzZd|6Gcjplko6i@58etDc;aGN6cxtcxe9!P@Bdb5a10gLNuj^_`9v z5&(<}=Q6a4-1XQI`<@OZjMrSOxrDJbavM@i?=Y&O3|ax+>$;TRW0ht$9%TqxMac%mRosOg#x&Xgvk(abpBFy=4}H z#6Zsp&%kA(KvaJxya$8d)YEBWWv*;V zu1(hp%+|WUZw7;)WLZhMoftz#c>1zygtmAhTpBv+g$L{B4Cf5Wce*Qg%Cuc|iUkjf z1z9Kb?roI{Sw&UB%^y&(2TRZpyKv6w1f>Yn_`R^&$v_w2F{q4U-K*b=igJYulh1cy zJ9A~r$yA!xgy%_dm1M)SE9JiH3=GPDG?c0sPA1T(^Yjj2L8Ihmv;S>54(newvydk%BSu_(U zU0h>(HVMD&Rggm&&AE~|3kYfJtP-82%uwnli80=(U@qvB9Ks3BYi+ry-yF=8LmdZf z(WIU#i<%?C)tyQ@R`5AiB| zx&y?w#sG4YP-0ew8@prQG(Cf#*S+qY;bSU{ECaD8>tMzwoaW}GfK1~m>Se#afZvid zGuo$_GduM+$v67gbjxGbO~gbJRoYKO!DKyMR=TpIkHrWhd2etzEVaX)&TtW@1ER(_ z)+2#ty;AX!_#_~w9ESnmq*A66eK1fqG%xc-U?M#`qddwNg=gO`toMRkkqgX3Gif{s zi1V)eV#j@YuhNd&Gh~aXuxy+?) z;3fV{{~3A(TG4ua9H)mVNBt11o)>O(3hA+f39+Zy6B~$9N~%pjfMyzy%)(@c3R2@_ z2YGh*BIIMDaukZpC@R^clP>?ta+HZ5pQGQle>&P)jN81+ZIzcE`|+Kbvydp3Vk5 zn1TKWGmIZ(YiDF=IDvlbc`=f=@*PkQk~-Ym=`0=v-)ERY1MK-T?c2N_j)$jl59MCu z%lQsZyj}Uwzdw0z0XxO1I<3iqtT_G*+PBWzS3vE33@2XV?BurmkojE99dURy!MskW zGK@H69%Ft-Q$Lzuoy&bmL3&F&xU!M(A?G)(P;MCv{hS+Xj4kf+_A&SD)ckAt>KhgP zBlt1c@TicoAX7lGE~MRm3yFJj!n0AQ&qUMXi5!wSO61V;a;g#^?a{u zwQo+*MYAb{bvmpt7v-)Ycd@H%p$-xML4BN}t9`olE^b$veg>OpnmgDhP3!EDDO~0= znADAg*MZ7T1s7YT>5MP zdj2$wX^#RNKRi!&wA7ahHxP9tT_gXZtRPsjc|z74=ZZlcu!_y9`Mczxnt?5v z+616!5CQag;16E%3$v#iMLcPQj)!C)6gr3L$iqBztpo~t1@KmsG#SSCw{rM0A1JvI z+>K_Ou87rpn^R&kj(4}<_161X(90feTLbl3=Tn^7@HG_T>-5Ah{!T|`sE&XY71RT0 z%hF23(rf<4*jZM(zqc;lR=0cIQ>@d7o|v5f@{Y6tkM6oSkhc_3egtp;@n`a#n9NX| zIT7*BMRa38ys`5t5pyvJ>Rgin!Z-G+zXgS7gBaw2^>jJ5CPMPHKERt4uQ{H@4#yjf zm4GUp?@=3pKyVsRr4%tOJ+VfQwuOmTjIDAE{PT67v;we@zf+zW$}ixV1|sbKCXL&v zt=hS^Vhg{x{%f7VIwfLp7LlUvBU04gRJv@OluVrEjQ^-Gc*hJ|Au9NtpWgDwC03Vi zS-ZHrOjfqJdD~OfIeRRdoe}>%!D_l~>PgJlkrszyxExOuLF4A4M}2{qoY=Ah|}RPWlrG;T?=DQN83p4rQdkb zI=>GD6ep^-lC-6%mp!65IdUMv%m|rl&rp`4%K$rdkP^4!whf5M5=(-ax>_40lWCQ# zcd6dNfK}(dXu+G~xoZQGb+K8Ho#$cKlZQfc25>y9oYN@$cv4exi)H!U^R)9eIW|B8 z;VxLF8r77WT8tTTDk@oSkrbG9N{?N>H;HqveX2{sAuJG|u zxNU5dIh$9B8CWEHpFC((2Try*==&J*u49gN#M>I$65eBKTaoqWV;U*troq!fyGOyz){>`A1TG=@z)0BcN#ElKqdAH+)0=fjMJdE3Z{yxTJMCYUiDPLf`?73*kD~ce*y=SU4n@x0!2`4x0q_0Q zl5pO*p6WlN%k6`1N+;=g6N1PdFb8%h>AtlZO)caJk1J!Hj@Zo(bSd$Cydc3xI4b1z z)DiX|N}7=MV(!*~fpO7X+Mqk@ebXBf{wVSow7HKA&Yb+WZ~uA$aDTx^DMXyw8Di)9 zZ%*;2(yt3h`0@+`*G>ql_fe0gjmvBBR3-f}{eSfBMA(8FUKjJH1|bTB*&8n51`E)) zlc(?->}^yM1X;?Vjk@DYsEh1!paS*7uS=DRD+7g@U(_ufitcs3Iq;oQ7o@Z{(r|UiqK@jv`&;6@ax$gtS#ScU5mu^yf#G7bfX2NFfY-9cSwW=~g z)!H>L_YG^!tETG}5jPsHG|kQUb`mH)ldc*1ocy#zg`FMx6OWI%llr@^uD%}eje}Fi zmRN(^E*M3F8;%?S>o?(6?2i<+9hCrb4{w^fncUV|4`*&a(dF8CS>XI`pTR9hZLc^| z*;R{=-an)>k7iCTZLN8P&}Ugu)P#qzr7YM`ESEHG90khFqmBL1EPNLzfDm`h#O z*@IDP#f_8I%~kEJ7K~KIk%cx^V@Zsg~w``@; z4u$4`G={TArInpPzKDJ#3M#>M%zt&}B3@X;hI0)j ze);<^E$$x%-9MZDvqSf?!R40g$Ba1s)$}K$?(c$M`e^^yE`w7e-sJza)BYLq?*iM) z&%jlKOH=I67yR!+UHWRTT3REu{KH=R?{P2vwO6e#N7#Ojd-X+g^$h;mXZt55*Kgn- z7=O3hBJ+^#tXDi0#A}KCoPKe&BBPLPYgec~L`5GN^^1EA8HFqfyFxv`^Uo+GWf(FL z+2eBsyo2|Tz$>c{G78y0bA`&p|2yjUHX39$@*K4*_7vxTU?b01Lq;P{Jh?*a^Zf?> z%QO^ZCi29HD<+=6Z7O7n5qSjb zis&x>J0kLU7BUyPsCvZ}k@*exml7*76S??z#oUzrSLV;9Kx80tT73mvRQ(O`rz9Jh zh@6UD5ig$n8}UCRX2>CsQ=zL6OX~kch~IoBkQ0up2oQ~5(+?E|w40ZY5+Qyx(63zs IYF*y?ACA9TGynhq literal 0 HcmV?d00001 diff --git a/ExtLibs/AdsApi/Powershell/TcXaeMgmt/Interop.SYSSERVLib.dll b/ExtLibs/AdsApi/Powershell/TcXaeMgmt/Interop.SYSSERVLib.dll new file mode 100644 index 0000000000000000000000000000000000000000..1d0ed0e68798bd633994d73c035250b90827bf50 GIT binary patch literal 9728 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 literal 0 HcmV?d00001 diff --git a/ExtLibs/AdsApi/Powershell/TcXaeMgmt/ReadMe_TcXaeMgmt.md b/ExtLibs/AdsApi/Powershell/TcXaeMgmt/ReadMe_TcXaeMgmt.md new file mode 100644 index 00000000..5789b80c --- /dev/null +++ b/ExtLibs/AdsApi/Powershell/TcXaeMgmt/ReadMe_TcXaeMgmt.md @@ -0,0 +1,40 @@ +# Powershell Commandlets for TwinCAT ADS Communication and TwinCAT Ads Management tasks. + +## Prerequisites: +TwinCAT 2 or 3 (XAR Runtime or Full) +.NET Framework 4.0 +Powershell 4 + +## Features: +- Read/Write Values to Local or Remote Systems via ADS (Symbolic, Raw ProcessImage Data) +- Start-Stop logical ADS Devices (PLC, SystemService) and setting Config Mode locally and remote +- Collection Remote Target System Inforrmation (TwinCAT Version) +- Broadcast Search (Browsing ADS Network infrastucture) +- Adding / Removing ADS Routes +- Session Management (ADS Sessions and connections) +- Browsing symbolic information from TwinCAT Targets + +## First Steps: + +Getting global information +```powershell +PS> get-help about_TcXaeMgmt +``` + +Getting List of commands +```powershell +PS> get-command -module TcXaeMgmt +``` + +Getting Command Help: +```powershell +PS> get-help Read-TcValue -full +``` +## Documentation and further learning + +[Documentation TcXaeMgmt Module](https://infosys.beckhoff.com/content/1033/tc3_ads_ps_tcxaemgmt/3972231819.html?id=8731138690123386389) +[About the TcXaeMgmt Module](https://infosys.beckhoff.com/content/1033/tc3_ads_ps_tcxaemgmt/4130762891.html?id=4912948515382920501) + + +## Links +[Beckhoff Homepage](https://www.beckhoff.com) \ No newline at end of file diff --git a/ExtLibs/AdsApi/Powershell/TcXaeMgmt/ReadMe_TcXaeMgmt.txt b/ExtLibs/AdsApi/Powershell/TcXaeMgmt/ReadMe_TcXaeMgmt.txt new file mode 100644 index 00000000..32942412 --- /dev/null +++ b/ExtLibs/AdsApi/Powershell/TcXaeMgmt/ReadMe_TcXaeMgmt.txt @@ -0,0 +1,42 @@ +Powershell Commandlets for TwinCAT ADS Communication and TwinCAT Ads Management tasks. + +Prerequisites: +TwinCAT 2 or 3 (XAR Runtime or Full) +.NET Framework 4.0 +Powershell 4 + +Features: +- Read/Write Values to Local or Remote Systems via ADS (Symbolic, Raw ProcessImage Data) +- Start-Stop logical ADS Devices (PLC, SystemService) and setting Config Mode locally and remote +- Collection Remote Target System Information (TwinCAT Version) +- Broadcast Search (Browsing ADS Network infrastucture) +- Adding / Removing ADS Routes +- Session Management (ADS Sessions and connections) +- Browsing symbolic information from TwinCAT Targets + +First Steps: + +Getting global information +```powershell +PS> get-help about_TcXaeMgmt +``` + +Getting List of commands +```powershell +PS> get-command -module TcXaeMgmt +``` + +Getting Command Help: +```powershell +PS> get-help Read-TcValue -full +``` +Documentation and further learning + +[Documentation TcXaeMgmt Module] +https://infosys.beckhoff.com/content/1033/tc3_ads_ps_tcxaemgmt/3972231819.html?id=8731138690123386389 +[About the TcXaeMgmt Module] +https://infosys.beckhoff.com/content/1033/tc3_ads_ps_tcxaemgmt/4130762891.html?id=4912948515382920501 + +Links +[Beckhoff Homepage] +https://www.beckhoff.com \ No newline at end of file diff --git a/ExtLibs/AdsApi/Powershell/TcXaeMgmt/TcXaeMgmt.cat b/ExtLibs/AdsApi/Powershell/TcXaeMgmt/TcXaeMgmt.cat new file mode 100644 index 0000000000000000000000000000000000000000..425cc9285134f8a21514fe5debfc791ae5040b2b GIT binary patch literal 10945 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 VgCkSY;gCv|LJIxpZOdBR{{erG^K1YB literal 0 HcmV?d00001 diff --git a/ExtLibs/AdsApi/Powershell/TcXaeMgmt/TcXaeMgmt.dll b/ExtLibs/AdsApi/Powershell/TcXaeMgmt/TcXaeMgmt.dll new file mode 100644 index 0000000000000000000000000000000000000000..1e0ec850fb7fa87cb120aa73daa39ef170a6a8d5 GIT binary patch literal 3762688 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%0A$DQNX{=|55M^$ac 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%0ATv=nV4@^7gn0t>b&QdAt9>&bxv4 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

#et>F*l4#JS^x5oF{3_eC0^%?zgmEPoA}{ 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

=iDHdP?%|Lu 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

nWJe8u$*DEx?|r}~fA6PD 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%0AA%_K_Wk{ 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≀r38V3x6$+;>{+M`7EdrNpufZSZ_CLS)>qq*}@t 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�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

3Z&&WC)}dtGAvON3mB(?b|Gf0iaXuvX zg9P=qX1(UC*2TUpJN@OSzw-8f{@;K3QD3gF82fTOlyUy6fA8=5jG_ybc zZ~C*>ZG-i{W%2&+=*#tS6ZgQ+QT=D-?ekOOXG^c!i~N?A!}J6|`i|7&{EZ%n%no)7%zpCA3U{F=Om`F@zp z=WB!I97ta7!;!6AC+t7ot-H>ddL7loCG%~2-9@g`$aNuk&QRV%lD>{2*S$nP+w+UE zK5VaNn)QCUULo5YCD%3kzaG*5br-qbfb%lBj*xoYCL14Eum9^GXs`eHwoYFBf1T?j z|LNxs@O@g@@|NxT6J8e*J;~43#wqppIjvvGb0_`hHPxToFC5+#fmY1!(PeJyBTRH#CwoPCE z&U{bh@f@eQ-T?3OV*eLs;qurcvoT&`1QjezX+vA7Sv-p#BAGz-%ooCj+$eTFrap9Y`3n`~u=lj34mFs3ZAAt1$-}&J@ z%6KQ`4sIphGS(A$v!CO?_aUe!`=b8>`!m}d^=e?hhxTDzfX1Pa5;?;M+PC-dd_;EO z{ab85RBDb(VsCrim-u9BuG_+O6Z&oqyg!Gx=^XCY$)YdU4-e+w52tO8>V3`}Pty0{ zy@7OGfp56e7UqGp9vMs_5ZtFv*K5U3HvMdI+4Cy%-jWE+U_QlX<;+OiD=Y?fH9Nd@tpym4nFP>nIyZ!U9`i%U;eV@CT`N5XTNt{wnGjGgM=Keu@ zy-fH>vY*Sp+v{+_-^HHXhnQZ@5bN9T1!j{E=1ca?7S0sudto+C`CaUpEzF;|-v#3d z?u*@Q<=>6VZ|vIg2kiv+@x6|CTsGUxxMh5h`*Y0v-p<=ielzF!<~Wk8CQw{q|2^e$ zeqgxRFabU(9vCm^JLN?iPe)Rnw{O`3hnZ_L6akMh1>v9mCX{5@ItBUyMy z7H-xNB@bqu12ZpinESVLl-$oPT;enPxoQU0OGrIOenQIVh19S()|cIiUV3@MzWy>= zZ^=;y(s~Z8OM*Q-k9~>l8h`eDRPHZ-gMQER?F6qs7`-sxkC4al4dQYQ_VuK^!Eyk(nKAMNLkZD(8^~_S>sX(;Y%k3A^4Q)W-=2v_?n|-9UlV^weV^j7 zTj6qlpp5@!8+<;*?)NWm{fQls!>z3EV7rvx2l6w}@ABP_Y<@JC*KBS4!TsY|&TOq* zaQ}3cGg~Vc+?V5l}K|RDayGt6Y8`R9M{)@!)!*`Ths2D}3Lyr&NDvN8U@7%5hvV z@0AMkcSMXGY>%mOqL1UAJSUU-dp0|GKdHz|{-hmA`_DG62kXVifBWq*cs%*G{F-%R z``)D|sGjWpK>5fPM=;)j+MSFe|80LV9%L)WK=FLta-v_nZY1OG*80g7@0R9S%5CNy zA^vWNt@qS+fN^%xcoI^t(iX0R(DRD9s+Yw3OXmNwmAE~KD|Oz5`)FV8E0BDo z?x)Jj?_y8NVa^xqbI0<#T#u6dU_8P7>-fCG)Pv2Z;kn9`-=4=AZtF+(B`(=F{&SS< zi(io&8)#2b9?|RncZny=*U$6R3v?ab_P=8}zcNn9zU0H)Pm;suv(WBnJ>Sgdv0kKp z<$T4QALpu**{*OSm&yB=Gvg21PaThNMjrGh`}OQk#!o4SaQ-27t`EqYc*5#-;(6*3_KVL&V|)G+?4v%$ ziSw6NX+KYyaoE0}-f;MyCyl$--{JIqKD%D>Hrw04e&l?nY9x+BnePLV?=<-9DrwKj zgI(H}t*pP~^7r5D_xb+C{$zbf?3(kdTs64N^zYy}FZCt)lXwT(4rP16^ZH@L!%D7y zZtd^p`5(AHgzV(`cBDL0=(v%q#<8D$IS%=K8vibQ61-ms>-k{X=Bh(M9_u;DdMD5p zzLz_O^TW@VW|K#I|A)PIfxo?+691piWq-flQwQHjB}bjik#uuHNkvI_Q&XfGmvKl5=P^4q9imSMeYqDsilw?srW`_z4%i2p78I+RmE1x*x92r!Pb=q#~bz`SqMzpoQM zTbC_#?EC@IYks~-=V#caRjw!QU(9%uE?XnL&HlB&rv5elF@2Gz;SJg)%8&jOkNheh zJ8ZP4I7^62GA#XX;^82V{9^S5>mqIcotn5GZNqz+p2%CMzdL9Db=o4sCT;8T(1&(4 z<{MjQjps4Ty0zUSIQ-6z-c!YV4*REv?@{2~=$iM5>v>t^X!%zAgGc*VdTu^2I}F+zkACP;%;(ca1Ponh!;b}O7_|aLf zI-QVVlTLFz8Q`}>sB4c6(u1=n%f^S2byeEVoS$%5apQb*n?Ndy~HG@6=y$ zji$S`o4OvvxftZzx>S>naQROdD}OdUH`9mjjna8=3s2_BbHB3JUth+~FU|hy^zsaw zWcjd4uX6fp0{smcuad#KUvEQyi~D<@^L@l2^NZNm!e@T3=kwb$KA$_ANSA5-eKgNo z&bt4(5&zUXpU(QUKEK!-;fwm&JaVr;&)lUCd^TT7Jj(p+o7v2zv{2$g7B_!f8g{pfXrip1F?hQO}gIYaGuNNI!F`mYbn2^xo&&>vH)nmCg#8$&bj9y>+gUx-6;Jk0Y?}EvSJtL2 zGu}(v3)FIs9SzpL->dO?wKnbS;m{7*IkP71?exWY9~0>~9FDGcNBPD-DxY~|(#!1K zCcDp7?$yob;%2h`dX5gc#FO%3{H^o%oWH~qdzt^n%ahehTL0NP$Bf5+wjclK5B-dv z`O%p^e^-30oR#<-kkg^WCx&C?fqC3sUp{=~WAfj$`E}6$V7?zbkEQe@J)LPcXlHCc zg3RybcCbzh&G(#ZjN=vVYq5S!Fa48;&%Jo~W4sD|S~=X82iz*3+mLl%KmTI5#LIEQ zn^r#hARoBC7@&@o}=kz_vn{*cUNS8@!j3I^ny%ZTN3-@na$jp;GTKICW8gLX023-ICI^**PKADAz1`s;07{nR!0b8X#E z$HlxWN3z&wA)`UK-dxmRd=o1dKIe*4TP z?>qRuFq`*aJa@~-*TV0P$C})Aon6mC0kwQ@=J96!#?o(mJn#op|8{?joU8G9QTh$Q z8}t78DjBR3=YL{;)_lB>{>g3rb$n3!xgs0itjT_~)8tpPcj>oruc+~r@?m`4{kB*5 zc!K)MDmbLV_&>5q2tk#BL2 z;TfIvNYigzeBo1h>W)4}AJ%7_JN{z$v7NZheYo6AYoD(C9ql=(fArTH=dbJdJ;tkR z-hg~+;mLfVm+uuB_R^CwoJq%LIP3ETb3PuF{Vty0tsHgFw?us=&0kH!Kdu}ubiRuC zbHCLjy{6$;z1T-&c4_+ix$sYUpLSlw_Is51Dtl+WPIu4kf0ec!f+Zb{K8mw{gnp;# zQ}!#7p3Ij`8z15~tv#nn=fQc+$iKGbv8x@4^5N@hpNQ}JZgW=SJ-0`(4*|-hN%%AIinLwkt7S z)3*0&pK$A`VA?SHMQJ|8DP_Pb+#!F{m)Ryo9bUHj+j zYy1@3cUvcvc^IFs*e%009gtzKb3e4j$JVg?iNEz- zPfTjJV?G&vUuEsbp;2yE{_EoFs<+lxKEvL_`+Undne!{~t!uvqIqO=^Y~68T`}zm- zf7iO@-S*Oc!;IfYIh(kj@|pgwALVCl{OfrDn~yE$Jh+dM`CH(c=WWYA3g&AUT0fZn zW&9BH-?;jGuzXL$ulA073muO||9>m{2iR9n`LzC5IoA))c*)KwREd2anvZnhrCZ#@@IBu-*%H;?s`C{|Dbf8-zLAPyV`pY*OD;Euj``BGpoK@A4Pud@vv}* z`E&W{(9iC@DB*)s&+C0)s;~85&*`BTwk5~xbHX9{HF05%x{A@`%}rUwhyt& z`>Iu6#g+f<9*)Joay!)Ny-w#|3eqFupAbHkWBWv#^jY_(`#>XI<9VsO(@u~Mntun= z&BBv%lKDBeX6>@>7sX!Kfp`!v+wWN=m7{u?9ZUHmKGe>9jrQSV>o_?Pti zW7fCZzlAsKuKCa8lz5GkGmg*lsl4a=6CH0gY0(a5$4vxkI&YQXZ6ei!2}{U?jpOh3IyS4}_NH){Ol9uv}ydX0QbI#C~xUY2jlzJ5I)tLe=? z^@y81t0y&l`1IblL4Vu>NBy>~+ZBHFvUp%$;$ijaVEjn;!F;PF1Uqo<1NRsDxl4m` zAHq^g&o$v1-hR$Uejnr?bm#t5>>BS?eTCoO!+u^nC(`)264F=h*Y$HKJLh~xdX{p! zBG-$BZ`$)D$lc%NaxO&k%i#TJoIioz^eo|V&g37moI>y7BVAWy{yJTj&%N+oi}}}l zqI9(<=MgmgF1m7_lh0krdHU?H9rCB{&+vHK`I@!2Z&x~TK8JnT)1Lo%nd>!JuGRi) zo37}w&~rks^YnO|>%+afr2Dk_q?PyEwO-`h9Ouf0an73oOZ#o-EQ){pLFfF#xN~?K zuJUO<`B08W!Rc?HAM)TouY(^x{Grc6l)ul`V)Q^Jo+!D&nG3FG=1rRLBBZA=@%o9`%$Qm zp>uBY>pA^PKBPU-ezn#^$=*B{6=`Rf8U;vKc}@Xa^rnxgiHT{cmdZo ze#pf?5IXv-uXrNQ?r$sUNqE3@jTi9%PO`tA`ZP@)f7t*nQ@8vir=N^cxSKd#~6}X6Kd|zgPWsSnaOzD1SiO z_pWn=q$hB0M{Qr~v~h-|o*Je%X{o!@&mP9hc`57njrOYuk8@SlK9})Ibl3Nxv_9B7 zzdu*{llb2@>oXjV@>8Gm`@xy7oP)9PTQ{HS-%Ah3{&>%4wtp^}b7Xcu=x9AgzZX4Y zydrM>XXyvKo?ZGGU+a9_17h*ee86~8!;QF7uqXDJWPj7M@p+8Wznc^5D(bwLfu0 zkiSCk!F~q(N>@9ATe)JMspv&I5T5pb)t;6gtA2m@X*rxi*LMsC`Ka&p9z>;MZ`#cl zxPQwRqwNOt!TU2+4)nqMd^KKn-(sEq)#FciOx`phm`E^bC^!ko)$!F8PkHP(~nofi12%U69uHAdWIoARo z}%4 zx!J4fzn5e8i_`BOeGdosclo>p?Fx3cbQyhLhIc4#@_Ye5`#E{%2fnB;=}Y)l&sC`_ z9>|9ueIx!-$yb_^@W=QNZdbgBkF^7J`qcwOoTLlw0_p!Ov6tqT*?U{MJ>(kYllz)8 zF7cu_Qqk6~iyW~bb>~U1qqxN*@wpW*b z;%E7jew*A2JV7q*_#2;Ya-J%`&lL5W)*g1hjOK5h57Tz>37)=;Qx&Sa-b=3T+=~vq zJ;?k$eZb$E_{Yi7{Ej@{`Htat(W5?!tDgFvd0r><`81O!{XEf=c&NMam3!OKqf3s> zla=;^^=M5el}o)bs6X*jNWaDAMdE$lC4U%SnO8s_{Zr-{2oE~_X7EXTw8zv#w1>zw z7~8*cuf#B4p-++%+u;}v?WMsIe%HH9w4bcE5kBoG(BfIASLOUF??rgNg>HH@X=SFj z>0=%4=D+Rq|8rmWvhr``QOgB(j^l&a4^)3^;wN3HAArm=F;5lg1gKqh!; zrtSaPy>jb+-Z;(!GQStY17}=e>s7W6p(S;FjRSbcXfPbD2XuU)^~*SS9si7bUrG0i zz_0a^>PbI<@*LBX{?DX-81)+dV?T}l75%e_!*Bk1=c?TE_OH1=HcIb$XR+%&#cAJ1 zM4zsA7Nb72!)CA2Z|>@c5`U9ZC2;zqvHxlFj@|uHvs-cR>X&xWqkQ_WpY!@jq1G2& z<(K*bcO9Q={!(1`lU?a@sCVG|aj5?W=f`v(hn>ssCFc35Mj`MGM7JdzvcoQx-cE>)0Q0+%NkcU0-4?lR9UF{t*dv{Fh z8}uUlEnH898t(Q3xav>)$-bWZIv+T8Cf$Z{@-wj1)6|FX1H0@R^Cx;n{q_j@5zj9F z&?m{EyivZGKN%K3|b_Vg#;AA70g zW2I~T^qnsmuJl1%`6I6R|Ku!B-oMLG?!$HYvwe96Mcc7zpJJf@n!tex}Lp$y4>E+Q%%w@x^wOhyW9TbvTylFx2xH! zO^?fXFWoo4J2;cR>g64~A&2yfIO8YmihUxV$(3^`Ih`60w{pDh`^DPN3kdJ;E&-&-11Q=FPyU`A5q@k&=Ftk zLAazB^(uOFrPJFyozBXzO&`rr-k-~GreALwUn!@?C-2-j|D_pL>4&Q|{p$3^+%GNj z5=NKxh)i$$a!G&eZ*paQ#pR)YALe&Us($_?-qEf<$o^$~k@wLe!kb6_yA?TG`m+`PU>Xg$bKcKFZ6t*rB{`H=lyu}Lk{&!KmJ~S=|OvfJMi|h-&OPd#<@Q4-nTPp-Yw4iF}^an zbvnfJ*}`zuO@CGTXzqvC>AKHrIpr7WvhMEZr3}hDI=+sx@z1P$lU}zLALEDN@X@>I zi~f&xyMbGLngo4q<7N4(gbNGT;7pZ)wsZxZQ;Uf3UhxI+hinRM`W2s-Hm z9wFhx{It+`J@r#sXVvM68CIzaXMGF4Z@Au92K}#g{3jX8IjjujJwvB6FR4)H6Rcd@ zIe*1%o(A9k-iygEht2HBtN z2gvX9R4%Vd(CvNh(l3Q>{Dn^YvWd&v!u5H%?;kxm!zxAG^r_NzK@a*<(4!vE(fhmp zUa#4wtdsBVdeFZ?E;!+L^>g5V_g$@DcSeR~9$>le|Fd?i*b%*Ay5HpeLHZ%4Z<8$D zNG-5&-1a- z>xA82R;amE&$@oZ@($9=~ATR2RUD5LmIo!IR&K8cOSEe_8I{E3TUQghE z5NbW9{&YQvd}H;O*xlv5FGD%+p95|7wA%#}6}X({;{g^+BC}n(-#REWi6G z?|o-{wBCSDy=VT~zCWXn%8T_4^IfrAVuzbtzq5UQ>c?_Vk+zHf;&zI-@yY(k`&oMv z-6IY^9$>et2MhuewSG z>lF2fc23^E0M38T>Mw90n9AaZ_B!#+auBm2fYp! zJ}t+{QTiYbJ;Fi%s()8|8rRK_a=k2mbsEOYJVcBy;YYgJk#^6Z>d(IM*grek!=IM^ zbmx!djQ-rT`H1kIljX_1Ng1{Y`IFqI4d?X(`l=ny`K+BwKSSucpYFZxuK7USDL=71 z!S~V3FXMh+M~*o8ca_UM_m*--h1RF2?o-dDNdVoJBiZI|ihmxVh6UJ>*?z$0x~) z?HTRw`l1s)Fvf>?-Ye@{r+d5JlrQzC?cUBp*Ydx+yE6}Fd`&Vwc|SJu_4<5KF5yuh z10($*9*)_w^zZ2ZDb)Ih{6YUO`s-@Hy4oA`VZK$v9}MTDRl_*$kI3U_+Mn9(A@jvP z-oqb!s;|lgC!Wfu`5XxS;n}XTKIe8JzCiK~=|;SVan>WGzmV4_O1lj|`dWIHag)(y zp2EkY@Ll^w(|0_q)016a+y~3ITJrhs{&I(>1b*`;_6+nlWxP&r3-oE*ImQXtmwE|E zK3g+iv4{BsZ<3wQtNP;_lT-KU7H+}uKkTo#V>jA2(*2;XSbGVC&-Sm>X{)?%rAhB` zJK_J9g6DZS?34L~>~iLIX{F%FyNda~z_MRqT0Yv} zyJk5}+B(BB?-%J7e_4kNeD~|Xu^0aK8saPA?C*5ah57Pzg|}4xM(*E>-kN{YW32os zuK8{lj=B%qrSkGnC$nRd4tF`Mm&W{uJ+b?W%rEy8`u?b=WxVZ|ckBuu_%N)~2_Ejt zTpqab)ye2hpO5@~s{2De{+P!x|M+YB^ToIi%N=#czwxymey=Zwek=3dug&v_QV;vO zVO&2Q#v9-F(kAm)_0J)!FF9{^`@GxjYPihX=k?4gMY^SL>-nMA&kw9Kk-vuV(%#_y z2S4Zj5f9&Boj&O}<0GRteLDF&mOmS($^HuW|Ft0~^<=>3zij;ij=-};@+E5j@)yU<;|q;PteQ4jr_CyaJI<%$LfT=hVf#LNXLHT>BSyh z?$~q9?!_LH_^|JEd@~*KZ#*Bgp5Af}-R*4lp6%Ov+Hi*b&Go}2-~BqLpX~n$>A1D$ zM{}2R$Wyr&dm*2E-6dzdd$%0Zt4$`a=Xw=;#&F5s=1=y+=6KAwzmgBT{E>gn|BUae zopt}C_9Q-pi+`&h2v_!@WIal`kNm^sYc^Tc0)VKHRV`mv&-p z;cz=#rFF#_uLJ2nF~3Or_0gr)PeX6`CqelC+K_qEKYDrU-QV<|q;GV;IqzGmQlu{w z@6u;&?PB+vmGz4|c>D~?JX*$^bdR-+cZ}ciET>L8yS#PHcmIF)Z}oUdpLI>=+tOFd zudGM=KBikc|B$}Bd3i7>_hKr(RQvGytI|UR*YWQD&ZoG>ZRt@`U^Q4aHU=+SlVi|~M-&hq8{z`X7u^9CMX7yV1_ z{#A#BHw^2(9HSTfa`$I&G~CF)zVYvS_y$MAkNR1DD|Y#X`~S1Uxm~RteUr~;vwmuJ zY!dEwc0PkLpBiwBC*icgU(^%#USH0%=}o$KozpvYwU*OTuTUr**Z9p5s-0nb#SPkDc>X_wn>L9qxKQDnRD*nUCMr_fHJdt2Ax8 zM7u}4E4@h1C%AsVVLj^9rJwDqm3OD^qUm1tfo~r6&l@iDyH5XupUW~>_vtpDR3+TO zfzNV1f#?qoWL|1oJ&@lOZq)N-uE%RTAoakc@_uWT>svb9Y2zRBDd`F9>gP>cF1qBL zmeWnv?L7Uu!nvjCj1SLpJ#1e@?f0s)?pddU^L%o-PX@kWdYfM5eUJq3P3AKmFR}((md@5A0$4^P6;& z`{NwAxtIM_%>%661x9!FV=Z>Ru5ig;5z?;)PFo)>$>GU()6=o*+`y!B3h2Ak^^fgs z#ACe|@!|Th)Yqi9?Gq{MX`E+gU6c0H)`82qDC<8;*M2>?@(<#g9*UC>;0K3a_si)% zk?lR+q$3bLfb6pXa<2gTqc8kj`!(=~oUVNh>~FxGbV5IaweOoM`-dWZmmI&c9|}3Z zcwP~Dgi-ErIVgHe3JVKQqpNSUD>w+Ecf`p7v*&28{%jAtm%)>4#;+>(-EGJyXsTQ7v%;Bo&2k~mLKx9 zuFnqQlpoy5??4OR%B`kj)R*v{;QA6C`aHwwz^?d^KY%fvpm((w&7NIpky7jEfO`gQO{dR*^}dUWB_#-q!BCq2h| zRB!Z;5Irn?(%eF)F|m+&XKBgf`RJLBu?Jfx?EC-+(A zeS>u}T+V%GJ=;Y7CLTAq{@laBc>7NtUvp=C&3RQhPnhq+DRgl3L_YUH&Fp65a@_w~ zka>m}9(D&>dtvKIK`0zEHaeAqI z*1Z_F+%cyY`v}W;^v=HD?6-NG)+F2i-}=6nDs`=o#dECem$3PB$)7SWpn7bc!>!XY z5C37lpW@z5-z`JR#5@yZDJ8_OX5AReH4BThmM1X-%iW ze0;39kE8FfnXRudUSU259Cz+JV_awb8#({&;Syh~pGN7?-R4J%z5dzlO8o}^i7ub^ zoq2+Yzp;Z4J9W9EFY!e_=Vk2tN0|qLe!7QexSVghMD0kuTkuKuMZL}A&AbozB!Bn2 zr`6MEx&QaOKCB~Szm2Zad?oWE?tZpI+=2L`UI2dF<)82VB7Vq$CjXP}Zg`b|*q`}V zt3TNPS=OtD>1ChpZuvgGvR}{SP!Gx7t$F`u**^+@3~#(1gbyt3_=fjV`xcyict$Vz zmi+Qx9)H4(;em6%-kNdr0Tw+>exWl@O}Jg_eE6GoUOBEmavq6ra399Y{&U<}|G@vW zbnY9+zu|IEgYW0J`CjhzE%q>a;j?jJIX?xCJs39vnMVc(LMPnILwXY~^q*vRIj7@% z5w~%3agR9XJJ53&FLpM1IX^PLyVVQu8{W-Nx=@eZ#r+#B_n3hXujf|@`W}~SJ;45l zLLcUD`{_5{UvW2oWk14JuGe-Mj?&48F+BX?ZvN3z=966RaCmZlGslN;O8y#_U+6LZ zQQolL#b1}aVLhw#oUd9tO@6TbDJ5UC9*#Tw2Fv_7`Lmu^6JgJJ+V8^ZpoHht>Bzcvld6(H@S2%72XCPxL_#=b{0q{VSED zd|wc{!ml{I%=!K&<8@jj>x=6CV|TyN-F2Qw<)l5#eUU@-w0TguC&TIB5gNb6Pwl)# z=C9NJ_tsX8c$fQ;7*~+aK;AI}Mmjj}F>Wp4Xn2!w_OsB>wfV8qFYcnVPjPn-XA&Rd zqz7ewxhFKkHXY>tng1LQ%Xyu{GJn~JWAExzsVn?PIluX9`ulet@8Nd26Thds|K~dY zOB}}YXfJcVSGoHz-hHmk_7l|Uf3DGTSnSSxTcn@)YpZ|Qhw!l6->uTA9xm{mj(^bM zCmotxxkoX}snaDHHt7d0cRamK$7KDAKYO>L_#+-s-gtVEhkKMqJke)-_;UY*@5ew6 zeBivV0ZzR$j5q!GMf!OEO@fYo<8U4KUF>#WTR!wb{J?`3WI zqW;JuKN9Y=eADW8Ysn*CT0iCaGr#YBkgn||_uN>&rKB(Qo!TYOOS}IqJ$=l6bpkj0 z6@0@7YX7NDch0a%!?=uVT~4HvE#FZcJvyBKO8ME+?TucB7kPG1Y`G@~{TL_EZvw}CxF1#4 zDd6vN=U$~RU8DW3CM|RQ7Dg}Qo$>xg-FM94G|9qkJ=|V@+=QIz_$U`u!e8?D@30TJ zm7BUB4*i4Sd|A>9x#lw*_TKAhJPUbf%pf;cA0RHXXU2k z7w~6!{zC5TZ*AOS@h$guAD8U{-lT)vAM_Wy-KfWqPx!H3C0+(g`wULKJIq(|74^Y6 zet#iJr(I9SHZWes7+YlPVc5{T`>E;_;372zls5{f2zf1^QcE4s_xRPP#<@ z*cE>Gz=6=2ud(@-l3$G;@iKoF-H{t1^9IB#`ZGMr1ux-KPhnTW(RxbjqxXotw4ZUV z+fCia(Le6)7YB%bCbv#sad}qoJfXyp!Pip(l30|8u<_Fi3k^rD42Dj~&Ygo%xksvUYg1Jam<# zJ9s|ZB*QL$Rl0}Q=PF0@!HR7(f5I>I+VicxkM7u?@Q3|HImLd)kNiTvThJ4EcORgS z(~t16J95UypKyUC{4Twsd~o!mJ)r%fJ~b%oJ)wUNpTRnv=IM_;BP4%CIym8h1EJsA z{V2j;?)h=&44d?j4BNDyr|+=4%y&CK?%17lCcUsHc7B-4Gg$f!;KO|Kj&HVqlius; zKs#=D(@!7D!LXid8;`F17xQDmiPs8`AMx+9i_*2c4BIQ>Ria<`l3Wio>1`Rd=~S;5 zaDSKM=3Xc8SkKY#p`J6mNzZe=q0@gF#+!cs3Hql!eT=_#cc~9EeWss28M*d|!@?_74 z?8o8#1t9b{WJx*bUiCuC(vGiMGKNS06x4vEJXGXY|{ZUQl(RwTP(@OrKe=}I`<@mTh z7u)7zqd)3IGyk=6qP z|BK55n!e~?_4Rv`>-TQwKihHkPb2SKp=@Z-#O|ZHB#c zaNajHldcQ=#@D1@JOA&UzuHU7$xJ$1?&Yu2Y`UG`_0qX?M}|Qr3RL@iTcPOpKLhl%R9N!Q(_c79#}o293T;j| zZFhg>{&GGMK65YmL(_L0UzfZag1kxj4gTL}f3l+dV2z*LlkNF!ql}k$7~Z7KGrdh} zH?@bRgF@54&hb+@AItj7J+?z~s()ZIffBw?_?~v0`&TnS>Hp$Xg?(NU#b9(82Gv7@5(4Q>b z;J0&ijr)^#S987?<>&lel#e{?$JKrL_O5pA@|u2nnEaAH##g1AJs$f!Q1z?RH$prt zy?f~`nLd-=li_SX-(s(?XZw`*`yPJ}v(wAAHoN^a<4xLdZ==84?HI$|KDYm^=daLP+pxazL@^Zp0??3>>_ zpWkcJHaT8x+STJnIR|#t8z!&REARok+#@~WR?n9Bn|qb0Pk^yr0;irmB*&*okM?*$ zM_#N~sCQyLMLpEz4u7o2sBdgMQzandrg&a9;*39@>hXA{$D@mGddPcN&VQowGk!9E z(qGQyut3W9zc~MWy&sJ|-{kZzKDDEk3*6rs`>0#+p%C-5I`v5#$$3eCG*

W{*@dL+MnY8TS8a|CeUidjGHI;mwSMXZtX^<#oBUeH+E#_^C(8*VLP_ zJP+sd(Rzh?6iE4x<@Sl5?p<`+{d?wqM(JM=Uz@CJo``b)r~#FY}bSJguXt$9zc1ZzQsTFJ}{m) zk2v#~K*A-wC^xpx5hveU{UPu2=6IBP19#JV)Sdn~cImPc_3%gC{?u3C)RWL7{u%d2 z{~7m7-0qgI;Cx6`lG|Rj!WPtzXIupbdAH|>l*)~Kk^5m=1b&H z(hEM$$5S7WUwJpN-|x!naHU^Iem3`}-`^u$C|Bec#xu=6R!NH~;d)3>w( z(cSvb-R_i&s3-V_S-%n=%2|vL<%RfJxK*a<3Bfd+ufRtKNsD<5BJv=%RC;Xd98Q z{5yF#56<&pbyB*H*EBvluHDn!U;R@X?;}5bO2efdtkQv*uTGD0esJuf>8kR$7wd`6 z&pYAI3pn;gFOyU5T{zkKkA08oCHJ3YyiKQP*h?!jEcXn2)bR^4XSIX!n|m__!T+%lWQN`?{TRf7ch)9!=_UKQ#Lrb+>w> zPAfXxu}fF@tSi!=z|K!~{m7TVY5DN~f1(UtiwwjzE9Fi z^Ur0DGaqw>{&q z<|REoz-jyKllr07KV`pR8P{y!;S*l$mmn9|)epY2$L9^M|Fn89bAQ;`+TS{XPb-J^ zTcOrB=wWo3HZuS zJe`O2Xndbk>-(g7{rz&*FRk6Zad+mAOFcNPKBS+`!;Z>BFV>04*U-VaFH~W(v`XLi zcwOuH`KJPPU+oPUZ_|w#@1>hFF6)sQ*6v=Vnf9L+obv+)i@wAMcl29m ze>3_=PFMWVgL@|}eQe)|))S-~a!J2?WV_XAJGUQvJ2^h>`(liDZQNMazyDu**CE!A z5vQI7VmII(Zg=1$`@;tutOqpR4VUv0KCjEZ5}i*R%okD5hj_l|dS`+94H)a$h$GL| z8_Rpo&a3FN#f};=l(9UzoJY*=}yvK5a zr$3PLO1xk0>2{j)b;*r-pl26^ANxc;;=_ASRv%O;-sg-Q_=oZC`Ax*rcy!*rxAf*h|-CIFo*tVU>RVAS=J=u2w(( zCDUd8-~jC>wrS%Gdugi-XVSJA&ZgxVR%y2k>vTwlO?s-+uf6|p{TkycMi} z@I;sQCJ*PGjzeesezv=R+}){9yX+3#>?->cb9*53TkaqCy>tCF>Q24T<&J-A2aEqp zTt4L*IaY5~{c>+|t8}Ty%k;y&*a!btx!gE^O#1*NTKE-@t3;)-sLf#vG5{)?eT2VA-*5JJ<#UkH_TAZt2ji?R*u`cGyPxbr~7+WZsQEzKa+D&!9C*Zi{IXPDeF`8b9i5c`4{@Z`^)>y z+7GsOGRpZsdyh-r4as_!^MBE<D}*komnIS$}F0jy&U&`5pH+tY78t zUDt_s#Be9wBYsIf*C6{kJpSNzj#KJoPp>Y!J=filkAM0LhF1ytRXMzJJ|McAe#OrC zn})9I&M$F&NZ0#$yk42y;)!0- zzQoh|J#r7$P&}#>^Xpz7FXX*5@RJ@u&c%XTKCjY$h(E2TKAB;YzMNs3zU}hHxobIL ze1B^0r#9&X*N6U>jrS?{wqHuap?y%kh%1Hrq=(z1VSgI_xnI2e- zgdM;&o+=M|gg>9)K52X&<#pA+v0hoUrQpuF-r{>V3|yQ$Fx#P|imkWbK6Q+mrhPa=z!>yS!iL z@BVbTQ=dln@$|~~2gY!!bcd`*q?ho!+zBVTLyvlyJ&@b$w+AoF@$L%0@WpVDM|g(U zeY-&?eWE_*-ln^GI?%2fz3J0QSA%uhG4q%FW8oG(&Ar4YhC@9;{-pk+o?0_r>cK%i z&HuMlIh-VSP!G-j#A7^+^|IlE`kTM?%{RW?K;O~!W0XI}a}Xb=KXxNNUHG6JT^E6G zn7;6K>egyUtbZ)&=k=Mr!zuUWWSsXnt2CZ3(!qi9&V1h2LH~3VTD>XdH1`YSzB4c1 zvHi3DZ<)6^@&MZh@b}KoyWvMT&U_Q&AJXa8hSVeIhdwdB3&n|Ngs=XyjWd9!WxP&j zIX&X%x%)-#9&ua$FX`|&w>R-1e&Ca!=~XA>9-h}J3eNt8<2@W;@BY>vzrg9hXgB<0 zZ_2lwzo7iK{rgGai*_U)(5<}G>7^e22fbecUxcSPU%Wr;jhWu2Gu-`M4&OHb_5L08 zul3%4IDM7lMsND`W4>(tnrMefc+~gH9!{i#6aF`{9x{&`^y;Fc?@t5&IJ(yN)kCd+ zzF~$@NG@oo|r+AM(vfo?l+?>H2oZKj8RB9bfMGO!xVyKErsE zJ`?!J$F_g1P5-i$`s<~bk1q-SjK6XI*7-t4K`!w4yQr@A z9-o<8+)hB^{SSeTUEc5ZTGx7YQoV^j(O%@|n|;3v zIP1QLyWU;v-S7|Rzsc*}pG5tOx?v05M`OMQBAJm92o;R8Z1nr}&^glfonYkO!RBAO3;(2Tqa$A8-;s`GEWLxHs1BSCf5k`)K?rFLGa^w+q|{ z#XW538zJ|Q5YDEaPry0Xj6d3Q)(N6s@O44vEs+!X*0(!$26ovScVHJ^tOtk(@U?kf zhH*xnmbyKW3xuyL9Q-jqJB-WwZr5n}E&Fe7WZM7j6_cKOF0*u{r@_<)o6ryW1X zafi+a%+HteA?#BoUo4VyWLi!*CqloF{j>M*@);riBV@ni_Ss*P9*|+1_Rg^9=Ur!# z?R%U}hq!$9OLAT|;`F!n-Pq>g7{7qy4;b}&Ob$oRgJmfDPXAlwwCR~Y)_S5!AI|qs z$otf;PxL=+e+IpdbvfK0a)RS0XDIg|WZ0y$GHlbwGwh|WWGMIVWLT$PW!R)YX4s~g zL##cwdo1Lgn~XPU%M9gx8o$SQT7Buy(ErDNlkBxk4zEu4c6}m#Kc@rD9_75VovW_X zo|&&no83p#p-l(6KhvY^*NQml6X}O%|AbTa8AiVGc$G*u`h)+3KE5CG*^V15`_nit zdSZ5O(#aXNF0a?WA8?~RHJ);xOP1H9B^htiVb|NcB)UIdRz=h6Je*1CfIH`cIafh? zn0u2rM~vMT3JK>7*9-su9&qUFX9NdYd6RwWx%^e>W7&V5KA&OJ-v>!}mL5$We`)^s z>}Ryx_WJu-uJrINJ7|gKV9#N=ux64~LWFM0fVz-zWQT((W0`JH{DGy65};X41o4KKaDt$om67kW5^8}Z@%GO8zbA>PCMRlhxo z^jCQNWBv5Xdssg#(!1^}i~O(g_}G3s+2fYa3(2{7*}W#^zI*n=0jURp z)As+kFNJWZXS?K1%E!_D>U>|Lyj$w)=PUgFMx&Sh8TSjp|A=f4sh8b9kp8sFo1ZWK zhwGCn>3xLSu3hK;enZP2 zW!R=8GA!p;(8uB@_Zd2$@%NI}-}Cb`?r*lg-+pcVSva+aQ}nWMdLB+W2lFh^M|-dq zUXxDBxa@n&u$SJQ^_6!PGc5XPIGR2tx1{SytH#rbkLDA#tNClk#&?{1S9qGPgZYH` z7~SsOnV&D=;BNA|-Mjn`hNt6n#^1>OLbg+pdwIr7ei-zx`JH-$@qEl@5hveM-n!g5 z2mN}l58vta*GB~EKI`}TdX>RCLBGKHFLwU#IsY|IhyQm&c-5E3eqe*~o(8!G)X#}> zuGY>^mvg0Ebiy@v?tMUBFa3E)pRRC6`79nXUeEpN*6)+(xt?-P#pT*Q=qfEb)cPe$ z1#0>cU#pMH{%Y&5HR;07TK^6{<_`&%e!1b&4*IwiX#VSTcTcY_`X)PAIVK-5uLDj# zA-^7y$8)9KZ7!7PNPOs@;%|~1yKlP4`TSi?4(&JnQTl!4-zUFa`Wg}*dI6uB<8Sqf zt^=4JZQ9Q5J;|MZ8U1DOoBY13Y3JpzQ-sr=6C<9$tEC>$_|mRMdc?6u7i8Xwcq*Uv zml-!q+n?Cg?F#(5zjH&l&-Z)3j>_|na?fJsmvhA#Ht7iW|M&pococWub$puh8@kdI#D`n=iUdonEfANllq z!RV|AZZ&pPR!k?Y7~Cf1!Mz4f62+Ux7|Or~i0>-#dr> zf$&jYwB6M5Lps1W4(h&qJ*TGduD)ODvaE;PZ=9jriyLrD_okojE0h_-Us_I?xnoFf7a${fbba{ZC{poxU^4i zS*3cF{dMfKBOmYJ{Io;B-7>vS2W8l#M`YNhM`hUa`K~gLW#e{v_uBdGevLMvPjr92 z%iAfpgT1tChBKjEEbSz6w4bSVerfhE>--t768DZ8-t^t4EeE6%b^%|gf658|X*X>= z&UmU$)0VFo-&1nDOM8kP2#5RyjP#hlk^cv;KPiutPlehJalS|02k|H$f2Vu;7+(C- zo;>jOY50dHGUr zz0d6v+p%3Q(RxANrO&YOdX#sODVKG!ceO|RW!M|Ydi8&KKCpR=(tcRIFp9@_yY0S5 z>ZPXNpQfI}9)obOp96h(Ua#!up&t-S^lWgd6ItGZvCGO<^2awPwH>-1Nmw^lzXGxAM>2xDp%`wzBjtUy zz0AMKDf=9aZtp(myb|M1yGKjj*>-(~@g}{@>92Ko`hBdtS^ty!$C|!>+8cvWpEjLx zjp`@whi5&DKKP4t^o;N=uFsm|-5vf}?*F7!rVsC>e9-C4Z~Y&~Kb>Knz->Oh+?#fZ z^Re&$_TlfsBgzYqdV>BH^$C#j5yw^3hgW#Kb)2mE z=0}3-eNn&g_}cqwlh17s9+33|>SgqZ<6Y=od^UbB?RVshc$a+W3zcX5rQZ?5i+JQ` z{CK0=GvYcf9h|?u$S?l9nx%X52C)uZ@@=}^jyJUPW?Umu8k#!8@==zWLQ*`}D`+4SX#@C0+dQc2M z`m^<<(fF>&a;IN+BAhk((|8`1?N#*S9Xivi@%1j*$CcyXOOML@MZfj6zITMgZ!n!r z@7mWpr(X}W^qhWOZ;)TxeO+(VbR>VStsc?eaoK)tUT@U=Vd2bpzMIYKjVaBI4R;~y zd{*w)-+E(gzb4_fZaEr0_AvL+bxrzzmL6qXr0d(-Uolwj#Uy>858_%M>wX}$+aO(Q z0hwP@=jZOu_z-)%=`xES@x>jy3= z1o!Yp=zd;?aH4yA`1tl?kWc4hNmn4{5V_#M&GI}}na`tq<9|^8V0{qjf9p8=mq=gi z0i2{i_5xxb)-@;jhu@%_FJ5ZtIZUto{SG-_y65=xCVXJ@kNlT-IlIWur4kv!mWAk^T^N{g9 zAj)y{A93a`;O zfCHl(=)mY6arl7LXS7Sufzf}&@lSt^ctwbP85e_Z(5~T5enmg@iget8licA0M!EQh4&Njg;}db@QXZl_!h;Xk#TV%@Jlq*q zkxwEX{n2la{7?Lpr8{)P>-1bt=aU`6Hy)P!@m;?c7QWZIf9A{3Kf&ae2V# zk8mQrt3Hi_nhob%M>aWM}>6b-1dY~8a0|#E__0P4QufW$le>Qsl2|IK_ z+9x3EBdmw8e;2)w0}hPwgbs}E)cd%1!Pw7^a(?c1ivA;CbSGY2_K$Rp_qg!~_K1*i z3Hh7+K>8bh-Opd_uYP|%Un2GG4L(m6&YR#)dhdrmA_d*XKdj7`S85@6=c|Q8r(H`j$ zX6FqYM)#P%Cb>`Ir<_e|whvn-BfQsV zyvQ+nlOmmcJmf3l(ovsf&&t=ej(LcZtt1z3s?f@K^r+ zXWf4nll0_0O7bW17{<%H$mlVh-oy_*>V)3pBa5fpli_y#REFTC-K8Gl{toQOd%m~> zyZEpx>He&Ij=xR+mBTIh3Vkf!Hp$Yp_53@^7xRJQy8fv94F~IkD?L5UzGdGjdQmSR zZ`eNAMea`@Tb~p=56WTRW6`7V5kD*EZTeZTgUxfbhTQyb4af)p%(C?b&(0u1a^y z;nwL(*$z$K=dJm2E1~Os^z-{#zQR9{aDnW@+ab%d`L3M5eg72pBOK%yUZ-8%A9Up6 z&+OWyy)s{$uKJ3VU)+)VPE`kCobyB_j>jfZD?_FR6^?_Jrw*u(B|EqbuNY;sFI zWps(xDp6a)H@(|*uIp*#p@j3`ye?Am0r%)}uJg?2n|)dD*7F7`*Y;ty>C-OP`dc$; zb;f5s|Cf9p{TqMl{JnnpAiZPy+ql0D_kD3LQT7{3xN7fTW!R?b$l-LedPUCV<#H?g zmUDW^zW=Q6OuAj>pG~$ecCNp^%X**9v&+7eypO8w>x=tb-XA;a&Nza20pGHdrca&T zlVOvXzx?bk%--{Ue`@5rKELPD_W7f`$#0XLckHE8eg6XCMi}+Ca7+BSpWEUm?`vnh zl~Qoi@$+Th3=~ujQoezsF?mr5z`}$X%BGwdvj& z_GDj_=G%qG7dw49pC6x1yJmTFp1zAl(l^@8^pN|_vOftw>(MQTctuG1vrcREA@_Ba z{Q&UcAG@%QWBZY%oaOqU*w^mUs}$M*?Gg#?oI38`j4f* zcT(1SQ93Qd(f()D$NELZE?wzr?HKodb+=d8gLCFD&-Yi$dv$(~b;QTF&#m`kdwveH z2%m~QCLc>?4?xBDB)I16|3KYWyD%kPu~Rl5zQzd@&sA1(Q?4kMU$50eaazUya}2RP2pDUGBqn;isu2Y;-mez24E+oL@Q_hy%4`e#b5Pn-?2R7i2OT`>1AW?X$bUBfT+ZPmhw#uN+7Ea5qdt+p%N_gOG1w1&0PY4W`*dd|)8x_=J~@p*O* zZ}gs)SntI82D@~@$WK3n@ih6|&RxmOgzwWgyv*MbzZd58l74DFmsskxE_co|6ApaL zo7*|hCiEp$I{9X1o{W*VH?1G-ezpEcg{bu>G z^v|HL$n7uZM2h_AZsUh?Zwl!RpN(6}e6@vV_p=PPb6xyh^V@{OKF2P7V|gL{telp3 zLqAyFsnYyu?j_!Yhg~D&-mtfMK6`hDZTj~NE5B#DPR3W(^d&z`f|REiFL1^opYZrVf71C{p5=WjzsH<;-GBD`(=Kp3;6L{F{xiFm zehc#i7VkR!mxmYc=VE*~&HY?DkB&X;eW5y;{LyhZ@nZgwd1&s}RbiRbx!>%gDOeFd8Tp5*h*l&4{OjhzW(}Jf5*qhJDkf0*6GdJ zy-CJb<@*s-zvyrGWoB=K)BF35`!hJbKjLYy+n>#+%6shDPEA^#-}RCAp7T1O+-2eO z{m8q<(~tbY`q)di)%cb5f@_`6&a>D4z9H{(NO-{={H9E=)9oIp=~kuBW<3gyyuV~U zlP)P+yA4jznFX5cPE^?iM#4;?=Myk<$h>i2mQ3fOZ$&ezWFcV z;2-_oyNBt&LzZ8suY~oKNPk1NUzNtwS+D4FuTtFS9P{6cbNE#<*qtAuzcrVWUizo) zEMHH@H{<1Hc4B#9|FyyC^`+b!yygAv;`fQ}kztcwv5TeqczWyc@2$7^+dZ6B;{DCI zK4I%@J-^3uTE3Zd-<)r&^gz$QU2+ec!1t6~fA!KoWWJg7{EW}0f6VyY#BkQ^ze?Eo z=q#^EPj`KwZ=BE5HObD^wO-Hn5_-e;JokTM@IMmo>@N2p<$OQm=`Hi)IsJ=12Y9_r zzvc{=YyPVA9>-}P4VHUI!7W{zT>t3&zSVE6pO$xoNiY0ayt@4n|4IC2{~1reSx>(? zPrpU|^ow#VJ)|8Oif8TVCGVW(bZI?ZN_@KXvh-;a=@Y}VbQ-Wv4tK`WY1Y$8_UCvy zMgOE1bkYr+^aCgT-k;ZxrM>X=@vj8jm7vo<1kzsuhtI})a?gtEd+^>izi^J* z6Z~Aqb9=m0>mL18=`XrJWNAjm;&;?}ssZijPbJmVm-0`=iY?Py`MXb z%RZgl?`%ipZ2xPuuiP7Tji!B*j$W-$=5;#Gnb6-h_rgcI?YcmDU2^u#awfkcfIb$F z!Vf*3Yv~FP{z>sZ()F@;g33F{hF572>iiyd8KkSdp%X4J>I?nJ9_|YrM*F}AjB=uV zCdIQ$&LsPx7vaNC_{=L3|4!)nZ^V7Vd8Zhz<;Rjwi5Gee!;&t@;oXW;-R`m9%)G%V zKeBSu<=#cd|1r7zjrPl@b*KKgrC`*baLCu-(?ab2u6&NIPH+3I)$>M==i3U-IrmlG zjzygGjdCMSIOe}e$b*g?@W>a#jX3^+RQEEd3?IJ2=OyP7lwpNsrC2O-~`d-hL52 z`HyfW`N!Y1kbH)Irgyh~#D5S@(~p5a+GQc(X*k#yc?L_nyihvn(*>~$@cad)-z5HN z(+NJ(3mm<$EAa=X91Zi0=6Cp`fASsf*dH9bAs>EV9Iv3a!R~R`FyCmu9e2V7Lf_~{ z>n~jA?aFT*-W+h~w(qrs(}laXx4mU;p7T ze`K(`ev0;-Ha?F#$nw3xb(cT9u2I%4|JwB9Jzmq=1v~F{f3=6~Q^@bJHR*v~K8EN^ zn{<$uBhGCtcYjA^dXwIm!*A0W9eV8Y0JFQn>FqvTuDbm_#`UKCvHcuX|GsPHV}Xxz z{wFwuf6cH?%n!!#w#_5UJZnCuF}hyNzGvE_uJUf-%YFa8zwS#A_h|W!mhYJK zsiZgo>!kKVVo)MXG$1nN*HHK z7-vctXG$1nN*HHK7-vct@07T|Q~2H~aesGub^Y$NNA({0&Pp$;&l0z@#O*9`J1d=7 zzc0N+zLVrTS-!*S_oof2_Y3^@^pEl#RvPgM@~x~tl+Km!9Qjt(A5I^W?_BxLk#A*vUV4vwkEy?w4y{&;j;kf!tHoxkB|fV~ zm(>!V)e@i85}(x)pVbnd)e@i85|`Ctr*EY9*O#U9<@=a?=gN1Ed@JR74-o=I&K}bM{{H|6cNcyXv53yXuPB?F8RW z@a?NszIpi;%eQ21hiXo~R=#=p7R$F}ZpZ5PvpWj^j`{zeW|s?nx%^*VUDPhG&KJ0` zeCG=NW3%_E-Xz~E<^;~|Tz#qCS@4|&7bxF}@@*sEF=^-Ot+Ts`?RJrHb`g2Ih`e1S zZ|quqw|#(o`&GYa_N%U!?*{n}tM{)q>+LVJ{e`x_(DoPFBSg*-)#1G(1Rhy!-X1Cc zkCgu_sw;Xc1U|mnrhanuk@m^eC*-?OzQgLLNV+^lbUChiZ+%?#F8Nl@9w%WRC;C4_ z@Mj4A48fm~@l~_W6#i!l|1+yqy=PZnlJA)GT=`C@zS%oL;0xqCv3m8~iPckjFRMHzunl2891D&ODFoL+smce>C|7y9W!KV4{Vm9Wl~?`_qwGj9_pwerl{1)g2KcjklD z?d7|pe4EI3SpA`D>zNN#+se12e23NlQSCkRAJu;H9VFjj^|{qWGv^BJT%nySv~z`a zp3u${+Id1dPiW@}?fmMvne(d~1^z<5%jLT%oiFqYs;g%%5Vs4&?E-PTK-?}6w+qDW zLUFrL+%6Qi3&rh1al265E)=)_tbQ}|>FOl;PL}T!`3|c;Q=L8Ynd-yxeMG*)>d#fz zx1XziA>Ws0J}3CaBJX06cd^L3Sma$S@-7y67mM2$q^x~G(&!74MqjAjI`_ru%9$?; z{Y%xd*-Pa6?`oUb)xx`4XqQTPy;SntrIP0^l{|N;r1LkVY=1-O-w^sYg#Hboe?#cs zl)C7fLi?uBzA3bC3hgqfb1oCwWkS15XqO4?a;a}F7uw}QyIg3O3+-D{KYdGhza{i< z3H@6_|5m22n!7^kzAMD-3URwa+^!I}E5z;FQb&DT>ZorE{o6wSw$Q&V^ed%4x>9IY z3hhdvT`9EhR2Rv&RK9un7R#r!ZRFcazCGmIRleo&Et7A1`3{ipeEF8P-;uKV9jS}I zU%hDd`%NXq85Qbw;8cwP0Z`p4Drvp=q$Gkd+r{I!&YUkkiJ;0*$QBk(r@e=G2} z0&f&}qrl%ueeyf`|2z5rd#Sg6FaLip|NkKW{~-VWApdU?c$2_C3H+15n+4u1Fx4w( zQ@v!as^{ffEZ>s3x^Cs0mv6CrOXeE+TKV4!oRM!%+~x$IlmClqX@3M?B={o17uU<= zllDSri-opWXt%GI%ePEEX%~ckd!gT6=y#}hm2bIx%jA=`LEP>jZg&v3`Faoec9n0r ze9PpMc0%0e#eH7fHxhg!!8a0oBf&Qjd=tSp5quNDH?5D7Z>fCq@-3Ec$=qgwZzlL= zf^R1HT?D_2;CB)HE`o0^_~wFdF8Jnx-?ctkzNPZb%ePp*C38yzUn2Mt!IubrxB7Vb zmdZCT-(vZstr2_+!M6~63&FP(d`rQ%6nsm;m)5VCTUNhj?w<9l=eDb7X11$uXt%3x zl<%;5`}&-@?S;0z(6$%a_Cni1XgdgP2chjCv>k+YZ;^R#k$G>Cd2f-qljypW&~_5q zPD0x$(^k#hr~b|Cee2gY_pMK9cCKGEyKDX3xd+I%TYbvxZX#!Q`M-O8wS3pi?OAW# z?pg0B-|4e^irb#`J7)Ki@4-TUu+SeY^al(5A%Z_d@P`Qgkc=NOyHBm(*6lt*-$&^C z2z_6n?JKl>g|@HI_7&QG^^LRp34K4I?IG`cTm0g+`;uD z=MELxp+b9j{TTV4GWYQMIQgC>-}B~wVi z|7X^F$)|9+eEZ0^$N$ILo5yQem3{j+_r5n9aI1ibVq{@Bpk$I*4rE%SVK{6h6~h$6 zoX}E9GpQUX6>%nWpp?P^AJkN|R5UdlBd4g;P*YLE(9&=W^>-ZmUSGK4C(qOSyzd{^ zhhu*^*SXF$uWP(}Tv}hP`=#~X93A!P^{G9k*U#oSwa3pnW^i1_-cD_c)H~elvA-Gj(+{^>QP99Vn1{+CtW;dr z!`l0_jN~}5){kQyj`dn5bYHLKV2*Eg-vIj!TRykShAlgA{IuJK_}Y;F+oa`)RW@lk zisKlLj{2sg*%WmpcF5Zq+?nzQ{3#5 zIPT=Qi!^tU<}UQR`1?04`__Nc^3z^((dVMiMW2hGyNTm&;<%eQ?nb+tIPONjhkWnB z_8x5SLBEH5??JzpJntpXd&%=&^!xe$`}y|)Y#)Fh=;ZEQ=aJvMmYsS((lT=OKT#Kd zY8lq!3I2V8e_!X{w_4`6z16}x*1|g0vSrV=TLyCs<=Cv}(v~0gUfMF5qoe+A%SXGt z+tQPxor86)Wy$LAp}mLp9@=|o@3;J{_xtGYqrZ>-KKlFUT^coxE8Ds>Sl=3V^=>ro z;pkulJ<+?h@f63i93AzpjfJasZEV@IYhy6SP>#)dw!z)dy76y2|F-k*Y8*WqtWyov zsRrv5etR{x>)8vf7g{g0UTD41dZYD5>y6eMZH>m5X%r^8G`)~?1!Lzvhi5kC;9(R z!kaf3XN`w@j%tkTHHNhNH@0dS%Q3ET`5NOIS8-g!(NRCBF?o%H8h3Hr!_iScxG}BQ z!Dt7g9gKD`+9CXX2!9{K--mSmJ+0SajR)5_3_h%JVC^XU9?ieUH`eKMeBc_`GyB{|+S?m{?fvV<^Id;~et%=kDi1b> zuJLf=%2gg~?6&$7jln&hXl&Nw&+s$+|MQLEJ)Un2;~3oIg~rr1Uf}N+`1^&J{%qOwOS8dbFJ1R zI6CSBTYtLdz}BB}Fu%55zvhOmH*s{-2ep1~%|Wd@adgx-X?&6`H2U@r8`}x*wIXddYTX*R@ymfaD*8kQ6`hKDH z>m01_t>5W8qV;$w~q^^Vq`_3dcAoP+hf^`^diwBEweQQx!mfxdgT zKFHBgAKm&?-_fnla&*+kw7%ANOzRsQ9rb-%$FKQSj<2`&UF++u>u_*>*}Cyshqi9Y zLEmZJcCEu&KgZEgKfHDKwGMCHlcS?PiTXLc^=E6H-g-I5RU94lb6am&>)h7cIXdby zTUiBKUt8;e);Bmh>c7SQA+$$09&KHB?LW3|y7r$q9^+WlI;F>=)>C`@9h)~=k68PS z*6(n1)ZgLnE?qrpYqxeCU2pB$QD3#|lC@SxTfOUBYxU{6VD&Y-KD+jsU0>knsIST2 z{kjh47`gg~vDv)qRxLYn?A-O>wRY}0j^n`ED2_e5etWGwyMA-6uXcUC<$$ic_dB@j z7gs;5>$HB~?0RtbBRP)kI%~Bv_`fqb&PG4C>(4m0<=BCvqkaiKF6la9olCn;S?7wb z5BHqQ-@oN}oV;G?I=Sr?Y+BmJ*1EO*qqRH#uG6-|I{UP}P}`^NK#sAsue9~8e+B*u zyl>l?ZTrIe!UwdS-*!M-NBw}dYxtLQf3(Be2KSiIwi;(M2i7L=_qXu#E%;mTx7#*t ze48}iCe3%?@4(-Ik8j(caXfz?&)>)M_r$h+dQNQnD#rmF9rf?x|GW73E`$ubhOjaPDh)9HU(`8+7z@Y zXlJxd?s5j&8Ew5kbOzcPXlJ6GiFPL1nP_LCorQK5+F594p`C?xHrm-}XQQ2sb~f5M zZJ+wkIcVp!ZOy+2^7q)rvB&?dR~%;h)1Z=vOn~8SrIo*MI2p zwyk?z!Eq(+G?Ra?!uBfu|0@3f>b6z8Ud_MPqFsx2E&L1k7w|9O>)WpHc>{mnz~49U z_iV~I8=ei{($=@vE$}VyZNzjNG2MpkZD_Zl-3{Lj-woeGx_jVz;QQ!b_hEk@_74#2 z1LzN+|BhIG$G;Df?m@H%;rZk-AD#~{Ak6~OEa3kape;aq675N}C()indlKzww5QSD z<*0RI-tD$+|KZ)vY#ZL~z}oO`V{5y1yQXbdcvpD0ZV&d{4c-mzfIHw0cz1Yrcz1Y@ zZmad*1KtB3)$P!pqu^2Sm+|vu_{;E~*zXDN3GW5(1@8s#4et%_4UfjpXm~Wd4}SK6 z_kp`}ckj84_}ziKIVpgDFt=X&0^ii>SJ6A*!(VNwUHH95P2TbAEwv}_YpIQfPeQ-t zcP+KC75gLM^U!~a{UH_ITZ&6|uGdDiHfqD+;R{-7CqB$kY%aOC>F2_Y>$Ms1bo8I$ z=fChX3jQ-`+wbR_-tbKHThYhB^B=9%w!vo?9=*5;eJ=V;^xNPE;5*@M$m?W$-VblM zO|!g@z?S`CY+i*Q#r|=49Q-u=Lt+~bUq!y%cn?PZi_ssXyxn2b8ngO4=+BUL0`?0( zS??@Ycewj&Ewzt7&{FG%O)vOGY~+u@|A4QZbn-3 zl|NHhKYQ#~?`)T;6+c^HvlBMPESuNs8q>Ja-WTP%;+eAmTh4tnyH({_iD zHgz?+uyu7LYz#NHG-_{SFJJjcOYJoDlgaBq>VF=(X{SBe>{sWaZ$w_x(Jz3%$NN#o zReV|x?_OE2o%<5~siZY8IrX-n=<#_4ezq$`VXY|0UWNwjF^H1YTSVI4#HN4wBk+{2#V0oV(`U@r`Q!o8j)yZhs#|Z5pv$)JS(i2K*BjNGqtxHW z=CNXcM$z1~!Rp5c(>VeGU8!fqTJg!`h^MW8a7N zm7ixUST60?!v3powbTZ{+gwoZobzX4ld{Z)Qx@atkNrpRKLi43}@^Z{{iSnufN=5&oIW3D92}Xeai7E>+>tb zISx)8%IW`OVSU=q`w_qM*n!wPPj0j}-_?P$*V0CxiDyDdYn>cf*z%6AaK`($@S~oX zV`I#6Vx9;mPW8k;siMn?Uz@~Z{OgtYr=X{<9Q)3PClG^rVu+0~$caHtzSH2uBPU;N zlJ9i-%ql;u*IuK~JMW!Fo$Ip$8|(8F@|6?MjKb+lt}phb#CZ7n0T(rqbC@XYQRq*;C$Gl^C3>k6^Cu#+rK?`e~#+oA%XaMSIJl zp8AnfKXc&JkDU6M3ma$BrmmvfPvq2kfeVYhc`dG_RX>;V&f=Z*C2;&Kh2y8uvb??I#ADi-q}8V!y}j5Qn{D?iY@D|T zqQ`%KIR3}cE-$^%Jij;+o{RmB*to^v|>vzL~$mmXa5GKQPcryf_Y-A3A(aQfKL zip{XXyM2{;tne6E8{_W--$~lzFK*5Q!_hMznpgH_OsTcupQ_hxVsEUT{xA|wzN0F< zkg}xgW6)D}ZBlQRYaV64m-wHl#6Pa$=hccXKZ*SrtasYP&)dc3cla4!bo+q*|AxJL zZ1t2yd-rncmPJ3>%bCx+z`If2UsK*Cv{A~U&n`>Y`;k|7Y`U?>^L#=3gRy@Qwk>`N zH|DXQhkIeau-HF}zB>B-=+0L!p=KhrsHceG=Xry>=q&CjV@`S#xi>eX((Fm!oU5BleyHc2G6O&_-JMtLUr4 zlS*3sJI@dNcysMDo@222Ir|Fr_l7LjPeJcX+7YBZ8}6@9coF3?2KoG*Yn|M^lxy;1 zoOh#pPO%>LN5VfQ?O=FH(LY!C{j0mwPMXPjgnoIknO3opV>1KZc~rf&D`}?|-lzD# ziL_sXXI0Y5Njtleb`ESkJJ-o+7diX<3*pqQb#ln2%{m!K`^H|L&z!bBeq{Tb=bLj$ zo3SHjj@2e(a60W`$Jv?R7qI`>uRI^2t1RmS^DEq)w0BTO>s~w6ulSc*PY`LT|dz`hF^QU8MAv`ZT#%Szt*M=E^l%- zHamYQY=3)&dB$rOk8@3CqX%1Rca}QroO|J+`1}|4R9$DiS)VtV^Frg zU5)+-HkaXZHcUvhFJga3(Vc(PEtlt9zk~I;cgf4Wefrgr@L2T6v3UlY#$&_}(+!r@ zv-<8#-hV^ySK8P3U8juga?WSN4|{Hly}D%yr@Ujo&UH8nYdnXLZ}{lKT}pXhBQN>K zm+)IWa4-0HY`n(R56*dLclfmr(IzMHTSu_vYJ;_Le)jy=HSy!L>D^SI`5N0}#*EEm z^wqFeKcy1S*%iLH!lu20%D23i7hS%#!Z%m=?g~Fr_|?{CJblPF^)|ND;j`HEEBY(p z66XMPKSyH>)~Ea~HXEWZB7Vzw#-q*HZu)G!b{X@Y<?`M%x$u3~B8He?PWf8xE^G$2#7_rxX7p^rh@QMwGN2*vtRgzPXl-E4p+37&vp6 zoH0Hg&KRFi>@BaHF*UL1`k7SN^VyDyZrwV*et1Q*PCiQ6W$i~E)I4{Vb3N1gSs$Cd ziP^OB*I<1*?u@~FGX}SV&lAIpjRCU>y+hVT4am)d%T`!X>(P8T?JH+JS^!&DNo(ES zz@BO`y4PNotkzsdoS!FBuI{u^CsUSlO4^gq<+0Sm)-N{o?IzZ11KFotSZu0&TYKk8 z=k}Mrvi!W&y7e5^`C$q+>E}sn|KF(iJdC_{V=QFs*pA`zN$Z~HSZut%Fo75zX5M~} zb)gUQK*n( zS~>dx(}vX#;9SpZ6rFkD(>;cq@hiu_oVFecTgH~}aJ~SaNhj~@%M?P&6-s2^2c}9gVfIn39>);LG$4lBzP+skO@6K;!6q_%?mcf3z zHt{58=hb`3cM$gWw@2X%sh`+%l=8Y}$&cd4wDQHJ?DAz5UR-Pz;nQnb?xp4ImtK`G zt=9%IPUWNaX!6_ewfK3A7_^@QKUp}}#6}bUz330IZ;_uWdiCqm!>2a#=ReZy zKeBsT<4?V{|D(wr*gy66CVv&~TZ!|-CCofWOx(wjuOx2h0jIb1|Ez4 z6L@>r7-qs>EH)Wa>bIiXZ|zqP!S3PZW#fXjvkp7Yh4J|(Y~G^1%vWxCzIndzEPM=g zl6KsMypAlfIiJg~V>1f@29bfFNs|hP``h&XH@y3yMQn9furW2?A z|C{LAWR1{gm9qwE6V@hcfqIp*j!Z#M406^i%iH~F_GaWeqhgc2rE~RZ==LA)Vad0C zyxDK%dtmih)wI+}ueVxir{Z%qy6elP?rq@YD<>W~V?@r{Iu*{`GOfbizqsWr?p5J) z4to4dhrKT0d9Lxq&%BDwTsSf4C+oF!lJ#*uoIQZ|L~iF=@loWppptf@Rhc)K!`J^8 z{RjPHi$@?>=@m`cU+=mwXv*x5N8QJ@ufT`X2_TPKH;~ z%1J9Ht(>$Y;cD9Kv2z~n9_FK~v&N0%TbC_72ZFur(&cZgcNHF2;qeuoP~nLco>bu} z6`ld#P})(xANG2e{D%tPQQFaaB0E#JS5miO=N8AQdr`;fBh>$|*_2%i_kusnTIpIa z3!i6Ex3=$W*mCuQ=TvxZh38dxeuWoQcwvPXSJ-&G=IQxRD@gZ9Zw`-S9nFMj02IU7!S)u(UEHKJmZ__cZao6YM3b70GB zJaS@?<6n;dxp4fCffJ8BPU<`!#AF*ckbWR6Puiv<-{f@h8b{Tm;)!~ zS#V;W4X3W0^YhH1eiEmg{-Do1+cOu=vm*20#4jf{IWfyA*Fre)EPxY_HYtmovMh#E zmIf!@NxP(yb}5{)m^SgtiC;g7e=OtCm>oNP@F{m*W2ta^VaHT|_y*P;+f@7XNjb4; zFMFL(`|O$3GbhN|AIceD`mtQUXY3Dzt&@Yc;2J)ha>?n>+Q+~4x&CIp%hs|AYae}R zg*~sC%)I1UZ`$nbwXset`>?{+k6iUrwYQ8ugKA&$occpt!_+?KkNQl^a_UW+)PtP! z*8Xr}=u*~k=aAt=@0=Uq#FO*NTi6@RKcZa5FMpnUonFV#XY!R3v+<<;iJ$P-+bNud{=epO*IrY=DuXUbl``V{|24U~DeeWH3Ui_H} zTq`K&wii>D@Kx~pMZdkU`?{rvHrG4(nq8OkBiQ8m-oL=kbxX}B{tum(_cq53AVA>b=p2 zSL|i=e(0kr_Oki_^f48CS$!k)aTR-6eKYj&6?<9z)94c`_OkkC(I-{xW%V7<7jC({ zZe{gd&=(io`jpkbj6SvEUsm52eOkr8tUeBXR>fXcACEq}VlS&7jXt+xFRLGqKCfag ztDl5!fAAjSWO!ofCyupAg{Pv+8T+wutjU=JwaHkMGuGtHpW0_mkaKNZ&N;rE`BTpP zsh^B}^(to!s%LDBiajuSi=ez-X?|3+KySn~;4&3vU4`buAvhtU?Zh1C+ zTiyu$5bWgv=+Cg8$(y5hW6hO^!CP$Eyk@=w{3qhcHRO{XTYjx|B>p`Qa!olLpW&yl zx9sUla@tN#|6B;CjEiCG)@Q~V_2qqaP^DeuU5Tf2?SMydef#Qe%{h5r^ykRe`TVD! ztk=FydFA8LomXYs)bWzG81o`JZ87;2p5YJn__K!`kG(e5;SB0rwx7#sFFEsr_R;0&kJDFArfy%Q-qh2k zvaz|}kTZwqGpwF*Gy%>ynh0kcsb?H%pK+w0@FetHqj44@5c4m?M~)<)Wl?*DWf*OMBBL7{~8`r z*m+>f!ro8$Y~lORcPRV_ymR3v;8Aer{6Gv}fm4ed&6wCYbvUfca{wIDOByD^9^1jyxPXCdU?@&17 zbTFKLI1Eld)FyijIdh$yzAa~uA=`hv*B~cfIrD>@b79$h-D3=gldqh4rqd5Lo+HTB z_%nxi-^8*w2IbsyABTO)IKHs+s(Q+$Zk(R0s;7){%BW59Qcrp1lu?_MQ9Z1_Y#xR) zZ)=mXbowb}l&g8Ae#SATQbsvtoQ8eMC?_5{*WTsiC8z9i$}6W_a>_2JP34qJPCLq- z^9*eyCw@8cdw(bK%ZWeNoSpNB)6ccp=3Un4!jo@u|&OTto9Z z{Je_I1m@M)=sz|~EB?d!Usy@oUb*fk|Fc}@?+<^Jdp8?!pH6+JUAg}~i@geI)325k zKkwmlAbH)mM)SUs{1h)Jcr99<3tw^>dk^N!rHtj5S7G0Up8Gr6e4M;o2j$!+(q;nl zfcJU^!?_2fjrB8@`jpj=fcrC7tGiD1L7&HOFn{B}uqnD@M7{4$TtieZe)b`)y5+jP z_(@;VCh_PeWjC+%F**H8PJh!reMUWfSUvqsJ*=KFWxlBsV@p5RCSy%Kbt30}TxVWo z+{sBRr{7wi)>Y4PU(fh&pzOo3QFqRf)35ZOXJuE+H}~(VG03@BIKKF_T_zOnoUdTx zaUVVr&OE7o>R_1P! z&SS=Ae{c^lntSdqpdW|5?;ZT3@JI0Z4t!$KYd>t-3@*B9w}N}1_ru0#D*6+ytKmc=^U86kE`(b3Qwr;#0pQU@RSPc|7h~MtN0J=Kdk?-{=@nY>p!gj z@ZJ8eW#*3UObMTeG&E_MHugz7hnUBIiRY!bZzz9nbDmjeos|bo=C^RMp9LrW zG2DyE95oWoyr=!n*nigjPvI|BcrUmg`=U2_uF2>3X|cDhecmSXxq8y7XKq)|+^e2>UQT(n$$YLJR?j@6KEKTE za_UX4`nN4S?`S7x%kDZZXFYO$&iv*)xfk`e8+}7Q5Z(*6PLi+f{??iG+8-NDJ?rVr zO5eC2K5Vyo=e(L{cn0(Ql4-|MZ!eP8{i~hAS`Q{mz!EpNg7&zlao8)WSw4-^2 zwK<8k(szzJ<1B3|r%ko#xhrL3&#YdJIqf?h-FooZl?ia#S5CWE^O6(4{6TFo1>HS! zwJq%D>Yv=T*%q?TknBLa$mZpFjhr?z=CsRL)>Cb4Yi&}-k#M!WGG0uZ_L8e@lzPxl z_96O7dugBg9}Is`8<{pXrcJw;Hmsg@*FO6n`8TxPPpR|jJXW2%I%D{NHZ^VPL{7Q1 zPn%AItt-#_W)!yG{|IdZD!p{M;sqFh8xBET_yh%wbe;%8Ai#`JV$m5t3(Df6axsJD>=*BN6e)*u{ z)3xcF%sD%rz#4>}aU|zD$rL#2#WXm5Zvt$-&TqCw_N(d{3+maU%IWiR`i~s{@+GXZ zj!pUVTvK(vl4qfRpSm(0^G%fabZ(U^w%qbyZE9 z=L5%}=iEn|j6rqV#j#fHx7EIC49}ExLC$p;IsI17d6wM5bBUgF$!o(e!R_#|yK*0n zHkH2%yN<~2$Mz}uUR;xj{$p$$``Q?%-*vIiXG}%+d1Lt{^7xxj3ICU%yFbr5 znEm$6Mb9+>ZL*%qSwm&()_veW{AXU3Gp}~%oZYtGoO9t0s>XBhO?&d*L8HmPCNFj4 z^j+!Uq)mC{MZ~$ykmcX0xB&ZCN!xOHy><`W5C7L)R7gm?O|2vv^hLHBt_<0OJ@-W!<0`4SE@54TY-ci!NWo#v_ z_m0iWcz%V?(G~w=;m_gcInr*0jqmcj1dpVyQa^)eQ{Vgcz1MM-I-F2p^|bpWIPET{ z-L*--lGA_mKZ+PS-&v+ye%tCF#4x^MV_vaW&w1+<*nHo>ekz=N^`HK)o)~7p=>z)A zJUI*2PyH0mD`EZkjWzA#M?HRwA!E(FvQEvRpQPUOpLsxzy=k+boCwE$3~UTugVJZ# zAUSK0JRckH-N^By|Jdt4WjwL8weJX=2Kx@wYLrp^&j&Hy=_m5XKfIhTMSqxcTkYdV zK8QA2i?nj<7x-O4?hDJ`Lie7ptbfOXdO}-HJ-Z7`}waa1O-SB+PF}^N7&%tIk z`Ud)EO#Og&_W#<0^L^}%!8os@pCq2J?=sJ)yy+WrOWECpk&(&<9Z#=kNpI`?0z9$!2@WJ(hC+ zmo}1nqT3dC!XHLI6ni-_KMtpT)i=f__S;nKM^yB^VPnp<+;0}2{Tj>D`mBq6QlE!n zFAt`klh;r=pDA$aZBixeR5&pkLu}L&zw9^7eCKOM#bz3u7;IDffbaAfkNxm!?&;6P=A65D z$C&z&Jtumk@X6@&;6#T(wVL?pxaN`EB~4?DhXs zILCBPa?S3%1J3#@>;L=3M)p}&^+}Y){=5YL{eIKDcPVdD;hwPfH`Tw*p2vB0VTIKX zLwC+`@0xeO+qp+NXkGU4mo?L-{#2ImXgtw7{SbfW^AhO#?0jav!urpC zRZd?u?USUPv^w|4;fzQ9hqcf36Lr&iUaWogsOn*T{vDszt!Yz6_17!)ocTmQVf}*iJ0@e_Ifj5TW(Hkl`9z!^Kv z=NVtK(ckUIb9L8nKY}t^Ctgjl8(9msLLa_@J`MZNp-)4<9R89vrH>iEdg^3iNozf;{{s6_*iR|C<4gTU^!@Zx z%Hmj4zZ>1LHgyI2$I%bNUjG^Ivi0Dz;-+0zCvf_Jai)#N!D*ve*u28^kXB9@Wv{iq zVDTZd0mHp=hcZNt@Hex3Ohe!{+V0Rt)JvoogdUQFU`X~T%E5L zRCM!=ja;4g!p0LehVV4_LE`t>2KCHi#vC?n*w|#h*KOLYL2`91oBsi8gf>r-murN6 zvMx+S56>y=d}|DudyOqN)$6^Z&@)c;pYLpkEtl*%cx!3L#BU5)-@`9p6MngH%B7#g zpiTN-*mgPZTLFTvh1^&CFsLmz3bp$+E$t+{SfvF<#<4jPPHe;B#6Q4m_^d%UxMsoG1DiJELZ2Bs=9T)Fqid7vC+cDK zj0^R!diwvXtb@4@Ifxi6qcM9uZ4t3KXUaeQMe|%zo7d6*-jDN5c-VOMw)bFDxc#H- zTkxN6#+vrcYxy3++FV<}<~`E7Pd=@1=er?rcg93?S>3d;m)Ah|+OiybdEJWc?|odl z3)e95xl!>cZ(3o?=sw@Hqp-i3`ZxZe*xVtbf1%jRyTHje&()uZ{a)zzVm}&w?l<+? z&HbBc{T&4B@DTL(u4(S;M!=qf{I2AcZx-o)fBgIj-8wP0Crb?9Kz|ONiGBoixTx4z zUf+Mw-a3)B$us~LnNBc1Gyn~H-srTSnNPWtE z=<~8R$=AHr#-_`u&9oa7`$g!R7q(9RepmB-4b$$5?ln5=Br(4VTVB_9_0iaL!{^)Z zA@J&jPlWrL7y5ayamqh~6Wew0hq39x^Lx$-&vk3s+>ZXSlJ?QqllIxd-OKZS?zfHe zHS~>({d*Pro_tSbNYU4Ww=6sqHir9+r_#RL6BhS-i-@|gA*$O}7u-T>9e6z%0 zf7tBa`m+9zwlMAS*o-aq1Mu0||It4IPc=^X3p;QhoBku`T^o54Y1Q?AE^L33FDX2t zl+nJoJ$wzitFqlqT7d; zpgXUg$U2*OUiMk0Q;L69z0SG9zMXmAwB6AiYjXbzZ&uj6F20WYkJQg-V%`@0Onk~a z!S)T=c6Tn)&wl8}BOhJi%kX2JtN*a*6Ie%bt<}8VX3XkGz5#pZu0!xYwb&c~9q5aS zpEl}2dt;b}jj@ei!RJ-zi7o4+dj|WS?-QBVP1rc5Oq(%loEg{J+=-22Tz;hRapW6& z^{3FM62plr=r5sPjIPa_#YXPJMfc8Y`xSfhT^;>r#eUriZ(i(8`?(5tRCxble@?}x z_D7)4#HV#$jX8Nu$NofYeo^v09li;kxq_eb(Qhj@Gb+3*`>~9v11fxYg^#Q74-0qT zKWnjk9X{@XkX}8^<>k{bq!|!vC z!0Ul`!h2)mHy-8vVV_0O{u}UW*c;Ec?%^BAydNrm2Yt<=pMdUooVY?i&-l{*{b4Q3 z+G4~Pm-FfP>0kU@P~rcA({{fqy7y2#cla3gUi+Pk?l|(^vHP6C=!=NiIcHzu4}S`M zQt4yfubEodHNt(PZRh@6&i>qXJm$vceVG%f!|Zc97^nVL!e{WgJ=bb-UDs(@@qvme$S_-w>4wSdB-&3$-Z6AdB+Sm=Q6Y5?DJ<;>{CXs z(OH%n&yaQy&)d{b(!L6N9<&$w9MWe0Y&?l`E_&)mPW{LqK9~1jhos5 zFYocm{o$_{-RIs9hi%6}=+=qPB>0``d|!HNbibvkzV^a;?U<5wM|A5=-FU__*7UPS z@iVUyr<^$D#5oC0+2x!AK7&uMzxnM-{ePwST#Su**-w^Kcwu4tjGVmWUI!)@_TUaFS7p9PuydK&qMEAAJLO` zG+o&5)%#m){qQsC;x3)P**5^bve?Ui=Q||!t9If{JaXchM{Mcmb1SS(+KyBA&a~E{ zoV0Rm`e46opHSBB&TqmKgZY})GWwj40$m>n`R9HRrGri13olu?fTh0I;Cm!1DFBnEA& zX>(m-7`px0XFP_(&Z}N;H*LzRp1y4iNjtKVc2p&;9DD09_G2pc<0|%Y?2R*H&Ah_; z3ES4`Z?2&q;{47vaVvQAKb!l^5!9{Eo&KD%kFM0Y`Vlj@pMc&0XWycq&(ap2v#4kP zp#Cv_YtL~f``poW#b@Ht=jP1e_HEa@UGU?*iLvPE8}h#{u6KSzRo(|1`@EcezI^ho zJX44NLtxwMj*^#rFKk{1k@n%jV<^i-hcxximKZFr{ozm8=tq7EJ`&D3+G()$^E~>A zu>SuBp95zv{S1BJX!3duUC#9!>*0Io?z^UAzy785+FRJngj3$@3i~{pF-Nyaw4EHAX%*II#)Uq^+Jv>q+@(#p(+}#v+^=JK*@ z}JVL)s z`wpc~W*wJP5B>QrY1r#yxh8pBC9V5p-_7*AV>I)|nY3r;zNNyCV;^0<2ph+pRe8p4~5g#!{M~GHmQF(_1~Gc)W4kims9_8>VG_( zI+PQ$oS5arDJOn8agKu%=L9%$YLhtS#Mzm)#3?6EIdRH~a~hmDXH-}{F{>Mo_Yl<+ zznu8BiGTH!MNa+8Dc4ju<(dVjT>445v=6IievmUqb^0vjl~Z218c)hQA3f!jQ${)E zk`uq2GRi57oU+J?Q%+lS+LYMj#3m;;IkC+v>@%(l;M9pWlkQ_2vA(qPjGOU$E;ABN z+EH-qXVX-PK|Oma^}GjU+SJ3i3VW_`Ir)E`E^&;{&KI% zXUzPzWPHl6J=)wa$?sLT$M2WxYr&3dZSp${@~6>X9>DdzN^BDtI*n*H79=KVkiZwMjo$4{KlL^gV6t8=iZbHoErFr@@c%?w;T5l?U}_ z|5td+3LgeL4{P%|&bxeuP5##c`e@O2tJn;$uywx9dc2#4ed>P@b@CAP(0N{2t)If~ zwX})-kP5qJdxo@oQ*YY*1O6)93(ocVBboD;qJJHI0Q#!*h1)*bv{@S-U(#*>A6hAa4EB6vd)T~u#<+u+Z$S4qkF>c5z7+pM;AQt*O1_Q0?8zzbAF#Qi)XCGZ_27B# zBG^5uHgChfz{YqE_!Hk19N5g)dcL{nyP|K3uFdh>(`@0qRlfTv(qGGW72wS{?6-3E z1|x{4h5hCo_~|HZdJ6qe?y+G@?H=^gxNfr=Hoq%80R96!8k^1FKf`0;;jq`7<>t55r!UScFa5Oa2SG z*8vt#-t-?i{m1LEPye~z`8zV5I`w%0^G2SvdjUw(fS@&)4r;jopPAA{L6WgljK4+fTj-=kYbmQF@d}^~Atbd=q z{}{a9+s)_FfAan2wW$-aPukN8?>DCDbNT{)r-?qP|J*~D_eX!0e$tD*oN1klW}<%* z|7(;uzW}deY~*WMJ_c*kfxc1U{oqd&`)?L|Z6?B76q_mVu)>$XJHTGwz7h7f*R@al zmiG>H zapX5AwOyO6@-_H0 z^v6ki6rB41E_^onV)|!dTUz?qJhS$kxfR)X9qeKSkPe{|EotT=u`HE910`KJQvB;{e9>o-a20q587DI(1U*C%cgE z-Ty;u+B}X;wY|pS$92|y_;_N-nqH0PKe4a2k@b8UdG*)XS$+1wCi}*f z*;M=3ig|7J0eP*g?A5%gHY>}w+OPh*7`7vZ-Wzcrp_JFTLQcKO`%rJbS1zaChF9$6 z*vqk(S2oY=Qp)Z)^1Y|mh@o1pmBnA}1D4A+%Dkt~=V-eX>-lTw`{I90iP<)lH|6&} z9{KqH-~Nb|*l)8E`|lU~M#cZi+NBRR=`$OTPDfK>b|%0co|Lv=aN@)5yAExXpt7mQg!8@2ov#*#<+RXp6;LQJ{n2Yjz6LP*&{VMw_V{pH% zpSOtreezQG+X8-9S-tCDIM*2Tf4*n1Z)cyNpAX?@Fn$_k&*nMlzl{ZAPMs`;b6ui3 zM%4A$`TiHz5@O#6&Kl7lc0HY5_FbPL-(ASpYY(xPV=p)U*`?NgJ& z$*$mMZ~RQg&&t|jDE4`OaK*Iy|6im%n6z{Lm-!z1f05Q_@}DK&70dENeD>J5*>>4K z|64m&*7|ClRQtnBF|8du;Rle-*>Ea6T8jo?#A?^1`+kn%@U3utSv1J5b; zw)M(lUW$!v;eFNrqz+eBZ`Hc`PyDPbo@!fEeGXQ?&afm+{SH zIOhn)u(J6xYxjR*;~ePkJ}>xhVq2M?m6fI1rgH9ct;~L9{!N>6&z1Q!?FY^I^D1>H zFQyJXH=O%_xCT}8U0m@g$EUpdl4cwI-}oQM_gd`#?vaMVxwbH@=+4RQg`FSNk6GA! zANCH~ag*okweRt5CG`W*FT9Rt*eYq&C!=499-p3T$S=}A?dNjt(aS!Ec_Djj{m4Hc zwxm58-RC;;44XFD#}0=xH(IXjV|($;WS;F*&z@GF`w_$5B`^ETQ6(?+uNVES5lww0 z_L(bWzccor>tIEfqwD|g_}Pduw!<0A)pt&-@55@7HDWM);a}^uiNvFx{wC*Mo}Bq# z`v*8*NE`Ji=MKhjJu%FpEbUi*6&qRq)q0j!FLi7G9|BLo z=3wfl?JnL=hkXb9J^HYGKY49+JkLrMKe>kBZ-PI?J}v$&uQ7P7J~8ww@lPvh2jgc( zVfP`j?itnEFVUk)iI*J9rgS}^y+w-gl-w1D)q2BF?e50`)lyO zBsJs-cDbL64unOEE4%vaU2jN+bY_7B>mPs-UF==1O|@VkubH~stk z^UrA)^-I{xg|C8dEcz{+9}VLAk2W`=-&^#@;E%EXPH!~h@qX(<^0Gc{FWL55pMJ8q z=+9BE#z&hro#zgPT_Z*oK8|)DQ&{`z`O6)|unP5dAoVs0n-7{F)Ia({b4=eoyKIQH}5tb^0w ztb=mazVxO2=t~RG&G&TLZgGY6?;PmfKz3i$x&Mc=MyO{El24+HpTXXEvQ909^?w2W zXR>x1=T5~YqZ}@z3eUUe-@H^Z$am`il z`d8lPB`-PcE-xzmO731s`_GC#mbCU6Z8G=DYgOz&3*T4b+!cGj1K+^rwK5mU{ka$F z^M3LL9nE_>at&So^00CpUjLg`^4$)$Kd65c-jA|qzZz+syQ=esdg{DCY~AW#wr}sp zH7ot3pUB!cey7skJYTbYXL8SdZ_4psr#I_uXUg~}WmG@2JJ$};Wq)tt=3=vK?^MZm zSjo48G3ET3=g_KSRy})lIp@OF@mrmH9e4BTKb|Y45ARGLmcPSX*QLyL7gu;Lyj{^B zD_otEP3zp=4?pI$=OTXlgL*KA)Tf+2ZwxsPQcwRkZO$F!oD*r2eqPOYBK4DXVN$8L zx5;;SVcT8(ThzbLnaJ6D%lo1KiFTP%>}^MN_u+p*pRj^H8T}vV>fZdn zguLYApWwcQZ3ky<(mri1XOAjpe9702Z_dM0;q*hfvmfGfMn#va`ueYTsU7D$jK0p_ zcpr8M>ox2-tDh{vt8hH%7t6?6^}u7oU?$d4FEvJ>W6u`su;`=Ub&MavrLl z^HACI&=ZP{=b^H3X1<->d-=T*?L7~TPtQHWH^HZqb{sawxfOkQe1(nq49e18V!j;i zU-1OJi>z+HW^S z*T%m341Tmp|BU}HlCPY3Oq=wv|75>sY?*&dn>L*Rr%k67-kEwcFRy|8zQmJyGi~Zk zPQA(LZ*uxl{QRc)Nx#)5<6sp~dFQ|KofGD<8O7dyKCiHAvHU&Oh|Xs|;rLO%wCvyHGb%P0mo-IwOz}S- zPCW9Z#a@ojPQCb)zgN;OsHByXR!&+u`O24+v@no@TlqTr=eG3E zJJ=)b@jTC`(dX5jhga;+>gmt&ud#72A={Vi1FjKSD<`5?`$PJV_HVz;x5{ZpZ8CSs z=~uJh+&@)MUy?H~ErBhgYmJ=xk@uj^Z>0~&hnD(ZTCta7FQ=av+o)H#CO{pUSH_XL z>**0i&sv~O`lp<6t-Y}g#a>oFr||!Fj9a%E#sJJ%l(gOQ=f9?4LN<_ z|8xzl&NKQ+Km1SDN@M$fu~zEGwQ@f7Q(gPiT_2xDmt7y_>Y6wZJ!4tEo&Nks`nG%r zW8Zq4&w8qjbDI8rcKXwdWqrDan(yG^XDa<Q!ce>wC2aO``((0r#uUK{ql zq4RL|&+@YUGd7-6tVbWv{(0sK&;6_Cv+Dms_Z;Wn_O9snp}P;P)`RwcM0dWb&JXH- zllc=RFW=W223OYzZLFVsfGOke6K-f)m4kvQLl|L;J{9g?;emy3be_jgVjj#mP0WLfjcp;@7E5Uh?Ne8d>s;@WM>Cec%$SmMEl#ek z1>VycS#0#<+A$RW&iRixpTN1sRUNbH-p4Vm?0ua0sh(S9O*h}1YiOVTpq{;fygU2( zQ@3d5`v>Mgua&7EfqrYz>x-KAmGtvZY&yp;oO)1Sgl=8QPs3iv)6Y)qXP(24obw$y z`+-rgesZpq^SV-=h1_tbk)F3;CS!YPZKy{jCb za(v3!yUOt?Z(Mwig5y)p{!@<6PQC11EP?5*2woQHma^SkjSt?ei$t^68kub}_Se}&WcwkT;QRMN^xD<`d-w6?p~QLTSt z_#S?aA%^OFHL>{gdYx-=%BAkLyIccT*G7FZy4P=$)_dr3_E)lF?JDx>!@MMW-#qpg zpqp3vTXoLSCi^SXW`8BeUUq-w^#nQB0IU63-M!O)de2(>j9FuF|1-P9nfYAZ{m-w_ zW%obw6gc%JyXQH<`-^4{z6~! z@;&hWymL2*>+p}kckIfw%JrA8>GHDkAUJy!^;}z!(|<+~kH4*UA8~ds&pA6+_`crp zyd!wmqs?zMtUaQ+M)=*f7s>Zw?B!Qs%O!6(qgh7zU(w6H&h@3Evd0?%f0_?UEx^xM z_=2tY?k+qUcHAw34}o2~{|+As=XVy=^SqyFyY^^)yU&px1=LKzjc#8-i_aafG47-PfmlghnExo)WViaJ+Y~W)lQzq6>eYC{^U$+zpARQCb=L)dze7&l%DES&ee#l1=h~#b=E7Nb7Qks!ZBjmE%)R{Q6A2b)ml<{~B``-@v?+u`~Jm&HHikS&S*isq8t9|Zcegv=*M@H;Uw=nz0`Vm6Fzl^2e}{T_VaqkLu=9*{k~R&ye#v=W%e2)x zPoLB#zwx2Z^qDbm$|YwW)=%0(jvqPgrJu0=tDOF?ecE07=-OvrB&R=UAJ#rR9!}ZA zzIQCgr<}H%2&Y`G`wvs+&f$|Pe!|wFY#sXUbDoW{{->g!{O-U1mbZOd{Y-R!^SAmN zDC$2(@B9rEIPp~XsM;jv>Ymel(;r3__8A5_Z7Qc-s=u#MeTGN>-{{G2)v;E}`Hg1N zrY+1XG3Y1$<=AMSHq|~{{SA>$KV^=RGcHVD{R`&($6s!waxaJIbl^0nA;-+rphK>9ddC9}M zUujy`=p~i3a`dGYy|LkP|LqkXPhFXp-%*kC%}>*&jB?5~fEeB-h6%)=pV-K;F|X)y zbjuih7X3NxrT_FpIrXni+E+i(%`2>KU;X{b?7?8?mV>t7og+Bc*5q76($VEt-l6RBN8u9-Zv~$MYoGepW>@qx(7Uh7xi#z_-aYWi z{08oM=zhz>_%|rzm*e@<6`l>&EL&*3})SzQ(ie`lv6G_<&{$|Iq}F@m*x2-9y#&IiAPR7IF9Tm z_H8+Rdj|2RZx14VzisR9BhN0n=g9La+$i5%a=e%}zmGhWwC3gBbs>7{d_hTTz8zhg zc|Azqm``lxtAG8Zp5^ohIp4Wm4C~)->Mnux?>BYjwCPefKBpCX<7sTPJRW_fpUA1J zS#Z_}_0;)%IQ6WadhUZy^Rgb~d<(7}PCdxlSa#FezU~?NqsPy{Vq-m6|9*%3Yt+B% z*JSp?FLFNY`1%rK?TIqh9CuH{ew$bS?ms;r-;()cA^P@=>uVT;i{K&f?XY83o)7=S zv~cQ5w(R?3GnjZ%5BgvBy{TgV7HLmpU3UNM^Ut1}ht=I<*Uq4=v40j}82dUozb7)f z__4g|elnp;WbxCrz4=W`({5XAhL<|jUe37o8(F!IA@?DzzfEvR zB?ixz^DMWV=eMo%b+P|CeQbQiznuO#0Zu<3181$#CjD8?7?IQ87VN9SL)Tg?31pKbI{Xg=2mz%oPIkGPPw#Cd9_d7s;69X@{&_7Ib|_z z<}~$`OHNs|39F|L<&;Ys+TD z&b~-q_N{EzyDw@_A9fwrkK^db(#PzR$5r~9`kvVL#{NWjEW9?Xek}YE__T_C4r~mr z?-v$czu5l(`>Xmj{aD_?#iwnw_jj8<&%?&^ZvFop){lHcMZdkG-&nqBug&Wdo9Er~ z{n+?zd3ioOg=gdCr(yRq@~g1dW961rm+R}m(TBjB6Q?$xhBtb!Y43f6HMu~le*JpQ zu`iFrW?Ss@owSpf8`Vdl|BAAwPW+bpb?AQga!2fMhOglFarS_{=HRt!za6odw%g+> z_Efa#5;)&0cCLGW>*icKlk0)m7ZFlt{rk;rzoYv#^7S`s#&+ZSA-r|Hd3|^idey{$1V)*9<{6^JCzDEaVF4897dwd-Izpx*DMl)@`H>iFay1&oj@32I_khJ%q zd;TjwSXiI=*1DYEeR~9+kB$A%7(V=w<~>Sz2yEYY22LOAM<0F)`~A*f{UB}FvWK_A z#&0lw9UH%|{u1`KuipcI6F$bY_{><7?Vr}aHW}llO}_Fft2N7|%{p*=4u-9B^)D1| zuvliDYOk=mK3!kb!*5fTv845Pj%;^z$F-bs?HZwe>q6R^W$b9|CsLL!B~I%w>^O4G zJr$e(`ZL$HN*#9Etj0BG^pi>39oDD1^Fw}9Qtq68NZW@v(+}fa5(iZr~VzA-zZ~K{#xOFr4DbPjE*V4Z|SuKuL(Ry8Rwu6C^q-N zgV$WX?s#qgHEbS6_xk^vu-6rPq3_Q=Q8arT%+i6X4C(= zncqgSKD8N+jr=vzI!25?^PX+tyA`&D^)TvR&3c$$ z%H=h1IsHdY|M5DZbGYA%RL}lF&e|Nc787x{^c&rudG2G@Ncn~r;~O8d;)&_#^%fLDX_YAZr|3AYr&c5rhN+=*D}|a z?mZjJexI=qY~S`<_xX;!bNG)pZmwU)RpOUFR_x`^6h0Al4E~6`WUs$@?xW3yTej4` zzDtuggAa!Nz)8&pfG~c~af7dk#37vfFR{ z%@OtVVeP}}84K!FHU`fu!SBUW#_7bIHqu^ppF9Q5Tr?FiHcR`Sq=uzr`l!H&f)FvQN{$dzB0D?><4k z9-dCQwD~RUZ^d4Rp5MaL=1FwF75q5-BJ6jVjp0=|zgO7OYdNn~cotq%O&4vzKk7zgY_=>=3>)%eSmVEMB4k&E#oQvwX+5i17WZ=Ph4UMTkCd{%LA{-Z{cY>V&)Dw&A8Gd=*X?}&|Nq4qI?1V%aH0{yi4a086JnVVVj&YUvBqhdWnw356SAFX zoae+&7P4jQv{-0c$QByeGO-ZCX$vPZ*kZIzQBL za7*Gk4(`kSPsO#~<(-H-2lCW+qV;`Y#lJ{gW2j{-@V4Y8*WxF6SAcv@+Ap!}Wq2WF zma*)$cvr0azgfn2V2|P)8{bBJFXHn3xCEbopTf%F9qL&@dG+^F9m|LxOqnb2d-(pf zS6lO4_dxW!gPu=LajaCC>_b+6!&lynGPR^`LL_zq`pG_*RZ|BH>u|mk9~{QUEKdsnfR8s zmQB`qC~X~0J?-iHpW2R8{&?aVxBm3HR$R;KIHf%0$XSk@=i|sz^~AnQj@)E@WA3Z8 ztGW7h+Bz9;#`3T-d9VeKblo7(-T)$=XZquTlnWpwXOznA?1H>B&)w}y{7lJg33 zeuQ{jpRP5;eUN)OA0V!C-Sa5Fdpe(s@V+>%sg=)8Tt8|qDIb-;O7-JUzCn!Rd)9;L zb)@Z4j(6kB@BWSV{;@ATkTHLTf7kh;tbMhv5o8^6|H!^e=iASHILGH&<18D;WjXdy zavUFBhGlinUygGjIgZhC9B1WNUusLwbUi|D89RO2mK<%#(U!}k+mfR#Iogt=EjijM zz|j{u>X)N_mr2(zNBwftFGu}y)L-=(M_Y5S zY3rCZiz82!32WKNIb-Kf^HiD0S!KeCNB*i)+m8MQd=y8{<5;I|!V(lKu1#ADnhKjY}H%0z!vCi9QDglzZ~_;QGX4N`sJu!j{03DUB4Xl%Td1^^~+IzJj0`BjarCD zTXM7|M_VqFZcC1~Xc&~Tqa$o z968HTr<|-a#-V_CH6iUUyl0as9%oyt3KmsOYvw+j<)2{bX#(?B}ZFw zwAHNgtP7oo$Wf;pb-GNtPC4q7qfR+lXXM{WJnEODemUxQnRNYf)GtTUWuR{c_YVNBwftFGu~;IO><9emUxQnRNYf)GtS!a@3i%>!;31Sn+5}@o>p! z962Z+Ik-$Z2RU+(qmOdrBS$`UINFkUWuR z{c_YVNBwftFGu~oIO><9emUxQnRNYf)GtT71sJv-&H2^RGFk>4ya5VM_f;O zKFE=?%EWw7Jn5JlDig=D794$%BR4tnmm?oJ@^Sfe4szrmN4s*g+kvC4^SFok5o0^T z*eV|F>KUGOa`-+Sad}U!$6v(zGT*eU?mNkPuTdr5ab50pbIquGccbb0Rc1WlW!xjZ zisz7Dr5=@ub)hn0#p4`U@v!cD%qJh+U($WNT&(l_Y05-jW)sdR{J-Nd&WeY%Y>Y{6 zy1efHD6Zd{^=?c##zf0To@y&Rm99tgCyO#M|5ZNLm&%7#XVS4A-Bx-%%CR1ExSy;( zDz}0}p7}Vog%dVdT}ID%oQn5me6%i#(&cr(NRGbf-u0vW?a4n`7iUrajeS<%6E34n zv|EK^yQsj?uR0uKF6&vQJK3gM5^*`&QkfVl#iM>X=C;bHt*$+}M}ecQb{xMy%JKVS zXS%$`ydzOwzm4iSx~UqrW#X}}dlTim6XlmNhqdq0->`g$OEu>i!$!))dO3AH?nTGk z!(U5yQNov{-OsWyK5~r1U^?!5aX9w>ieEdpdcW7p?n%${==scE?z`Ue5YO)O&JD%K zZsqxT?nm<&=_l)5aphUhJsH&##}Ty~&sEAX&qr~LZ4ujJ=lN`}Tt_G#zh}+j$UkFu z#^jMTQs+IueUd~yS;V8BN#aqD+((@keT{o}l(`eHhgCjVe~gLhjBP=VF_%Zv+kzZ( zMvi@&9P>x*o;PvdV`Wc8(z9KtneH&90JiBkM!@@ysE&$gg#O20GalXHxN zw!7HY3W&$NDoU2YG0zo`KB|1|#}tqJ<>;5nM7#pWc2|aDoK-&7V^tz9$JnZ#$oc5? zKXpSouDK`2+*6sidDc|-#xJDr*E5ITVV@vx!td1Dhv+wpTZ!wQx#HJdx%zKxW&JHi z{V8l~)EVQW-=|hkeujFkp-kknEbWhp-+~{eOvVy^qx?+#Y2xb>xsmCsv^GW>8@2vh!O=Uj9QGOofxBLOWvk>3D>C-Y_NZ0cq@ttuQ+rIXV%6UU_ z(6dI`9`!q*JcKn4^54^OJ>Rky%PP(((kFA6P5P5{+L%}`EeR_g&w}dt@ObWB@t8Am z%(v!*+i{Go)?@tEqcZVKYzNky(X-#3SaV7H7CGjO>W|-Wm0Qe1)gNS>?m7C%vDPV;!kXjGN*~$3A3=c+@Y)*y`_PcHWS`KVv?to|vDr zSpC)C3Cfput(jV%)4 z4(gX2{gR^|{noY(=Lxrst$rTze8#7iF;QG&E64cjo76g&yWvkgiF-w(>yOFu5IB*w59cR z9nbmbS@F4)S$C7w&+5qf`>dZ(WKOg;n_TnK-#fT>5jjLX%3%xgxse>?U9i^aX7~WC@sW?i8bg&iC+!Z}iub_C@eY~p zL|l&eW{g|x^EE!o?N-`Vf6ryx**ZOkW6o=AR=Z>kj!4&bLeOhn#!s z{JcM1r{?Nl!ovx_#5NnxP08`xl-jzQJbyvoCWcWq5PSx?MQ z#UG%4?SHhawh=uqsvH*GJjXdt@@#XgN5vnayylhs6xO`jmu0nHG=_@5LVScgwI1KY zx3;d%L1nb9sojG)hY!bgr}!G1u3qnQHdb3Y7mDlU7P>u3p89U1p6lCzG6z%Uz;q7k zi@bvE^ciwE3~Q{O#|4a)a?n0jj^|S3ES_7?Gk&t3QTdR$B%elnKjPYNYi#xR2&2TK zzmsXJ-Km796IMO(T!i8pXPt}AV(p7`E}F6Dr{^ScoU5oz98F@JI?AN^AOQC^Pna+Dv(aUPq`vMQtdy|U`jn8>O}ztL!& z#`9OI=aczQT+d%=8&MylT{+s7qg~Y#&x2{c?amy~JXAc|Jt1w)$)oY1lzEN%PyI~% z1mbTJKkGB`Gl@?V*RoAm`%Jkt?ejiUei`xqq|0}w%Ut-GG6TfdyoTrfh`+Ya>USVt zfuAD&v)lOlApCsVYHLzvdy)Ts=IX!gx)Z-mT>H-z_>pv6WqM0ikGcFW%Dlupko(i| zYuH}&?ABazP&|WY0JVL|nmsZ%DbV)#m(}a{X!dWhehXOd z@%MeF5-+2?*3o&1GJ2M*mbjj6Q#_s@lV9V!NYCY}%sGiN%58IUC`!~{f@2@0cH_9I zXRTwqYi9n$F-ymtxK}Uh9@mka`{^0)*as@-cxGPpTu2TYs|M=%Z#JndiLe{(LO_=9*l?NvN;s`Dkq$B1j(o~2H;rTMJ*+r+nF z9L~bAPtce|-xb$!dB^lvMV=blu*yfy6*$JECLP!DMe$gVa%|%&qwP`OmCzW*-)yQ( zSY=dR&m$=wZPnq(S@EP}f8z2it7rM-Sa+&3zLBAL>=R_IJ3T)yM<1)w))*>JeOpb( z#0=JBjAwJYjK;Ptv207)I$p?ePCmZT>b7(~*-kvpC$((s(`5BmV<<O7k3xK01MdcQQwHG<}Y-XYULJux2!sVCN# z9P3(+`6fsC(L{MU#<@Qc-&emMG5$IRElb~%EF~Y^AB%Z1PWf1Oa*Xp!T)Yi0nB(iL zmlE6Ev&8ozemM2Kk&f&Bp5isck0BmD1;0a?hlqb89oOHpoR{$TaKXY)=iyW$|7jfk zolVE}UVspS! zlqKqsqc2)E$}2bBBh`0&v~2XHXopYhsURNte8{>eCkN%D^3h+FiTbP3ac#3|E9Q9( zj(Q4koSQWy%G75Op?^L-eZ|$C$|ap5rzHybql7*q9Hx$8rj7{h4Jy7a-_odbME>z}EFMjIND5LL6EB-3Wj?-@Pon4AwOc}kK zH~HI#;$xIoJPW6;;r;U;t*+-v%Bvog=}xrudvfr8m_EikOQ$KL{QZu;v~~Ybe}DQu z_o<$vkGuvmRZrhv#fqP>&zh-svHnJQioy60>-oUA@2bB?(7sXUvE4bJj!!4;#ysi3 zF;BV^aeebE#&81zhhCKZNp!J;?bUb0hkz9AaM~kJ6To z*U9{~tlqD_ggHEkqwmRjl;$}); zd~471iaNF3CF_wRPdV06axTfAyS)%kZZFaIHgS)6>={e2vx^-i8Ceh2KQ%o*$x^set@J;|{e{$G@tq)hC$<=Ah_v9FeY zN^aU$%b(Y-;-9w$tUN831FkbbXzvR{hFaWgr8GKi~Rdf&LpL|^3S ziyVECqc5`h675F*xx`~#$dSJs`OA^N{CVp_@&DJlP?^YCj-2JlS&p3L7=Jl(F2Iqq z968I8v#fW$YQH3Zk~1!39CY6%Ip!+!d1IcOODd!My)2IW6_5Po?WsT7jrlzvA(oj^y^Pc=Sb%zR1xRIr<_Wn4YV0Y}a!1 zs{%*A?R3_3{+fyp@$tl$lM$BOjHCeV{!5)j6q4$)O)d z4szrmM-FnFtH_a$yy1JRbC4s4ndQSiiB>STH=gspe;@W0){h~7Ji@v!g zM_=UVi@ZG1)PWmi6@x*BWshr}#{|&gAuo;*o#tYvi_`gq#<4Wd20>}k~h;vK8&{PvtV{{2+t7qaZ~bea2c4)v?8yVLH# zy2gK>+~l~2BgZ|Q8XVWQ@+a5AIPMWC9@n{TIQrO$V?5=H(&I0;;SKpVmb?^ee=Bz- z%KSFrA)K2o|6C&eTEej|8mZ^+e1pl?hB$JV#IYXb*zd_&cK+>L8{$}x4a~g@($~=) z?62ZpYx3N+g);F?+hm#Kv7jSa2FG`A|HtyQ758$xx8WR&d#c*!_px z!Q8%+d7iN~=NOc4y^ZhU;OM&?eV28-7~&jB)-gi+E;;(E?}$ZzOK{X9$G%RE{hJ)i zw&9pR$vM+bJnE5SPRg2-XKM^`)Fa27?8LFG962=N*Ir*e=8Es}{_4KSu})>xspG85 zN55th>mr}|ruEoD4sv{(IHUN}^{DvG+{2sI{wgsCW~nol?N|NjIgnh}8HxJKD6?>C zbYr<-j@X@ZiFA3*pPWRU`H6aD)pIEIsC?9ui{l>qBy%S6 zEJ!b_-*9#BdTs7q@5R0Am$=Wbd!8R(!*8{T{^lmyElMw|eU7YlYiPHF`eVN#$9AoD z<9=fi^~5@rV?M}VVmNBjtuy_qtyzDccb5z41v z{r!j>->0s?vAxT4UtInDH9799S7Gf>^j$W!75n@K#nWxc(Uu%-$tOz!Ixk8g9Uo`ci<8fIO`Z~Aha_sSY`onxz>xEHN@;=AO@`If<$D}Q}o z{{Px`67eh?{gR_!^5^wS@yJtk#y4t{+ppr9t9njDj&I1yaSuGKGFmqJk~|Jh)2~>+ za;#JN7wPq=zJK004>CTn{i?k7+d3A=vEJoa@3T1ClA|qI^GD0du|Je!+2nRq!1(l$ zo4$E1$J~}i+66%RLkV8DSDf#oZqaxx_zZ~_;QNNt5KgLIG#XOW_&ZvBBQ?h=~ z)&1u-9AhHKn8>kB$r=-#3&}Ai$^CpUam~Y(j7d9={bxyHA1G@dcxHMZ9_NJpiDkjKs2& z)F1uLO2ns$$FZy`QKzhaU7Q|=Pv$V?KlfOcsIw+fkF0uHsV4_VJ-PV*bu805it*1) z)L)mVUsnCsQUCwum{mYMu`cA8OY-L(vlQ2Q(J@Poc~yjUt)cU@1{`(DvHzE&emU;x z$#E_xfBkp-y({;H->U)KooU0CN%@`H(d zp23mln>h1Yo^|A$KeoXGvG%d^h|Aj7ZH!fq-XWTck0$;R*55v;jJ`FzO}ZX!M|xge z<@GGkWqdAIr*7M%NAzmtz~0qkcK|QS#6JyZXMptnE(s z@a1Hk(QZERs9%mc<)~BEvR`6fD#xR16JC+$J7(jtTFcw!Sa0Z^8$reF^m+ zmbU6VI&IZ+LfSv1%&BRYaXocbqRe>-UzoO@d%QGljpr2!@0fnRUGZxY@nvbN-CGjz z@Dsdy_Re%%V-<0gUy+F4m#F8#gda^?{%qPB+n3V5n*P3#b~}D2ZRPx7+G=+V zo;lS1LHW#0TlH_2C_g`0W}VgLZ=}x667j9m{yFg-(^mbvC%kXk$|2f1nZJQLIvrOI zCnU;8{J2CJEqiLB%voux@8>1r%Q!Y2!}05W&RcTHc_n{S{JVD;f8sjkY7WS89V*9j zXmUJb<}w`b^tTeSp6jbjFRSPJ-=>9ni+jiXzyZcF=KIj-yF zcqUMeYkXP9R+UdalXhRm>gQ(lOkFbm+2_;ZTHEn-&MR0p-tC~@)YNy?uf815{lMs# z+SQoo_m{YbFUP%o0}Q7oB01!W|Z|9efi&%$xLm`NmBmVvn)uRnlUqEN0 zx&HgAtvS|YrgkBAu49F0d&hQ1jgIlSYieg=+?hicI>!H|3i;25seRE!j+LOjh|Nuv zqW!EgbbwWk%1~zNFtpf9RG`BgI|BW{u}X9#u{BdiqbnV&LdO!@Fm)VibF3Ow6Puf= zK_^?a=roj>Iu%{xa&_oT$Id|46I(NN7P=8_nEEEV31z0PLAN^g6Lg1TH=%CFZb2&? zy9?dx*b4N3^&lFs{)`^6o<@&ZFQF%`SJ9~T4tmylAH87t9R=1}Yq00C)<6WY-F9op1-1m&W6spag18c=46+wZCK ztyQSWnno8}Gw3pF7F}+o*m~Qn40Mf^iLOUnf1(@Fyi_5&+0x%l-(nS`PL!D{M|WBk z=vP)H`i)hE`mAd7JF5mgWYwZSS&eAeYC=z0&FF8|V)S>b1x;A3=vAu={ln@;Z(BWR z+Ui9gT7BqaYXZ$-GssL$qD*TgTHl&R8(K4HQ)?FGS}FF^TU%UMrna~EGvL(DRyHcM zcvVnpFN;5%O6_Oy8vE1%XkMyoEw(MI8y#i!pcAcL^i69J-L;?BFWQI=HZ!#fEwHB1 z7pxhyjWvsQuu}YGW`UJ~cDFLo-c}a+qLqzGtsHcSwE%s^%0)+6d8o?DM<-Yd(bud3 zbh=fD>a8O5O{*Av%PK+Nu}V?1rS}P6YL%lOT9xQ3s|qc#s?krZ8uU}E4*krkN1av! zy3<;Oeq}YH-&jqk&uT`$vlgR=tQPbqs}&7fZRja$3HqDWj{a^fMH5yBdevHv{$X{Z zx2-NTZFQp$tseBT)r;orul3u9GOd2JzBPb0vlV68-D))YF-T7{0ZrqQw1463$f(aBbdGq=;M40NWIi5jddbe@%sF0gXY zMb-ke*wXpm53D?NrIn9N_l zT9xRJRuy{OszxJL4SL$DMbBAv=tZj@OPw2X zqB&L@TH9KJ=34D2%UX&yusYC&)^fD5)rl5ZU1$rd8*ORzpslT5lyCK+9jtz|lQn>L zu?A70HH7xGhSA>E2-+9TO^u-vYaAVDO`t=qNp!fi5>;AL=s0T?I?zLklZtSoe~m5na5a?s`00@P;ZqHC-?biI|2ZnPGnB{u!_*H ztzy(`m7x2qQuKSP3_Wa>qajP@>VLK>(O;}8^o&)F#!+Uf7QJNEq1UW>^iQh+t+E=? z`&JYBx7CdPYb{0@2dKUlG}mfH^Q< zwN|1ZT2tsMYZY2zO{1S!Gw7$*Ec%(nlumV88R$+c6aC7{Lcg)HQJ*3ztyPbHZ8e~bgOqb4+SF=7xmGjU z+FFdZx2ky$=FV0PDzs|RURE92&#FfUSPiJmT7(X>8qtwf6FSyvM%C70bh6cgPP1Ck znN}NWu$G|ntafyPwG>^1=B8%QVrv%tz|w2$uCy}HkF8A9Ze^imRyMlX%0WN37N9OG z7u{v$p}Vbo^jm8o>bDBegH|E>qg8|+w~En-Rf3+jO3`yx8G6wwN0U|sdc&$jZ&_97 zJ(QVRgl4S8=p(BIt$DEiwH2*nwV^C)37T(puFssby3iI@H_Eem&~{cY+R5reyPZ3$jUQtzmSnHG*!i z^o89HYYg3DjicMG3G_>A67^Us(LL4_y5Cxb{$Nd`L2Cv*YR#f2tQ5a3{?*DrV^$`5 z-pWERTiNJ!G%uBlrqJ9}6?&*lvEgivoYn|B_YlQKQLi?bl zYh|LXQD&-sL(XWe2DFF&wGZuM^`jDN03B!zqC>55bU4aP<#YeK(y`(k*1lDOPP9tV zDK1xz>Z}TMmQ{()vGgSA`DmR~4{EY{(M47ty2R>7ms$g;#TrDHTSMqdYZzT^ji4pg zD7wxXL)Tm5Xqh#EI;=_bGc-3fg>JQ0p*yT;)NRe671k`e*V0YP2doS{jODrKCp_=tW}KGI86O0L2Fy3Xg!pf z8sCKX$XS(}a;0Qdq0Oyow3StZ^3j}B@q$!pM>H>0iVCbUbg@;Aeq~jlyT77xm1w)e zr7E;Tg;b4xZPlQ6ty;AI5&G9U)MeG9r%`5VIVw9+>O_ZGUFb-w8y#!)plYiZoow}? z)2x1UrZs>XtU+|1HH0p(hS5dV2wH57q90ge=t^rG{n(m7?bb@P%$hyW_^thFWMy!1Fw6zdDXBDCsts*pO6{9z-67-f; zir%xz&(sCS!HNns~mmFsz3)@m8jgRLPuED=oqUFebrimYOHp2s4AvX{|z|)--z7nn5pEv*;BowFP?+D+9f0WukYjEcAhujb^PJv__@Y z?*g>8m5bK1@=&&wk2bazqRp)Ww3Ste@~tAYqg9M{wMx*QRw*jB%FzB+IXcLyKwq{h zQH527j<%}N@m38w$*M)QRvkLSsz+yA4d`5J5o)v=(S=qMy2NTm-?tW{R;vYFZMC9n ztu}OnwFGro?dTS3DZ1V2K)qaLdh-D7p3`>k&D2df7STD|B|s}DV4^`pO918B?| zM9*78=w)jdy>5-5DQgtHV~wGIS>xzG)&$beSo|`8*0NTjb*(A1fwc-2WnN@)u)q^sQ(LCrybFDr!&+11TSp#T+HHf}o4WVtUVYGuaf(oorw7WHi_O`~+ z7p)0YYE7a;td;01))YF*T7{~tX>@`$gT7|XqSGz?cwBE~pl@24=v!76`i_;2nynmk zskH$8(8@(uS$SxQm5+X6Ekr-H3eeB2Leyy$p*yW&^ed|b{l+RqeO4LzomGw=vMSJ@ ztV%R&RiUS>YVPN>~ z1E|^>L?>HA=rn5>ooS7r25S_ZXN{o?tZ{UaHGvjeljsN5N_3?)g??%m7$NUa~@w>sAN)hP50m zvO3YXtuFLks~dgK>On15FS^3&LqD?m(RJ1UT51iVo2(&pt2K=7utrd~HHubPW9VLM z96ex7paE+VJz}jyk6BabNoy4vwWiUt)(m>VnnkZzsjWEwvog?|RwjDa%0eGl*=W|v zL2DeRwZ8zZZRMi%tUQ!$<)e+Qg=llD0BvOzqI|0e?PwLFU9A$dr&WrItunN~RgMm_ zD$tj$N>pK0p`)#8bi7rAPO@rItyPE4uz!Mo@t@igvfg z(B9TK`l2;~O07wBh_w=Z#hOA#S*uW$HH}WNX3*EHS#-Lk*X`C@8R(l1yU1}{rKeTeuRaPEaV&$WsSPRiltpfBjs}OZsMd(he82!pBLBFv|QJ+Os~Y{yszHCZYSDyMhhDYn(LbyP^tQDKO`*0);GhE^Ne)LMdat#-7vwG?e{b)cQC<*3l=M0;6XXg{kP9bomKGOHIIX7!;X zt$uW@HGrzEL3FY;gif=D(V5l=YOqGpdDa-Zz#2yvSrcfnHHm&;twdK^Q|QOmD%5UG zqh;0%y4jjVKetlbaQwWCw5rReKc z2l|G!94)ds(YLKG^j)hPeb4GaEmkkO!s+4WgT@A#|%XjP9^TP`5RT zR#;=`UTYjZU`?O_YZ5(TtwfJmQ|L)+6&kgs(X-YJdcm4SuUM&VIsdaV(3@5!de_QA zA6VIF*2+O^oT#{{-4c%ZZK^;~*y2VOq56FM8DK zLr+-!=&#lQ8nXt`^VSf0*&0T#TO(-78b$9|W9VPjIQow@fl?=F?N6e$td(e8YYJ^( ztwK50G}_FXL0ek0Xj?0l&-tIFzdhf@%0zouS!f?C8t* zszuAKI&_;=kA7k4Z?AuCEkeDP{{Hzss|o$yYDN!Ri_wtPg8po^qQ6*e=oxDX8n@cf zOV(2Kn$>~+X)Q;qtWNa4)rJ0Tb))}UJt(6_^Pm^awffLJs~>G-4WI?qAo_wegtoDU z(GJ!KDzHY;?$#LE+Zsn-v?frgHHi+fR-&(1Q|Ksb6{@nP(FxWJ`kFP1PPbCqasFpz zpl@24=v!76`i_;2nynmkskH$8(8@(uS$SxQm5+X6Ekr-H3eeB2Leyy$p*yW&^ed|b z{l+RqeO4LzomGw=vMSJ@tV%R&RiUS>YVPN>~1E|^>L?>HA=rn5>ooS7r25S_ZXN{o?tZ{UaHGvjeljsN5 zN_3?)g??%m7$NUa}w%LtnL) zpc<~Aok=2R5ZFQmVTHWY-Ru5{ideIeDANrBikFK)@&{As<-DC}+ zTdiSqhc$w_tx>eX8bkM5)IsMsn)`&;GcAgcm>*{VbpRuwwhsz%3KHRvR(7S&pH=nShKoozLsbFD?F z(P~5&T21H@s~LUYT8vt)7Id}MimtWV&<)lS)M2%wTdbw%cB=#Z(prvstWI=~)rIc2 zy3rr39yDn6qDQSh^n}%q{%Q@NF>4S#Zw;ZBtzq=KHG-zBQS^>AhW=%ZqyJbFC{?Sq zKZ(||R-$#SDYSvL3guYSXftaDZE4M-ZLQQo&i||ow2PIA_OP zm5UCy@=&FfkB+kzq7yBBKk5{#5Y<^l=q#%konw`t^Q}_UWR;(IDp8wN zg|4xx(e+jhy3wjd%dI+en^li~VKty%TZ>Sy)rju1n$Yj9X7sSN7!6r1=+9Ow`is?u zp0SpoajPA@WGzLnSsmz~)^fDU>O}8bUFhFdH~O#DgECIlJm^Jptv)o*>PH({189LY zh`wMAp>3>Tw1YK*3anAIyETUPw#LyHtqD|WO`=1rmFO$h6gtXUg{rJ+bb>X5zGls$ z)2-Bwoc~!F=$lq1`j(Z2zGG#hW-A9>YArxNv~tl^Rvubn<)fci3(-%l0`xPh5OrEb z=uWE`{mLpqzp+YDpH+r_XO*LetP1oes}c=cRp=?J8vV_xL4UVu(S%ipUbX7cKdc7y zwzUXNTaD;Ls|kH`q8o00IIeI(aF{jI?WnJXIdku!5T&9S!3t|YaCr< zO`yfrB>I815?yIcp&whTP`fpamRU3CW@{Gx+)C}l`Ja`6?y@q`-BuR*t(A@XtsL~A zwE+Fm%0-V`d1%DSM^9S|(Q{S-deJIGlU5OW!zxB^StaN_s}#*xW#}WT9Ibh})_w(A z$ErkGRu!6WRijO;8nlH~i}I{Gw4GItcCs4KZq_1HWHq9FttRv(s~H_^Ek@;53p&DT zMaNie=&RNeRAaTHQ>~@w>sAN)hP50mvO3YXtuFLks~dgK>On15FS^3&LqD?m(RJ1U zT51iVo2(&pt2K=7utrd~HHubPW9VLM96ex7paE+VJz}jyk6BabNoy4vwWiUt)(m>V znnkZzshv6hvog?|RwjDa%0eGl*=W|vL2J}$?Jq!UTe)aGD-UH``DkNnA==z3KwDXb zDBmhVJ6gqPSE~f=X_ca4s|@XLm7{~K3iM^G5>;4L=xD1N9dFg3ldM`)Yt^AMta@~| z)qu{m7NJI~5nX6Cp-Zf0^nGhFYPDL>)mAII)@nmHSW8fc)sAklmZICO4)jZFIqI=G z(LGidy5H(Xf3SMcpw){WwffK#RzLcyHGsyfLG-*egkH9W(d*U-nzBaGJJuNbmo<+5 zV@;sc8Cv_3Xf10cTGyIF8(6DQjx~)ovu4ni)-2lA(knX_S{Y~;D--QuWubknY*b?9 zpaZQ1=uj&c9d6~JN-G~7XDvi0S_SA7s}R*$Md&Q67@cF4p!2O#)MS;Ri>-2WnN@)< zw<=MaRfVpxs?qgU4Z6{)Ma!)^bemO=eqlABUt5b%uhod|vzpNFt!DJFwHOUqE$Giy zEBcGohMuvOpmD1my<{y#uUVbwpH>%IWp$(XtseAms~7#(>O&b{*F5M)bFBe1&l*G< zSwm=nHH^Msji7C;QM7|Kh6=24w7WHd_O>R`7p;}3)S5zvSgX)itZ8(VHG`_GS#*M> zm%@Av%}ZsW(;ZugjyqHRC_pD#h3FKk7}Z%N=q#%eonuv@^Q~&sWYz4-EU{|QWmX-! z+^R=y)*^I`)rhXQn$V3_Gg@wSqT8%4^b4yS{o3k5y;d)}&+0?JxBAh;R`zbp5-SJ& z8O=-O6*5b#d^Epav4!Xus{q|)6{2m<(!Um=TdZRA#j_PFK~JN(saka1H>5hW)T&1} zSqu6Ix+4qkFBz=mDz*4WM;WZRine2^zB6(c{)q^n}%cp0bvsQL7U@ zV|AhD(7aSHdfw_o|F-(kS`GTw0hDVEqFt#Sz9)LM*gvX-J-tqydD)rq>TF0{hxM)z7h=mD!24Oo5X5vw0PW(}ez ztsyjO4WnnR5%hvJie9nC&`N6@y=i6d!MO_JEj;K0s|ek4p88vcuK1Qzj(%iSpzEwk zwA89XH(Ax_R;vcxVb!8;s}8NO>e0Pc1A4$(ga)ie^oZ4j9+Suwtn_K;8D{BDd zTZ3pvYY6RX4Wm7+5maoAqW!HgbdWWUzHCjP3TqM_ZLLJdTT|#HYZ}#BGw2L!7M*RS z_T=2m%0P`)Cb|%@M@N@f+30dB2Q9G{pk*l2Uw^;VDkXM@HHNyaakRq9EMomyS?B>P z8x2?s&?8nZdd$j0Pg?nC)G9*HTE*xEs|3Abm7hab9`ldCAuC#{GO_sj8dbc%#9=G%b&*!WKdvjml+v-OiT4?FLdAlI~8W8P))=kx+ zGtit=JvztIyYtSo7NJJO-@>Espn0h#)a+Ob`Zb!HYDK+{>HT{5SxeFHtq%0CwHyth zxv4JnXR90i#p*%NSiNZ6>O(JC{pdAo0R7V%M60YJ^u9HW{*5^P?!&nhVlRaXE|AL6 z?p6ib+p0ugMDtS3sMN7mbg9*berUC$tE{DHiPeFAV)dY(TD|CJ)*$M%hR~hXF#44> zf_`J^{ce5M82X*1w;MlXO`tznlW5pliJr1np}$$v=Q z-lnZA^r4lFKDGwXobPDV22rLpgx0qz_T?UwRf#sWs!*;~hqkur(e_pY+SzJFg;pEd z%UXi=v)a)CRu?L>y3t`)4?5E7MaNowsM;DpCtHK)G&DCgiO#fEq6TXUooB5=7g*Ei zB5MXMwr0@}tc?BG2CYo=V=D`_TiIxtm4j}!7NDP7xv0y^Lw8yE=x%Ev`mI%f`mI9r zpjCwaXceQ!tr9e1m7=GuGW48Pj$X7X(4gWj`h(Tr7xKCkMc=c^ zP>WTLuCOZ5kE}{`omGXFTGi+#s|MX_)uKDBI@E2|qZL*Iy4UJJ4_M35fYpf}vAWP> zRyTUm>OrGcFM8JMLoZnU=oM=Kt+WQwo7NC|*BVA2SR-iG8bxbdsBs=cYg^-JJ!=AG zTa##GYbDy;nnGJyt5Ci*jdrwV(5}`j+S5vvaPDJep#7~(bdZ&WzHH^73QKP!Jle`b z$6NX6Bx@n6wF=Q0RuMYeDn{p8C8*IVMHgD-=n|^}ec!4?tyVR<+Nwd0o`sbLcg>cQIDlJ65eAiM)zAS=nqyK8noKcqt;UNgw=umYAr`&RwsJi>OwDD z-RO0z2TfVM=pCyM{mbe{|3MrBQ0lwV5L(L`M(bK5Xaj2$viE>O>b>Z3nV1ww9ppTkWXTT8gf=I?%P&a&&{$i8`!7bc;2FZnuWfFRc;OV~wJF ztTA-IHIDvZO`t(*5yc{(&|OqT777t)sJ?u2GAbXAlkBQ(c#t@sd;MAJ-XFuKzCS+P`A~HR#;8wUaJ{BU@b-iRttK>YDJG(ZRkmB2^zK9 z(X-Z4^n%raUa^*=l~yNu)9OO+THWXas|U?my=aXes=s|`ZL1%xXAPiiYY=U04WZ4g zVYHPsg7U3Vw4*hKcD2UQp4J2^wkFa3)=G4cHHE%xtwI&nG&UuK z1D#=IqO+|mbgq?+8m%03p|t>AV&$UmTY0F}%12jQ3(>V!0lL8|L>*QUy2UC+w_7FX zmsTn2vC7arRyn%gsz86RD$$@-g&wu4(Gyk;`m0ro#;iK@yj720wi?ju)*>`zHKKQ{ zCiE|>8U4pvj8d0t?YE${tX8zH)rK~(mY^J~9c^YUMO#`OXj^MJT4;5mU92v&ht-Yt zv3gL6)r$^9Yo_i&+n0MLqC@?!_o0Q3^`pZb8$gxTAUe((LMK|o=oD)N)mfwHENcv% zV~wNptqIg*O`?mfmFO~S3SDlkLT%PGy2hG8*ITpbMk{qF`#&@2dfzs zT8q)XRtqY(TG7eYC|YEVq3>AZXt6bcuCON2wbn{>qcw$Yw^pGQ)-<}`nn4d*v*(?W`QM zla-5hv+_`prFRMLYb``yvh*&&gRLS|ZWW^=tP*sLRffK5m7^M~0-b7AqOV&^(KoCP zw8&bHzHN1)?^<2xdsa7Uv3k%IRxkRI)rYRL`q5Hr0NrE_qFb$DbcZ#9x~);P!Wu*O zTI1*eYXS{eljsp^C3?)7LQh(&(5N+yp0#Gs3s&kYoYPntXr+~j-n6pNyH+;(z{)|h z)&jJ~)mr;`Xl*MWt!EXWY^xA$Y!#u+tzxv5Rf6)ZQnaI0hIX~e(VkWXDz+-o{#F$_ z$f`zPwrWs?Rf~?c>d^64Jvzy1K(*E)bcWT4&bFG+xmGi3v=*Zatrm2N)r!7vwV_sP z3A);9N7q_Q(G6Ay>adohTdYoWyVZq$`G1(Yqsp(O+r=MXn2Ge-y2%#?TsS9Ic}!P@IY!$mgnxLYt{*G)KjtWEG3HQ*me~m4J3r zi6}!Qp?y^{`j1LM2dY$*tJ2UBDjgl8GSL62OjLyUcQv#~<)AZEE;>i$p>mavE>;ET za#e+{Qq`yitsSXBH<-1d_f$LjP<5aI)rr1PUFd7ogT7O}XjJu~UsXT)Qw^ej)ewrh zJ~)qIG)s-3wbdwEPmQ5?HGwu&ksSW_j*3EaRWwRbF=$5>i*{9UXipW7GF1ZFUnQdd zsw8xXN=A8zHD%G!Dia;Avd}`6jfzzcI$h6=<2NM31N{^n|KL?WzVnuWHfDst&!b>QRqsK<}zX^nq$ZpQvUu zs9Mlhsug{!+R%@x9gV3D^oQz1|EMlBvo;vrZWOJ0&|0b&%~pMAL)DKG)BxH-4Wg~p z5ZYD^qf|A5c2T2f4>gANQR65}O`ruTauB}>swi~0ibnY=1|6qj(TOS!oucAViAq3c zsYG<1NQyD^eN~D+R%PgORgQ*K1zM>p(GRK${i3STxT-;at6H?m4Z-Z! zq19DAict+{UDb#-P)%qP)r=BV3))JxqHR8bl|nA#|D=Mx|;5ovTLCg=!34s>V^3nm|ibY2ov&uuit9&$}3eb!jgV`@ctEnQirYc6UssydCO3}uu3~jE;QIe`a^He3; zUR9x;RW(XiHE1tYi}q7>=m1rZa#RC4R5hX_RTDZ^HKRh+f=*Jc=v38)&Q$HFOm(0O zR42Mbb)m(o8&#_wbgk+|H>y5#tLjG$Y5?7%2GRX$2tA~RQL7q3PpVP$tQtcvs&Uk% zCeU&fIfVN#6@~t%qEWvJR>J;N#iB1&9QsDZqY;&Wep11j*uSYH^p{FTk(+|qPeH4y zRJ4W)R>xjPrK32Nfi_Z^Xfu_C=BR9xta8wHDi`gf^3ZOGU+r_b4^xe3U)7HOqdL%m zsuSg^U?t)sR5vHICP~7R?WReC7@cBh;CL%=ysKi?p7(N zNu{D?suVq<%Fq+49JQ+|^t`G@FRL2#x~fGzst&!Y>d^Q%+)eN}=!R;B23RfdLCIa;YI&=0B-{i3SSxT;2fs~WV*Ey3*9qSaL$ic$4w zUDbd#P>pC4)r1mNGuleEplwtu+CjCUG}VrFR~=|?)rsb-E|jgh(Lt&Q9j1EGQK}CW zsD5;U8bBwjL3ElLLZxaLovTLBg=!RCs>V>28b?di1iDT|^7t@NQK();qdQd$x>v=b z2UHwtQSs<8m4Kd7iRd|%ggR9+dR3*MH&iNmN2Q@Ym5x4A8R#>WiB_mAG_11G_bLbd zta8!sDi2Mld^F?MVD<~pYN`;esftjnDn{$8611@@MVqTKl%&ehJXL|VSCwdIRfW=3 zHQGznp#4-WIzZK-9954FRSoD!)rgK&O{h>cqmxt%I#sozGgTWZQ|;&i)qyTiooKP@ zLe;7pU8{P~jj9*js`^la>PPpe0d&6_L=UMU)T)NjlWGJ#t47g_Y7BL$akN}bptn`z z2<~%K6zW&e=u;JgzEr{Lzu%}hG@|0sPbvZZrV`O#DhWmEgV|3;tEv>VhDt^2s5BI( z($PjL18t@<(Hxb9l2ta^PUWDTR4&?0<)I9fkM>ms=s&6u9jJ;>t|~@Hs1kIHDn7SJmiZRf8^9wdg8UhiX(kxbBrI7)P_z1X^1~j^uYP6@}teG}=_fpe{P9hQ?Go`a^Y~e^e)$d3!MXT_{?0qqS5Inyq@#hN=%G zsD8AC8bDjCLA0$JLaAyP?V?7|9%>ZrqsCB{8b=G%1Ugtnj^h4LMWK8ZjgC_>=tLEZ zPEm2FL@mjN=8?x6m+#pMc1n|RHxF>Z7KuZr83b{m4%vBHhNg) zpvP4%dRpb74wa8yQU&NWRfyhHMW|O5qxV$_`dF2s&s7;3Qsro+sz5)eO7x4WLgT6$ z{jF-yDt834UyD{(btp#FqjgmS+CVj;O;i&~RLy8B)q=KBt!M|;hSF3!+Ff;^y;Ucg zuewmS>P82t9(0)MMMtSVRG|9N32FeHtOn6(Y6z98VRWt>#;g5FT6=pB`Y`cyjl zNM)eUR3=)Xve2-~M&GL(^s~xEzpFenq4Lp;hG6y!&}ym>t*MGotSUz9s}i)aDn*;C zGL)ps(L7awwpW#CXH|vLRW;g6)u8=UEjmEep&V6@4pj~4NY#jrRZXZ+HKUVM3p!P` zqBB(+DpT#~0@Z;oQJrY9>O$438(ph<(2c4W-KzRfgX%~3r~!1p8blANA=Ijd(UWQf zJ*!61i)svYsd2PiO`x|`MpQidNhP4)R3iFIC85Zj z!R#laRaFXFL#3j1R2qs?>1ZRBfi_c_XpYK4$toLdr*hCvDi`gh@=%7#NBgP*^dD7- z4pc=bR~4fpR0%ppm7@PsWvED%qeZF$ouMkxIjRbkt7>$yszH~lT6C4FLp7=%-JlxK zEvgaSp_)*mYDV{|7WANMMUSdB)TY|eGpYl`Y7l*=hR~=QM!%{N^rsp{|Ee(*bysj5jH6j<0PC2JE{b~%2Vm+XqADESD9#`%0k5|8=bCl z(Ag>%ov-pxg~~^lsRDGRDn!?)B2=r2(aov^-L6W}-Kq>VsdBVTRiH;yC3-?tp>|b` zo>w*KWmSt_S9PdI)uVS+1NuNUqEA#48dS~bE7gL&Rjuep)rQ7YJNiR)pnp^+nt69H z`&}qnb)&UZ51Ord(T1uIC8&P1g&IIxt3kA_8bYaR8114)&>m_O?W4v}mKsM3)C4+M z1*={kuA)%Biblt&7<8hFMW?7>{p%7HkIqsF=scB(E>cOTQUxnvU!hXa)hZQTuhLMR zN=LV;U`_11R3=)gvQV?iMh~kT^tj4JPpdrCq4Lp7ssO#F3elUY2=%IB^u8)VAFERI zxhg|LsvNCU73c?5iGER4Xk1mJzf}!dr7@WOTC}>VLouozt*aW)2C5NlqMA^mYDQbB z7PO6OMLVcAl&0Fz?y3XrtvbHHc1AL#R{@ zqjS{=x=@XxOVt>vQsZcenn2g7NCEeMDhk!BXmqEFLHDXy^ni*(Eh<=n`!SV(o>GbE zIhBMuRWf>21#5A?p;FO1Dh>6ibo7zRK%c2hv_fT}VU>-(S2^fsm5Y8?d1ylAqZ#)E zvtNK#Q-x?vRfJ+yF)sS32cszf`hDwM9O(O#+s?Wbzd0jdt= zsCsm$YCuP-Ms%!dLWQasoupdOsj3y7soGGPYDX8S4s?m?M2l4ys#e|TTGfMYRK4g{ z)rT5XKe|T^p!?MzdPohSRyB;CR3qqFHHuzTW2j4wqvdJ>y{#h0asQ{HP`?UR{{B?O zpf6P{`bNc}5fzVqQVHlcm5BaQNhoq}F#E}9Rh5F)P{C^8>!>sor_#|zDg$k%GSM8B zg_2b^+D_%5om4K`P355sm5=sS1?WGj5FMzBP_8OQN2n5Xj4DO{r^--~Do2Y{1v*1j zqH|OgDp%F$VpW4KSGDLWRflR+J-R_Ppj%WUxxfS5z13R^8|=)q~zsz34;LhXzzX`a%t$uhk&>P7R?^HH>~$Bj`^xivCq&C~9eN z9gL${Y67jTBFA(8r=n22ibk8N7__B|MRQdgN>TA>N0oqfRlzFcd#WUqsglwDDh2&l zrJ_Sr8p>1Y=xCLJj#rszp~^zVDjS`ya?sf-7oD&2P=(4zm#G4Dr7A?%s3KIWiqXxg z1l_Jm(cP*HHK}s6OjV#qR3&;sRiSoOjhc6B<;_ z=quHNzE!R0N7aVLR6F`Zb)bJ#Cz{z5%zhV&R^4bV)q`fMUbLa=LkX%MZJ`Fx)@l%K ztAYe0yTjSR+0bX{!c}rd=-t3Q!(g76|8=Kii$%eDjuDs z63}@n5nZH`P^C&nSEv+pwMs?Tt29)n($Q@y1Kp)E(NdL#npHM>SmmI{RW5p3<)IFh zk6uy*=rvV{-c&`XR~4i8RSEi7m7>p885&aMXr-z^Kd4Idi>gB7sv7;RYS1e81+!m^ zR#$Z>M%ANrRRh{UHKI*a6G~LgXe-r%wo$EU2i1nsR6E*Tb)dafCz`LiP`2tu2dN%( znCeAGsXkPo`q2q$0G+G`(P?T3m8xNMt{OoXs!?>Q8beiT94%23=sFcCQu?-Rh5F?P^su0m4^CMI{HXupwCn$TA{Mg zu*yc?s~q&R%0<7cJT#&5(Tw|p*)Kq=sY0}-DnhZU7_F~L(8j71ZLZ2tk}5~@R0Y~z zRid3$6-rmtXfIWR_EWX!09A)_R6ROWHJ~F^BRWkRBfnCwWAAE z2f9RcqQ$BURjY1vt?EHHs$O)f>O&2xAKjw{(EVxtMmnaV_SR2E8B*=ReJgLYE6Xg8IIGE_d=R~4ZDs6uq0Dnhxc z7#*QX&@rkM{humBMXDSvQWfY7Rf*0~Rj6E5ql;Ayx?I(wt5hATQT6Bs)qrkMjpz>5 zgc?;dx=*#B2URP2RJEZt)sCJ~9q0wsiC$4%s9SZTw^R>$PxYb?RUaBq{pbrdfWB6P z=sPupM%6I-RgIuO)hPN`jiIRK;5rybv(yAyTSZRf{tvAki9+!zSb2Vqibvb1WVEwN zM;R&u9jG$Vkt!RVpz=@+;%|7-J*pbruWHaksus1XU}g6w(b|!E^sH(?uc}7$wrWD3 zt7i0@>Oku*3-;|qX{rkyp}Nr}ss}x+`p}^2N3$Lb_8mnDY7A|q#?kg_0`0D{7IOcB zSSO~4_aT*p%G{cPE-))VkE=rTv|AfdhiXDAR5SWPwV>Zs8;X9&GeX;{K9r}TPU5&K z8da(ov_!?CW)+9tSMlg;m4N@P>Sk6hpJ9gth&%;svFg-9`vH> zMenIT^o1Hl<7y23tH#mVPXtGsKwGHDX}s5|D0F~|Mnx(Hougt=jfz7Ls7%zZve2t4 z8}+Ij^o7br->O3Nhbl$0+k(E7q3u*T+ErDceN`RGSHa5Fi&O);Ts5NWRXe&%b)qL! zunu*v>P6qHKJ=UFM{7PA^k4vOsRq$LY6z96VRSQ!cFpNdl~}_0swDJ=Nq1cWTWp@4*FT;qFGM`Tl3JCDj&^PrKnJqp$k+ws#D!)sp>(G zs9yB6>O-BXAHAan(1;pD|ElQI`A+wA(1RE>N5!IDRRTIlC8A?g5;{pGqccR;8m>m4TM4a`d&TKtHNVv|4-6mnyWWYC?OcX0$-HqI}hcPEzftRCS;WR41xd zUFZhYjT%)CdQ$bG4%LU=SN&*QMV-NW;xj?7qEWJnLGx8CI!wi(6I47ZR|#l|N<_D- zEcArRMlYxw^rp&111b;wr1DYBvq29E(B`TTrKuuxfGS3LC^}My7OHwwtQyeistKK~ zn$h{H1y!h4beU>HSE_b&jp{(PsuSI;y3y^b2i>iDQIqOJ%TzylL=B)P)F5hCL+E)m zf?igm=yf%Qdej7ZS4Ga`_b|j=Df&c3qiC{0zOLsS(yQB|YMR1KXc>ryp2GRCv2<@weQLY+6$Es0uvKm9@t8sLTnn24`q?G$p6@^|> z(WqO+pifjK8dr5_^%sI(1#8;JsRlGpHKOfR6WUERqyMNDbdYLAr>X&Tl^R5KY6v}~ zf_3TJ)ChW2jiQg$82TRZ%$&3MUi+f&@@O5Eh~iWd+6b*4NkN;bRJ4UkLrE$f%~cs_ z8qc`_56V`(=vdW-ddm0sux>O8WZe1LDTg9UfRRS7PiD;!tM?a_x^sCB5tGyKTISZ|;N>IEi zMRQddN>k398 zLC>pR)TM^dhbnmPz?W(S{h~(EKWYqZ@^a8}%sJd=tKi833sefqRl(B%j#e3{SY@Kc zssuHvQuL?_*7bium7`Bo75Y@?b+CT-X^v_k1GJbDTQD`p}jj~k?I!*=a z^;fAlbgjxm4JseqrwUN3Dn&1lbiW!wkEv1AiJ~Jh=W_q2Vo{%pLmyd}fId@+=o^)U z{#3!!0oHphIHMGlqEgX8Dh-vZbabc6Ks_oGeX7dP*Qy--t*TJW>p{!aXpX8u+pAi% z590eO%2qAtAk~Tvv#t#trP|Snssml5I?-LK3%#hi(YLAxt|91Dj7Ycf+q{SqtekoDg$k}JUDJ9+FE6yeN;9&Uge<6 zR4!^(dFUCHk9t)BTB!tjtKoy}GJ;8BX89-q8daesUcLXhS6zi1f8Kq(OGH?m8oDo{PWcW zx==;R`Sep!s8U6v#VQ6}sbbL*6^Ck6Ji1;bpc_>px>+TmdX6SCyeYRgOMX73gDCi9S_T zXi!z76{-e(t!mLqRfk4YJ^E2Kpr2JE`c*Zdan+3eQZ48o)rw}k6^w2hibBzm0kpar zLosR`t*a)`1}bs^pWR0q>T?mlB9bMtbylPpZRH*%Xd6|7c2Kn_P1T{@ z(HfDe3z=V4jSf&XC|A{@qg5R`Q8l2`R3j==P3U6PjILBI=z7(P>Qx)MN428|RR?-P zb)pW{g5JkNmoaGQ&OAVt9)Ck&KjiF>Uj&@WN zXb%;+h;Q#I3gxJ1bc704aX((gqEl2HDpm350+oO+SBdBvm4xb4GP+Zxp!-!SdQ=4~ zySJ-!^peUzZ>UW4Kb3_BR5tob<)9x_F8W>Np~ySIxa6Z*ssPPag=iC1gpyP-+D?_A zT~#UCN0p&$RgMl-73dgMi599VRHCZUxvBO^0vF7%D+MkA^R{iJ%)Z>kUdrTS5%*VivvRSlvw)DT)n z4Wl?Uf;LiJ6?|J%-Dr;LMailUZKwLtPHF({rUp@l8bbT3Ve}t0f(}%pC|8Z6Bh&;s zMnx{>u0=(mA{C7msTg#IibLn91XQjP(ZwnmU9M8lRVo$Ls5EqgN=LV-40MOeM2#v7 z-KTQUgDMw2s`5~q%16(r0`!6^M6akK)U8U;TdEYjr^?ZXssatDO7w-QLSL(D^qs0f zqpBADs_M|6sviBT8c@``!FAAxW~pYhwrWA^sa6!P+R&z|9c`&P&|KAtQdAe(QFWtT zRS()z^`cDGhxS+f=)Y#U^oq(yuc-pGTos}oRfOJA#ppd%g5Fo9s9%+#PgFVj46PdJL|>>b zv_f^GuT&5EM)jhVstev<5@o6?w7;rG|5Y{U5LJuvR2@26)uZE8 z16rsWQL$=5r>kakwrWA=t5#H@+R$aH9bKt9&^4+P)v7LZv+72-s~&W>>P1be4=q#u z=n*x5o=}6RT@9h<)i8QljiA@nDC$A0N8&2EFIMrWPbHuaRU-OWC81AMG8$AVXoX5e zU#m2zf>;zN9Caz{|kDWkD}13kz%yEDnYYUDOwXn zN2<|Uss_zgwP-_Cj}lY^+Cnv=tyL4+R<)y4)q!?VooEl$h4xY1C`F6Jd({wnKnfqv$C$hMrU7s8da#S5@S4 zzICW5^p1)~eJTchq+-!$Dh{ns@n~2jpzl>8`dKBR-&Hc2P$_7}`@!s|qSaIyT2rN? zSe1d+SD9#Im4!A}*(gcnpm{16ZLjjs&MF_Js{*u_Dn$FKB6NT%Mmeek9jZ#vk*W+G ztIAQKsz4{HN_48KLT9RKRHkas1*#TZqUz9MRgbDw1G-iYr!2GxS@QLX5H z)rKBY?Wk3CpeI!)dRBFz7gaavQaxz7>P2s>KJ-7;kNVXB`cw^~FVztGMh&A8HG+Op zqv$s^hW=9HDDput`x9tY6;Q86e^#iET=9NJ99qd6)OC95Q~ok~VKsT8!E zN<|qe4ehJa(SKA1I#6YzT$P26P}%4hm4p6I<)R{$hZd=PbcQNG=cqzdu8Ppbsu*3a zO3+oR6xFD5bc3oux2Q^VhpIx2sv6y=YS4qK7Cox!QJZQ&&!|T9f@(sqsAklyTF_gn z6}_k0(1)rW4X6(Eh3Z6Kt1k4N>PDlg2mPvg(VuDr{i{Y%)Q7=!FotHSakRFYK*Q(UvL(%~i1|Ma7{VRXo~NC7?Z3BFa=rXn&QA{;N{ZAu1K+sWf!7N=L`5 z;3-!NRVFG{S?F|?jm}m%=zNunDpVf2Oy#31RROw26{1>Igl<;F=yp|t?pCF!NtK~x zsvJF{D$od^OyO&ZZuoF`h3)PRdRs(2THHcEx5ZXlzqdn9J z+DDC|EH#D}sBv_#nm~uE$Q9iGsVH=uibf}@7<7t?MI|Z@ou%T@c`5;2q!Ll3NOu#pZgiOHK}V@xRG|9M3928R ztOn3&Y7mvGA#|=9Mi;6Pbg3FeRcZ_^QRC=3HGytY!L!EdRR+3KWukjk7J5KsqZSoB zb?h;;cBBYBW!8k=Rn6!F)q*}z!SlEV)d2cR4We(=5c*LKqcJst{!pXnA2o(%ejLo| zIEq#iXe|}Fir2J?LK~`Rl%QhJ7Ah8Pt%9d@ZL8u@s!Bk+s6@1fN<#an;JIB{Dg`Z2 zspw#ph7MQhC|?Cn@H!5y5y?a+sw{Mx%0^`>2VJak(UmF>U9a*{y(&QWs6zChDnd`F zV$`8Z(5tExy{*d7hpHS6stUAHRid9&75Yn6qo_}U-q)bDR4v*-)uGK*JxW#$Xh+qE z_E1e|zG_A}ss$aPTG8>U4V|LeQK{-c7pP8jx#~jKsBToJdeEJ!7u~P=(4(p!wW|U2 zk{U#Bs3G(}HH-$-2>MEmq94>4`dy8q$UrbI6KIx-RCE2QD71-+MoB6LZKq<+p?x^|SP zf@h}fsD@C68b(K}5mcl`(K%`iRjTM3#z4iO1{I4QP;sbT#iO@W0{TD&&o28_rK6}X zf?j2yO;jdIQ(0(%3Z7ziB#Mp{qD86*ouP`+IjRJetKd0h7ppRKxhh9jsR~r1D$xz9 z2Hm1+(H*J|HKMh-aG4{OfO_1TjD9uCM}MjUH0#S?kKjpKvsDqAtBO&EDnW-L{=YXm zQPrbURPZ#c64i*#QcdVQ)r>AuEvQlj&&9ezwV|t3JGx$VpgPrwZd1V%vhGsdXsPN! z&8inYtoqR7svkYA22h6@L@%i!^qLw$Z>mw$tH#j#Y8-v6CeY_9cxu*=ib5+@H2Ois zpkGuh8dt&dv;J1`Xq6SgNG71wRU(Q}NoZZflR(f0st9eOicz9UyPmsJm5#Pi8E6L; zJk2RhWue_wHriX|p!q5nWvgm*kg7q4so8qsMgc=}SQYDVX( z7IdL%MVBJ}O&wLK4zxsdqU%%_x(Utl=}Yyhm+Vf}hwfGV=m9l=TGSwVObwx@)G&HZ zji637ie6P?=nXZF-cb{%Pep3^RZ>Nv&s6YirWGm%4Xar6y^2FWt9bM~THU8KO`zyV zBH6!)zi&iQLxGaf7KkS)qoY+mI$jl^g{lx0t0Hu|Dn@6k;7Lp8t5Q^<%F$)20$r&p z(KV_H)v9WAv#LS2t6Fq7;_p{clUd#k+`oJs^fVvsqzce(st{!$o(7NhRpsbxG%Hex zmZ;zvKi8>hbd#z<^{N)#sp`UBM31Q^^pt8wyFsanyistvuN+R;0z z1NEs+^pWa9pQ&!NLiM6y)rY=U{pe>kfPPnlXhIF48Q%nFK8#jVBWO)Eiel9mT3?N$ zjnxF&Tt#l=u1`gwc`6!huVT>7Di)=yIJB3FNBgM+bbv}kIVuSqs*=%>Dg_;jxF&Dn zu1ck#r%`mI2gMEt>P73TezdU~K%1*Ul%$5xJT;8AS0iX=w05NO7W%A$ry*Rgs?m_D zLHn-^>T1#bst(QkHpqhKA{46z^p8I)sLb_gRKMTbTx>2)DYU}r(o+a zs#YWDS2cSiw%df#~WuhvTg_fvn zbe+mYH>o^SuSV*54XR*0_j}bCdO(e%7Bzt$Q<2+v4XR*e_vchJ>Qpi4RTYcgP;uxT z6|C{zrxMUdDiM9AlF$m3jD}UP+WYs2@k2kWakTAkK^Cm-U9R%bGb&ie`%6`TzEg#0 z3`Ivu(OSO;DnqkXIoeQFpafNmwot+P+*_-9w5@7Dsj3m}qMFbiDp;v|AJu}gR4ZDb z+R(wO9UZQMHK+4cAv#VKp%YaxIz^SB5;cI%QiJF`HH0ow!CK9gDp-yA3KePK?n_0X z>s2(WQ!(f^#Q({^le;gKie6M{Xi%l28RNnDRiQ0aHJXd~i@CeFc2zVwM8%-b9aRz9RTZN>RSC*erD%UuhW@L{(IKi5<*6!kw5mqOs~WUW)uLim zhfYVcBDpPmhMGk^%xAocMinYpq2MwVi>_30=o%G|YE=TdStX*|RT8>eC8H*lf|jXN z^oUABPpEX%t}@W`Digh|ve4@)8}+Ch^sdT9AE-R^iONTVssMeZ3emT!2>qyv(U>Yh zf2dOQk19hm{|x4`97U@Nw3ezwvsD$^P*tM@RfD!rwPx>1ShL1(F6be`%%7pZQEWzC6$FaszNcU8m+5p&<3gw zZKCQ?qG~`}sYbMoYC=1xW|XE{(C(@g?XB9-eASM!RR=mqb)v&m7dlFHqXN}~PEft* zWYvdGQ~jt^4WM(?Ai7Wup-a^;s!}6pi5f-MsWEhu8b|eN0^O-1kMbF>qR;~>8nvhx z^q7i8PpLTcoQg-CDgnK!644tf3B99|QJ+ddAE{LInMy+|R5}_~8R&bJiGEgD=y#Qk zCR7fZG2#0pT21AlHB~-}RRw5$RfslLMQC$XjFMCdnx{(9_Nol+tjbZksz7_GO0=J< zLI0qZTU9q|P(A1#)r;;|edr<8k6P6LdQuIdXVnmTQ4OOmHG-C_QS`PNL;q9bs9#N> zPgSIqdovYU#i74cJc|4s%zgq|RVAV|R1#W8C8Ic%f;LjAXfu_D z=BRX(tTNDcDiiIbve0fS8)c{*w6DrV|5179K$VYjRRKCe6{2HQ5&Az>jEYnVTBJ(R z8LAAOqsmdasz4X3N_4rZLRYD3RHJIp4XPI1qUz8csvb3}26UflL=UPa^r&h^ZK?%5 zqgv4mstvuO+EKUaKyRr|^q%TMAF6INpnA|3suz8&`p|c30FA0a^s5>|f2v{huNpy7 z{{+{;D4M0l(b{SPt*0W7asQ{H(55OHZK;CQisq^~l%nF%jw%7|suIzjh`$*{nW_ct zuYz@Q{;MX?Au93&_kSuC9j$_Oa*kK&XranL#VQk>uCmbCDjS`za!`fJMVF~ObS0V< zDMi<)GE}R|(aov?-HxIoo#<}Wg__hDTBgR)BP!Cy{hx|L?J62QuVT>4DgnK&5>byz zLhq_{^nuDipQtP}sIt*lDhGXwW=B@?&HcEZKu7Q`_^5$Er=tROEjmFxj7~<;ep@~b ztrB^atkkW`(b;bO2%WD!MHSY4fiAP|E40|HzoKgO2fEg}ztN4>&G?0TDYveLZd2=` zyR2IuEwyeVbe~&yL=T$nf*v*73$>Z;i=HuCfL<^=2)$xLawdn#Vlm@!R3-$fo~tFQB$VeQI~~k=hG=rWT+TXqCu8XxQvf^sPD${pi*c z(3sgt=r?sb`b%AaB3}i^y%?>kmY_A%wP+o68;VnRqK(utv>93@@-UiX_88hqJ%hGU zuc95)yC@B<5_uo(u0BG0y7g1E7mAMjg!VK06&+x9dSpf<$LuV0sJa#%sqRC^TK5<# zM5{!eL?^lR8FY$Um!lH5zJ<$~V2w|;@j)mP|Z>sF%6t@|ETx%CgUME#Afvu?(W z8IhZ;TNT~x)~(R(Y96}Vy6sStbvvT_-Fh5)$m|5vYPJYHX?8k#*6dvLqS*zg%j`0= z-0TYUw%HBne`YtMezPahr)JNfFU?*>-}2 z{C_wx^d~qY^a^}#=cjhQndvv6?S^+E?V7lfXVJ3=3b-^BC6`k9P%;Gn)D^x^m=ydbQ3Ep*V%+*LWR zFyA?JuGKjJ>}KcoAT|UgLBy~ZZZ$%ZYTUo*yh1_dD!NH^{4#IG^cDZmERpYXlM3@Ga_%W z?`e20UJD`Sr|X%$ESJqji&MfJS%E)Y#*EExf@UAjnll*CX;zEUpIyh`qP8w z1nuB&@Vv0iFA^pl)bG40^Agsaju(VAi#B5}!u$!mD9j((e9D_7PWhT?{%e{~-eRhz zZ<_bpaw>mhnm3&@nFsx^2_0M;_v6K3e;&e1!u~WRO}THHSJ{f|B&^>NFAM8awq~xw z{3yIU%#WDMe1-XCcx9MZBv1K&)0{kSG7tKB37)y?MJdc2mAGbg=ITo*(Y}2VM~FyWtK~zGj;Lzzf6r;#9^ttnb8& z!+ge$jAxkt6*@T9E;})vVa@({Sy*!?ekIJ8;B{Wnq3s=-{~T;^ko;x7(zH{KC+|`{(nagZ{jXSBCW;h7Rg;(*YE;2j4->yLeuhe}ET+-e~Vh2Ysu=i^BYh&_O@{#!JFHbDv2E`NN@ub05Xa z!kS-02Q}wrPUb=T&*J4_&5P3(}`2q=Wi$ye!N+ zLI-)yfs=V~zBhyp+PMY4Lj4`M2`>-#T{g|@8 z#w5(|4;|#0xs!P?o{K{VZC2x@VVg_wvT)y)(80Lvcj#muv~xh{VBZ@2O1SUsczL+* zQoJI}XC20vg!$~yH?i*-cxKGx_*{%<;b45O#B;)YIi45h@8S7jzW(8iPnd5OI_TSd zcwtyGj2DG9KjFn;o|eZrg!x{fgMFV39gNT4p@VZ=yFEZleN(80bBg$~AQ zG<2}V&F9>Un z%%Ad;)4b8qlX=kR^Fs&c`)uf-&oAOdVLN@(eCRRL^3Xv$xyMfC!MWdzmxTM?KFymJ zOy&3CWnsC62r+MBf7U%^ zGC!61$_^dO*FkvJ+LPDG(bN3yG#^krRrB05@3?3xUpCEKpE{M_GtC>HHkIETI_Sgf z5?-_PA^7au49^SuGk2Psrg`(zr)uh_dA&0x^PtUIJU?vn0i1=GlDFaoVf#-`^LA%W zu3xCSo{ z+pNV)!ZvRU9rR&N8P|W9?>x=-P4jx^PSq@)=3hbw?VNNT*J{|#MR;ZC=kd&SCgrNhPC7y+Y*VoT@ewgoG!!;jzKfEZcIdGbvnC6YHovOKbnpcDl z=J&wsCToKEy*zYqURUA8;jwPQOTuF{Omp1zQ~A}?{LeI()lSv~ZI0ljVVmQ4S=i=` z8yL6HyG--_)4cwTQ#F@Q^G~6Jc|Y+c#xrc^tZDvonh&j;s(E3Wx4U^V58Am4&ze0s z{tr*{X17e`*G}`F)4b?bUL)bYABPUc`QUo4`7pmBw6Cww!TZt!w%Lj zvL@(5Md;u?rxmXV+j$bN4BL4jba2i8g=ele+0V$Gj3ExL?OAvY{2XoOgnk7df#-zv zOYpp~{zkk_SpQMzp#DpIYM9TsYtli!23`{GyLaedZ12NM$)CXOcv)EU6#qtO)JHW<=E1dhK$C96u>N2?YyHV{zYxz0eLr3hx*abH{YL1Z{r}$2 zxrF((p@aP6(7`#b{Q&(BYt{=L)GQ4h^lca~4{N>;9n@UaJeddQ{zmBF+~2_~!}{;= ztPLjnzu_{jNqitR^YOeeKN&9wT^>4UKk^{w73TYg4)T}rk}zNOp(&p}&Ap+6`kh-Q zYl8DV1uqNtEeRde{1`eomz^G-tO?F#H@rNo&%rB0Ul2N|c@)puaPk~G@VwB!;RT_$ ze}vDV_{rZlj>dB~p1dZH$4f*1f=}IK^0i$0=#0qKp)baBHsjubV_l73!i#Y&Ub^|@ zzlq$8XC+R)KYS6?X z&>eWmoXPfI#f>-^pSOd09K81bhi4{D`oE9U9~|`g3Oq0Lb@&S$?0YMovDKs-f*Ksu z--DOppv?#IE1|c4g7&wb%&)|Aa8Ms<<9tKU3jGQBY&>)BWX=9~e&~aPn$Sn##i0xF z($I@=WAbF*&c?6c;8^G56`?EfzVjw)mf#aYUxydsp#CPjICKME8u~um8P-37UkURk z@QTnKc;+^f?YxTTgnk>(5B(ut75BQ}p{~gcScCyV0JU{fRPjU_5 z73{k{#wrAwQ}mv zaL!-lH2z1<;BBVs40tCw#(T)svfq*Wv+kf(Od=c!-?C!{jE}&wQku zIxL*+D>+~GJ+8sN)_S=>xnJKuu=5TxbT4!dlZ)schdq;#JJ9Wko!=m5=-wii&>e$4 zbFW-V_fhP;L9QlWjGd=m*ZY=yTe;xya9_vD^|J4`tDJvC$S?Pd?EAV7drvK1BTtb_ znRyv|W;yoEO1YMuYvcyzf5x8Q?+txEBtHZ@FPDps4ClE_F2UEzk&QF68H zGv9~3=RLWWnFVq^{#4FCD(v}6E|A^*9=qH2O}$3s`(x(=lvAjkz8SMF!e?D?(pgIt0)$xX7~4_nRB*O8v#%+2vK z<-5v7%KaL3mdoWoI=$&IIldnuDM{|jdrgnhQr zo=c-ZLAp_wVP$2 zU=IlIhblQaH+&8pC0CuV_nz+kZn+*$mm6e%zFjU?l!Y_rBRdN=Ok`sKFTs1J9`98Tx_PsnLmk$cgI=?9R zIXVC0;AwIZen&3B4RYP!aE2vvBmUI$mxlZL!t?kWIsdYd|A_rD^_%C(|MEQEYPQaX zTgb8O`)w^(k++cxhJ>B%JwG(e9PIpx@V-4luDLSI^pVq7hnaKa_?qAg|6tE-Ggr@f zc=&kV0sG_qH0;-?uUs-hpVQ>C@!^`Ok}H&Z=bg@P3Nz!dXWo&^$>(C{8{{hTKe6+D z8}v-b55ms-%k|_Dc0NXKQtsFH0l8{qc;=7DwUxoOa{jHs&&x%4x?GME&)gPf=6eQz zELX{gYyS$lq&i${t9g2ljSlzTT&}>o%2juUJ#FM_+0SP`IsdMZA0ija&O6JcxI`|) zr^w~ZpD9<9Um)k-9nLUVE|&co4UzquhU}~48ho8xhevpRY`AWW*JysUTz+rpjUkCA4ausea z*UP@{j@Z{d)-&Tn-W5B)SZ-9lO#83EzTb!CyeC4Q#m*b#Cgr=RyBPb-yDSK~&)Hhe zpAgR3MsBPL-bXI24bO8wx#%h0&vMB#;d4=E&&a;kRd|g&TrQXt&J)WW@XK=3^Wnal zu zKJz`Y|0_AqJS_Xaf3wHS#dxAzhM$pZWnXKG?0>=Ceo4-IE!^*G*!#bf3(3F5&RZ#lr>+*&S~9`>}6t7L!v*+;I$$9o?4lbi4ra(YHM^Juw9_Rf3cO7aKf8vKY{ho6ue zajl&9df4--~a=%^`a;@w= zm&;8_@b%7T1>Yjq<2&Vo`tY8A5c^&l?EHUnHTjwHBs@TFz>&NfUo01V z6s|i&?jT>SYh8_fo*VFRr$Yxarm@sn_m&E*2wc_-XU^GC{QX8Ow+ zoRv#tKa+YnBA+YAc)gs(yDZh2@v(9am&vK6;SA&CG+r!c@V1|7KR!Z^@gO;i$H@t< zmveZx&$R#3u)mM&-$w8ENmkC_b#jC|eXjj@q@2Yc$O-PYO#5-2ocb*6{8dil!B9{H6BeL2`s2kYoInoW;AY(0+V|oWof; zwJhx4wo&_W7deBkks~}sE|>jry+uyfA}^4u$UDke@il1X^Owr`vd=$GPLn?>7m=@#Gvw>!67qw;(fP@b zkju$$kSk?>{kj>Ck*CNp^V8%i=JUSQeUWb|*OK2SC*%*wIsBrW`ZApV7dc<{`Ab&m z{Nz34BJ#WB4EcR>3HkSOM7~}wCvUl0=Oo`lt|IR#XUR{KYsqhw6Y^@gp8Q=oN8TVe zk?;1M&c7m@e^1%JBiiR5Ag9U8nAuq_VWziS zDtrIw*!u@z?;j^ebl;TA>28uMWbaS?uII+g)^ZgyUF2%n`@3TAKNEZZZE}|Gi*ha9 zCGsTM`#+TvX1-9P=IICgwBpYT4&G3Hv-}W1pv5PJI(z zi^+1n?B|)t1+u%dvAdsPcMJa1YeDy5*}rAM-BQ`VY1rQvohp}*Unoc97t7`3H_8>V zuQd|;TK8dJYnB|-T`5=5{aenG=Wo*UB;Qk>BztEe_Rhnxcb3Zu-8LCOOT_YPpCR{~j0rW@PW&68p@pvG@0oGjy+(OXxl! zN946~Ir;l?Ouk62BL73qlK&&ulDAJa%S*^R%Jt+uBM67scjM7}{TC*QW2&QIP#t|D(IXURLrwdAME3He!aJ^3Yaj(n)x zME;nZ`YxQmM)q%#_W9?@Y4Q){BJ#CzhJ1ruLcX_tX-Pz0B$tz)C&%O$%2njU&ai1bL7+ICi3NSYE3wQPEO;kw$M3oC%HuSeVr>upA%uD1n z{!K2Decipb)_KU&a)ghSV|;4d~dyt$jJMS&0$xoLv z_*yx_kIUuEPm^QvH{>evRdSYmtz1jqzCdRq?T+lz9(>@%#F)8v238C2;@FTg9ywwgmC;47-5qX7N zj4zin%v>#(kUu1s;m75OnXFt+{)JqLzmj8SzLl%UkI0w3hymv zWk1^@xt6@EoRFU^*ONzbj{G9IiF}Ie-v{VDFUk3`&$dENlYcE2k+<4euM7EJatZnA zazuWXTuwehj>%)Wiu^G-OI{<_k}r@G@+EQ(H`_(;tDnQqTiW9>I_Fu~@8>c(r5WGL zMRFS7FBi%F7!D<(Nbr?2goI|&v1%dhWp47GyUXB@?mmJK3uLLzemoJKOonUKO-mPQ{+bSd2){Y zL)rgAfzR-bocC++8aXBVd9IW5$q(I4_dT)Q<^11++sZ|<@2i7cf)A1_PM3AxF4gj`5FjmF#P^*j>+xd{;Ta2gx~nirmEfHFEx+p?iZ|gm0EJ zvd>T@`?rL9|9IKI_1pPGxtx5aT!m-JHS!qE&%w*&g>o%3o%hi5WadQdnI3YY-1}dW z>zUtiPo1BzWkWFjdGfNrCcQY%m?nJdm%qeE|Yz&>#)!Hi5xMrLXL6A zHhP};W;wy1$T_^#-a5};;XM81G=5JmmVK>OZG(NSVRFLENV(+iaLxziNcMd_CYO`X zkSk^HnTfq;uR@)Z`F-Uo=1-DqaWA=!?*Fj6FUWcSgq<_6^HyoyuX3NEP_C8dD?bkV z@49rC6J~nK^|JFT3jSVBR?aXpS&r~ua*Pjcr{{yOl51tZ z$7aj*c)r|(7s~m~!pz5Vq3r8^j(y!@_tm{K(^byMKL5#b33(((zRK|Ze;#V?D;+R)4elOBAeWQRmn&s=7h>=HOpclFyT6_T^ViBX%-@JT zUnOUm|68tQzHJBHFL^sThfkFAwg}ff1AEW8a!R?+xl}G>W&`%jpK_X+VF&2-#rMf2 zvfn?`QvbxY(lK3mS<+vEt>%H{H7 z>b@t(vB1MTduVyaY22Yi`|)5o!tcm2-n*Oj;|e*!Ps=&HR8H*} z_WvWN@$TKVA0H}5_&V$FwS^S}# z;B;^8#{=Zlu3>*xPUCOn4DNHP_Tzdv#(SKm{rDz1!5icpKIDJR^!qEq$ICf#s%5xV zxm+Oo<7l#+CVxfF;NRp3pVCLy#S`Q#?t8kv4$A)g@UWbakCz+CUz2m>Z_0VQh52Q2 zO7`caM!AqY?+l%Xd`mfl_md-BBFDH)&f*brf*+A{c#@oI6|OZ`PUF>b2Dk02{Wv4X z_)a;CUzZd7shq=q%Bj|2f7>&)AD74(e6t+k8FGx5%URs1pZ4Qkat>F@solf=m2w)l zJxlxXFge0c$}xUR&f;DAYd=0s&f)vy)E;5~TXGt2b+-27E9D4Jm1DfqIoglUmJ|H2 zoWolT(EdHc{v+fxj^qp;B}aI=9ODn=EdE|j@B!y)Kkh51_6qyQ%4wX)8N5l3@PX%P zKfX{-@Dp+lFO^em!p?2a*G}A8&fxvz2p=iO_#`=t&y*89M9$$ca%%6e|9Lr$=gS$q zN{(==3$!1fEN5|g!fng6A9t6t_%b=ccgQ*XjGQVA z`#+M?_-8qT_lUF~pDM@rMmdY8$O&F7=kRZGDjoLkexdf`BjpSpEk}5z9OFI9wI5$9 zC-_-8hd+>0`-J^}$Z34gK<&o^AIVS&3t|2eITxTXfO|BzfDJSG>HI9)6?t;Jb%w4_+as zI)*)4j?f-_q@2O$%cZivSG-$}$RCnp{JosTJKm&g;lt$|zDZ7X3fGz=r}0iV>sq*z z9N~U)j7P{>{DGX{okwav9xA5}4EwWk8t3E;-m_BsaX&f6!{sb~Mo#bwIfr+Mwf~^7 zzlWU0L*)#9OOEhga*Vs*qWyS+oZwAz4j*5o{RfBr=gEb#zZN_pr^##OV)CEm4EgVJ znLI{6yDqy`XCNOW$M|VEi$9eUyxna&13pVm9TLv)yqw0pZ`ZZ(PjZAy?$CaGhn&S9 z$_YMbl=kB*I|NC+pZ&9uN_-Hx86>^MUl(Tq+oZzEIYd=0mP8}BZ-y)~+3^{|p zkR!a!812Ug$yt25oZw-y|IH7-|7XZK@P8|`ho4!lemHoP3Ag9R(%Ejb&${F%|u=rmE`N> znEV$xi`(3-^Wg4s4p+#jBg1*_lGAv)oWVIc!p-l|ete{y#TUp4u9kE76*+ZO*#CuG zDBrL9-FmF9MZU9KOn$taAwO9zBfnCP$VbSP%tXsA^B5sn*2q%n0%R>A^%1$Bj4seos)bQxsv=qIVL|wt|31|&XS)m z*OA{OC*-5#M)ItjBcCGY9TUz!M^4E;|6;k2Jaxa$PrjX8On#J{Ao~KTf;Ih0L5Jrst5xYqTFV&X=z(noGZ^^~7-w*rN>RRLn$q`;8S1_|)j>-R!v$)HXx-O389G)+yP7K%G z>nU9qpDAbXJ#vJX$uVyJwD#kZnL0T~ z-XN#Cg==k+)3|u5u7!uo5uPN+_=Fd9Ej(II@M<}Sk9<-4yNCU;oW`HX8QkF|?Z*$v zG2ZTF?Z;=z3BFR!;mLC9q_BU_SF|5rD`)UDIl}AY7$5nn_T%T|1b-ywaF1!)e{$IW zu$;!f${Bp>Yub;mm18_j&f?W_g7=uN*FyGdQ7PxhtL3~NA^%QJ$^P8+lbpt9&d_!7 zD{_SYkz;(+>$)y3lM_5n&f#Tpsx<5`enb25C2|J8AV+wu9ODDu)P5Yv30@*M%D%4_ zZ|Pd(t>skDaII71G@c@7aB8Nmh0l>=JVDOlKjj2>dt3W)rJU*&_Ro>i_<(n`A6Ll{ zUM|PDYn}GvSWfWkat=33wEvW_|5Q1RZ;>&h@8Qn$`S7PuJ+?A%tqF&-^v@fY**)3`>?;LqgZdnQ6H=*fV>|5i{-N826B~_#QdI zZ_5p`ul2K>BmYBAof*znxI|~eH^>?MmK@=Nk8~|ONY3Jih2)%Rx1oQyrwUyhk+kgJ*b8GB~S zPecBgo@YPoXWRQT-51?{@+8^MtqOalT27d`PtM_AeV6H4xJ1t3A#$pJxYlSnjbD~Cc&QxWU6<=w$-bBFa!lS!t|q@p z&XQNjlgQ`D3Hb+dgIufU(Bg|=KhKtOj+rau)Y;)|)8sT>D`#-wmpU8nCRfOQ|3uj5 zyhM(fxkAq3$K^@PH^>S3VmXJmS)ntW6V9-&oW>`~8GM->;TPl>eOFm9c@O-(E znYD6`{8u@3Za71)CS4cbEobnHa)dvTWBjL_#p$ngE!*dt>VgFX&YCk?f&fpv62)`r8xWg*#$D`x~ZvcyIh5r(}PByHQT#&Ohi{c%mHPU*s5<{-|r=XXONcF6Z#h>$LyE zusZ)!x#Rn{R6}P6>=J%^o#c6C*%k(kz?HaSMA3~$#t@y z!&P!ZK3r}fe^ze9FUhO%8*<&C(5;s%FA9ENF1$GSW4RcA=^6a3T!Ys+9~|a?mm6`j zje5^iguJ<2h=%_mt)UgBbPCMyIjG{J=injHTf;r`6zi3 z`J>o*jod)~GIl;gUQIp^J6|a0T^7#pm0TeE^<9HKvtBM{CjWQci|p@twv#JxOSu~F zEll+;kz;&=oW(bL z=JGIKyPOXVGY`sH{Ft2J8oA<%@O+-aem>91)#Nj=^Llv_`N!D#GVJe{ z*2;C7@q6GWxqc z3*|!Q2g@CpzY=@?I_&vsxs;iEuxG|$&pacSvGaMkg8A35=ikDfUm#aA^AYyU=W-2u zzLy)A`2~CCPkA-@_J0OD-$gFCD%|_N*m*~}19=zhyhJV~KNCA2AXktN!OpLi%dQU3 z`8K)c+Tgq8NwQ}i!v5Yki~Zi4Bd4wl@4ba`8hJR zo*xnBH_8<^h51c#HQsWQJ}yRvnH}U9?;;o89_Cx)Wx7^cE+fy%HFt!W$#UN4;8&bK zklOrj_q=647`)S8@_5bYeh15Sc!-?H{#d?BZX~}>&XJFh^PULZSoXhf=lR>^Lh>J|kUuJykx!5#@+aj=@=0yd>nftCEi)iycf>XN{;Yea*We*7Pps+XKRn{tD{_rkC4-I!=5g326vSse6k$lQ=B)1 z`998ZKY8=-E7$%3a<}>V8HHRX-}*uDAkQoazC?Z!4|V=w$ghzH;v3|43qyXh{57s} zz9{6QB|Zxt6}@A*wGB-d|E+HB_?EEU^&WU! zF2h;55jV3)cm=k&E#@ za)azW`^k;uhsb&B!~BtQf$aUAv7gn+aas#fHSL63R|4*3z*tzUy_@$j{w)vc2%hk<-*UFRd zuW|$a$Mdr9cboiR-)~DhzuD%G!PDe|ErR>Yh1avi=zPPWy5N2fhkduGQlbG^Ms za4a|M6+Bu_6*bG7e6;>P3VvCB9KRtyg=fjn;d$~)a+>aR>~0-)w*kAm7`ywaoS}Q{ z7Qyaz#qRdP?w*O=9Uw<^-@xwHV|U-j?k>gdej&$nkJ~cX-EP?3-q_uK*xhsGEZsM; zyYFImKfs%>i#K0aPUv>oD%jnVu)C-I$7f^jDaYPZA?MgL7kkel>^+}jcUNL}*T|`M z;kE9yb+EgAvAgHt&DX`7uPdkN&c&Ori#J~vyW5D}{YK8vJ!zX@cTdCa_Q&pCh}|75 zm#OQo5p(5;J&UmSe2%@R346~E*n57KW4e6{g55n2yL%CK_cHA6RdSZ@_1N7QyE_`Y zI~Ke9pq$Ws9J~7zc6Tav_f_of8*-z%{#dS)bL@E!d(Q&wJxj6oe1W~ENzU6h>{%_R z)?jy^ma}xHV0Wis zci+bD&c*I7kQ2I{ng_dkBzE@%>~1&gZcjN!_gU=jOW55vu)B5G-Pv-geR$p5Z5QnB zf!N)nu)D`&ce~1Ix)ZUx&tZ38#qPd=-K~=|bPKl+cDDm|_b}}4DcIf9<%n*7>~4hJ zy#%{^8+Lb$9MioQyZb11w-&qmHg@-2IZJmQc6SMOcR6-7QycBfZc8NAMf)YAAr5H3--yZf%3rQ2?&V0RD1?jD8RJr%p#S5D}jgWWC1?p}u7y%oDVTF%iOi`{($ zyE_rP`z&^Ms+`(CyzZ}JcV}XEXJdEY$L=nc({w+@?&h$&-(h#xVRwI(Gjum$cemU* z~1A?_jWmmU2Vr-Q!0vXIBf7=d-BRrC>Db-= z*xmExnC?LA?hx$mFzoIK?CvdcmhLF*?!DOEN3pv#*xje)gzgmV?lkP~+t}TAvAgr+ z9NmT3-OsSQUtxDwVRwI!QwN0C_h;D``F!&vAbVlcfZE&ekbSXuEXyBj@@n6GR(NU4R&`2In^<| zzPn;~+hBLwV|P!(?w%>9=?=i|4#e&b!R}s--MvBf@3fjMkHqed!tUOS-F*nVJ6?|H z)?#<3V0Wisci+VBCUQ)74t94TcK0*v?h5SgN;yk+4R-fu?CxLK-Td9cyt@T*LbnBW zw>5S*josZ3yL+IVqkA}Z_jv4XckFI2>~0@9)hRsZv#`5m*xd^3?ojORwQ`#7aP01_ z*xkFZyZ2*vACWV3Ct!D<#qPd@-JOozohe6j>#@7ab=H!^}x7giv*xlc; zyZ>N!w``@?i*9r5?ylI~HrU-F>~04+p?ffP_ZaMM2D^JQcDJ{jqk9H+_gw7mAnfk7 z*xlRY)Pdpk9fRF{0J}RLyIYIhog}B}zJT4Gf!$58yK}I+AIKTHOR&4kvAZj=yKAt! z>*a{yW!!fZc6@-EAqyboa#Ww!`ioh}}ILyL+shrF$ZFw+D8&4|ew~?CyDT zLbn{ddl`23TI}v{>~1XQ=-z?d9gE$41iL!{yZe-!Iw-up&tZ38#qQ3;?$%>>8{{|$8?Xw z?smiO_Qvj>f!#e@&eFXAyE_=WdnI=FI_&OEazeKXyL%^gcN}*2G3;(u&e44ayZa(` z_jT;<`x|yQwMUq7cWdnK_Hu^qF4*0@ zu)F(WcRONt50xXjM`L%3vAd<%-P5qUXUZ|%0odJv*xe!6-K(*?H^^DKBeA=qu)FtS zcOSy;j+YayuNF&yFX)h|HAI( z?-}OZEs$%D2|rtIAr~GS+*&R!4o=ItlJK+B1LT5U%{Kp?rGw?tQ-Y6_D`o$T`Z&4p z>@eR=F2<#v!KcbK_zcgS8@m1FG91}a*mH?oiHFKH_!_wm-yk>2KEus&-i5(;cxGVm zSkK@`9I z%{Kq{@5}$=Z{;%b4gc|9a-`fp1K(yZotc^K|Krwj%uJD7!_5A2mi%zJj{F$85tqn$ zcZc(wDi`9jmA$Zy3Fj3J<|?*<`g+^Y&gT2*m)WDe1%-d%w)M3Pm{}V9d>s zl9`r!2YaRvd!~b2!_4V&9X`)9_l4JYuxIcP&)}=%Mtq%|cYl~4As6DBa z$d!1kT!Y7X9zW{&abbRfT#TQT%kU)6JRD}G%7yq9&*K@M$1~;1nlL|0uEBHUI{d!e zh!@HFrP7<<=by-hc$r*`8|5;*Qm(8G^WVue_(!=B|19S{8D@TW{&eu)&Yua+Z>wwJ zZRBFSyFXuQd*WmVY9q#D-g)o1Jb9|)i|0cFd?~Tr$!6$kKcas}& zsa!TA%%3V(;xjz|R>=E%9-k-I%nA90p1~J;245!U%?&eGI$sn#%=zNr;c_vql*{mK za?PjVbLMEd?z7OcS-i=u^%tE`<^|2t^V}=*f;9WVmwlRmf>6VXCURk zC+g2=pKz^bclW}jGVz;JdeA29-r*_;xK=T-8Hz6T!;I~jd*|@ z^$0U%a;8`CAm{iJImScfEWXAwr-b<%2{GoCqK1$AeGUUg}g}7KQ#@*#I+*7W^r^z+AuiW@- z*mJg=H!1jhxfqwrWq7b>UJWxtM(duanF02)Po+at*#+E_^-AkCBVBc37Wy&2|b%7u8AT#V<)W%zx$5-*Z#@F#NK zJ7LcU*n(UTi*@&@6Pexa<}(Fp5HD%Z;RQ%+sNW>0K3}{yL$n4cL;WOn4H=wTz3R^_Y>^y z3heG$?C!5}n(ijN`MT{xzWKU%^L6p&>&lsbuZ!KCi``v>-Ccp*T_s0!f57e@zhB7R z?T+0&1G{^!9MioJyZa(`_jT;<9PI8wIZO8w>~6dLL+yWQl3Zcps)9oXHm z*xe_vyU)luy3b>G*I{>m$L?<3A?yZZ%p z_Z#f)&)D6+X1A^V{j@>;KyL&EncaR*>y%f9qEOz%L?Cv|*-MMm1cLCmf-HsvO zd|kZxx_I+-8`=~7nGL+Pnxw{3}-B#G$LOG(_9=kgV zyL&HocLH|zSvjUV6>q-oVIkjqUA+0ac=L7T?7!E=?%s#peGI!h3A_8UoY0+t-Cc*> z{T;iz_2FUO-5uo|-QBRek70M8#O}U~-F;I|Z5v+S1iRZz|6A6%yUnq?yJL6vk<)bd z$L?N=-Mt38dkc1VjGUo+FLrk^c6S+ecQtl*gB;QQ4ZC~Xks)`t8+P|}?CtWw+Or2Nlxe;ySHO^@4@bl$L>BYr|C|?o3D#EUl(t_F5Z0IWAys| zdtL1A@z~w&*xfU*yXVRg-3zh16S2F`VRv80?#_~9x^uC+TO1p5celsx?up%PCuiv% zfZZL8-MtdKI}*D)N>1qBjotkKyZZ@t_iOC#S~*AeC+u#Q&LMaAB~3Br%)474=jgV; z?w*a^y%4*51$OraIkiK0eMe$+gWWy6B;@WMkKOHw-91B&>7I?<&0=>aV|Qm@cM~~FcMf(p z)h*=iZj0S*jonSl3Elm$yAgKx6725v*xgvp(Y*t^y9m4cId*pyc6Ys;Y7t)Fjo95x z_mI2W6T90VyBo=Ax))=2pU3XLhTVM^yZeEhp}PdT+vcQ@yW1YSdjxj3iyYA{!S3FL z-F*E*>~6D@!;HH-Vt03!vvk{Hcl%>^Bkb-_?C$k)Lic9uZUc6A zF?P2RySrM>(ftv-duWf4yW1JN+XK7XM^5b+Uf;8@yNj{A%doqvvAY}OG~M5@yF*Ju z?(X&2-P^Id_sAK# zcY9%X&&KXvC`WV$V|O3N?mmUxeFeMwmK@Wah28xXyZaAzcl%Sryt})}S-N{+cPp^F zS7CQ6vAflBLiZl*?n>t;irpQ7-MtOF zdp~yfaXCkKB6fEvcDE6``vZ1&qnz3$yuN>7cXvG_64V(-}pdrwC>X3wG6-Mjze zhw$d};LYd3o6jR>|2+@(p0)q+uh@J3!QQj|nW5`FyU7WA_QKwC)_+`vy{7_u&vn>) zD&-t|ZpYq}{KxaK_bkEQlf&Ngot)Y=yf@Zi@9Eet^+zN$Jb%+sl?uMH};-~ z4x3yjolr9-5n?=bT7f~K84+#irsw+ zyZfG;qdOnFTX1&B-Q5|xTZrB5Ag5Y}_rt;1-TSe-k7IWyV|QPX({x|Q?yke`{*K+< z`kXND?v8SX?rzxKbFsUFu)9}dcSpz(-CMA`^RT;1u)8_z?ssxbcO7~0NqcM^7YI(D~Cj_A(D?*5J4-TM46<8Djr?%r}tw;gu37`t1F-8~DtTPA1eUWDDf z1-m;2yZZ=sccProeHOd>E_U|=?Cvt`?$>gT?swSTEiVYUyE|Za_rmV(E2mn8*S8~f z_ayA@Y1rNKu)7z@X}XtTcSmD)@5k z?rv-BZhP$R!E#LZNbK%#?C!1D-TSb+kI7lOS?um&?Cvt`?rQAr205Yo8+Lba6moa3 z#O{v7?v9dkbnnLQet_Nm1iSk+c6Y6uY8_tRpRl_m4)*+6*z;xB^OwtM=C8w^Ux+>b8TS0Qa)$YJ*z?^gLhkwA*z*JAi1~ro^RHpg zzk@yhfgCgc3HE&ZOG57XgR$qk$XVu3!k)h$d;W3k`N?v^{43b=|6tE=b7`3I{BClN z`L@{e71;AvVb52}seQupug0GL7<>Lp?D_BIH1oe;&zD>la?hWFJ%5gzVZI!D{srv$ z8QAl)<%szYvFFO+MK~9)& zg*{)6J%1VY{Ec#s`6}%BMcDJ7W6!UWQ$^wVug9M6F*M|!?}I&mft+T3F!ub@*z+%7 z&(D-I%+JQ2Z+=C{J-;jVd|Hl}KLC6FM(p`2?D>1;nE6Ms=fA+7{|0;hXF1FKU)b}d zSBBj4r(@5T$qDln*z>Pq&(Fl3pD*W_{|I|NeO1Uke*pIUF>Wpe`LWpZk6_O~ zBd3{v5qo|e_RQ~chM8tp2YaS7_RbRQ`95;Q{5jb3uVT;7#GY@EW9AoQ&u@QC$UVOs z_Ix`z%lv`Z^Os}KUxz(^o18FzH}?GJ*z--;^Xugt^M7E^ceys?o<9kDzOS6xH$3z6 zu;(XY&p(Gf|GJ!Jeirup_QOK%`Q5PR+sPT`55%6o348u_?D+@ei23o@^NrZ^tFh-d z$}#hK*9CjNKlXftJwH^=GJiex{FMK*_ugSrRaxJ5Az;=~F~>$l#heo=jly6UOz0>m z(kKSZVT`CWiaAFNsErvhAVw6iQAEXvIiNIV%wf#wyYD({jpwNk#+mnfuJ^Bx>-zP& z_u9X`&p!LasybB!>%S*h|D*8u@IM`_fB9pIy#CdK^>>1&g}-aC{!4@PUlXkVHn`Oa z#r)qJtbev+i@g5%g7q&Aw-5h{!TOI5*54Sc|6I6B_=g7TpB}9L>tOwrO&k?MD z_h9{d2kSo$9vuFYgY`cjtpD|3{U5@^!~bQl{*49}dHtIQ>)#$8kN;iXH|PaVi?$r{R^E? z;E}ef15#tNB;tFtCfoRUm{rlw!!*$3D&)!<)AO415{X>KGHwEjz9iA5c`-1g<5v>1*VEwb6#Qb+G z=Kn9j`a1{f-!fSL-{JP*?;EWDvS9tggZ1A5cM1Rf!TNs=*5Bsj!lQoyxL^2}2-d$# zu>OW%{RhK?!+&(J{(FM;j|6_+b5~1na*D zo)-RL!TP5J>wiC3|2J@}m5cfRC0PH)rxbbpTLkOh0d61u-og5Z2J3GM)_*(PCH(gV z>;ExW|175#9{uyd{ldRku>Ku`_3sv}e*io<{D%kYzcE<<9l`n^f`^BHVzB2J z7Yf$D96Ub!s|M>oELi_>!TL{!r-lE5VEwNJ>z@{^{|mU)D#iT&5UjuJ=|x_Dk6`_~ z!R^D}KUn|G!TRqE*8ecvCHzkW>!0_GBCmguVErB7e&Js|SbsyX{sF=IkA??_-|vjd z`tJb6&vwhreC0{%$AXxw5!TKBFe&IhOSpT?S{f`Ihe;FPe z{SMmY2m*-SpVo? z{SOA~e-duBMlt^{1nd7eSpPS{`deMZ{D*(eVErow>t8ci|7LKP@OKZ^zjv_ygM;-S z5BCfIDZ%=$4c0$0SpOJ!aQGhy*8gR&{vU(&&vr5MAO87*^{*JLf6d_P_~G$6{$Tz4 z2J1gGSpSLewD6x6tpCwq{Z9w$e*#^a zlKKNz0)y+lz4Y=-sVhmIDk1g^a!P6ct_%r>@1%It4_6ej!d-$_ha2JQHid`3 zRPZLjpRldF>3_M%Zxd{OCwN**(PwYCX?nqZ;pX7}^3O%v0dT`CZL7;V9PZbq;DN#3 zhYW%1=51U3e*Gy|J0C%8WNcepXQ%~1LYo&&DyQ26JC z>x0|DEuD+`S=4-e!R_Iu%?n-`Zunc#b{)7ectbtGo5Ib(o5L;J7yj;WWru?Q2GGLn;kg&CJFFPzgK+Z^1y6umjw||q2CfV& z_yzsJufp}gQ{aZ+X>eok2XIsHCvbD{mvBq)w{Ye7qW_=Zy5Qg8`rtN~aV(r)c;*40$ zZsu<&{9D5f!P~)gcNF=Z^aS^Un}hd&TY~q38%7oW{ouyngW$@YMgDNOF8FA;DfoD} zIe0K!Kf3Ur3O59w1-AsB4_EFgJeR5Y0k|P}5x6mUNw_JvJ=`3; z0^Ab33S4=y=x0s1E_gk-{*5BPG29T`S%1e_tJi|A=KIcCJ#X}Y8-sU*>l=#vE_#A@ zmk%iN{qzU#qyL~He}JCgL*b_2BjM)Ya~fd_3IrT9F?NHwT|; z{@o&fmigfG<&TQ|C2&jd74lET++G7$eknXR!*#*8$-fo((Qtk6eQ?ukvsK^Q85`_9 z-lA91&+M~RkGuA8UGU0qBkZ+%9k?lYL;Z6U{cIX+KfCKE@3X0U!!6-CThE+D{!X|d z_%*m0w*TMt2e%oq3l-yEN?yM3te_`&6}T~YO}Hs| zJ-B)0!oM-x65JWCtWxB=!gax0>F-?Rx78oqQ%`-7-xaP8?gKacwaD)YHwNzuSGpJZ z1L3;h!{jZC{84ay@IbgZxDjp%J_WAyDEw!_b;0Ms^}!dz4Z)Ygjloyz*|unVou1&E z;pXj%{B3Yc@MySy-`T47TKB<~hQc!zt_vOyH}6yAC&DekPr(fXiv08D4=ea(xN>;G zZ@~4zQ}qYG2R8*zhns^xhbu=EZNGu*f`5P;f`5e@gJ-!4{|SYEHn?F(!E?in!SloQ zrxp2y^#m^gS57bTb#Ps92e|RfBEK@+6ugG{i;Mia=7Tqan}aul>+UK%Tfp_fTj~k! z0k;J2sOO%-zYE+DygS?!+z)OJ-Un`Zpg1lL(Eni3_8)L#@UeP=PlPLD3(v`LeemgU zL-0BJgD=$oP~jh{e`3MI^al@zn}TnIn}bK{pIrDy!Ijqwz6WlZTJQtrTMB*{?*CP> z?@fT47nr^B6u-&#q@E3Due=DadNuPIycXOTygu9%+zDEF2U?*Z2Z@1-YrKe#FQAhvk{t{1L7X{ta#j zZhZ~?1kVmP1ty{05=7%0yhV*3AY5V2Uqqe`q>z6 z2<{9w26u&w_ENrr=ZH=HN5omf-VXeyFS3&&6v*>AO< z(QsYxeQXrb2j2^~1V0GZ9Z>Yy4A%!g1~&vxf*XUMgPVe1f}4Y1hg*W*hU*S2 z`g|9z5B>;l2>uLi4E`E!3jQ8$4*msh32rrXyo zP`GkJ;TZUEV!%e{x;FjPgVSdE0dOmy> zt_yxqPw;DcPAWWa!41Lhz>UEl!cD=S!p*^7!7ahx!F4AW{rn8q2Uo78&)~LjqOxuW1Z;D+G4;l|)G za8vL&^H&xAN6iO60oPq!w@=#>w^!18zvT>!{Nr@qv4j|whMR-GfLnt92{$}d^z$R!82lUD6x{lH+6K=Kw*=1v*FRmfT>x$f zUIcCoUJ`B!ZVxvHuK?FQQ?y+Lt`A-lZU|lvZVcWSZVK)Uw*+^EE6*1FYz5Z^ZwuE4 z_kgb;0|>^}z?i4Z(-O&A~^(Ex`lf%JW4(jc{G?DR6!8nQ(LP zd2mbc#c*YE(e`rq;#ser(7N*Zti$>Hb@lJLbKD5ex!4H)&RzXGZ}snd)xQf=|1Mbl zyKwdI8B1P|^Yo=|#u_H%3X@9ovUqpE*LSO4B!{d;fq@BP)k z4^;n-U49&`##R3|S2K@P|4vxGnf$~mKe4=HzPrPt{2jI8ME;ImaT0&;UGZ7|KCq(8 zePu;Q^;-4s{VVBzU?qEAx}$&B?>L#iPjq^nzmqz>#ownpwea`Z>fh(9e?RE-E}4%z zeZb#sJ5T5D_MPp2$IhSfcc<##zjyu|-nFxR_OAYIQ~x!*dcB!7>mA7^UH!XRS2Ok1 zznfS8cCG&XYgfm%Lig|ZyHfX#kF~C>+GL49H&pq6{a%I-tNuN5zgOY24s$IosQ$gG`uC2D&D>S} zdtdeMgVn#2FMoj1&QjT7ZvLB&>!kq;CY|vwy8K^sP=}(HC+_+8R;7qagT_7Ble59 zXY0a0jT6W0w0tk}???O~V%IiBKiwjBk9cgvGb7&Iw(#8+@%D(LB0d{&?O6-odJ)%; zxM9SNB5oXUlZb;NzDC@M@%|d+d1vD(KFWI$=Op$gu1VaR=)c3G{)fo_NW7o?PsFyw z*0b|eA8~V{{cho8R4(B6&?=P+=aV0wZx;SOQO!I#pVgD*yY#v?mGf?BUAc{TC;Ixv z)|GoAjv@A>&fFugzBh@ju5VNM0k%9J-0!Y}SAs8${F?B_XbZF_x+L<~5)Ywl9CKUi z%F(c~k!V}noQ1N@o8)e%?6U0RUO4-DDDt+O1b=Z;>&i9ob2G`mN&Y>gcRI44FNnXO zwl}n?%!w99jxCqB1${0WlV9`y;*fa|nDIx(E#m z4JSU197F19%11rGT-^GH{ywgCMY#t*s<$U5L z=nAwqp6iJ3;~z!52f3Zb5`E6je5wVWLhc>(A^H@3iE=$Zr+!YJ$GedAScGU^?hv{E z#=9sk=#h+SU)A&=4;~j zsJt(^`~_LwFXU%b|2_4sMig~_A=;n5REMZrm$)HvIcn4J=CTJ-p3$%R8<6pC^a64pcfWrPF7N+uQMOIH+ly`YGiAAQ3+ITjMVnKZ-+3w9 z&i&qFXPGExUu#F%V`0N!+v~TzvRzN=jJC`9cKOct2CVa?9B(;SwzYgdZS*V%Uj^Ta z?nL%s&i-oq$hMzH+uw+-N4BXLFQCmrux-j?@x13eneR)z>W|9fF?UeZ9Z%GIE75kg zx2#{^800!yc0Z8Ek^7P5zd=;*A-0IldcKU@@5HvZ73-+S zvYMA%JEY%n**5EQ{B<*^Up;bqvt1{0j>UFe;1%vI#$w!x@^)w^uYN(Z+|i~oJ6Zy5jCvr?IXxrxBKAT3(SGON)}G8%q3%GuUsJ%*k^lcVlU;(O?8R2fyYnU822{c7PTJ7>$lj&ZG0 z+yveNZH2Z&e@FWu$8iYpC}i8?i6^0)@6+LPL$*!Xf9gi^sm%Q+(QQ@Mt@PtQqV9sn zpsarwehj&s+P=*_gry9;_}wxgX>{a8=Y@ zN4y1%Mh_vk$)m(cq34OOpsAsciRz2cx5S@OtI=&Lv!QuVJG5AhmZ!WH+90Cyy&2pM z^+bE4qmXlE|0lvj(3!}x?0NAf;_b+L7W*(KJ8t;_>Y9;dqwOZ5XCh}`FTv^!G!1!9 z{*d?``W4N6SDVTrs1B`EBiGTK<6NDnHV*xjsCGmihpIQcH`?DE%I$DGd3IM0FOr5{*KSp{LLb=p*zyn)@Ek zw`c`akG4k#AdiEiiH+!dGz{Gka(TDG?mPDr$0PSC;}hsP^eTE6&2=y980tV&tDv5! z7ivKJqJz*8XdpTXorNw%SE1|B2y_R!2R(=$LGHJch_9e2$o=RYqWTYIVWEd^W5=ki8GgR_6NClLi3^}L#q-ULlTjYgig9wbgeuOR0n&u!&6mAcQ-+z)Y0K=o)BbR;?%os05*^kUdC zsViW00~(7aBF}Lz5vQQf&<{xOEaP|`fa=i7NS`^C{taN;Y)1SW+65hqE)2e!X#0ui z)zCEJ+{}J)W;Klf!qIDgJ z-gkIU;yFTjK3a{u`%ZV_?%_Rv*odw|H=&1v-z2_+zCp8&r!CqTIqnOIS0R@r-+`V) zucMF9Khe*q^&{MmpheL7XnWKf*@xTOb7-{>%Eyp*+qn-m!b8yM$aAS4$M3zo_vmMn zKObF;CZZqE%8#;6=v>r{zDCPW;Qkz)jvhddpr?@iO(wpHT%J4)eUH4h&GA^9%5rF3 zv}g&r@KQ#+=m$#+6MQEzk%8i5{1FQWI5 z=hSbAKcV@b;5|s>z0Y#QRngAK?YIZ=d^8kYi|#^sZhH`Z92s8-wydV2&ye1Xwsn2} zN&FSHeUkGcYL6_hPpn7X&^Bm$v@`0B9E-1a`@;Rv0CX@q0u4kbqr1`jXyHj51Lznu z0=o6+5&vBWpf4`|`1*&b*|bSOF(-HIlmkI*+LUw^nRxedL(RGwj- zkmpA=7rYQ!GUPT?%Tacl%NbW9XL&VZ_L+6-kn4ncL|sqfu4n){8l8eJLc`G==ppnJ zdL4a;zC=HwS)OG~XhF0TS^=$#Hb>i_olqaN4>|-Lg9fAX&{b$88iO83FQa$SSLk;% z&vRUJQAe}^>V|rve&`T%0y+y_j&4HtphwYUG!=b`a=-ddqWgC0yJ-76(R0k)&li1F z>sjygWn7f{Wx|uoS|Q475Z!-`or25zbnegY(_2!%FFFC8g+`*gklWAm^H|t8iRkOM z4~gH@$aDDbpGd%fKv*N=EOIu3apyDyyrU#Oy= zYhmZdYyL?1UgR=fBz}Ru5B*A<^#zVivSV^AYH8)d)4;aiZtF~src4Kx+~ z6a9o7_X;l-*R0iue?$F4j^`inpeUa~wC^j3Hz3cisnL`tAmelB74%j~@4~kIoanm! zllVKz*F5vQ#5$p+&~j*fv^m-uc^|fY#65}1+Er3B>2n+vpoK&&zEpYoiTOH`EjLLbd00*QYP}eUaPoP@?6ZD`3-%-1CO8pZbx?8mqQzE#oM$k#C&61NEXzNzX#xj#Ax9UE- zh(1E!Am^*i>qVTOxG0)VAIlLtqVVbAGmEG^up5zWH>1a6X zPKVD!ddv+c-h}QzQ_wr8GNq_njJVvt(Q4syjyl8Jpq*zTm(!2B{n1fq5E{tmSkLhp z!|Cuv=&PGsS1u!76=gpg7y&NWp4*HeV+?2~|N4d7`66BP1O8<(;EPnv^$2^`+PicD*v@eB?ZAPrZHg zCAw|;6FH zV;@4@8OZTx-4&G8XymxY5XYe>kiOT6Ehythu+KhxOKj8f$MH2coZEYTcoCG*^XiU_ zC*zXTjlPFxFNtfRO`}}qZsc<8qZpUmgWOT{)04Od@^!J>Xg^prhBAK{<)PGPyqdDh zHFpzipTl7H8RNa=x*^Yz`vlk`OMq< zmt4PA(~A7O5f_ZOEOG4_aQZi(&c5t3b6b(CZb!!Kd0XyD?rvhQsFVHt)n~07m+xbh z_sMr--+j0KOeomwOP_(tL3!+}OPjxN1T<=q6q6Xg7C zUin;0SuNDHFqYQryVKz};jbfS`yb(@Xj9&Ay?*^pzRkNuwEaA=e)}oUr|dP@dy%6CNF3zDWo15x&fbwPNDl`Xkn#aj?lt&=9%N@kr2Yl8g zx8bhr=N^mQkU6)B$BtayHrdas^i$sd+(ucK`(jHhb2{J(j zSCr)*!C5}6RF~W8OmaRK>V7v29!Otq+Yzu)jVwO<~9n11K zv7GI`$CLX>nP+{!$p3|?KgX8&rJ~+^?xz`7qArh5$Kn2%Lk2pAjfeD@hWsJ8ikxobx-g(;si7aO+k8`d*@r8hQ8rB!Ve=3;Jo)GtatM}I7bs_ z=XH^4`ysC}L(39X+3V*HA9^l|`w+_;*n- zZM+lzgUDr$C%$%4p=V0$YlhnLo7B56=XtQU{4Vt_`=jV5kNF=c{~EdUWV!WpK6hkU za}phg?e#AjWjU9(V&qnj=y}+>4Jf-$zd%2>mphX?gt^JsEy}J}k6@Q;dDm#~T;?2_ z-07*TMQ+Kc7c4_XRokQOEaP)a&~l`PyBc?c>5D&kGxKANTpb zZ&~k*i%@?aeRUwN5xgGJ?=1L?@#b)9D|jsDlZ?CRXDrI~+mrHs=pZzl>--T!*H_k4 zeoZovI&=C@LdNXtO!$PjHeLV^MgMIa7X5h-?7Zc*_(t+KvA*gqSmp8k6zm*2W}h|P z2%b!CKkgSZzDjxdQLU?5jxoC4j{7t68NY_}KE?Y&^Y)qRS7!UNJjW-z|4Dy+8P|;Z zTr%p{AkL_MUGmo1em7!ngWOje$nArC?<(VglpWJi#GHeH@L+T*IvZVphN5BUHZ&U9 z#yQP(lP8eBn!fY>kStG%cF#wAGkl*B)whwiZEc%5KIMIARPHzX&wewmjc+^VvU9X? ztoa^LZS0B1d3PSOF87b!sB3W!Bj$1Aee!!u;U zlatra&nTBwJC<_Yw|IRI&G#{#UzbT>uoLZl zf4U!W82dxUeWUyj;sfNZ8vxquRYngE*<-3u`NFG~bDEk`A{3PUg z(et~0^)k8S@;%?%T17<>co8Uq*kkea`!zEN5;b%H!9$a(Tvu z$!~(XAakC-{u=zZi06(j=5|NQ_O}ahcVynrjPjZ6J;_;Ce$K9j-B(1PyBvZm z^F8AISjSv{W4^aO2#=pfoI?By_d6F6eLq+(-;d`pmGMS=x1!v?Gk+(!`=V|fvHIRQ z{XG$!@3p%RWt$hNb9t{5oj>1WFsd2l-of_~%5Cyll=ZuA+1C2>e2>Td!E2CXC|@tX zVBYe3HI*-lV_`|6??HDUCTG7dGrpbpZsU&BJr3*J1vb}*cm#937x72Vb$LBIlCsM% zm&dVnr;|S?>Sh)%q~7a}@-^VqlwHs4JGVi`o2j3KoC}=g*ck2YonB?=KdBop;A-pK7V7Hx@&WcdWTy7e?RZb)6aKadbt^ay?i1orYZZ>!MGW zVV&pfeE;fp>MTD*%rP3x&1{~0HqQ0XH-UDOke}haM06Ro<=4r-gFZz1)u+fdxr}cq zpTz!^<=-gJ&wE-fBjem(aqN&^fM{E_G+f?y%DfzPYoPLaSzc!bIX%{OtEtQU&g8A% zJz|#kqkJMtpYx*cv~rGfp7k@zU5xMMlK0LM+t0*OeYyQ)@^6OMzEdsaz6zE3Cvq;w zKFj(4mgo7p*!I2-x348j%tY=5`~O^JkkQOCIY7Q8wnh)|StS z`s`QljB>;9+5fdf?={Nz8#xx+mf3Qu+`qZ(Z+!G;{mlB!KC_Q3*Y=(Ha?Cb*%lXe( zZq}9a<=l^W=KiLT^Owi$g5;J)xi4p2kzDq*4xHO1`|L-~ab%PSkUJP1hfaz5^NHC; z&(J8B_laDe5!BU=aYnfZ@jZj=!{wL9TITZcpXbNg_;M`sZKC6J`DOkn^0^Kfznnq7 zc3r=pfhX6s)jxSgjQ1on&Q1AQ$_o?SHaBzrv)<1VjAd`O$=DUx!Yx$LrM_HX~^IIPP# zol#xwI2Wemy~VV ze$QvB%%jS&8hcZ&n@OGZ8%15WnRxn?@-ySZ@if1k{0uu|?zdUa zvFOj-%wnGFJI3;IIa^S6UGmuu$FMUw`;?s@WqI#XTie%`Pbk$d#6CBpKFnQT^3{5B zTr(R(&exOCNA1`h>pRqWY=%~xxO}(In$%fV-Ae2n{8@Ro@Rzs8 zKO$%Q98bm>)eXjf4!R6okM2MZqKW7QR36`q+GpQy;eCpAn@)7u%5r&K=l_Z4cgQV4 zv|e@|RPFxrzp>BFXdhcM#*oY2x>Po|XQ`a~lH(gv%4gf_$=!>r&vnaj&&dBU-ZMCs z%je(Z|IO=UUNfFzdG2G*b?r6c-(5fQT>9U}|K|KPv-8r-@;R2ttdra2P2%5(%40A0 zpU)z1?uU{my}55%mUoW!vTahU|I9rF>VmdGJE1+$zUVM?92$boLD@$xV@A<_GoL(- zwzB(=%g=qm+(*=v{pS8%{ulg>>|3+`QXE^d{i>XsjJc0yxqSY}^L550=+C~gzx7IG zb3ICBulKpkLrVE)cHG!eh*@8eUI|{XT<)z z@0;%tZ$VjYjdl$6BKAWEhXxVzb5g(C=J@`%;yLtvDRTVzykdEO%j4_H@aP*3--K>O zp(Qxj#A<={0v8 z`}2vEPeKpEFQKzw*I!)(Uxuzm*P#*UcJw;$`QJ^PmCv~|K0tY{`~E0DZn;$dO!z$y zyaXF<@AtK2RomB__#D?qL_Zgke~5nM*?*7E%V_Je?PGCr)|Ho+xg2BmTZh+n>qMIk zquhhofwA=@=62XM>av{kko#5Ub6L4s z-AB$Rx}7hH{Jr6;&U3tWZHl_w)^3ZDpfrOIQ`uZa~}VGM^<*ZIi_LsRr`Leo|(N*S6;^(XzM!aSJ`LTGZIfe z+mZF7$+>;9d_QHkh4b&+8!fwSmD@+T4C~z<>Rn_mJ(X6)wsU*uF_p0`b>(eQKDKfk z3x=mWr+MC8mO9VBYeaONESJ}HbLw)NyDx4{+0UZNzZsah?Wl9SZY$SqWwx!}+-?m~ zpZiPoyPDMJ{Y!1!2mfx|lXy)kKL?)oIT;Vc=NO%T=lRdd$A>?^=XeU`v(bg?&8>WBV;ysjTZ zJOQ1AhSNU#Kb^9lyYGgK>T+`S>u2$~jv23}&T+WUIF@|2@DB3%Y@zpN-goKozHK~p z+*XyKS!PQ<`!+;wz3q`w=D57mbWsob}aVc zST?23@jHKx&++#lm)qTbZEM+e$oX>)55i|ZIiABUb8Ok4{n(%V+TOO=r)|%|>vy?) zzi(ykJI$$^$=`-XBe%1C-v@i2n(d8x`|vsFbJQ7Ii00lWevBN4-%Ig3Db9<}oy^&$ z7_Xe?5IMB~_1R|W5<7-9qwMz~^w_2|IoHv8^R?yNr?w4W_U(A`bLRb{&h{rU<{ayZ zI(Q&ggt7`?39JHTj$`>lSU>_FsO>s{Gxu zuGE{euU&)l`*0ceC7<7e8wg*3u0T!b1~d|lLhc8-56C^(CmtZ*j2=TCFV7L(uU{g% zOv_V{{eMsV1$iF!o?m~fS=&~Yo=M$O)Op^^cDC^~!n)+$zd8}?gDtyXW!`6V@_Ag3 zp*$D#D*0Dsx%&4cm)|pSUnw8o`%&k5n9qIXU~x$O5yasyGu#wgqN^kCa${dG0| z>?hABcT?|i?HKJtxxN#S&v2?|V8>v;xoxMA^EHaOS}ihLv9FZRWlNFsI9!hCF`Ay$ z!fPL8?iT*)K3d|PVaIEJZ}vSmWcZf2cNZIcYRnN)rD%?8_Bj)p4*TH#?_L$Q* zHge;Mmd(5F`kswC%kRO)%IrlS{=V`Ya644{EO8yV?8Dy&^*oqy{b;`pG0&C$exaPP zSG3RieJLLw?M{hy=SNvjUhDGrHUITHr{T@>v2%6R405+e&M}Xvsh?D;vwdy(wNkyy z`5?;Q5LIrQx#nPfV?Es_?I%Qk2k4ul^ycSQSPQ8t8W?yq%E=Jx<_+0>xb@O?T@;kn^ zbGEI_iK^!TmSg>*l$VN}W$RX^yaqB}9y!-X?`G&Cu8(;yTRw(zUGn_U6>n-A*zxT| z+#}>~4euX$$9)v6PC$+$pK~^MCdz&E68Ngn^^vzO{TXxr%JJk}+(sMEch049+s(^+ zxV68Do!fs5{)bVlAppNnO@MtmD(UB>eJXqkH#pXV%}F?3vR_aCAk*UvHg zT%&cr+9$EiTx~0JpcT+M$lS|pvyEY6K2u*CyHlUf9p?IEOz*bQN5&boNw4cr-WO`W zcbt9ax@I}I%}y-K=Q#Ti_d@$2*YofwA5A=wxjBJo?qu{1_iFZc2D~$M(`!D5K9BrB z&c&Aye`YRZpTizb`DSGQw-N6`_oH#>QS>Bw7QKu%q+jLStJPp-efFR4Cw@e(FLm~N zUBq19Z>XDnZeHv2`oQnl{Y1Sy54o%1^tGeB7|Qa}@Jgln4wUWRoN+bEYs2dj9iRD5 z(Z+FhjlAr4Cbp%#3$na>ux<8+k0Itd>OF>B_G$Sv%6e^U{$k3Phwdb*+^$c;ucGvO zJZIgM$Y-7XeM0Ul^c}Kn-7NF8t;~jM=WQ`^uDi!V_L;|g9d&9|v>bh`O+12F-Z#t7 zC~ru;+o}ukugK#kx1YHkqCWf2n9JFP`aUT0d&2IE84sfDT$N@2mh&D`J{F&4m+$fK zKH#{m%Q2je=OX03cRA5H%2@k8QC>sJ*OmXlFBI={xV&rVE4S&5(XY$S<+{8($lrq= zK<+2Gueh%274q(fj@NOi&r3P;-&6h#wVAhV^?A@duKq&Vu_v7}|jp9B# z&wu5(cBwAU1)az_2K!6drh6%GS?v_LzNLN+f*rHtIyUlyh&fNjKP%@s>s;D7U(VB2 z@Nm{c*}w4?a?XYGd=ESU-AviCFU4zG`zvc^`E2)>XtxY;`I+=#UB0GV6SllQ+GGZ?w!RA<=fQLK z*1?|3J-_(EySQ&kkL#G6_o_S7PjBQlbG`S64@F0! zlaSldzMT)-o<=VFITz0Uj2;t1$vIEXW%{mjMC7xt7b(An9Ftzh^fzt3RTG3)X>r{9ye&s>k3V`H27i+RXp8g0KIdF!)H z_L*Z}mU?q5MSJ%v+m`2b-RL9d(Ef7S<$I$p`20SRbz8!&Z+`bfcAF{p;m=q`Zo~d~ zYwx88kV|ha?}*6Rm+gF!%=^YuY2!LN&z?6gq&%Z|S@_&{tiPVJ{o2lP z-9~vFdK~F_ChDy#ALB2QcTWD3-@MS1zkBgI?VKlno7d&K&bcmAsk5AUxm^Dt^|h}T z{@b$imHLeSa$DsXaz6jta_v0UmcL~EC|}Oy`sMb#J=)}V!R*hzY?Ge*!{cuP_?rvv@ABj1jju<& zZQh1$pY!*BJHE^EpX7D*bmC{|8}tM6JCVN;cjI+n#x@JGk1=<(=lUFT`FJgV7c`&O z$2m?(_dgdQIwwmLUtrFh7vl<)ZSxiHf$Pita1HY2JjVS!#oQLQ^Zhep z=CbVj_sYD=bI~^R<$d#x#9ffF{GGYnZ*yJq_X+yo^Y;o|R)6?wp1(ba_!`I0QAG28 zHm8oKe0q4!A-b+9=heAZ!>HSd`S)3;5wPF?&U0eM+V6?imhYn7SmgU33?GUxFzv-lW&ea6_HBHGSt zoBQ%hlzpE}o>E%gb9f&^GaBQE_&kQ}!`GSR`>=29Bc9*+33d)!E!?&;D@tAhULLK6 zZsyr0>y_i$nb;fYRnAo&do#=TFZt7JyMrSyXMb6LEOnj>E-kfnoxG-e&3fl?K8$+D zdn0m;w$Jg`zSeq>deJJzX zPUI|S%-@>KSf0}^c;9CGW&g&^<@L5Z9@oqBy1yekqkTN*q;@^>*^eId;Xc)q*bD7} z`lD<&0QMQG@-^WQa!sn+hZX0M#t9k{y(-$_Bpe7a%-?)zDxvblW53xSw>wWfH&W#TLpY3zmcHE!%XS7{w_qQjakDT}N zvL{nlF8@0&&tZ9;a;$I9ps)AIsk|570iSJiOuted;j(MgZn0uLvybdEqkXK1XGZn@F0S<(Q*Xbnn?BcR8*=vH{idG- zXM5j+b$qtl1CQ%;Vt9RjVF-Lil-=I;tM}aS-cs_83Qo^G;n6?7#LtJ%<>cqdZWrIH zb6hSr-|umII&OdC(&)Zeo{N7*Uyfr&edRi58`r_{v|Id-XH0CDa`|V+I_m3)&-LGw z=x_eoPrkqHXT>>>2Qr8Gyq0t59O&&uJN^Dnp5NWxi*okiyyyGX`$yh+us+xOrpUV- zpNVss)?0RYS%2%F_^i)9ZLjVmm(K?Hti?l=9sA?qbu6|q=Kka{=)C0XjgRqug&riI zb66W&Em0h2vk{$J_e*7)#mT8W&eQAvqvm|CO`TC~06UINiCs&)Gpx)T`yj{NpP1*h z0p=fw&$?i@iDlz)l%3C0i60Vc%V&|#IZw}wa+ifK=eOLa{oYclFV{`4`MmgkeBLX& ztnABiJ|5+)%X7(O@;|6d~W1qJ;rO0?fn0Fy!W|*ve%Q5#L;MN)-$(7di{TGd=KvaXzTjtbLTG8 zV`vg}^2PM+vmdU{8|0=U{hm{7)fXt$5PZe2K%wjTt{+_CB1oWvz+X6tv&I%tz6cwCC+Pxef1&labIp*dycTI_b|MT zsO&X=O5{8To?BDzwL#C7-ejv>AF-HE*F67_m>4z`S({n$?b4&?IpsQkPzmtoHJ?f-A;kD$)^bNTri z-g~0l-p@xq%htV5&UsY71?Tpf zt$pzx=Y5>7=7XJ=a@+05<#x||x-1)eM|}g)ePeIp{>bfh2=O1Gvxyg?p=c!flJof8 z!H(-u_=8eip0hqNN4@*2%I{k^#`1SE9E)+d=)xomN4+DC0) zwad!By{C7*?5jT7`#EgBPWiL(*)H4LZa`@awacs>lVfl_vi-TVy_IdRhQjXiBZ${h zzJutT`kRaQ1@~Zo90%*45K-3m0%eu^@yD>s`-$lCekZnB?vGshGX90Sg^hipP zP~?2Bd=TvC48|eoOmrS{xz-PdtvB9S%HJP(<3q^*`^`Ls5Y-_!_BZ&4lgsAuO zD9a;)pNqOF5gqe4!Fis@_#=7GJ9$6pGF8@R{GFWZHgAW*FFRgk|2eLV%i;5R?~RDA z^X5d=8#N%8u{ZGmlrgt|#zSlBvwTA2&my`{XdCp?B1||Mr9TM?M4ZbMNJt*M>u=KMr{=@ZMz*JftRP{+#fnSKnok z%ir15=ea1)PuEAixl!=FNKY<1-w%0!yys=FEzR%?j6FRWA0zJ=z4o~OJVSXJ@}AJP zzGiYxs;`~+{PTmFx2L7OvC{wS$NpSa_LXCp7oYjAd}qd(zQsy;$JRc| z)>~Hk*Ce00?6ds2-+HBX`g0kZlkZ-t%jK5amU(-;{aN3f-@K>Vjl9=i+h<+B@a{|W zd~Q4MNe5ESF&G;uyB=BZb?97j{@+yQu7_<`ZX=I~e)Noj`x5g#X6xPN<4c~2;jzwr z<=L8Yxvllt_HBIcq3Ou`0AIIy&i1vt_ixo@v8}zY$@6QTAKP{;t_7YW7l4;U9zUMr zl-Fg~ebvZYXSv+J$JW>6mHT1Nd7fAE{vgl!J?P78V8))5y=G?2YiGt@)O&5r*f++K zaRB9IIUi)qXHoMz*@si_`NngR-)HkUa!$OLcU`j1`aAGu)SKUB)8jJo+;@NUnQgr% zEZ09B{bap$Z;|u)iRr}8(KpEXQu-Ph&p4tU$ENSM8;aLMYpndoHNm!yTfaU%>r$V6 zm7{&>v#+kBZXIr}Q}Vbt5^I8^3AlyhBkj?N@^6!+;5vR^nx_m8W| zt;l`eO+@F~Hf4U0{FBK0K>xo`+qkaJMmzcC;5UhGOUGzlZ!Y^I>fDaGPu7;dqTY7B zxQF#M=Fg>a+f}$8qjJ6XW9IX<=t{8tD}6@SMg2FgNw=e)oVS^AuG6mJ)xTe`+s1XT zEuTz%?(6w__DXVjUzf*!-XGPz*1a3A`-yVhy#Mn4{7Lfpe=9r>`+vRUIpr0~Q_wWz zm^{XeJ}>$ixv!BqIrDjrnAvOOU-3G>o^R$_wV11!c^9KTw}t(-FO}U-YRfb0XKmWu z;;|la!|12)$YLMvLOJKgZLuxoo0$jS%gNU?8Fz}d-q*O!9*=vFJDAtvN1%MZs64Ox zQhyjaMlpB!%w+jl{FABkGfS^$`MNT<)0=N4{s1=UD%rgfaN-V>~g(knu@!`TolDu-hlMQF6v?lW_`u z=QqEru5Ws&56kZV*?<0juX+FbHD33(ABpb6u1g*Z^Q>0vgL&L8O?g$c7RuwT6YMhd zWG?sD&8ho@?dN*;2w#pP<4)uqzx$qjG*Hgvd2H5}bGwc}ze$t!K-|x_$*JtyV%h9&wJ_pdJ|7O%#_On8l<2~QD(cdn_^kv+goa<$q zTqoaW%K8JNeh|?)(dYY5M%R5v)LWPBvtG|7)H{wFi2Btnuwx$;ZQVceyj|Yzd7d2; zeR#dKuOB#u?B~VE=h(exH2)rX$0C0cocpP5bKSgdCI1+{--vn4{BOowmpsqpc`f5& zYw=k%=aW2lq(95cQ15oi^;kQ~=3GzbCHtCL%w^~I^}5r?E@&Tg7#fI9Mdu^GFEEVg z|LvA@G(5^K?^ZakJ7eMOJI|jPAEE9El(9Dd40SJ}*TU!L6Vro#B>skswd<6}Z*6R| zc5&a9=Zgy;=9x@#epevpvNkSCz2{K(BhU3&-;sR2FJ-ik4I(G!dlaoy<=IJvi1JXL%u(~3}xR- zSckYFvLEB7rToL}Bj)_S$II6)=lE~rcSiQ#J7UgJ?n4dab6)J;F z_iyKF5z0Py;PQNLX<5p7Jox`l=Dxfld5=ri$(Ww}|Hap#-g{E}%(_nGa^EY*>@&|( zd9EwJ7oBxEpLq`cD}Bz-Ydc^6dd}-dd0%uOItmR!-iKw(`{sNP>~!icL3zF{pF49L z`I+q1`0O*!7kONjUkBVuz4ww?m*X5w{&CwfC)Ph7zS_RB-CNXqJi0G@2IsXU+x<$; z*Eg-#;RC$NeQG-AkSrVBPs`<;>zun^0iy}9;gfc^0DxL zlgsDl+IyTlCi7YC{7vY+8L!)>Hs-bSaO(XIv7R$w-y4xV4u(=5j`Dmk3ifyyOZ0ua zj9EXC{4>aHR+e*{`*ry>rv7}+&3o z+zYRsjPriL|2c~KMqb`8`qOs^?6R`oV`0Aw?r$EP6m{}hu-i%H7|Z=!R;qWs9HZ-Y zGx=Q4d*EE}apAZ8Smfo@OXTdMR{352DN@QhiX@%`}GZ<(|Gr_?*XT&JHXyN)i` zIhkd{Kgx5#IUd`zqpVgzYXz6f>yvB6b;tKxJHxhh-^e~3Q_gATEc@J;_W--n#(gc@ z^rvjS^XhZA_B}ZIwY~irPmOlA&3QO0a^9olT$T5m%w2@f{#{NkV-z|2b{yrtb05El zdf&6lG5G$ZeWZ61_4em;73)lGQ$21R+cffirl&rJSK#<>LtFPz`|>+i{~}`M$rkMzG^4%Vk*3YlH0_quP=-*{`1T%6@LLJN5mdUwxhv zl=YU4$53xymfZ#?P%hu&mfvsEe*yK5H{1ID@zvz6L*~lM_&am2H{~*RAZP!wpNZ$X zOp5l_=V#^eYmql+`JGbvN7&C!ef{G$@iR*GTX<^6;+*7IGUj-^KQE7Gm5q7*NI%(k zzUQ_+dDm0r`}oGZA2RRfPdSIS^F433jd2g!=jTRVSM&n0LnV&^p6l2Qu&6wl#GdDF7pP#+m8GifKbAOZ_gZJ@1TT%XPHQM*MmnE9_83*&;S6;weJD25W8DETL z?7et)MQ$Le}IAB%7D$35P1u*+2gZ){UpiL(9MkIOaY zbM09!=WO2vS*LtnGV5oS-x2?@D3_7_TdvLJa}pktLuixtKY1UO_cGr~`TNN32bRZCpVuV)k5Mkqr_Vho--~ej=d*0Nk7nDq zX_wc5_hFyG@ONnaJzkgf6FIs3?6%v*x{S`x+?y7!#oPzorpo0mPTuI)a^G}&yItI` zZR=dym-oR-v2NSY#{S)(%o|hN$8zj{7dZRO{&Ktd>`z$-<8^KwpT~mz4=J_J?QC>e z<+6NfslEM-rd&SWY~vUnCI2LP7J2@4{4c>C2O0A{zcT^B#2a9h-tM^Jwk$~YEYn|9tu7;R&8 zpD}(Nvd@?C=KkvOV!iu^+v5FFUD+eMJiR%``JPF}U!uOekL0nK$Kb-9|JZ-+%W>Mb zKBMFC*i>ua^}caEVlLC@J)QS?)_Fg<9raIfJh_fLh1Y&}pFz942enPre_L@}97;Kl zE88m1b^g|Mo;UKh`0~A&LA24g1D**ykCNYqv)|9}<$Okc-Xr;0yq>Yq#^($5ji=m| zJ{~8!{_e9zuNmH(Oo@D!XMMYP#<=!(*FVGeE1ISLk86tk_` zoA-McQs;Qw2QqqZu3X1Q8Ou;S_Tlfn`&;iW&tp!lPdg>shyCSw)n!{Qd!|vYy~oRI z_E*&TtftT1^+q{|j>G;PU%M{FwPI_cKCcgXE$U6qvd5##t}Y+;_s0Jp=H3L}rt1A4 zUwiH0?0fD#_d3Ts4;~;L z*kkxSY^i;Ksx4fK2Y?UuaVo#mPwmT4cGP_a_3XN`H5u_X;iaKo zTrchh4u1QAzr^nc{C>jkPy8acV9g!BV)zxt_hc&ISOvct_%+4vZu~mn*A2gC@SBA_ zv;TkksWRvTzh1#l;fcxPn>fzHFL)=-3gC74sdoYe+~tm!#{B>~s>}o3OT%^`Ots&C z8+NIU%i+uU_8HPt^R`QWUxjd&hKJ$P&{59~Uiu5ZrF#xx8}Qzyi#V#ht8%sLVBHbp zqMFmIzjNVlHD6cXnNfeM_W2;5`BcZE2vgrdR&DVb;Gq2m-{;HB)xIQ-vR5zpw~DWH zGykp9YmPW7yfu!O{@p(LcNcYpu8Q+?rZ|0*e-Fk{g}<8V?@5{do|)*G9NSB```Xn zZT0g@%0&63%0}6}2wv4wkVaZP%qQ_v--x{$$KYGC!Lb}T^}XoYI0oNmR=T(2Z}olW z2XM^%&C$ofsqZb;4RNp^U>9kLBDy^r0GjqMcz5KuYMk8Fk&w2umuA1ND znAIa|# z@QdLW#7h9@$>Q%IUgl#j?3Ga052_3bLcc72>YSqfz7|;ZC53Oh1gpQ>;cr!b3O{iP z?gy;6S1yS^^AfDW)?O0-qf7ATz*1PE0c3N5z9t+oOr(k7A|^(P4DqT+h+X*V;C_)` zoE8Pec~Mwg5XD4_Ra{(Wl@y(U}Hv zc;Df>MMuR*?}V7_of2<&zlf>cS+U$ZCoV+(!1r}72qBt8goxtU9>;|IpU3CG*9Jcv z$5Oc1pNwM_9GBo&4#y90tcK$r9IrvVlQ>pN@=7nTtK$6|J3)FuIzhUZ+P^g2ARXxo zF&F8^aa@37F&s-3fX~U}tvFV}->s9!$8ao%zccgCg5L)H!8q=~F|*zO?eDSBQ{|EQ zm{~7#I+_2@9Dfq*PQ-6!@;E;dHmn%V?5%$0z0#l$K}c62g&2^Q0lRS1x9-m7d2jiFz@h9R~2*)`%DtpV5$4$v& z&>n*R@fr9|*|{9QOa2}7%b@?C1HTXPQeit+4jw;(ev%iwO7H6A@j4vUxYQWO{)m4+ zjxXWZJsI8)$IlWNpOSxP=7YcgZM(_bPJ?otkW6P$^0+>E+?zappFGN#$w%(wv0UHc z__xVpp!W;@mU)ez%AS{D>;?Kk`h}8wWKq@;D@UoRK`POddZ> z9(N~?-z1Nxl1DY(s&xKJ{;kSi{T<1M@dN%BNFFQWsQBA)RQU?>cPIWv*Ab{?Vpf)26u`W!peQd2iOQIr)f7eX#phz8p|}b&y5gdhC?Q&llHwk5wRljJ z5|4_~_%d@DF%;j5eqEFk)1mpcs34YzYsDH-MZ7Dn6Yq%{VjV1P#`mK?5jToYVR5f$ zAU+efi38$x@s(&Qz7fsDw@Bf*xLf>+6n+zJ#948#_+308&LO2gMSJm=ct~6n4-40N zMEKUDB5HLJajS>OV?8JGTD?R*tDmTBy?~iye{sF_qNr-UEUH<9M0IPhs9_BiwXI>I zo;6(5w?>I3) zdSC3YHi~`L2jX*UlQ?XBD2`a0#n;vr@r|`rd~1CozO#0Ulh!VL`S(*1m3uJL-7B)m z{i3QoD5}XrqPjdKYRaE5mpUzOmcNL4@{G7uo)rz`InhL(7tQ2f;x2gsU*o+fT1jc$ zEgh@1^sIZNZ`~_XthO?0Jtb4Er)8S;jEq^&%XF)^%&_{(Y}Si1ZoMoM)=-(<8YXjC zV`MJtHJRHQEAv{DWC81SS;(3!3tO{g5o?hwYHgCmtgZ4YYlkdu?UE&|J+h>=S6*!$ zlBKLKWNGVLS=Kr#%UQ=|dFzC%VErsBT7St(mb9<63fR|Kh3)ID8g^Byrd`dt$*ykI zvujzm+jXo)c3tZZyPnm=u5UH9Z?&4)4Xx&O6YEaAPqBWpr&{OjndlO;EZce8a-DfriZkDeIt#1}XQ35$7Fju* z#a2G&U8|t;o>k0QXO(i^x5_#jtcuP?tCF+Hs_cAdRd=>qH#objTF!2(w)3fVi?he7 zjYETO*xctXG{g)>!9PYn=0&HOV<^z3%*OO?J*%Z#aKgQ=RkH zH0LktP3M9&!?|e9a{jh(BTc^TSaN|QyUv6-sa+{MXw>xR_ zBPU(%a5CghCzssi2{a1+#Yg?+fy!c`^uH>3v!kFvRv&Bm22D)a-%y+e&CLiAG+h^R(FEj z?M{@RyOZR1?(6cX`-VL2PL*feY4WT)U7mN}lo#9?@}fIa+TJYbdb6eHy(QDVIWn6! zSLX2M%d5QwvXr+>mhqO$>%0}Rs`rkp=B<=9yj8NMw^rWhy(@3>K9Dzin`9mD6WQ3? zCGYn3$Tr?y+1A@9AMiet9lZmxlXpmV^FEhPdtbfLBB1d{>8Fh#QQ_8^v=uoybE%hcTs-s{Vjj+gnh!Z?4Lc? zzUXqr^<-bh)yZKRytE>hlZAE{t>h*Y$@M=IG*N3OGeo?a;rTx(!ib>X=uM4xx=0xX<{#oG_{vT zTG-1XciAf=E$t5?t?ZqV4)(6d6ZWA*EY-maeVr(HAUFS~ZiMf;YNzwLS{!fB9V zIk%-a&K)VP(=5ev?n;R`?NWT_!IV^|V@jIya7xVSl#=drPKi5RQWDM+DcPN;QgS%G zQgS+dQgS(iQgS=PQ}Q~mrsQ)br{s6mq!e-1rWAGFO~J^Pa+R|wrMUB9N(pC6N=fId zlv2)#l+w;mDHWZcQz|)UQm%0>rd;d%ol@Cxqg9+p^g1UsTFuFb)_1Z+8#wW3QzsF< z)5#IN%gGgO>Ew>Ka`Hs)b@E2rJNcp=oI=r#PSNN?&Q;Neor=*%oNJ?xI@P0{oZ8XO z&W+KhoL159PMhe{PTOb?=f3DO&V$kCorj~nokya5oJXU5ozBr0oSxDCPOs(?9x>GcY>J85|w$43Ca+Mnzw9CPc?MlcM9DH=+}rsnMy zt>_GAPIRU-KRU}<9G&f~h`!~ljLvb^MCUqdqi;LwqVt^f(fQ7X=n`jRbg8pBy4?9B z`i`?Jy3#oiUFCckUE>^&zUTZHUFV#NZghT)e&GBW-QtMUt&U9H=Gdv*omlF}P9k-O zlRb5pQzCV*Q!@2{(H;?DR`L;=GpnwKF#L8)ri5 zQD;)>F=s~V_s;y(ADo4$$DKu~C!EEpC!Hm!KRTOIPdQsse{y!Go^d`+{mt2vde%9b z`nz)?^$*8M`^(9ecEQP>cG1a|_P3KiO}GWqEcfa(>6T8j-Lh$pTOrMLuTAsZDrph7 zYMSp>PfKxYq($ADX=&~aY1!Oc)8cNUw1nF{ExUVPS`PPNd?w@3v|Mh_wA^klypFqf zT3)wLT0VDBT7GwAT2XgGS}}K0+Ewn9wBqi}v=Z*@w36=fw5#2fX{FrNX{FuI)5^GC zrImG$rImAkNUP}noL0#_lXi{!TiUhmxwOjeg*0r>k6rKDv8t{ctLCP}YPhMfnr`k` zEw@0dwp%E6lUq1;vwKzS7PnNaj$0;H*DV*T=T?Z-cdy0L>GiP&Ztd7@?v1hA-J4?# z-8!*GZlhRZ_m0>dZj)FOw^^*I+b-73Z69myc8s-fABo-Rc8cBQc8j%iyT@9&Jz}lh zUa>ZA@7TTWpjcaXNbEj$Sgf5pGWMW5A=ciV9P8k|5$ovAjy>cqi9PHti#_75iaqMC zjdgP0i*m2Sbz7Y*Z}wE*g*Gm z>}B`Q*dSM?4|cuuAsA+dy0P?OZnpGMZh`dI+`{Q&-JOPXb*L^hopxZh9OSenpK^z#|KyHM|Jj|Ee%gIA{TFv$`fu)n^t0~D^mFc-^grD9($Bja(=WQ4 z(uKDr-SW1lJKoN8*V~isd!MDJct_Hs-goJ#-tqJd?{s?HyO5s4yO^HSlNq@@FC&ka znvvIwW#seHGYWc%j0#@vjEY{Kj7nbKj7DC*jK*H6j61yBGn#n~Gw$>nXSDQMWZdoD zpV8WTAft`fA)~F=E#p4#sf>rc?ir7GPiH*py_C_(8=BGC8=mo)Hz}iw_j*QGZ+ga) z-kTXud$Tfnc(XHldUG?L@fKt}>n+T9&Rdz$%X>GYkGDRfpSLyR1@GgG{@&h<0p8~s zFL{SE26^9R4EBy?4DpU<4E0WA4D(KAjPOonjP!oac-52HMtLdOUh~qkjrB6JP4IGL zo9N}qHpwfTZL;@Owkh6`Y;Sm9XPfGs$TrjaG21Lp#%Fu!@i|^1KG(||f7{C!pXU{b z&-V()7kDM(3%#r3i@Y-N#a_kuQt!I>a_{>13a?uH9j|75rFTPom3LEowRcN=jaN6m z)@u-d*J~Jm&$}bO&TAH5?=_FV@3n|;^zMv*;N2VF~)TB^}5EldEMgM zy&mz8yaDl#y@Bx^-b?XMyrJ=(-mCFl-kA8O-uU=lZ$f;ZH!;57n-o9j&5YZTx8f<0 zIq^1;x$%1<^WtqI3*rw(7R4WmEQxoHERA=KtciDzycd5uvOfMyWJCPf$fo#nkgMm~-Ai|mcR5cw?LKXNEOAaW!=IPz_LNaSdIXyp6&u*mWF@W{#d zE0I(25s{zcBO|}WUyb}49~C(pA00Ut9}_tr9~=2AK0b0WJ|Q9!6C*M)DdHqvk9dj6 z5kD~{5>31ji6y2+(i77n8HqO|@x+Ws_Qc#s&cxf1+=+RSJc;>{yom*of{BHZB8f$j zVu_`Z;)!LEl8NP!Qi&Cj(usE>WfChRWfQ9+-!^s`G~>{?y$0%~+frtgqcz}+u62(i5}LbVZNR01 z%cZ&8Kqg*c;{Kj*CAo6o3g~#X2sI(pWi{5EbZ9$p#WYgsmePp5;&{qGQ)-;I$H-oP zLc@W|Yb#H|p2_9k(}SFM`Zho#35|n>iC1Vx5W0}iEDBZWnw*Du%Kov&Jo0K0<*oDI z*8j-mO2o@t_R8M1Iv-pM(@+c5sDx^3#ObnE8CXTCN4kwPdXMtKWvbds<`NI{FP*;WbBnQF$2mFTH?)Qg-5BdI#*?o+1@|B zGVL^LE3Cm~s{At}68m=tyy~X&(E`ZSj5@!WT;3Pr^Qj_2^wb)i5ZYU#zCZ&sdIe~( zMsEVWqLCUqO-XJb?iFw*bQf`-6Z($OZ-oBa_Ee7_rTtT7HC`jTts|yr6a$)}ks42p z_xZrh)f}U%!7a)ZuN=7dG`*GLm)bb(T^%@lix(Gra{3d<#zL0xEYUo~aQx&tZQtgXC?crA2lJZ|t<5;ksdZSnZR zV+q@1|1Mw@Xsy$jgw*cW=#j62Iov#Orqs9wv#z)0q_GyrTu1R0RoGeWBg8ZPjcb25 zI4(cqf%3GY_U|i%8uT-eDP1*Ech;d?=V76o#yvk;qMO!G<4{kHR2%QDk<||8GL5qK znai2$L)DgPr`)4>Y)^w_lcVB5rcZOrt`5%Vax3Ou#%;U_;tkgRDKt_eVFmSeCpc4n z9IDW`O!4lgcwK=^E%XGMqT}_a&=Ej0G&hmBw}9qqZYj_rjn)F0GtO3umr)=#T)F0Wzh=@&1B_8JpY(15dL787>c@B0#@sd!-27K&T<_k%&La{CL@!REexm~qEsHw{iK&DK& zpVy&lXEkTNRi~j=dQB^S92y4o0BWp5`w8gHYe2H~*M0cGU_oyP^jQ3$}{91%Qr!`dDFjvvb z2L!X0U4&XU3pj3TH;RLwn3=y^gzfJ_NZ1Tv}3ByJfY z9y`~AGv&wg$;}jR7tk!7S_|}rc^Vz2(BDay{R!&gCX*_t%mxpDXzM!83E7A@ew1n{@eVLS12)c2FOod^NE| zmsME2FkiS_cpk&wd&8rEx><5FYq*=O#n+<&>R za{mp}V2(>t%~dQtD;)*@44MpN%9-b>voR>Gse z$B1XHt+?+WqSTHP`kfG$kZMg^blLNngs-T0Hp16dJO|;nWVU0?FJE~D7Ak$uI6S|#HJ3>8y%w4UQfKF;%_FyzP({gyuFjH|l z-eDj)R$U970P-~|{U}x?HRAb3Rd6LW*B!`=W`lsP(H!TT=Nsb?T2+UtwQz&DG}yme zR^u52-Fx1KMlG$eg3?$=NIlzS(*3`ou@&jo)xM~CQxlEU%BLCcdA*a{8qZV@LiaAM z!HDn9@f|z9K4;6vplj-!uk(0q^EWCDH3Mj)(+FFu%IJg^p+mXlaM|+;P}ZwB+-C~F zo+*1iZ~e1Ro7pD!E$+WzYg)V>b~P-U^%owmc>Lork*_s)6(_7;@@U4ZIGkS|EqGMn z{>$eNUXkO~H(qnQ20mYY^^MQ*Ji@hvhN;yaK&CfNCd6l}jo?fD1i+da?V zxd(8c;r7R^j@w#TPvLgT{e#zm!`d3Jeq_B0%ljwO3vvV~*qP zp!UM+Tqh}SzftIwa@(*DXZj4EaW2407u~lwZ>qM;`hDtSK}jZnp3?Eu+|g)o-!F*J zJ~~vbPY%?m6gY!w6RJ;0#T%mI-3!hj70)1^Gw^&vovlV{4TZ*O6n5U?P_+X7I%!NN zH0QFqN@G!`cwy^=JO@^(t+=c`j+eESuu$&t<8U2s?gph|gfpvFPou0%9q|bAPYrVo z@gm|~iLT1WyO+&}3f)5G@=2EQOsLY>ciDJ+O`_s`L6*P0tcKcGa6*TM%>;QqIUo5w zP4<4*C~VDR1kyG4(D+(t16sCOnc%e`UiS$b57r_zvvzX^$c#Bd*=Mct6+R(!y|Cml?{(!Ve39&<1>%D-0FCS!fO;f zj`Lie$6`K*E`axDMB?$D&k%eS$merjf#kJ5Ue{v{zAEDT0j$g8AD0k&x)EMEUJ zJZt84mH%Wl-%BrAUsNCy#^JwPQ$A+ykc{u z{gUTHTyI>LTyI>LVJq+4L%BC{j}Pm$+}6TIpRC6S9vQeda{u5q&Z8c4JpS<*#=ZN$ zJ$m!3g;x>7*6_GZ@@gKBFn3awTKxQ2z)-_n);1v;GIpGx%p40F=hkG|)#qc#4 zpYy`vaZPh5k88Z1o%Jeq)~oDcYwO$+c|~2F&trNd44a$r_{Zlho?UYf9YrgP+CoE5Rrw^?(RdQi)Qr-h ztq?k1BX#{@5U*77>LuU99f}uEnOWZh(4C@n9|tmbtFjJ#4)JDajX^-BS4<|fkkAG~ zPaX-b8+Q`NE$3_EP80fz5c|UZvCqyE!R$4iP<|leRcS)%T~LOrP8@sBp6+`G??Tgg zYk+uWSI%9e!S!}OagP$}N$3S2vk(3?ATz68d?S zCf$$071O#8;ha)RBlTRW3H^*T!czMNp(b9KZkR7&>2ezEX;^9;8fKY&8ARuEE~}r& zQ}zI_I!bz<6Udb5RfMV%;JIKE&8gW)eT|eAgN}KYXrwvbzuONQ%{BKM<}_wDG6bB-$ zZE(iF6@)ebnYr0^Ak$O0?6VI2=dAQ@?Mqn8Ryn#~hbq)jqlO!-k*@Li2vBDo z%Jrejpqu8nW>lFPj?Z9cpxaZ&{E^31$q30_ z2z0k=%M*ciX*3ULzea0-j%dUh9FKM1M?90ut%S0+^3zAbNE7`y*xB_bIMXI~!it$Y zeg zROl#$Dgv3jRVD5wpcEai5m1Ik_WJTFl{!YK`X+ z?`n-+0xGW&$79`*2+eGn(;bUYvvYJBA+?raxOt@eE};(z?E*5MavBH0Ro1>7rFfhg z=aT)~i1EdonNE>LSXuqw@P*Ha?8`#BYWp4jnO5gL6XZM_P<5T(;y^cQbPbSc5&wy9 zEm*l-+q;eI-9zXJLVXF1Av6Q1sn-3FM(>3bx*4dY4*d+sw2dzbvCmoOlKtay;hg__ zpTj)md}Qsj>b3Xk9DPgqI7`TXHppdeLM4Dq9j!tAnpL4n;LIp+BgJb(D6CvsQs@If z4^B{{Kvy8sA_f2%%dY^L)EeMv9aG||csBe|tuYayW(|O?gyn;M4)cZ6Ri$CZ=dhe# zX@1$Oti9)4syDnmu5-j_2IZWuNfv`Mvt}+o&f9VX1N6IKOK* zS>iceR_jn2{WMZ%I#Vtjx(%T(Wr`QiX^CN)`y8RB#U3w!ckXKLG;tks1o6D*f_T%2 z+e)Yig;pZeh|;JB&RA|wp&cpoY2rR1Za8rk&bmf-I&tMG-df^nQM^6G9S1VcpL@N6 z(KbJjv3CQI$$3j4)3^8vjpudhj)ZwGRo$n1RhJOY3iuf@UUA^7K)!w?U(@ zba^FkDs;E%cyoZvx`5(#XpUDKc_on7|FT|pd;q@e(N=h^ZzU|79PK0&wm!+LjXYC5 zOd5Pm{1do?I*qL3{rh~JrPO$RGAtjwewuYYxE5H0*I9Y(Rn^;Jog>!ZH7FH&?6RTu z^Nu*BLsh(AFB?yV{(0HZ7_7*N>I_x`J;m3EIrW_dQ-gUCFI|V00Lq~eUIH!hX_Ns} zM56_GTEg^8p6OSFhT(1iGP4`LBH-B}TVcz$L8GL$+yv+vjqV3BUa^&~;7l4^F3*9h zsx?&JYH9ROu8!tZ8nG1t@p%oQt%ME``hn2z zguLE?ZgxTi36&yL6R3^$uQ5l&MLB_u=t75z?SLM5m#=GVypf2JdpLj%zEkQpsn79MCoQ2#OJ^0A%ho z)FyPLx{aV=$|}r?y6ZMZd)kiTJwoUSLTYD&@#FywOjL>;P>PqQdZ7>Q$qYq|JUG*FXstGUI;X1;oA;I zcO{_(ggz#elQhZ_;+$6{j?17vI5T(TcN4S*w^iq|1CVJ$j{$w6IbPS}^DiTH=DhrB z-u(zQEtcN^!n#i*4bvvsib8vJx_uD(xkkOvr@zx^fbvSO+K(W#3h0y${eqCP@~h@} zzlGgDNG%5RhYn?5*n>O>HEGl$^Z?KWt9F@1H9@Eu zU)mGuN~kxG>1Bg~Ob_7uYCP)k8V|<{L#)f!d0lW{&5UcKkj5R_`>{Y~R9Q-B525pf zioO`cyM<5(LeCQ#LuekMj|rV1l>Sm+uOgvlgq|QYlF(v8`w5*RRPg1%UUfpP2|Z6} z457J%HWE5Q$Q=~eD}_0*DXU7v-At${p~nf0AheLsM}&SPlrlJ|g>)cO3!QKdHL0n# zn@pENTM_C*XcnPQ2>ni|@Q}drt%M#SG=k7FLZ1=(iBQVWz)C4X4G481G@8(l_{x*< zei3mW5jsgIeOO?*JfV7ox)6Gm&|*Tn37sR9XLw+*Kb2%P;#w1Wme3SJn+P2s^a~;P zmB4ZVLe~jFy+PD)KTzmJATx%gyc(eFKzHhqCJ&IgPf`%b zyj!Ulka_P%DIhcIl?O6Uk5&dUv-N5~<~@eBfy{Zj9+0`NXar<@xf94(X#;e(PPb%{ zU{?X7gKe+mV%yKpk|vCkgchGM0w`nOu$o>ZIfGKH9n9j4w+Gy$AG!j<*x2 zhek($p4aFUaTkf>Yd>{%G3ox3Gam5DojN!6*Y*?|tP!6Fd2M7Kp0hF6DN)>o8>!>v z05WN)(6O2e3oVRz=6M|6E6%wrgHYpD*zV(M2z~vsUMZia>rjQ}TsB@qSXrb)xzxB! zxt!I$NK@im&Rn{@SMtU`EwMt|>uYS%<>Yd zt&Z@@yz%o1AX8h6R6J8}D&AV1qvwH4eY{NQl70FQ1nqPjLX*7*oUzQi{dteS;x=f@ zY>#*GPo*@to$`|#>dnE%GVk$UPU))m+#657n-sh$^Am99T6`6Gbr78CZ~O$sC2!(D z?=kt{KA81x>+fODc%@P|mibAku%{(Ppmmxjsv@}J*rH1#tOxM(DZGc7z2avs^1+H3 z57ax^jrU>C#qcilu+rrc;-?_Oo_)9$X_)-BB*Z;{*LXNb>V3<`D}H8_pEBhfy+H9^ zr?=*CO}|X3aXaAAf=h@?jh_kO=RYoB9=1c5xEdo4XjJhIne3O$y@u2d>rnN4k3rmC zIB(o?)N?jR$?{JcaXIq{JOh?ZE8()@-m{9zU<<|D3uNk-Ylfd7<2vFR&K~UY_3aQIW7zD|I*&`GhJ1{nRd?_+}61LaeLdjJ}SQ?+_^CS9JjaBu7cjS4y* zb5DXZtLN(8WfdLDGb8m*-5Q!xZ?84`3HdE}b+cPZ?iGZZUeOfXOj87UJ_3kAHlI2s?kUM%MAvwVFBCay-_Z1FxoQPt}^%TN?2m zxrGQ#(RXh9yx@ohI#jI}uhdAjx(ynI^~L8DBTaoSoZFwiqR~m7s+8brs+CGGuR`LZQwZqhe{s_)^e*wrmAC*29&vj(7 zmk*qYR}{$DyOz+cKuLSWf@e71DT+52Xe-SSdRn7M71CU93S|$5fxD6E@tPrhXdqHR)}-N`BiUjFuMHo*;|HjVhs{LkQWY0k!M!swAnrViya z)YE*oXik;03FUY%Bea1I4U5NCR13?jtJ+!UTn2%+0+)d_CupA(Ng<&ZiSUB18(=+HdaB`SXR$u8FUDH{LSvvJ>blh zCZC6uOPjPlR&fUY^mdLFgVry$DSqw3g5TLh25qv67Cf5QEASQup2rcMqYSgoYEE zOGvFT7>#cT;nUzrE-#_Vgz6GfGcTh%n$TK8M+s%1mQB1Wgzh2KpU`YV9})VFkT)f; zQk2jQgjy5o0%UgS@!q`N;GTmeA%+5(Rx*ju3_?o?y+>#lp|1%2LWp_GR9RpJBLkLdy47mB4lT(8o z=l|zwKdjEVMf@kVpA+7jvLD?!cuJhnRR}e`=Qbc?7Char(^53pOPK{9sq`O_G%k4^y zgk}$c8XXN%Bc?%WOf*Q1i3X`&VUQX-4N|?rAeAG7)Q-GeI<-nj*KoB6H6(O5&|V#{ z1JEIjxCXg*t9D?lWL?u-reSC7Cy<8eTZ0HqCbWRiHbQ3z6`mgGHYU`M&(`;5qgKvcZ3o%0xRVR-Ad?wLeCLW&n+I&CCTG+wO1^0Omnpf)g^R0q1RyL zM;&hxkQv8k0-3(Gg3x+G+X$&WEWc`9-f73X@Agu>FA4obNX`sawp}2TT3#UI!Bs$J zEV&lwyiOzRin%uF)+f}IP#Z!kdItTn12|*(F(8xLa}@7o3LOa~(9VU(j+HwTZ#-#) z`J%3X)Eov+-XmU`Mst*gMtn}@Gclik7b9LC9WTuC8cLV%n{FX4OoL}eI}y+1w>G}& zY|tLky=#mm3h8tYgDbAl_dsPdQf;G>Mt_34UZd!&z+M3$H9r%gGSDp=H2`X)(S1P8 zHR=Ln>i1bfFA*9CbhnPjmibyk-T$~xhpIQ{n(M7MpwU5d3xFQeXgSc68gVUf*>int zK)h#kylp^cm*_!4CkXvTh+B4Sc90MCG_Ub07dTUhv_%g0p2drPOwy=(?J(_R)6;xU5r#wE$+%qx6qAJhVE zS-qinnMNC7&(zi~AoG^01B8wcy8Aaf>3tPKYSwIWq`m~VTHEV@yUoU)x`XwB=6-~g zZ5o{e+Nsg^ShqF0-dlL%r{>~7pKFvK$b=RnR0hac=6rBpsDe;a`*nf7)>hQB|HcZB zoh`^-JD`&~-lIUq@{2&fXpY-oSRHYj9KJEwOEQwIOe3_M&}KrrfJ|K;A;fLt1aTLE z&S_uNn#@Iw9;DP#=L9}?Cax!;tXmj+&wVC8>>00006C~xAygZRYE&LvHjSzhYCtHg z{k1@->C<-u<l18g&Dzpiv*7DjE#}GJSOfp|L1Pv zR9_<=JLe9?8z(gPHpa>38in;=9#yz>xlDJ$vS~v{38}Brnf7uXoIz@xT3v18pB1!h zUi(rl(Zu6**055G%?(N|4rJEb!+Z`)qX;xi4fdmNKyfSP`{Lyg&-C-Egl-19UwhvO zsG~+~MYV&@m(82H8)?#Q4&7uMqBlmj1ZT?cK0*%>>Pm<`?Lk~WLW2k?U%F{uMiDoW zP*}NeUzm<~#=kkFF^^D~F82=}SrPu1wyTO+=IuHK_= z_EC&LsM+n3#_>;(hUsNoTbJxuKp3Zq3XoN<5Ud;*a zHO=J(nxs)dplKR$4HgAATXSLFS3s!Ac`ZVXflS-rR(CIP4^q5tK=ZZbeuPEoxGq;h!^GQ2D69u;C(C;X9VB#^&{0DFY#Zyer#!Bm zM!Zd$I}fy-LQM&&)?_p|URXXt=RUN9GfabX&S`LqmGgq~V^6uyq#$%xCQoyMGd>pp zx_pVNUZz&>@J1HWn1d@IqkE;}RYlUR4rFS&KA{$bIuLq}&~QRCfxe)8m@#4jxNkJa z=ajJW<8zeSA7=8q8oDMQe3s<$V|(k#gO3TZ&tDN2=JRg|{XzSu-sSU?M&5kvP1Z>5 zsxzgbX7C278N5N<-*|?X3%bVp3P2`aO+pO`wI$RI$Y}H?G=$K2LSeJvc?dOW@U`hm z;yxg>ovd(g+)o^zqxhOQtd0(oy>AGq9S~*&ISJ05s#@Y%pcIXG1o@LR`~`u}xd{~^ z6qarnR}vbg)T$DyN9b-sS?4Gh-K$hrt{K|ru=T6XuxHk`*37fMgNSG9l4pI#!5IzSRpR~?w8=jZnqON^S%|r?lf32`3-Ap>T1G-^0lODf2OUigswsVye>1`#|Sl7 zhRUl!m-Xrk^57VuMeU>*p*7Ta`kF>+JT>SJ4}F8075@LNkD-Y0KAAyjno!9(^MqlefDGbs)s0%WrCU0->h8JWEJDmp=;YWOzad zEo`<uv>FsuABkywcRNPD4Gzu}WJGYfZe9gL@h8 z^?UMtE2+B={+Tj3M(8IXQy+f-t?~ zliKFGLa4h~Lgb{>xCd}*+&}&~?wZ;U>lNI43d6F=Z#ke{I<+c5`!%XdsB0U%n{Slz zr5B+G5NdRL5*h^bwbq?fDflAlSa3#nCdFGrNUigKuQfJHvlH@n6RVH12)0w(5G?qW;9@tau-i*|052V>6qP|#oPJ5-^ zTOn~TM~G8J@J^!93h^5(Si{2#hOgr(-E@uA+b&0Gja%T0dDC)JAmeEVLeCKzPG~xz z)j%faTZr33=sODinGm;jeh0Q{bw{xGRfsaq`W(6p)N>R0H0o>z_fGC_7g%mVy6p&cA;djp+?rrlQ*VT3uB{>9j4xvdO(Ddk zwtzTwN1}-KD(w6lHmay|MOm%!KCE1?(Pki1GdqB8&>WxlkAO4fTo3OrxmAar0#|Ib zss(O2eC5FT<^9Sk-Nss1p_Ur`LFuaZJs1z7%dr}zLz&}v9NPOxu=h7NG)!yfT749) z#O#At<6lQ@PpwIJ)`;tkOQ3G~fc4Bv%>2FsdHPhp-0eVKqy9ua|MooYQ zYQ%5*Er~bFnBDZP5NeRxb7$;vSv`bM^P~ma>k7`qPQ&?YS6`iIiRQpleVyLiQfCI^9!l184Hql2AKBoq^1F z!1EVwf87x}N?TD+Ev(T#vj==Hus7mydohULimBcrXgJjl-q%*tlM&|Wi;?6Dmvh)Y z_!$(BduZ09_flwV)~US<^sz=fqJIj`lo0pstjmhW1LdhX8ytZZlQ$lvc;?3S%k#Rh z^T&^{Vrt)eCqO)V$PMmO?R^O#(?6~QI-ogj<2Qr*N^{MCOkY)B_WDk9VdtZch-coy z_!N-oGXsFkuGkmxEX4_}%Qd5(I?DE%YVG_D-?7j*t>e7`^t(p{se&>Pjcgw!n8v;Pa6Z}~4YSvv1Ca6M8K9in=ixw&^jJ3)NbNepd=g-mGZA@Cax*CTAE{x`@r3*xhH^3IrEtK95}UaOo*3(%yVAc!uX1GCF;Yph;fM5 zLTkJMWIUJ;WX|mOW4+Uq3qSkyBsdd#rS^EVSO&|PpVhijE9^6Cgn6HJ4RXDyYXegT z+@86;Y=Ebxbaw;gpPf_q>ZVbBAd}y)QJ^_Odm0ToyYP7?tnc$^ zaUZ3j=7hbq6@>C-F-q0Ud_wyO{X!`F+8|yHLQM#DBQ$}~QbM~49Vg_y8`#T5s05+P zgz6G%M(BP*FA|zZ=n$db36*>=NUbTM?u2F%+C=Cqp#tjy-CBfN5b8{*FQKu7-Xye$ z&_{%h5&DBrY<-YgK|*B+)gsh@P)kA`2t7%tAE8$WO(wL6&}Kqk5;{vLOkXk z+r5Rj)`Yqf8bxR>p$&w-AassUVndKdWkO8}bs{vJ&^$uh2z^h;+8Ed?OsE;5mk7N} z=qExYJ_vMM5*k8i1);r!ek7FG6zJ9@^dO-Dgk}@^kkDa5e-g_0FtAsN(4B-j6MC7@ zJA{59lz($z?p+kf+wgwt?2|Yll522Zab`UyCsPMMH zN*zLv5PFr+8baR^O5Gml)*$o{q49)1By@&Q;g15{+X?j~w2;s@gmQiyXw)Uto6sym z+X?+jsN9Y~_aQ>#39Tjc1EJ_Afktsc4GBF$s6U~%2yG+uJ)yLnfxU`^+7cQ>XgZ+} z34Ko}=dQp?BSKFRdV|nrLZ=Aj+8yZLOsF%V@r2$bbd*s1(?ItILhT5>Kxi7FErfn1 zlygsDr6!?PgnAO1OlS+CGlX*Q4Xjin)Q(VJLNkEOnSJZmmY6(Uopt%zp4YyXAfCDM zUk_wvJUoZ{G{g#9{+={=eT~y#EBw8&bI>sBO(V(&YfEa4;w|mp!X3dHcVr*-n`utX zUzTaa*X)H5YOdaS9hg@GDk0S5qb879zvA^5HETB9t(3-aaAtqv-Qdhzz7YA+5uBOx z^IVjDxdE#r#$FGy$7^YWh*Q`0Cf-Ei*ys7+jL*e)2W7Al+-j3^LOj#w6_&8K!|?lu z!rtD%Z+`e1me=bvej*Rf6XI_IJNtuo#<9ko4+Le!&qHvi(*00d{uVhmc~fsPF{R7j zk57YT6UzC>N1VDFWY)*ag8N9@Q+qlLmji9X*t2hx|AVUmjifH(-8EYEfFh(3cBetz zciFAe;MKgadk)I0&rCd|VR~5$pszIdFp$YnH$q%nyav@9p=JegFp%kk%JO&G%6M?* zYK&WsT8}j?Vh%!0&XtDQYp@KQ>07-1!t1Q-5qd&f=BrQcJ<5t%akyNlSx@{FR!(ax zUjdmbjH5utd&T{(L)EpU^`_nC)a9^V?O%LU|{7<;Thp=-%w-UD3 zAKWchz=h>w1$523SlM1!y#E^<*UU+HWk!`VK&Je{5NmK!8qP#flTkYp>44HglD;7wST28EUX`eaYNyO`5p_8iO0bW z(f%>_|4q8Sz;{_hHsM05|F-Z&UK`JeihPjjZx>8`+XHheq!f8X1k96;59TRIDXNJS zFi$&CFg+lps3}sx406)I42G1VmWbhL!rG9&7~-UZ9||eOO(Fx#Fee+B;gC{1DB@sV zaS~ugKuYn5$PQ+tlLO4FkW%y!Ibp3Yq%TG}xxkNxl%k)=4gLj4UyOG1fFA=XMSqbO z`~XN_OvP}UO-zH7VxY(m{zXV%Om_=_e-l!QmqbDEFGKp`1Gf^s>5DCHG4NX5GMta^M$1N-5Ed)2H;CWO0i1Z z27Wc9FUmx32VWLaiZ!Ak__dI}_%5{(_@j_gyek@me-F|Z$5QVA|2?D>>qHaq>mhw{ zb*w4)Qjk)-FPeeh0O^a;vF6~*KuWPuv;hABq%TIq?gT#)Qi@IDF7O{hqUFb0f*%bj z#b(h8{1!-GypVA>`2LVmY!$7+Z-ey3%NcFJ4}z59V{s4o9gyf*8TW#J6%u<|MO*MY zA>n8IKJcX=rPw9z2frHyy{|?d@GjcouekP<8M@2XA#~^(% zJI9mY--49ld+`+bA0T}(H%E8yZ$nCPTs#f_1f(z4=jZ|ceMl)zi=NHvs92!Z`7M_9MTuPbB+Yx2U3cJ^(y%6kiJ-(a}@Y@A*IM+jRv0+ z(iiXL90PtGq!hWV*TCn7^u@-UW5Is_DMevx9QY!TzBrn5JosafQWUi&fG-B=i(0uR zg0BrJ#Z}fM@Wmm0abvF6!QTWaMG0#%_>z$5ce$p39|uvDWA#ujZGY|Y$NGWPq^TF4IM0?A-0K5x{ zw{}|#5qdKu+FRa5;3JTDH>kB3d>u%%x4cWhr$AzNxV02~14y*Dyvx9+LR#WBYdQGa zA$^gScLn$uq!dl9cM#eP(iiD@SAx%gl%lz{3VaJloLTa&2EPJQiaV_};O~O;#XEV| zf?o+KMN8{l@U0+yu|My7;6HiP3 zLHeRmfo5B&o z>;&H)Qi`XnUEsSz`eJ8+-QagYO3@3i_prqCkiOVmU=R3DA*JYT?FHWl(ieLQ>;u0S zQi{ITe(?PuG1DmU8TkE>QoLXt0N)?d7sm@61b+fjiUHOk@B<-H4h233|0ARnFIr!K ze+kkTrwV)t{wGK&UbemhKM2wnKNmO*{xqZ%gRLXrhd}z`mjYjdKLaVnQ0p7;!ytW8 zsNlEY3qwjV-1-juE0De@Qt&AFqL6ro%{m5tB&08j75pCjRghA=YW)Cy6r?YT7d#HW z1f&$BtrOtKK>Fg=f+xW@fRy4j>qqcoA$@Us!BgNHLP{~t`U(7aNX!5W{tSK^q!bgZ z)8HpU`eI4JU%)Sglwy)~2K?)gzF1c9SMbXrF~hNb13wcI=dXfi!Eb|Ul^c+2_&{2WMMd|dE6_#Kc^%(eam|28D*vEX0e_d-fB&$Bi{{m8qWtIzm zIixSn74*RW0V%}_D+2xU=!5?gQi_#U3iwr!I4=~6g0BH7#cC@R{2EA{7Ye0; zzX4K;wN?!LyO6%PsZcujn<1rm&&mM54ifW$LfOFYfs|ss6$k%5q%T@rl>mPyq!b&h z>|h#Sode7rkeCr!Il*)*l?%+1kWy^3azl4Jq%Q`R$^-sINGU$D@`C>u64xN5@_`== zDa8&eKlo1|F;^^A0Q_)BDRx=~!S90f#rRT%z)ygbVz*To{HKr@+e;MzzYbE0Jyuch zdm%B#mM#X~g_L5SbrtyikiN($T^xKiNGU$EN`OBAiMej+lHiL$N^#J-8vG$hwC&QR zz?Xo;T*xX7{tHOVwMv%(Uj`C$A*(F-uONNVzDzmr9Uw6mvdV)$0_ls6Wh#Jw2oiH4 zt0MSsATjqVQwjVaNX&(-Yrua8iEFVk*Mc7kiMfzf8T>Iw%<9Wj0lyFub0Ovz1qg3o}&{J(r7@MR$}pOKBh$02c@QvMF`&p~27Bb$KF4vFiO@=d|_g~WVDHUpm% z(ia2DHwQlu67w0^0(@>rwAJ!=f*%Ztt894}_`Hz57+$_5_*Wn?&ylUb7lFh)r2O6B zM?+$sBU^(n2I-4&<^La!?mw=nvhn};*kpqpH`s5su`L)I3^w+QK}ba2-bCbWWM*VW zW@JWYL_|hJWM*bYWJH97WQ1fyMn+^rWMpJSX540GevpXFjL6K)%=o^(_dn0a`|;l4 z*UojW>pF*|8|a@$_BrCE^a;rQj^{@D7G$3zE~0m0gs9DP6aCA`K1aNaJ_#d4uXt{z z-+}CN#LMZEkvmY&E%dJ=`y6pGy&IW7J-5>DLiRc074$)5efQi({|>Ux5wD~VA^Sbg z?ezV~K1WD*0>*Y{={+ZlSp-eJf2IibYf6RvKsei!_NS7X2dL zMw68O5{(PRqG@p(&EE8vX+B1==vQ$&jU{6{jTObBS&|N#%QIe~$wRRyT(X1aSjMX~ z<0ux%B%L&;GG3$k4Vg(KT{Qo`_;s3G6pIAOPMYg3euJhExr!y-Gz}NON%I_vMP|t^ znk^Tu3KBg&0vB)DCqIqb}Cp0xE7Ntt|(WGa6N|S+NkykQIQoO4FS6Uz!(?c|dZI#(v3HGzlmc zWl9dw%(>)ink-~akQ}DD?2>P2<|5A_B}ZtQvcIL-f?V&CqcmHy|Bt2>xzZ(LG_PhK zqv=HMdL-jCUD@B!ypG)ONG52GWPeZdEs90+C6hE`*+0-6L$T;TlH)YrW&cPsfnrgi zAl@=7gvGNm@YY$Gc-yQjES;5&WwUbd{#kRe za@IV2a8@opG%F8lX656bm$9uyoup)d7 z-WOhpYr?DeJT>9f9!Z+eG;hXTe@LFsPufvw` z&A2tZ9$Uj3usysHw}&@jM|d;765hhs+JWp>!&~v&@NM{i;ca*6- zjFWa@rgSG}NxSh9=`PHc_TZ(`Ud)m1#>=FA_-|=HUnLjCqRXWNrNcA}k!KFl5%MBry_W9BrP2dfBptcH2fiMUhh!Z)NT*e&(on^G_C zlKSy2X%Ks)A$(h!fxXg9d`FsvyQSIqt~3Yxq;v5-={)S0=HmO(JRFeb;|J3DxJSAG zKa>{WpmZUABwd7irHk=nX(0|tm*6MTrMOR8gr7>6;jnZ$ekLu(5$Ov2T)GnXOH1$z z=_))RU5#H#OL0_MhX0k8<5$uOJS1I%KS?WbN?L`#NUL#LT7yQ}TK)or30aqA>&UUl z+9z9&F4+e3$u?q8wux8MP%H|`YRT!ysFu}{vyo9P+f2?uvFI{cJ^oA9Kr;^+;j%_@ zE;7PpP2@aegv*+7fvg3ulC@%iY#UxJYr}=IcDzQ`fs152@LE|X-XQD3rLvuPqpTZ? zWV`StSr0Cg_2P2bZoEa-hsCmfyj3=Ux5@V4?Xp2!CEJUuWkYzkY#%-@8|Hi4i0or! zBjioUd?MRVu0`e(*#UALva^+qk~brxT6PfYWry%N*U=g9k!Q6W2z z2V@uUOW6#L%ED$bDr6EoC=180WHLM?i^Q*G0v?tr@Echa9+9c=TbTxLi_qc92m_Wx z7;#mE8Sjj+;OYn)-W3st_e9vSJi>wZMkL~W5iVR4k%IR}c(5|Uiw{Kju__{n4@QKr zIwAufipa#8h%9_KA{*C6SQJq7}$li>xQF zM8AcAR{3dMAwPq+$Q_u_!uj~~c`I4BR{m+}leBG1Hec@};r&&COP4t_76i<9zs_=7wbkIVD$ zM|nP;kk7}Tzwz7veASMK~>AjK9hY@sxZC{w80Fr{zWXyL=h`C0~x`<;D27 zd<9;Ruf%`kB{(Brg(6`!iiJ{?2xT}+D93Q20;R$llnIq67phPYs&TeZgGym7Mhoju zC9FraumN?#MvM_Qp;4$slTe2aVKXKP_2?2BFj;8C6rl;-LNoe=7W50P7!bB$NNB@! zp&c`X4$KmE;H5$*<_KMQnXnV*3f=fGVHeI5dN5b$#mj}=IA7?){|NoKKp4QQggsaw z4C2+oUR)>);dR13EEIn{X6Y3S+oR z7{@z>30y5q;$6aVEEP`R-NH#M6Q=MUVH(SYQ+Tg%8Y_e|SR&QamY?;m<-j zP74+ItFQ)736=PpP=%+3YW!WO!M}vHcwShCe+%pJg0KPq5jLW9_9m3guEmJibr?B& zGsl+1v1{*=<-fyB%+u-GR5w-hp?|?!?B~ zUHmN1Bj;uIPI3owUS@aWm$P@#j3QUMqK7;S`A!tQC|B&pXhk2I6#eK{4B+L8J(#B$ z#48kgF<&u+S1R`5e8n(cs~Ew>iv3uqIDpqHMsbPaAl{%jgi95N@kYfFEK(fBn-pWX zOfinj6%%-iViJoL$MIIh30$E#i7ORTc)Ma6OBAQ@4#jC)r8t9kD$e3+#W}o7aUM$* z7w~Sy43;UvWL#eg9wms%72$ZFLWXM;k$AsCz)FPzA5cVLl|qFNDl}NF(BVT01J)>v z_^`r^k18zqn8JpSE8=iOVaFd74m_?%l!b|YM8<%^Mg9lb`72W}L+Qbbm0rwL`f-jj zh*`=IUZTvvY-J{1s?5S1Wj0=>%)zWc-mfgjN@WE;pj?Ah%1V4tS%uZgYJ5mpgEh*v_^@&vu2rtbN0l3Jy>cV( z(qqUjNV$ppII;^;*5VV&I^3k(j87`-u~ylDPbnL*PT7P{E1Pk%vIU<}wqm_<8$PRS z!v6$^qQ2 z+=Cs;L3Bp##l)x~zVjqxb&J|ZPDWO@s9|(Rji4uLKUPH@zz3s7u{!D?J`{Bb*F_!X zqaH=xlc*!)$B>^r>L~e1BR_@wbW!8v2IQxUnjkkKKV8%$xe58{qK@O%s1w*4 zbrN5Un!;^S)A&-Vq9f54EkuNg{K(oJt-y<;qcAgCg}KohydqkM|A{tm&h&JMN(Pk`+w%|?C zHoPS|4vVAhcx$u+S41b`J<%>cwj3FI(J5FN?ZN73FFq9Q$C~IMJ`x?mN24=veRL+i z6rF`_(b@QNbPl#h&&BQ0^ROd27hj3a!_Me@d@XuDc1171*P{#Y?dXMk^cVl=PW(>QjT5R}_`RwJCsn=pgK9S(SM}kKs(w778o-}a zd+?-c5Pw$f#VOSg{-WB4zp94ulxhTjQ|-sosss4DY820?4&ooGLwHto82?lq!E>sk zC{d5$EcG~st0z#Zo_<1uNAyd_WzCRcbpvsCHnrIuRdIyRb%`f)A@bxK{1ON7Q~?rw-zy z>JYA1XW(P%Ox&Q(!pGIwSf|dx=hSntQ9TczSLb4rIuEy~^RZbyA74-}z!r4@ZdEVD zR`nu$QN0+qsSEKX^%87TFU6PDMcA%hhTGN4u|r*quc%kx4)scWRb7Ie>Q(rfdNp>b zOYwDe8SYe<;~VM|{tQupF->fLx+-G{%c`|+%L0RL3)!E@?C z{7bzT&#Q;90SwcOqC|5LWtu~%(i}#$<_H=zM=?e-hDOae znluw=)=Xlo<~Uk3C(x=ni8jp?UZk1EIL#@H*PKSX<_soi&SHw@9Pf-9xsTJF$AIPn z&e6IWJjv4C;toCk!l;r|3=QNwvl`}at5_cSfFjjtFxbdvT|B zH@>0m!)|RqANwXUOK1o1J?$Rs*AC+Q+PyfS9l}qv`*5Fj7(dmH;IMW-ex^NuBid2i zuRVxgXb<6++QT@iJ%V3pkK!Ti7=EK2$0OPa{7yTG6WZhWz4io7YER+`?G*l`oyL>e zQ~0y?G)`&H;4j*~VFb^Hf&A_cMs)A7quQJgLu?K&AI=pr#m zC!kxWK#wj8({(D$)@d+Dr^Cy12F%kL@d}+8^K}-yQfI@fba7aqv*SXY1B-Ntc$?0J zD|IP&yUv3pIxpYP9mtBN^ONsHRy17@@6m;DtuBN95#;LAW#UF%7CxcN#;0{Tyt*0L z!|Uc^y>1>ptINd(T^=^-@;T;tk6<#w~+o7WF65hBEO2PBf7=- zhOUsN8(B4UOYkk-QhZxigu8Xia9Fn-KhqWCVciP+Mz<1==}K^1w+g@0t>*JgAm>q6 ziqZNqH0sMSL0^Gx{TlS?D>>4STxI$yauB)7^ws1La$fW`n4w>b7wgwyrhYx<>Nnu! z`i+>U--K7|YjL5z4zJN~#_RO;xJ2K8MfyfQ=S|3+wZ4gbGqN+$H=Be>bvlM{Z6dZcjE*4U0AK}!H4v{ z_=J8p$8SRRocca;?f-mM-%r!^uySxAHmo3 z`}sUw$ThA%fIIc0_=f%+7s!fiP>~~$9lk+BmLpGD4Lb5{WX?AjP-!q?l);Qz zg9UX48yXF97;CVj#o$1zArZX>7y1n;7%+G+Xz*g1!H*$B5Yr7I%rIo&#fD7GG-P3x zAsa6-ro!F0fm^2I6Gz& zDq?C;8B>SRF`H2pQ;+JH2GqnfqAsQhFO6x&#W5{-T}&$$#%#muW7_yCOOSUdrX6pL z>A?GAcHjdso%mo(7gopY#QKWC9;ioaf_*u*d9*EhGU&b83(U?*ED&`;_iaCU1F^BP7%n|%6<|vwt zV;E~3#{}a9I*gO(G#0GTn2 z=kWpK1)8e=`Ji!zrrOAV>MeQ*87D>w`C(+77{kerAmhX+BR`6a6JsR#F=R()6v&Sw z==77xo)dXx>LgqtQeD0J*0&dhxK)PxB43 zXD|lwTVsgkC^APGGjPn9iN}mt^yA1HWX#41V-9|AoJ&86+)W$jk&h$$3S%z$XXN}E z^H5{TN3Cf-#+VlHsu9`wn+niuT1XR%%qONrXf-WHo2iigB4npwT7vPWrD!)5(I+4y z#I%g;MD`x0k)F z27Juah#O2z__(PVH=0`T2~#U>GHt^rO>J0fYR9Kc9av}Dflr${vB}hhTTDB#+0>0M zn08@{sRy^3da>QK8$UAj;a*ceery`RA=4iG#59QeOndQD(-01u_TguyVH`1y;OD0O zxZiXD$4sMm%ybaPO^5J1(_x%29l`HSM{&|LhNn#9__t{SFPJ9rAJcK1F`Yn>`6Py! zr%-I3Mv3_p&N83IaPt|In$M!ld=4Yb=P}BB0i(?`s4|BsnGekp)R@CD#wegZYs}gBusH|Un&;w^=6P6a&Q9-)~*SvuI0@+W8S_W4EC$whgml+wqdv4*YlQ4vx=7_9wBOctva%&X3)Ri(>xfGyB9ac4q==F$JB}l< z6Zm=TB<_zrjz7enz~iwe@yFOHJP|vM;g(YenDK6l1@E=ku*wq0s}CaYo5hanEe?Fjl1N{N>}@PAY_OzYi^YR&7B9YR z@#A(&kRv;gYs3=5PD=)MSu*i;OBU|5WMj7_2L~;4@gvJT{MeFRm3U5#>UDXOhyeE%BcJ-3#l!CFBRgY4C&Z#TtZUssPDbuMtsBu}-Gr&uTJ&1$&}ZF@err7j ztPL2nHe#B!2{WwCc&W7obF8iSZ|gQJw6@{()^=QC?Z6wXJ8-GB6K}M3VUcww-em2@ zW!7DIv$Y3rvG!uIbvNE>?ZXw;e!RmvfUB*0@Gk2hmRk4XgVrIew(i5V)?t34N07ar zb%gvVGOn!q@iFTGthJ8fQ`UpLT8FI5)(C&>o~8z zh+NUu34F;qiEY;7*ls<6+pQ-#rUTiNTc@zcI*o5zPhqe1G`?d!gS)L~@m=dV?6aQ7 z_pBFiz&e8;Si_>(?^z}Iku@CmT4ngLH4=xc0)Apu;OEvT{KBe==HC(`bF5WE{sx&J ztU5etHQ>)yBmQbN<7uk}&sl98`4=*ht#RZTWIWsK zR*bLNR$!NHCBAMe!JW2M_=asYzG*APw`^tDV=KpATLt#p*5LcLN*u6N;Rm*A++(Z3 zLEBm!wynd@Z0m8vwgEr4ZNx8aoA8*e7RPOM_?>Mt?!2fT-?*p&4_(xVUtiS3cYYX| z!{eG!7T1F6xK`A}ZNvDuHcW_X=ST;#i;n9cyO7`e$L%1`L+0wZPRxtz!fWDo;-a{2 zyf$tZE{^NL>*9Jjz7VBe-bZ=pThk3X}muE6fTKBjYaWia7+AIY>q#N zTjS4TYy1U#C4Pp_xdT~8;=@#oka+&li0G~OaO{bf;oI?%*c&h4JMjt?|3VoV74cE{ ze!Pli0J$TJ*Wl539UhA}(2pbg?RX>p8gIr^@fQ3o-iD{+?}*V*&%341<1ZJ&<~_67L7y#Sl+3;CQ|koV2L2w$)-#uj@aZnZDLR{K(X(O!hx z?91>a`*Liv7vszJ71(ZHiQDZZ*kNCVuh>`P4tpuSYA?f1dpW*lufQ(*8hqVei9798 z_=de2yX`gjrhP5$vaiFp?CY_|z5(C1Z^T~vCVaNZ*WQ62+jroQy%RsNci}$!PW;r~jl=d`_?f*2 zN9?`$xqUb8xA)-}_I^BIAHXl|dvMe~i2t?k#e?=C{K~!$57~$DYx@Wuw(rMp><93O zeH6d7AH<{fL->F8!#HL?g2(Jfaoj$J-`U4;!ajlD+b40-ejIIFJVn2t|_Vf6w{Q{n{&){$NFg4@WF2UdJ;dsU_!$0hic-Ai9 zpLPYFvq#}yb`_qtYw&No4lmdZ_>bL)Gj=obrxq|Q!G_|5IFuyVaaMu@!xIuwNN}ln z+KH@62`OYHa;KT#Ax9%CRDzeRMrO+dKUs_19V7(FdSr)_5JF!<2Ko~+F_4gj!Gvr~ zOUS`c!dy&Gn1>k&xp;9x9%d%wqFG(oC%Mupi+=N9~ny?t}PAKFnmLd0> z2}|&Sgr!)OP=pUAEaTN`-%D7F{R!*v!-VxXn6LpqO4x`)37hbfgj)PG zp$-ouY{st=>hVxQ1Ad**h=&uJ@SB8YoJ?rJsf1SiC1D%>k`K93hUM~*(6kw zmm{x7_L+_$T<+M1wT@w|cZ}e(j{Vr+IDpSPMzP6p5VtrE@v+UwyXrWMt&Su3qT?uT zbBtk|V;o<0OklfX5?^y1$1cYSe8X`P-*imjF2^+XI8Nc)j?>udID@+#XYpOfIqY|w z$3e#hzV1iJtm2r#AxD^o_unDW@Ncn^v)~9P4q1R}K{( za%k{thYr7S81P$%5sx{{IPS3EcMcn#aKzy`haLZNIPkn95&w3$@E=DC&Nw_Mc6w3b z^rPGvM8O%t+0G19I5Sb_%tF008)KX~XmrlyJ2xRaK<7MiEOO`K%tfm+4=-}&W4v=d z+MNq9!C8O~=R$Nk7h$4vF(x?+F~zwAQ=LoE>nuW_a~Y;Nmt)9Tj2X@qc(HROW;;vp zQs*kX!nqprouzoCvkVtF%dx;&feW2$aGA3bS2(M%#957%&Ki8cxfZLO>#*9n9v^jX z!1d0JxXHN*pK{h>owE)boSX4EXFWDL8}NB&BQ`mkaEr4UTbwPp)!B-z&TaUjvkkX7 z+i|FnnHd;?hroxAWIXAkan_TszF-Pq^s!}py1*zX*` z51o5(&^d@7IrrjT=MaAE+=oNXVf@57g8Q8N@l)pk9CnW4XU>E8mGcl^_YgA1oQHAJ zc?5rO9>rgrV|c+ijx){)6eUigD)Bh#5>KEZ@g&A1PN6Yz8cm6((42T0Es1B)ns^p% ziRbX5#Pb-RcmbV>Gnkkdre!=NO3;-Uj>(BKOi7Hy)IUFTR!N$F~!M_)TI6k0fT`(Zoy~Pt3w!60`YQ)5tuTn1kmM=i)z!^Kd3H z7iCF#7?G5ZkxBDWp0ogkqyn6sv=9|Zi%^-g7^9L3F*<1ps*;wXI;jX_la`?+X*pVx ziZL!}1tur01}{sh#JNdTI4`Lh zuSlxF1xai9oL3>&SJFE2)yP$rw4Qto@~$RrAYY5zeI#upUx&=(Nt?*mBRlq_TJjCZ zbAzNh@{P#3NZL%k3AtvI>d7}FbAD0-`4;3HB{kx$NlmySsTpreYQfT^R*tzF+3_ZA z!`7rWd@-pVUrp-3&ZHe2^BOY4Cw1cMNnJEMk*g+YCw`pNjU!3BaDP${ev#CR2ab zdD3+nb6jU|zUwUh$8`=DxX$BMt_xV;n!&4GVLHyHi+@5dy2cfbi(E3i&J~G;EeAueE(4aij9BS1R=aF`hKG=Iym5m#^kkFl)MhhlGpQ@??Il% zByYfHk~d;~@+N#Xxt3QOkasw_4x5uV;|t04*pl3UTaz2HHMt32Np8ljK$V!yljvps?;85}o98T`U&yu_Fi{zbnAi104zeMhFl6T>;!>CIcq1UJECma4} zOv(WoBXX6cjG{f|ASR?7LPyGB%uP9hSEU@qMJZ!=ZOS+`Va>rq`+m2?p z18wd^yvXg+GwP5P*_}eRBkzXWLv|pe(d{KCB5SnUPj(@zj5|n9LB^^(MD`$alskj$ zMdm1XCfSeNg}JlHL1cI5&L)SDmB^h#z8D$j?z!YS$T)Y;BVU57Q0`p3+MS2jx%08Y zJs%%*FTiSd0Y^TBJpFJl#E0FBaIJeWKH@IKb?znjsCy}{cNgJf?q#^ay&NBR7vo0v z3Vg!75;wU^@JaV7taY!(r`)Aj=Ptvi-Q~F1U4hTI*I>Q75}$QfVS~FGpL5q>qkAnr z?_P&Z?)A9Ey#bru8}SAACTwxn;#PMZwz@ati|%^d=5D~3+>O}gZo-${&Did4!8hEk z{M6mZeTsV9@WUu0GC-)*(tGk1|8`)2~caZy#{iM5-+>czv?k@5G^324& zle`DnXS%z|gUHqG-bLPvT;uK@@(?n5-M!>}$Uf7(n>>tM_3l3M2y&0(?kDd@<^lHr z`2aFYyZ7K%?m?PE$ny>NUYv3d(foppeD^-`Z^+1Z50n2uW&rmH{^j0}f4dLhKkiXf zcn+e{a|n%|!)WpxL9^#5#(Kuk;u*&T&jg>%fsAm^Bzio@G1YT|-ixfWo|72xOkvP7 zjcJ}!nCCgoF;^h-u;&b3={ZX?A6aKT=g3zf>#XNI`D$dH^;{rdgUlzM87%dL8JImh z{P7x5nJ3)9jE($u(jz0^i;Q_sB>6t%_uU?Wd_Qs(cogJnWXyY_$d4c++@m6IK*qC2 zLw*t&y&fHTGcr~^2J&;r$n+S=&B!?Pn8`09S$REi6QtDnWG%8f zq%Odi)B-f7E<{u6A~dHi#@N(Cw4^TKcq?*mlDd@aMn+3&5jpjLE=*lUE=*mH#i_-- zx+--A`A+2bT&XMZuGA7NO`JY}w^BD_Z)!dE zr8e+U?;&@Wsg30Kk+YWCME(GIf|}ZlAEvh8U}`IVl)4RvQrqy0)OH+8?cn%h$k|NY zfu~bDX?{np+|(}eAIRBE-AVovxl2mzCjW(;-_%{?zmfBs+C%;aIlrmBWRbU*9Om6k z79;yHZyzeW{WMBsz4H!Ww0952cn9f?$T{`yC7Y46=^Y|lk#*3!j~s`rgWh4X9l100 zj*yd(J5%p|O!gkY6z?edy$3Pfdk8bUhdJ_MWEJxs!8zWenB^VAOT6Ql?VZ3&y_1;Z zJ&u=oPvBhdN&J_03g>yJ@!#H4nCm@_mwV4(p7$(X;XQ}>-t%~+_X5uM&ftH%VKK}$ zUI||14aWkn46pG<;v%nr*Lf9K=#9eby((Pd)!+?Y9WM16u*hq~o4jUR=C$C>UK^Hp z;{)CxR(V7Cur~wOdNXl@Hwz#4X5&V0 z4nE0OVb-VOL)??yc6-GpCxYw>Gu9Uk^>#&5j!c*NU) z-+CKy%-e*=yv_KXw*@D>t@yon8%}!L@JDYup73_yPu?AP(%XqYd%JMTyAyx$cH^{n z7yjz)!Smi;yx`r9|9Jai_>C~~TS#9&%6tPD;oF0ezCo1x_M+e$!r8uksPGM=(l>$@ z-+r|E4xrsPiV41h=q4#}wZLx_y)A@g2uh-wE{kPNL5@ zg=xNN4EauBy6-e*_|D)w-&y>(?;Pg)&f|RF1^kb11{e6kjEsLDfBH>S;0wpAeKK6= zi^OYu0xt3?@LFFKUhh-k4L%Jn_37|Np8;?38S!SH8E^4f@K&D$pQ zaf`1Qn|&+r1>Z_+@s;3m^hU-)+70be(M>Dz^)z8*a2>&5SV zyYUBKA0GGhiKZ!d3an$=yV66WnTKrRJ^-tqP{!&hUhEez)33le{wU1ytMD?v z2Iu;9c%|Qf^ZiErkKc?7{1&|0Z^MQDIK0Mh$HjgJ7WxzMdcO;A@TcHXzXxyfdvTfH zZ{j%~@*K|}#9RC!EcR#MZT?JL>CeK|{%kDs=ioj5xmfO>hxht(@qT|ER{Hbt0snlg z@-M&#{RQ~2e<7~*FT%(Di*cjB5TEfc!FvBvZ1NZJooqoyzJD3{1!Q&bFUNL&F~06! zfjj*x@eO|ocKcW1F8^wL%U_B;{xW>qUyi;03Vg@E26y`_@m+rv_W7%EkG}>#^smKF z{OfR^e?1QSH{fUfjX2`pgrECsalgL~zwmFy1O9sa(%*oi{zg3HZ^Ezr&G?PK1;_lY zc+9^IfAF{Aaeq7h=jLHYbf5w^2i9PHpc0=ARAEz~8n*;$ur06_UkP>Z_)b@*0bGrk+B$31}t+#6`bj{{9+o--g8mXdhmxpFa8+VjVA(q_*0-CPX-2XDzFEC z2@K+NU@!g}7{XJ5efV2o7=I6p;F-XF{3CDx{|t=cUx9=8Pv8*F1P-GRJc6@>M=>fm zhU(xrnu8M<8=OQ-@Hkq7ConE}5)*<`=m<_@a_|&}f~PS(c!qZ-0~xo$vv^hT98Cc- zhJ)wH3z2y{c!9hK8OgyJ@?vBp2g72yV@1YuP=YrH!*O{~Mt=)3CWDb!5)`m3sK9%J zQCJaF;R8VpRt0rf9W>xWK_jjYn)wWmA)_T|!OcM%HU;BwOVEzZK?lANOvIL;3%3SS zur=tx7lU5h7WCsw!63E;L-=wq13QD6xHFiAZv?aPyha371}sc##Ou?Va7kJ-A9VvVkEONX%CuIj zNZUq#A2Nrewc(R#?O2=EflsCFz`C?fd^)WQUr5`DEot4jHEkERruE>9X}!2DZ8yG@ z)`x9r{rGa)0Jf*?!R={-*papuUr8In9claU)wE&kOdG-8wEg&Q+5vn&Z4?L64&r#) zA^a}wF#eTxgzx!0@+>j!DER_%{icnPXOO*LXq+5|JYNb;V0dVfMvAP4q2uHT{9hyc}=oG3$r_mldgUO+@m=ZdN?$CMkgf3ueXa>EZFbn4^#GkPi%?X9$ zB_SDRhaxTfKM;`>EhJ!WNP(A!qVS543iCr6j=2)q%Y}4!Rmgx>hm5!|WX5Yk7F-mv z;kBVSTpY6Fbs+~9h7$4mkPDZDQt-x*2a7^pyeZ_zn?pe?4ux<<*RSo1s@;xFTE4<)4TA>^qp9c-i=qM@4|)YJ$OxeFD^>ojn}64VPSedE=eE2rRjUHD18ub zO5cmi(ueTo^nG|+`Y^6cAHmzx_hU)=0lXu96wA{O;=SpIup<31-j{v^*Q6iC`_sqp zf%I{FI(>roXEQPq(kIFF$o?VyI5wo8z~|FXVpIAQwxv&Fd-^Gk+>V^V^wZdreg@x5 zKa2a)&*2y8=kZ|r1&;g*ncLH6$X_FKdwQ6a|9&1hFXBI)G#HzqLwkk+6EcjLnqfu;KA$rkd0vrWBVUZ%b7jPl=OE`U!%n^g zxgIkdSdfv3S7*3zVMYpGo8iHGGrV|Th9B?G2;xvi2tUclz9i+>4g zhwq1Vzz@PY;fG;e@T0J9_;FYdYzD=lPr{Dyk@%DF(YSN?7}io3%vKjZ4)+TmkEe%E#52Mt4i}C*OrT9Sja(pm+B|a3s8ea%s%lwO& zpYHI_@#XLh`1|lp^k2c8GlXv@U&XA$@U7(Qm~|Mw4c`pkLC=qvqfGcN{4jhEeigot z{=YCsobUs9)WoTBYwwoA|B8)7xM^4 zJR+xIe%>R}$qO)Nh7nK6i!jHCh-c&_m`6F{1$i0f7!mQ3yaKbAi1>@V3bU_>cuih| zIZ{NtC9lJr6-2xzug7c^5quGsvJrElcO-tc_XWmeVE5RvO2CCSp)Zp48#2*BN$D@JhG7vJUCLrLn7Vy)5vH% zG}4QQNBWqVggK5!*1}68>(H|d^B6_e#a~3$r)M+f$Qv0)-hp{7C9)BD7v{B;$R^}H zm^B~S3?GbafsaPE!p9@q;0uv$nR5}dZ;xz;e~9cr&sEINU}Puqb`nd^b3Py0m;5{CSzcr!`47x%Bas8h&oR&SA_tNG z#JoZhIfVQQ^G;UeQ1aiHcOD(X$X3jD;z%OfFx!b^B+lj-O;2{r(cdwKoD*~OcZ?$! z!0bOAxqo$4wjy zaZ|@)+|02QH+L+@EgUOxOUG*5%CQ!=c6^TG9UE|4$0q!VV>52&*oxabw&4zr9k`=o z7w+uXgS$BP;jWGYxSQh;?&CPjZR?BKq8vxbiI`XU9LLE6Fh@GaN%A1fa|FjJ@)XQ- z1jiY?#PJP1OEIq-IL_m3jtlf`$D9K=E|GU)_T-Ms_>|)c{>gC_|LnNV=snC4%5f7v zb=<2X61og*!X*6z3R$XDH@f24^wyD9o#=&JyHg%qv39Qsl9iXY|e>JkwbgZ*m6H{{`mQ>a0NC zia9rPhLE>mo`X9plaF9t!*Nz6pTwNQIIELSVa{QkHOOZ$=P=GN@;8`s7-t0eJmwt6 z=^$UgoWnRZ@+Hh3!0E<6IHT#girE7=z4*G*hi^D*;hWAn_(x}5e9KuM-*(2~JI+S< zCub9U*VzpJ>}-MWIa}dhoNe&0&bIhBXFL46vje{G?1UdUyWoe;ZupV22Y&2K!0FE3 z_=&SGe(Frbe>ex=XU;+RxpN49;T($pbPmHWok{qWb0q%DIU4`%9D`pw$Kf~5@%XKC zB7WzbjNdz_U`3mTP1+1>)@EUgHV0d^c{o6uk8RpQtZIv~U0aGXY0GhDZ6(g4t;Sik zwK$vhInJ(az&W%{IH$H5=hC*~+}bvrN85q(YP)bgZ4b_`?ZXAM1Gu1e2p7^0<3Q~w zF038LA899X5$zN%s-3~bv~O^6?L01_UBD%^OSqJF8JE_s;2`ZPE~8z?Wwo2QoOTNb zYj<#Y?JlmM-NO~NUvY@`JFcWXz?HQ}xQdpJt7=biHSHO$uD!sa+DlwR`wQ39UgI$B zEe_Y-;|R@Ef^$*Lf*o1_c4{itv`pBgWx;MO8;;U);Akxu_Go#qSIdWEv;x?t6~eJv zVO&cqf@^EVa2>4#{#Yx8>uN!`o>msu*Me~atpbkILU2Q^GH#?*#f`PwtS|op6HI1^3dr;oe#g+(%2meYM`WpVk*AYKgeN zHUJOM2H}C)5Ijg5iU(`M@DMEtf2xhdL$%TPGi?kWrj5hHwedJfn}|nflkrGx3Ld3R z!=tqsI9Z#8$7pl#SZy92r_IMH+Cn^DTZ|`YOYuZ)Ii94g#FMqvI8|GVr)Zz!soDlS zP1}U0Yn$;5Z7ZIsZNsy)9eB333(wK^;JMm9JWo4-S8IpxM(r@(q8-J@wBz_|?PLk| za+tlGc8Yuk^Bhe(gU@N-;Pcvf{H=BYU(_z)*V<)lab3Yy*HzrYbse{K-Ndb2w{UCM z9o)usmu1Fd9%a`(@+X)_+4U=K@A@5ga6P~sU5^;;gn3L|={Ujl6!&sH!+l&Ya9`I; z+|TtFGZQh7o$EDu0Orwgy~Uro-qSM-^XRxtC0Wld3!dT%z*Ai+p61Ggr@OM?8Ln)2 zrYlEDp5tTIp(_`j6~YT$h4Bhk5xmk>jL}t?_3SD^UV}NS zca_2$TtRq~t1SM)6^u8#D&Q@y5WLk@8Gq@jinqI}`9DQ6Z@Eunx{FAE<{dX}(A6HxQJ=bP?Z zc%%Cc-sHZEzi{8fo87B8K{>E)8#n$My;H&NceAlhwU)-5W@$3e3KI6`U)7{zd6L${$ z)SZjbKQQMi?mXn@m~$0(KJuTK^AmRg^52+!l)Dgq<1UQfx{J{N4s(9uE{4rfCFrqW z&OM?^;Y?9MICE54`m);9sLV;Rn%O@ZZth@cZZ< zT(9EkK{k03$Y#vXsi!yDiuq~v^u;z$B33;Eu-!8V7xWClg*-!Xpl28^?@7WHJtJ{7 z&uAR#8G~J(aoFn_&oW~$=N_JkxRz%!uIrgXe?83kgJ&9U>Y0Jtd1m4Eo;kRKXC8Ap zVvYr#`M9@dA@1i{On)NgXT-A<5AiI=!#ykU2+wLf*|Qd>dOpYVJsX(60P}O<*@PE) zHsfWUt$4X-8(!hrfj4+|;fc(Z38m)e5aOM4FBZJtATyXP?8$JM+~aj5qhc6eW4&HEC^djG<;y{~a2?_1o& z`yRLQno6^cc`dkuHvo6?sm^wILOkG?k zramql6Nih(G{QkKO>l5bGaM4r0#}V`g~Mao;K-P^*csCfYcUtmV&>yx zF$?k6F^lopn5Fnq%yN7=W+nbUW;M6=3TEq#Sxdf(+3Uu9j-SPBz^`LA;kPlHagc8- zF5}yV%ldZUa=u+S*tZ9JefwBK4Cd$EcYqv=`Kk9EBG<;OH{W4g*LM^*@Eyl-zLU72 z?-Xw2JA)hhzQIj==W$ct1>DDXi6!*K>;Zh2$%&Y))OUqE0JE+7u962~_6)x3P1f-jXC~NHL=Ap`VJYHFo`P0mk`EIo}g(mZ@YO4xO;XB22H_o!A&`M=@R=z)6 z`8sQI*40YhY)OG@l#|^A`-NVhSwKF{p-VLV$pCI$92{S??BTVKB5(n*Ip<0Y4AChF=Bt z3mRaGEX=(#t-_;Cvp>pSdbDZoM>$K+HN_T9H>a7-;rXVY@dndp#ghUznYQCCrdRl& zsdgjVQ?-&wfhSF!@deWpeAU#T)K5WIO$|%^j2oBw4L2?I z3vOTPKJHlRVbFEc;8Gp2QhGl&mp&L&(cH64QebuS+%lzX)y-*T9%QO+UQi|?G}3G@ zn-u6aFTq~(LtMukRW2#8p?NNDVa^?#ZtiG)h&!48#skeuDkKFiGoJ`a3fyC!P&p~^ zy!l8KZk2g`)pWDn5??bZFq5St&TAW}$~HyP5NqrE$#4LWeD>_=sh_@K-S{LXTSPzE+{f zEaiM{aCu)_T+!DK*YtJ3k-ozr$1F}?C$h_T%X-WbTMBfcvkCoSiEeM3)L zzV#*Ii@pK)XWt-v-!}w5^bHL?Wyu|z6nNU=id|Xgw54I}u+X!Xv9YZ}uUKx!rkh__ zey*Kveq$L`Cn?Zs{RszHZ67BE23kL^*DEN{TCZOBpdf4i`VE81SufU43hZos6_*s) z-P*ljQec8Ltzo)3!5Y&jDR880NS-HMD8E`G9qJ^Q6E# z*4b^+%@3{L#iyGeS(~;^H~(p^_er|>z17|>DbO4cjspTd!D_&8oI5~ipKi_@;Ax)} zSRi03E*+4wLsDSbfc7{z;5%F)z}_(_uu4ERTr;324iA`sy#WO~B?ZO=RK&i3#<)(v zB-|k21a1^y?VJ?YB%ma29?$@{3h0C50~X+}0a?2w1@;Vx#0dcnaPNRVcx*su*L3sb zfO6fE0%rzv#is+tc25dC6R@s(x;Z^yXHV`?KuSVV;NJn;6VlBlTbW+z<{Y+)z0=M4 zY`^tR3M^uq)F<6s-?pW1y1A(>IWgVb+!omXagXM@i`M zHtJkP+o)-bwpCX!+E!h~Xj^sNm=e|7s_PkTt8Qepqk4qVj_NT+JF2J0)ClRQo@KP7 zdQOafJLYNDj_SoRNr3~^dSfdn1Jwp&gK^WbtxN;e=3}>o3{+c=jk69?;~5>Ke!}P= zwe#2r(;&4gql47$jDD(48rwVMGj-Y6q`+b7PCQ(Fj+4|^W0OLY)W5lGlKO_3N$NY6 zkfbW(wuOvPZR6Ok)Q|8ewIm*+ju0L-?r{Ez>iTgN`2OaN6V>hG z;;a+Zo#V>Vvzz&o)cwqyq#k7EB=yL+MwKS1$Cx=uJ;BUL>eu7y({q}clht#~oUDG! z%*pC^;|5iltbWhT$?6ZxoUC3Omq^bIW~QpQnVG8o#LQInmvOTyrK-O%GgZCM%vAN^ zxM}n}X66+24`xnLpEGlc`fA+B&?)NQ%$%aWVdfO|-MG>8C@D#SQ&nq91-^6ImJ*CJ zr;H4ps%A~u7BW@Mo)TxBs^&}?O;2uSPE+$UbDCO^nbXvdm^n=?%FJnMab`|aOEPns zTAG>D)pE?7u9j!!bhQdIr>oVNIb989=5)0tGpDQJ%$%V*nK?ssF>{6*lQJfBh8oMv z8ES22&QL#28Ane&X3kU_GIOTdn3*%xrYYk?XR6JaIa6)P%$aKIl!^4jGjo>Oo|&`M zj?A2;c21cbI!o=!%vox8X3kQ3rc9xy7c*z8{g^ph?a$2F>fn@>m1nD;GIO^288c_A z!&8>hGlH3O)f8sVRVOfWu9})MEp)Crm6>zZ>CBv~&P&unIP-nz|z8 zLFF`c6*JS+HOx#?*QNYQ&w6IgSHEE9e02*m=c`|)%nF^aZfE9vbtg0DtGiR?(6g7B z3)F+mT%dl%%mwO^lzE{G)MLzCpq^mn0`=>Z`ShG-=0f!xGZ(7gGIODNF=b)sLiIal zE>yo~=0f#{l*RO1W9B0DM`kWkZ!>d|`g6*GLW|U2n7K&(jhTzphm0;(A2YgG{e#iP z>T^aHtAC2oS1J4G`J3geR8z)RP*$oF#s}j`<9+m`j^7rtQk^=I|HlwT5 zwDBdXuTmE>X$-K;7Tg0XqR($LMS zb;7og&8lreoOO$uc|rwci<*_uEo$}&%R{%QIT_ue=4N!8TAa~sYDq@7sbwat4Be)d zV|1HZp3&`UB}TWaRT$l_R-3Robh{eL=ytUxqkGk!jP6x?F}hdnH{ovKy=s3(_o@RK zJ)kaQ^nkj8(F5w538s$@sOuO#psp9A8z&T_=Zgs(!PUQ+d0c(N%;TyuacwByh&XXu z$Z^#=G0u8IwNI>|oKQ1Q493|feja*4&B^EqH8-PQtK}xP2tBPvG3T`EVa{nac4CR@ zr`6ibIjw%ooO5bVM$f6e7(J)ZN8y`kP<^oIJ=#Cg?js6R7$L;XdJ{x-2o(HrXhiAjMs)yK@dsXk%mP4!P^ z-c(;P^QQVYGjFPIn0Zru$IM%*eGHg*pV5Z)!HhPvf68b>`|#Awp$+XL7;R`D#b_h@SVkM! zQy6VzpOCt%a3lL9MjP2v8EtHz&S+!%Ohy~q(->`RU%+T%`yxi0*q1Td#J+;jCiXR{ z(N&w+*D>0}zMj#h_AeN1YTv?WQ~S=;t)WfryBTe2-^*w-`$0yV*}r16nf+Mmw$Ntw z6O1;qf6Zuf`&mYt+s`rD+sVfwX(lsw3S_%5@&5~ zw@%^cY`0C}=xonAWmjlxd-f?Do$Wap9TR9(X2B9z2U}n-oPbO4BRqhYU@dG_vOr!a z0lZSDWQN=j2qmFBRD*DEfe#u%OXv!{VK5}Y7?=bzVKICTTj2;?fU9s9o&sM$rSK=> z6kfbl%7Yu~Lu=>*!(j=WgiG)C-;&>Y%9cSwX}m;|%neyspy5$y)p0SDm{ z+<>3q5xju6V6!SpcE}G!p$t@kXlMi-pf?PLkuU*fztQ<_fMf6-{0!-!1aLo~ z2n0h_hy)LO43D^-Pv99erq8z$-A>6eSbn zf(J)xZU{p%Ju# z4$u?&!)GuCCc{iv0Dp0t*3oW-J#ZNGb#RLI0$hbV@H_kge}l!YC^;Yyf}je7fd}eC zOK1oBa=Ov>g->B5q`(xI4GUofd=6V+7kmY$;2PY8hwuX4LO>=($p-pz^U)T8(on(Q zSDn@gF;EYhL0jkoyLJ#Np=mUdc1WbVGFdtUHdiWCd!cjN_m*586gU9d^lLy#8=LrDmRDi8)P@IgIj0ti~3=qmzcpfc0| zz2D()J+vP~BWMjBp$8%$Xn&qaI|Js!a##=BU>}@<8=zn2XMg*U_Bp)q*VbId z@gXa1UeM?2$A+ThvQQNwKIr#+kn554<4RM18}A?M>~DL~4uat@4pLz*EQhtQ4ferF zI0skY7W@iXI58;#K@b8pAR6jHQ)ml4U=Sq1SeOQ1zz#SFC*eF?fm`qkJc2*rJ=pTF zZ9sXb29e-_y3iO}LnlapfiN7#!Bm(FOJFr@gl(`F^!0ay_B34b*Ejs_&$JKy`8n+y z(ATwo8Cza{OrQXi0KKm~tv+6j)(Jjn0i8kr8SYIx5JtfSm;no5C2WS>a2QU(MYsk( z!2@^(Zy+EaKP#YLUq0F*5CkDm1N8n6(fob2Xd6R3=(n*eZ9f7dkx#t;u(pf^l}g|G@X!45bGC*T}>54YeqIL5y2 zDed22DZn-b1)vy|gR0<#de9u&Lr)k8BVYo|ghj9hzJQ%@5Kh8*xC(dR5xju65KxeH z3i+WZl!eL=25zVY`g+hG!-nLJkN^W<7>t3*FdG)bYS;uj-~gO}^Kb=j!LRTX{sMC$ z?kD7d!cYn-Kq%2E#$_7sm>U2-ev1ik(J18Il*^H_hI>ThTJ zTm3o~`SU7&yODM~?DyBl{H;Fstp9kZw`cwR-}&2&F@4^R4=$tE8QlFx|AT+j8S^sQ zXN*9laJm1?k^dKSGVZhIAJ_BoKkCNR z`p-ve+U}4DBVjzuffcYGz65>VUfLsY8ZN>$_z9lDYp@hC?sqoYk3hdnY1)bq3Qo{( zTMTUzf7aJaTXL@t>cM2ae}unp!Utpe<@M#xq;CPNfUThS>HG72hez&CIm9)rHD zH?*0Gu^)sG(3clV>w?x*bu1@;4qIUl=>3OjPr(I$tzYkL z@_l#?@BIDt65I|b2>RtJ(CTw*(7K@xG=a9z4H7}0HS41dBqu$43(d;Re*NG<^tpgK6f2lb&D=*#}Z-|EY}$#&6=T3_~U z@(^+=%!Wm<3ci4ya0tGJZ{Y{H4fo*>cny|PJl|#+S!wfueqH)?6eE{~$`B6GP#2m& z8|VxPFc6Yp9886|pf5w`Hx1wIG73xz*HwdSxLJAzJc%INB9N) zfY)Ft%j;Q?7e0d0P!Vc?26dn@w1G~L00UqcjD;Dn09L?y_!9QQQ8)va;5yuehwvQU zfVCXg3;Cc31VISY02jnU1855I&>4EcKo|~VAr)rB5?BkHVHX^NQ*a4x!V`E0YA~-4 zKmjNQWuY>Jfg5T;Lud)@p*!@0p)eXI!yH%+8{i0;T}AK7w`^j6?uLI`JpJ3 zg~|{HZm0!u&;r^)H|PhS!YG&k(_ua=htFXv?13Y28ZN>$_z51sb9e*R5Pl9J7^*@9 z==;J9>Qgs^c<2m+U<9PVRG16P;B(jtd*Cpff{S3|XDSQignYoq5tM86--UGe3rv+b z7D6s40%f5xghMpcfkw~?dci;#4r5^oEP=JK8Fs^0a2bAq$M7e-16yU*Gn9bxP#xT$ z?;~r`Hi34~4F-bVKZ2;47=el zoQ8{V1Ac?&pufqI6$(OW2!R@)fe%_j2j~HVU^L8yHLw|W!(sRaF2fyo1b>3PI{Qud z2!fz8ghMpcfkx08Iza*qh7m9mmc!?;752hWI0tv&cX$eagZ`MALpc^eZYTyJP!seq z9Tz#)UpMf#&Hb%@%x&+_-TiGpfBUJw9p!H)_*;FM)5&SD%HOx~gR$-8{qVKF@7oW? ze(>kp{`NQ8C;t43R;j^u3mLaPJ30Rcby0E|2=(`QX!ZM0&tEsCjrZry{C3wGLB9Dx{?(t;Kj{05Y^lj(1;zCJ z18or~3spgb+Rzw2f$q>BhC>QWhXt?-^xM3fRzIiL&*$~?X8l|`<2?F4=bg_%KcD>Y z{IV3+TLBbP5x#eahX0G@$>&cc@^DxZeWmi~4~9M(l*j2$W%GROPisTlkj#vJ9@CC-$;P~U4Z4w3#bo-uf&PxBN?+f&RFZzZ ziE#`3X+YdMe;O9Imt^`|j$7yapc8MCqS>Eb4 zJs9PG)7mzJMeX#^%Jk_7tCC?*er>{fu zI)CbvyxpI=Bp>#tZpq*IQ;+1k{*;jX+@E?UTY2d9rSwhaEqIX00a=;W9FG$uKa%~c;Amt4`G#wY9V1M7Vg zll31!Jxxy5-}BYel;nQ?G%Y#VpJpV__orFO+x=-y@;Cl8FZr%N%})+sqt}Qsnb=N$7byqn!I-7~zDFYIeX}O-p-+E& z=S)87PxB^U7Aa;zPUTxA4KK1S!HaF@@Dke(czRwtZ;Q;xn;p;0n-|Z@dlt{m`v&u^ zN|SObbMxBqyu8_QTHd^RPoYA1Q`xroi?Y^H`hJD$<{v+3%3=07s_gF zv55QU|M$h&{5{`=*&^!d-1`&@r${=+ice{g+lYVx1PZONVZ?=Kh2Sg#K*_s`pD zPWsQ6`*_5E9!vTU%ha#$?AU*QIeneA9RKgf^vkX8|DVTRO#auH{93vW)nHLwDq~bDMAiOV zqxwcv1v%{KGp#0l>-yGTxkdHpmNC{xRI6_r)nZYV3J4IFJ145^{_2IOUgR~#g3S6d zTUIuzdZOANZ&V{hb#j1FZ4y;5LEUMRajq1Iq zE;lf$^7?^K+04gF^lNA?s)Mzu#&trCptCs9@JV^rBxeVN%3jVeM^zYZ{}E}}X-*r-xPwUAw- zejm1pYS3__x+$u-kw&H3^<@Sp8&x$?S;iSv2T|Q*x2i8?vZ!`VGOFF8nlZ(weil{2 zbfe0dNnfUq58>#S(?nHlu2FRr)n92wHCI%Z78=!8qS~~?sP2nu{Bonpn^|9GhgC-9 z5|v}EQFRwpzV${mQ&j02jcUKBPHi@-UqrR?OQXt_MPFvp4x@63s>N=j>Mp9P`;2O~ zsInY1szai>_mxpS6xE@lMpY=QzRdY2jLIvj0jG?rm#FHWHLAIyDtq3jz7mz`qES5( z)%EX;s$e#KnLDl+RkWz4T{EiQqUv$esOE{vd)ufEi>e48c+ww-2cmj;Zc*Oz(W zH=}ZkY6BmO(r5M%)wst-HB(gWo*LBwQAIpAs>hg zEq`xR%S1KI%y})BI4i1V0Y>#sRF&;U70h>yb5ze_R4qhxH=9vS6xD&8Mzvd1^Y~bo zzRaIRm6+eCvh!`sJd-bERGO%Q`0$swx1xGq)Ts3DyXN^(38Ok8s%@o>>Q7NkDQi@v z_)c1$t&}&aMxu%iF{+WGDqO{=z7W-mYDV?FsLt0gssO&Vljq0bMpZ>rV;n}+MpSM2 zV48kA^>0(it7?oR8OY0d`Pf-nxGpaOEHEC>A z`nNCgoV%G(>EC+D^Np59RXm?w-Dz!9jYYMutx@UUkjLv3?Tt$R20GqV>10$ti>gjn zqbitRA1l?vsA`GoZGuq^71fnKMzu~}M?;PRj{8Xdb zDXJVZj7t9o4qnHYWmGu|>DAG>M&%UM;`v6^MN~r;8PzmVHCk#^`u8XB?!^kD(!bAu zv)k21l_OBEZml({NKx%sZ&ckxHEWYm%@ozBD7(1T`rno3CuhA;y%W`8e^rIQR?RC} z8;r4TqWb+iqgo@XL#9k(Dc_5#oz11*2ldBj zh^U_UEB!A@@`);!F{c0JL|zY%HmV~09WdTK>ts}oL{)dNQB4q4-_1sKL{w$@z@dH( ze~RjszX~a?FJ<0VV=O^babFsh{#T&b-##^}+oH<%#;Ed?(8oT{mPIVnEvmbGR8hZ% zo}wyJ(5M!Qszni_(*N=e??IF_D*dm_=n)vH8jkq^uP7N z`GC`??u+UXABxnky+A2_tZXf#iWOCddPen`s1`Ods^y}(+}x=2zaGHajW;U&xA}QZ zu!B*RDy>&z_=u%`4GlzfAi=1Hi0WlOqtbtWo7ax`5T-u!ny3vPbw*TE_%Nrw%-5nixxlDOmeH4KT4_}EMdes$RKr9yXp>Q` z6IHjpM)j?zmhLwyTUmW6-yJk6hp2w}%BTj2%6!zQ){Cm`aijWCRI5%JRjzXSQm&mc zsu)q_=A)+itsX3@s^^Sqlc;X+@z0yK?8=XDi;pGVhC8-gJd@1LrF~rBtUR@qSN^b7P@cha-qv_wtEBvC ztD?NLRa0Kssw;o-Qs&?A+7_m~fwwl7^3L|D^4>O-gTw^I1ZJ?PYZa?{SP4)sC^k^R z4w=*|N@n$`l12Sn$*R6qvZ-&C?2tnZFy(|?YE@HiHQba3@~X8=`P5dX{OTvB0%|u? zLA9r;klNc6s17g{RzEd;1Vx}I6ocaGP*Vvg38mCIrqU1uWuPpSgJ38R6`&%7KqaUQ zRiG+VgX$0pHJ~PhK{!M}Bsjnc8o0m>Q4kFt@InmuAQoytZKwkuLtUr`^`Qa8K|^Q+ zjiCuNg=WwkT0l!R&D2U=#P3iZH?>hun&Q=OO>Nak^Czm;+z#492k59aG(VU=mGWUYs&_`Wt?yDX$_fyZC6V;dI{;J6`KvgXRRl8-7 zn#nR)En^u1pQ_s}L*X+R2E!o;RG0?S zVFt{ESuh*sz+9LIX~6HdSr))TSfuW-EQTfOPRmkQ2Fqautb|qSF3W0lw`C2ig>~>b ztXKC~HmG|o8(|ZCq3*M6hArxT%U1P(}z(MsZ z%OUl!R=>C0QLk8jQg2x9s?RMytBtMq;1~E6euLlP zK0JVj@CY75Iy_P1txw?(HNpA}p2G|HQypM^39r=2*1zCyc&#q8zJa&!4&H-eUuHFd z87%hitycRrYXI0l1v_Md%#a1LLN>?_IUpzGg4~b?@~32{2(ic7DnVs? zQ(F~#b6Zt=Yg;v_4xvy3YC@Pj!4_^GVT*uB`&^sDzRczX&A!^^vTw7w?K^By_MNt9 z`xTqVe%L&D3-zErG=Mn!2DPDmquR*6Lv3u|r8cqeR-4-Q zsLkwWRDM59ZDBvJwzOYRTiGwFt?ie1`Cm~+u?II^!x_asT)dV^-xL4qh-2mGSpTS1 z87oJ>WiM}B_FMMx`qKDxviX%r1(oLh#Je>zeJ0aJ^WXkUd?8a-i*Z?Awe_c*N=}(_ z%hBO7jgV=SOp9bX=1&Ec$FlDanTA_4u5E-&qhw0M2t%nfl1oU#5X-X8(N~sOIqB zkHK>EQ<*-K^FEXFhReR;vTuaE#3(sBN{%MWzGT@qR$d}S<)sC&y`-o`{I_L-9GxUD zJ4s$PRgUtz^8U+Cm7_D|=xmwN(IBWG&RV7ZExf}tG%Lsc~-mrDCqOp>C&ga zj&HSBBI&QpTkTc-mn~`69|e7jC@JO<_^sKDN2ak%$1`X2JomTPMKUX zMakrmDMqGPnQF`QvAk6u%Ue}X_SKVp4P;*f+1F4mrLi1sEJvHl(dKfrxg2dN`&!Dr z*0Qg)?2DI6`9!AnGIf-f=qNAIS@w07eO+Z=SJ~HH_H~ziJ!M}{+1E?<^^$#kWM3cI z*H8BKlYRYVUw_#*Q1%U!eS_sa`c$URWEw6nF`Re-DY9>Z?3*C_Cds}@vM*KkrOLjk^43q6X{JoGWtuB5J6B#dP4=b9z6G*xf$Uo( zm$F2TE|H_lWZyE`w?g)a$-Y&xZ;k9*Bm36LzIC#1z3f{r z`!>qHjk50x+4qI)+amk6$i6RS-9R~$WXe(8m{(BQS~?@` z@+aOwsBH9E`7WA_<<)RR`uECeR7PJWnX<@~O{N@C8S6erRK~i`B}enfluxDtG8K}k zuuMf{Dkf72nM%nNBvVc~`Arus6)$<#=uCNedXsfA3fWNIT*TbbI))Ip|BGIf!un@l}qN|33yOnqfalxcuW zgJc>a(@>d)$&@71NSQ{P>wE^X{k)hWm+lIYMIu`^tntMWZERtW|_9iv`wZRGVPLSk4*byIv~>_nGVZz zRHoxHos{X6OlM^JMyB&JU6ARLOqXT4BGXlwuFG^&rdu-Ik?F2X_hkB2rr%|HAk!n6 z(q(!o(=(Y~$n?^mtjb@q@3l;CWqL1@DLP}XXOSsDCRL_PGG&n|n@l-m$`ze)zMCsL z<9s(ybjBVtPjto}GoS3sC;JM>r4*8>uuMf{Dkf72nM%nNBvVd5p!uC-#Gj3ZNJPsU?Z)swL%t9mllWOdnB zUG~+GeKllXnCuIaeGziW4ms+Oqw_o-|FN;GFXOh%ip{t!b7UIRHKT8wOyfl=qSWJ= zPZ#9?9;%$dqm>7EjPNu*LCgDRBF_>Yt$ak!JdqbGHOb4BW_YwR6)#q{i+o<>o5GJp zkN%;p#ftt>fTK!HT-S6Hk5+6v*{*BSonQ(PS$CqyiNAUlJG6lX)@Q#6Z2Ch z4R=v=UoxG;x6JyIZ<+P$I;!Xnw&)*U3$f^P5=~!{gDto5vCQ{zg6K&!RpIff>9j)l2r%bxLhaIobkoK{R< zT3RuEIcdf8`Dw-U>q;x8UsqZ&{o2!t>9-`&^i>Xh4eQqumPPl@(%EzB*QGBl!E}_o zSosb&$|{zh?MNfk!L)eGIll@Z0*qmX-ziTtHs^78Z@tU0S%ja7E!N!qtRp z3Wp23ggwFygc}Pt7j7-wUbw4pAK}u``nB{DxxesW;m?Fe2qz2AjMZnRh&)Mns_<;# zoKf}ojpy0Ii$u>d;Z?%xg)4dVC2SFSr|^E^Bf?(`JM8+Lb0U8y94LHE__pvb!jFaj z5H^c@VH3_9U5MX7E-rF;;Yi_Xo@w;wjD9GbkKY@JiPj(SaF6bDQMxOMd|Tw1!kLBb zVrFLHtimy(KfB2Jg~P?YtK!kGJ$uwEmVYZyU*@eqeH)k^tLLoZQchu)aFnn|I99l} za0B7S!ZzXAvHEhVc=RRL6b|?3J(Yw*MNhCLdr5sOT2qR*S4-$W1(}3Tne;qbIagZW z+MnRjN>q?Ovjt8x>3Ok|BzmR_FBjfcMxS#)_@waUvU*Rx5Z%S_*sfx$=o(E<7Eb9} zOJv=_mIUEemGoSI-YhAQ2v>h6t$Ee)#aeuopq zXrkD2hKhBbIZ9sxkHz{aE_z0YTv}v@*khEA*5{NIu2Z#jO?_z_g}=o7C3lk*GAVb= znUzFy7UhODE9ByH;<=O&{Lu3`W+f#c594_uALNGuN^yHZ<`*Id@)x}d!$(j=$!aeO z#h^HINa$Mot|zeA5cO78)k`u6YA zrBdf!y~O1AL0>2F`2_#Je_e)s#gg-%=-uqFl{)Z{c#J~AuHaa*B-(*kC4)DMA>(gpO%TW=^Y^z=w|7KhD z-%M++G*Q}NpVF9AM~PD!P}jk+Wc}X(Yx+BV|He0lQ00=XTZ|g-?daR_hyP+IOf0p7 z(x2t@P}<6=Wp)YkzkA(YE{Szd4c>%yf6axMHt2625ISXLL=U!43Yjq z8^aO@uuOej^iUj4I>8Ov=h?pwxs(QkWoZbLPw$}yvo zSlfKIPTUs#5!Tm8f7%W_rvJLf|MfOh`nQimCDvLm{?q>rRLXH1>anbDVoCZv@5dU~ z?_D?6+Cb*~KVOH%S(nwg2Ri&#{6DVK*g89N8}!GdKaZBa1^vH&y~g7h=f7|Imaeb6 zjPC5cu1Kl*SD^ovk9 + + + + + Copy-AdsFile + Copy + AdsFile + + Uploads / Downloads files from/to TwinCAT target. + + + + This Cmdlet implements ADS file transfer operations with TwinCAT Systems. + + + + + Copy-AdsFile + + + Path + + The source path specifier, where the file is taken from. If this Cmdlet is in Download mode, this is the specifier or FullPath of the (remote) file, dependant of the StandardFolder Parameter. In case of 'Uploading' this is the FullPath of the file to be transferred. + + string + + System.String + + + + + + Destination + + The Destination path/specifier, where the file is stored. If the Cmdlet is in Download mode, this has to be the FullPath of the target location. In case of 'Uploading' this can be the FileName or a FullPath dependent of the StandardDirectory Parameter. + + string + + System.String + + + + + + Directory + + The Directory specifier on the remote system. The Default is "Generic". + Possible values: Generic, BootDir, TargetDir, ConfigDir, InstallDir, RepositoryDir, UserPath1, UserPath2, UserPath3, UserPath4, UserPath5, UserPath6, UserPath7, UserPath8, UserPath9 + + PathSpecifier + + TwinCAT.Management.Automation.PathSpecifier + + + The PathSpecifier is specifying "Special Folders" on the target system, within the [TwinCAT] Root. + + + Generic + + Generic + BootDir + TargetDir + ConfigDir + InstallDir + RepositoryDir + UserPath1 + UserPath2 + UserPath3 + UserPath4 + UserPath5 + UserPath6 + UserPath7 + UserPath8 + UserPath9 + + + + + Force + + Forces to create the Directory on the target side (and overwrites any preexisting file). + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + NetId + + The address (AmsNetId) of the system where the file is Downloaded from / Uploaded to (Default: Local) + + AmsNetId + + TwinCAT.Ads.AmsNetId + + + 172.17.60.215.1.1 + + + + Upload + + Switches the Cmdlet to Upload mode. If not set, the Cmdlet is in 'Download' mode. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + Copy-AdsFile + + + Path + + The source path specifier, where the file is taken from. If this Cmdlet is in Download mode, this is the specifier or FullPath of the (remote) file, dependant of the StandardFolder Parameter. In case of 'Uploading' this is the FullPath of the file to be transferred. + + string + + System.String + + + + + + Destination + + The Destination path/specifier, where the file is stored. If the Cmdlet is in Download mode, this has to be the FullPath of the target location. In case of 'Uploading' this can be the FileName or a FullPath dependent of the StandardDirectory Parameter. + + string + + System.String + + + + + + InputObject + + The address (Route) of the system where the file is Downloaded from / Uploaded to (Default: Local) + + IRoute + + TwinCAT.IRoute + + + + + + Directory + + The Directory specifier on the remote system. The Default is "Generic". + Possible values: Generic, BootDir, TargetDir, ConfigDir, InstallDir, RepositoryDir, UserPath1, UserPath2, UserPath3, UserPath4, UserPath5, UserPath6, UserPath7, UserPath8, UserPath9 + + PathSpecifier + + TwinCAT.Management.Automation.PathSpecifier + + + The PathSpecifier is specifying "Special Folders" on the target system, within the [TwinCAT] Root. + + + Generic + + Generic + BootDir + TargetDir + ConfigDir + InstallDir + RepositoryDir + UserPath1 + UserPath2 + UserPath3 + UserPath4 + UserPath5 + UserPath6 + UserPath7 + UserPath8 + UserPath9 + + + + + Force + + Forces to create the Directory on the target side (and overwrites any preexisting file). + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Upload + + Switches the Cmdlet to Upload mode. If not set, the Cmdlet is in 'Download' mode. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + Copy-AdsFile + + + Path + + The source path specifier, where the file is taken from. If this Cmdlet is in Download mode, this is the specifier or FullPath of the (remote) file, dependant of the StandardFolder Parameter. In case of 'Uploading' this is the FullPath of the file to be transferred. + + string + + System.String + + + + + + Destination + + The Destination path/specifier, where the file is stored. If the Cmdlet is in Download mode, this has to be the FullPath of the target location. In case of 'Uploading' this can be the FileName or a FullPath dependent of the StandardDirectory Parameter. + + string + + System.String + + + + + + Address + + The address of the system where the file is Downloaded from / Uploaded to (Default: Local) This can be the RouteName, NetId, the HostName or the IPAddress. + + string + + System.String + + + + + + Directory + + The Directory specifier on the remote system. The Default is "Generic". + Possible values: Generic, BootDir, TargetDir, ConfigDir, InstallDir, RepositoryDir, UserPath1, UserPath2, UserPath3, UserPath4, UserPath5, UserPath6, UserPath7, UserPath8, UserPath9 + + PathSpecifier + + TwinCAT.Management.Automation.PathSpecifier + + + The PathSpecifier is specifying "Special Folders" on the target system, within the [TwinCAT] Root. + + + Generic + + Generic + BootDir + TargetDir + ConfigDir + InstallDir + RepositoryDir + UserPath1 + UserPath2 + UserPath3 + UserPath4 + UserPath5 + UserPath6 + UserPath7 + UserPath8 + UserPath9 + + + + + Force + + Forces to create the Directory on the target side (and overwrites any preexisting file). + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Upload + + Switches the Cmdlet to Upload mode. If not set, the Cmdlet is in 'Download' mode. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + Copy-AdsFile + + + Path + + The source path specifier, where the file is taken from. If this Cmdlet is in Download mode, this is the specifier or FullPath of the (remote) file, dependant of the StandardFolder Parameter. In case of 'Uploading' this is the FullPath of the file to be transferred. + + string + + System.String + + + + + + Destination + + The Destination path/specifier, where the file is stored. If the Cmdlet is in Download mode, this has to be the FullPath of the target location. In case of 'Uploading' this can be the FileName or a FullPath dependent of the StandardDirectory Parameter. + + string + + System.String + + + + + + SessionId + + The target system address is derived from the Session Information where the file is Downloaded from / Uploaded to. + + int + + System.Int32 + + + -1 + + + + Directory + + The Directory specifier on the remote system. The Default is "Generic". + Possible values: Generic, BootDir, TargetDir, ConfigDir, InstallDir, RepositoryDir, UserPath1, UserPath2, UserPath3, UserPath4, UserPath5, UserPath6, UserPath7, UserPath8, UserPath9 + + PathSpecifier + + TwinCAT.Management.Automation.PathSpecifier + + + The PathSpecifier is specifying "Special Folders" on the target system, within the [TwinCAT] Root. + + + Generic + + Generic + BootDir + TargetDir + ConfigDir + InstallDir + RepositoryDir + UserPath1 + UserPath2 + UserPath3 + UserPath4 + UserPath5 + UserPath6 + UserPath7 + UserPath8 + UserPath9 + + + + + Force + + Forces to create the Directory on the target side (and overwrites any preexisting file). + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Upload + + Switches the Cmdlet to Upload mode. If not set, the Cmdlet is in 'Download' mode. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + + Path + + The source path specifier, where the file is taken from. If this Cmdlet is in Download mode, this is the specifier or FullPath of the (remote) file, dependant of the StandardFolder Parameter. In case of 'Uploading' this is the FullPath of the file to be transferred. + + string + + System.String + + + + + + Destination + + The Destination path/specifier, where the file is stored. If the Cmdlet is in Download mode, this has to be the FullPath of the target location. In case of 'Uploading' this can be the FileName or a FullPath dependent of the StandardDirectory Parameter. + + string + + System.String + + + + + + Directory + + The Directory specifier on the remote system. The Default is "Generic". + Possible values: Generic, BootDir, TargetDir, ConfigDir, InstallDir, RepositoryDir, UserPath1, UserPath2, UserPath3, UserPath4, UserPath5, UserPath6, UserPath7, UserPath8, UserPath9 + + PathSpecifier + + TwinCAT.Management.Automation.PathSpecifier + + + The PathSpecifier is specifying "Special Folders" on the target system, within the [TwinCAT] Root. + + + Generic + + Generic + BootDir + TargetDir + ConfigDir + InstallDir + RepositoryDir + UserPath1 + UserPath2 + UserPath3 + UserPath4 + UserPath5 + UserPath6 + UserPath7 + UserPath8 + UserPath9 + + + + + Upload + + Switches the Cmdlet to Upload mode. If not set, the Cmdlet is in 'Download' mode. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Force + + Forces to create the Directory on the target side (and overwrites any preexisting file). + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + NetId + + The address (AmsNetId) of the system where the file is Downloaded from / Uploaded to (Default: Local) + + AmsNetId + + TwinCAT.Ads.AmsNetId + + + 172.17.60.215.1.1 + + + + InputObject + + The address (Route) of the system where the file is Downloaded from / Uploaded to (Default: Local) + + IRoute + + TwinCAT.IRoute + + + + + Route + + The address (Route) of the system where the file is Downloaded from / Uploaded to (Default: Local) + This is an alias of the InputObject parameter. + + IRoute + + TwinCAT.IRoute + + + + + + Address + + The address of the system where the file is Downloaded from / Uploaded to (Default: Local) This can be the RouteName, NetId, the HostName or the IPAddress. + + string + + System.String + + + + + + SessionId + + The target system address is derived from the Session Information where the file is Downloaded from / Uploaded to. + + int + + System.Int32 + + + -1 + + + Id + + The target system address is derived from the Session Information where the file is Downloaded from / Uploaded to. + This is an alias of the SessionId parameter. + + int + + System.Int32 + + + -1 + + + + + + TwinCAT.IRoute + + + + The address (Route) of the system where the file is Downloaded from / Uploaded to (Default: Local) + + + + + + + ---------- EXAMPLE 1 ---------- + PS > Copy-AdsFile -address CX_00001 -path CurrentConfig.xml -Destination c:\tmp\Config1.xml -Directory BootDir + + Downloads the the CurrentConfig.xml from the BootDir of the target system to 'c:\tmp\Config1.xml' + + + + ---------- EXAMPLE 2 ---------- + PS > Copy-AdsFile -address CX_00001 -upload -path c:\tmp\Config1.xml -destination CurrentConfig.xml -Directory BootDir + + Uploads the file "c:\tmp\Config1.xml" on local system to the Target BootFolder of system CX_00001 + + + + ---------- EXAMPLE 3 ---------- + PS > Copy-AdsFile -address CX_0001 -path c:\ReadMe.txt -destination d:\tmp\ + + Downloads the File "C:\ReadMe.txt" form System CX_0001 to the local system and store it under d:\tmp\ReadMe.txt + + + + + + + + Add-AdsRoute + Add + AdsRoute + + Cmdlet for adding TwinCAT Routes. + + + + Adds a Route to the destination target System (Temporary or static). + + + + + Add-AdsRoute + + + Address + + The address for the ADS route. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted. + + string[] + + System.String[] + + + + + + Credential + + Credentials of the route to be added to the destination system. + IMPORTANT: Please be aware, that in the current version, tha password is transferred as clear text through the network. Use this only in safe subnetworks. + + PSCredential + + System.Management.Automation.PSCredential + + + + + + Destination + + The Destination Address, where the route is added. + + string + + System.String + + + + + + + DestinationCredential + + The credentials of the destination system, where to add the route. Local system by default. + + PSCredential + + System.Management.Automation.PSCredential + + + + + + HostName + + If set, the route will be registered as HostName + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Quiet + + The Quiet parameter suppresses the 'ShouldProcess' message and the ADSRoute will be added without further question. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + TC3PasswordEncryption + + Gets or sets the the TC3 Password encryption + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Temporary + + If set, the Route will be registered as temporary route. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + (Broadcast) Search Timeout for searching the unregistered target (Default 5000). + + int + + System.Int32 + + + 5000 + + + + Unidirectional + + Gets or sets the unidirectional setting. The Unidirectional setting registers the ADS Route as 'one-way' channel. That means that the engineering/source system (thats where the route request is initiated) can send requests to the remote target, but not in the opposite direction. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + Add-AdsRoute + + + Address + + The address for the ADS route. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted. + + string[] + + System.String[] + + + + + + Credential + + Credentials of the route to be added to the destination system. + IMPORTANT: Please be aware, that in the current version, tha password is transferred as clear text through the network. Use this only in safe subnetworks. + + PSCredential + + System.Management.Automation.PSCredential + + + + + + PreSharedKey + + Gets or sets the PreSharedKey (PSK) mode for adding the route. Because a valid certificate is expected at the target, it is not necessary to enter credentials. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + BinaryKey + + The BinaryKey can be used instead of the credential Password on SecureSettings.PreSharedKeys (PSK). There is no function for this parameter on other security settings. + + byte[] + + System.Byte[] + + + + + + Destination + + The Destination Address, where the route is added. + + string + + System.String + + + + + + + DestinationCredential + + The credentials of the destination system, where to add the route. Local system by default. + + PSCredential + + System.Management.Automation.PSCredential + + + + + + HostName + + If set, the route will be registered as HostName + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Quiet + + The Quiet parameter suppresses the 'ShouldProcess' message and the ADSRoute will be added without further question. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Temporary + + If set, the Route will be registered as temporary route. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + (Broadcast) Search Timeout for searching the unregistered target (Default 5000). + + int + + System.Int32 + + + 5000 + + + + Unidirectional + + Gets or sets the unidirectional setting. The Unidirectional setting registers the ADS Route as 'one-way' channel. That means that the engineering/source system (thats where the route request is initiated) can send requests to the remote target, but not in the opposite direction. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + Add-AdsRoute + + + Address + + The address for the ADS route. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted. + + string[] + + System.String[] + + + + + + SharedCertAuth + + Gets or sets the SharedCertificateAuthority (SCA) mode for adding the route. Because a valid certificate is expected at the target, it is not necessary to enter credentials. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Destination + + The Destination Address, where the route is added. + + string + + System.String + + + + + + + DestinationCredential + + The credentials of the destination system, where to add the route. Local system by default. + + PSCredential + + System.Management.Automation.PSCredential + + + + + + HostName + + If set, the route will be registered as HostName + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + IgnoreCN + + Gets or sets the 'Ignore Common Name' mode for SharedCertificateAuthority (SCA) while adding the route. + The "CommonName" of the certificate must correspond to the name used when establishing the connection in the certificate. This behavior can be deactivated by this option. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Quiet + + The Quiet parameter suppresses the 'ShouldProcess' message and the ADSRoute will be added without further question. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Temporary + + If set, the Route will be registered as temporary route. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + (Broadcast) Search Timeout for searching the unregistered target (Default 5000). + + int + + System.Int32 + + + 5000 + + + + Unidirectional + + Gets or sets the unidirectional setting. The Unidirectional setting registers the ADS Route as 'one-way' channel. That means that the engineering/source system (thats where the route request is initiated) can send requests to the remote target, but not in the opposite direction. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + Add-AdsRoute + + + Address + + The address for the ADS route. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted. + + string[] + + System.String[] + + + + + + Credential + + Credentials of the route to be added to the destination system. + IMPORTANT: Please be aware, that in the current version, tha password is transferred as clear text through the network. Use this only in safe subnetworks. + + PSCredential + + System.Management.Automation.PSCredential + + + + + + SelfSigned + + Gets or sets the SelfSigned (SSC) mode for adding the route. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Destination + + The Destination Address, where the route is added. + + string + + System.String + + + + + + + DestinationCredential + + The credentials of the destination system, where to add the route. Local system by default. + + PSCredential + + System.Management.Automation.PSCredential + + + + + + HostName + + If set, the route will be registered as HostName + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Quiet + + The Quiet parameter suppresses the 'ShouldProcess' message and the ADSRoute will be added without further question. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Temporary + + If set, the Route will be registered as temporary route. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + (Broadcast) Search Timeout for searching the unregistered target (Default 5000). + + int + + System.Int32 + + + 5000 + + + + Unidirectional + + Gets or sets the unidirectional setting. The Unidirectional setting registers the ADS Route as 'one-way' channel. That means that the engineering/source system (thats where the route request is initiated) can send requests to the remote target, but not in the opposite direction. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + Add-AdsRoute + + + NetId + + The AmsNetID for the ADS route to add. + + AmsNetId + + TwinCAT.Ads.AmsNetId + + + + + + Credential + + Credentials of the route to be added to the destination system. + IMPORTANT: Please be aware, that in the current version, tha password is transferred as clear text through the network. Use this only in safe subnetworks. + + PSCredential + + System.Management.Automation.PSCredential + + + + + + Destination + + The Destination Address, where the route is added. + + string + + System.String + + + + + + + DestinationCredential + + The credentials of the destination system, where to add the route. Local system by default. + + PSCredential + + System.Management.Automation.PSCredential + + + + + + HostName + + If set, the route will be registered as HostName + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Quiet + + The Quiet parameter suppresses the 'ShouldProcess' message and the ADSRoute will be added without further question. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + TC3PasswordEncryption + + Gets or sets the the TC3 Password encryption + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Temporary + + If set, the Route will be registered as temporary route. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Unidirectional + + Gets or sets the unidirectional setting. The Unidirectional setting registers the ADS Route as 'one-way' channel. That means that the engineering/source system (thats where the route request is initiated) can send requests to the remote target, but not in the opposite direction. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + Add-AdsRoute + + + NetId + + The AmsNetID for the ADS route to add. + + AmsNetId + + TwinCAT.Ads.AmsNetId + + + + + + Credential + + Credentials of the route to be added to the destination system. + IMPORTANT: Please be aware, that in the current version, tha password is transferred as clear text through the network. Use this only in safe subnetworks. + + PSCredential + + System.Management.Automation.PSCredential + + + + + + PreSharedKey + + Gets or sets the PreSharedKey (PSK) mode for adding the route. Because a valid certificate is expected at the target, it is not necessary to enter credentials. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + BinaryKey + + The BinaryKey can be used instead of the credential Password on SecureSettings.PreSharedKeys (PSK). There is no function for this parameter on other security settings. + + byte[] + + System.Byte[] + + + + + + Destination + + The Destination Address, where the route is added. + + string + + System.String + + + + + + + DestinationCredential + + The credentials of the destination system, where to add the route. Local system by default. + + PSCredential + + System.Management.Automation.PSCredential + + + + + + HostName + + If set, the route will be registered as HostName + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Quiet + + The Quiet parameter suppresses the 'ShouldProcess' message and the ADSRoute will be added without further question. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Temporary + + If set, the Route will be registered as temporary route. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Unidirectional + + Gets or sets the unidirectional setting. The Unidirectional setting registers the ADS Route as 'one-way' channel. That means that the engineering/source system (thats where the route request is initiated) can send requests to the remote target, but not in the opposite direction. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + Add-AdsRoute + + + NetId + + The AmsNetID for the ADS route to add. + + AmsNetId + + TwinCAT.Ads.AmsNetId + + + + + + SharedCertAuth + + Gets or sets the SharedCertificateAuthority (SCA) mode for adding the route. Because a valid certificate is expected at the target, it is not necessary to enter credentials. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Destination + + The Destination Address, where the route is added. + + string + + System.String + + + + + + + DestinationCredential + + The credentials of the destination system, where to add the route. Local system by default. + + PSCredential + + System.Management.Automation.PSCredential + + + + + + HostName + + If set, the route will be registered as HostName + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + IgnoreCN + + Gets or sets the 'Ignore Common Name' mode for SharedCertificateAuthority (SCA) while adding the route. + The "CommonName" of the certificate must correspond to the name used when establishing the connection in the certificate. This behavior can be deactivated by this option. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Quiet + + The Quiet parameter suppresses the 'ShouldProcess' message and the ADSRoute will be added without further question. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Temporary + + If set, the Route will be registered as temporary route. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Unidirectional + + Gets or sets the unidirectional setting. The Unidirectional setting registers the ADS Route as 'one-way' channel. That means that the engineering/source system (thats where the route request is initiated) can send requests to the remote target, but not in the opposite direction. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + Add-AdsRoute + + + NetId + + The AmsNetID for the ADS route to add. + + AmsNetId + + TwinCAT.Ads.AmsNetId + + + + + + Credential + + Credentials of the route to be added to the destination system. + IMPORTANT: Please be aware, that in the current version, tha password is transferred as clear text through the network. Use this only in safe subnetworks. + + PSCredential + + System.Management.Automation.PSCredential + + + + + + SelfSigned + + Gets or sets the SelfSigned (SSC) mode for adding the route. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Destination + + The Destination Address, where the route is added. + + string + + System.String + + + + + + + DestinationCredential + + The credentials of the destination system, where to add the route. Local system by default. + + PSCredential + + System.Management.Automation.PSCredential + + + + + + HostName + + If set, the route will be registered as HostName + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Quiet + + The Quiet parameter suppresses the 'ShouldProcess' message and the ADSRoute will be added without further question. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Temporary + + If set, the Route will be registered as temporary route. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Unidirectional + + Gets or sets the unidirectional setting. The Unidirectional setting registers the ADS Route as 'one-way' channel. That means that the engineering/source system (thats where the route request is initiated) can send requests to the remote target, but not in the opposite direction. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + Add-AdsRoute + + + InputObject + + The input Ads Routes. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + + Credential + + Credentials of the route to be added to the destination system. + IMPORTANT: Please be aware, that in the current version, tha password is transferred as clear text through the network. Use this only in safe subnetworks. + + PSCredential + + System.Management.Automation.PSCredential + + + + + + Destination + + The Destination Address, where the route is added. + + string + + System.String + + + + + + + DestinationCredential + + The credentials of the destination system, where to add the route. Local system by default. + + PSCredential + + System.Management.Automation.PSCredential + + + + + + HostName + + If set, the route will be registered as HostName + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Quiet + + The Quiet parameter suppresses the 'ShouldProcess' message and the ADSRoute will be added without further question. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + TC3PasswordEncryption + + Gets or sets the the TC3 Password encryption + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Temporary + + If set, the Route will be registered as temporary route. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Unidirectional + + Gets or sets the unidirectional setting. The Unidirectional setting registers the ADS Route as 'one-way' channel. That means that the engineering/source system (thats where the route request is initiated) can send requests to the remote target, but not in the opposite direction. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + Add-AdsRoute + + + InputObject + + The input Ads Routes. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + + Credential + + Credentials of the route to be added to the destination system. + IMPORTANT: Please be aware, that in the current version, tha password is transferred as clear text through the network. Use this only in safe subnetworks. + + PSCredential + + System.Management.Automation.PSCredential + + + + + + PreSharedKey + + Gets or sets the PreSharedKey (PSK) mode for adding the route. Because a valid certificate is expected at the target, it is not necessary to enter credentials. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + BinaryKey + + The BinaryKey can be used instead of the credential Password on SecureSettings.PreSharedKeys (PSK). There is no function for this parameter on other security settings. + + byte[] + + System.Byte[] + + + + + + Destination + + The Destination Address, where the route is added. + + string + + System.String + + + + + + + DestinationCredential + + The credentials of the destination system, where to add the route. Local system by default. + + PSCredential + + System.Management.Automation.PSCredential + + + + + + HostName + + If set, the route will be registered as HostName + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Quiet + + The Quiet parameter suppresses the 'ShouldProcess' message and the ADSRoute will be added without further question. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Temporary + + If set, the Route will be registered as temporary route. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Unidirectional + + Gets or sets the unidirectional setting. The Unidirectional setting registers the ADS Route as 'one-way' channel. That means that the engineering/source system (thats where the route request is initiated) can send requests to the remote target, but not in the opposite direction. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + Add-AdsRoute + + + InputObject + + The input Ads Routes. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + + SharedCertAuth + + Gets or sets the SharedCertificateAuthority (SCA) mode for adding the route. Because a valid certificate is expected at the target, it is not necessary to enter credentials. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Destination + + The Destination Address, where the route is added. + + string + + System.String + + + + + + + DestinationCredential + + The credentials of the destination system, where to add the route. Local system by default. + + PSCredential + + System.Management.Automation.PSCredential + + + + + + HostName + + If set, the route will be registered as HostName + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + IgnoreCN + + Gets or sets the 'Ignore Common Name' mode for SharedCertificateAuthority (SCA) while adding the route. + The "CommonName" of the certificate must correspond to the name used when establishing the connection in the certificate. This behavior can be deactivated by this option. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Quiet + + The Quiet parameter suppresses the 'ShouldProcess' message and the ADSRoute will be added without further question. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Temporary + + If set, the Route will be registered as temporary route. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Unidirectional + + Gets or sets the unidirectional setting. The Unidirectional setting registers the ADS Route as 'one-way' channel. That means that the engineering/source system (thats where the route request is initiated) can send requests to the remote target, but not in the opposite direction. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + Add-AdsRoute + + + InputObject + + The input Ads Routes. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + + Credential + + Credentials of the route to be added to the destination system. + IMPORTANT: Please be aware, that in the current version, tha password is transferred as clear text through the network. Use this only in safe subnetworks. + + PSCredential + + System.Management.Automation.PSCredential + + + + + + SelfSigned + + Gets or sets the SelfSigned (SSC) mode for adding the route. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Destination + + The Destination Address, where the route is added. + + string + + System.String + + + + + + + DestinationCredential + + The credentials of the destination system, where to add the route. Local system by default. + + PSCredential + + System.Management.Automation.PSCredential + + + + + + HostName + + If set, the route will be registered as HostName + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Quiet + + The Quiet parameter suppresses the 'ShouldProcess' message and the ADSRoute will be added without further question. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Temporary + + If set, the Route will be registered as temporary route. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Unidirectional + + Gets or sets the unidirectional setting. The Unidirectional setting registers the ADS Route as 'one-way' channel. That means that the engineering/source system (thats where the route request is initiated) can send requests to the remote target, but not in the opposite direction. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + + Address + + The address for the ADS route. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted. + + string[] + + System.String[] + + + + + Name + + The address for the ADS route. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted. + This is an alias of the Address parameter. + + string[] + + System.String[] + + + + + TargetAddress + + The address for the ADS route. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted. + This is an alias of the Address parameter. + + string[] + + System.String[] + + + + + + NetId + + The AmsNetID for the ADS route to add. + + AmsNetId + + TwinCAT.Ads.AmsNetId + + + + + TargetNetId + + The AmsNetID for the ADS route to add. + This is an alias of the NetId parameter. + + AmsNetId + + TwinCAT.Ads.AmsNetId + + + + + + Timeout + + (Broadcast) Search Timeout for searching the unregistered target (Default 5000). + + int + + System.Int32 + + + 5000 + + + + InputObject + + The input Ads Routes. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + Route + + The input Ads Routes. + This is an alias of the InputObject parameter. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + TargetRoute + + The input Ads Routes. + This is an alias of the InputObject parameter. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + + Destination + + The Destination Address, where the route is added. + + string + + System.String + + + + + + + DestinationCredential + + The credentials of the destination system, where to add the route. Local system by default. + + PSCredential + + System.Management.Automation.PSCredential + + + + + + Credential + + Credentials of the route to be added to the destination system. + IMPORTANT: Please be aware, that in the current version, tha password is transferred as clear text through the network. Use this only in safe subnetworks. + + PSCredential + + System.Management.Automation.PSCredential + + + + + TargetCredential + + Credentials of the route to be added to the destination system. + IMPORTANT: Please be aware, that in the current version, tha password is transferred as clear text through the network. Use this only in safe subnetworks. + This is an alias of the Credential parameter. + + PSCredential + + System.Management.Automation.PSCredential + + + + + + BinaryKey + + The BinaryKey can be used instead of the credential Password on SecureSettings.PreSharedKeys (PSK). There is no function for this parameter on other security settings. + + byte[] + + System.Byte[] + + + + + + HostName + + If set, the route will be registered as HostName + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Temporary + + If set, the Route will be registered as temporary route. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + TC3PasswordEncryption + + Gets or sets the the TC3 Password encryption + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + TC3 + + Gets or sets the the TC3 Password encryption + This is an alias of the TC3PasswordEncryption parameter. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + SelfSigned + + Gets or sets the SelfSigned (SSC) mode for adding the route. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + SSC + + Gets or sets the SelfSigned (SSC) mode for adding the route. + This is an alias of the SelfSigned parameter. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + PreSharedKey + + Gets or sets the PreSharedKey (PSK) mode for adding the route. Because a valid certificate is expected at the target, it is not necessary to enter credentials. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + PSK + + Gets or sets the PreSharedKey (PSK) mode for adding the route. Because a valid certificate is expected at the target, it is not necessary to enter credentials. + This is an alias of the PreSharedKey parameter. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + SharedCertAuth + + Gets or sets the SharedCertificateAuthority (SCA) mode for adding the route. Because a valid certificate is expected at the target, it is not necessary to enter credentials. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + SCA + + Gets or sets the SharedCertificateAuthority (SCA) mode for adding the route. Because a valid certificate is expected at the target, it is not necessary to enter credentials. + This is an alias of the SharedCertAuth parameter. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + IgnoreCN + + Gets or sets the 'Ignore Common Name' mode for SharedCertificateAuthority (SCA) while adding the route. + The "CommonName" of the certificate must correspond to the name used when establishing the connection in the certificate. This behavior can be deactivated by this option. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Unidirectional + + Gets or sets the unidirectional setting. The Unidirectional setting registers the ADS Route as 'one-way' channel. That means that the engineering/source system (thats where the route request is initiated) can send requests to the remote target, but not in the opposite direction. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Quiet + + The Quiet parameter suppresses the 'ShouldProcess' message and the ADSRoute will be added without further question. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Silent + + The Quiet parameter suppresses the 'ShouldProcess' message and the ADSRoute will be added without further question. + This is an alias of the Quiet parameter. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + TwinCAT.RouteTargetCollection + + + + The input Ads Routes. + + + + + + + ---------- EXAMPLE 1 ---------- + + > Get-AdsRoute -Broadcast -name "Tc3*" + + Name NetId Address Sub TcVersion RTSystem + ---- ----- ------- --- --------- -------- + TC3TestA1-CP67x 172.17.62.105.1.1 172.17.62.105 3.1.4021 Win7 + TC3Test13-C6650 172.17.60.239.1.1 172.17.62.156 2.11.2246 Win7 + + + PS> $cred = Get-Credential -Message "Get Credentials" -UserName "UserName" + + PS> Add-AdsRoute -Credential $cred -name "TC3TestA1-CP67x" -temporary + + Name NetId Address Sub TcVersion RTSystem + ---- ----- ------- --- --------- -------- + TC3TestA1-CP67x 172.17.62.105.1.1 172.17.62.105 3.1.4021 Win7 + + PS> Get-AdsRoute -name "TC3TestA1-CP67x" | Test-AdsRoute + + + Search for Systems that start with the name "TC3*", then asks the user for Credentials and adds the Route as 'temporary' (with TC2 compatible security, clear text password). Afterwards, the connection is checked. + + + + ---------- EXAMPLE 2 ---------- + + > Get-AdsRoute -Broadcast -name "Tc3*" + + Name NetId Address Sub TcVersion RTSystem + ---- ----- ------- --- --------- -------- + TC3TestA1-CP67x 172.17.62.105.1.1 172.17.62.105 3.1.4021 Win7 + TC3Test13-C6650 172.17.60.239.1.1 172.17.62.156 2.11.2246 Win7 + + + PS> $cred = Get-Credential -Message "Get Credentials" -UserName "UserName" + + PS> Add-AdsRoute -Credential $cred -name "TC3TestA1-CP67x" -selfSigned + + Name NetId Address Sub TcVersion RTSystem + ---- ----- ------- --- --------- -------- + TC3TestA1-CP67x 172.17.62.105.1.1 172.17.62.105 3.1.4021 Win7 + + PS> Get-AdsRoute -name "TC3TestA1-CP67x" | Test-AdsRoute + + + Search for Systems that start with the name "TC3*", then asks the user for Credentials and adds the Route with 'SelfSigned' AdsSecure settings. Afterwards, the connection is checked. + + + + ---------- EXAMPLE 3 ---------- + + PS> Add-AdsRoute -Address 172.17.62.105 -sca + + Name NetId Address Sub TcVersion RTSystem + ---- ----- ------- --- --------- -------- + TC3TestA1-CP67x 172.17.62.105.1.1 172.17.62.105 3.1.4021 Win7 + + + Search for the system with the specified IPAddress, and add the Route with Shared Certification Authority settings without password. The precondition is, that valid certificates are already established on both (engineering and remote) systems, within their StaticRoutes.xml files. + + + + + + + + Get-AdsRoute + Get + AdsRoute + + List routes on a TwinCAT System / Broadcast search. + + + + This Cmdlet can list the routes configured on a TwinCAT local/remote system, or start determining all TwinCAT Systems within the current subnet. + + + + + Get-AdsRoute + + + Address + + The Name / Address of the route to get. The address of the route can be coded as NetId, the HostName or the IPAddress in string representation. Wildcards are permitted. + + string[] + + System.String[] + + + + + + All + + Broadcast switch. If activated a broadcast search is triggered within the local network. The search can be constrained additionally by the -Address/-Name parameter. Searching by Address (direct access of targets if no wildcards, otherwise using Broadcast search): - HostName: Searching the target by dns resolution and then via IP (fallback broadcast search filtering DeviceName/Hostname, not working over subnets!) - IPAddress: Directly accessing via IP (works also over subnets) - AmsNetId: Working via Broadcast search (not working over subnet segments!) Searching by Name: Works always via Broadcast search, wildcards permitted + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + InputObject + + The Destination address specifies the target, where the the routes are determined. Use this to get the registered routes of a remote system. The Destination system can be specified by RouteName (route name on local system), AmsNetId, IPAddress or HostName + + string + + System.String + + + + + + StaticRoutes + + Indicates that only static routes will be returned. By default this Cmdlet returns the actual registered routes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + (Broadcast) Search Timeout (Default 5000 ms) + + int + + System.Int32 + + + 5000 + + + + + Get-AdsRoute + + + Local + + If set, the local system route will be returned. By default a list of the actual registered routes will be returned. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + InputObject + + The Destination address specifies the target, where the the routes are determined. Use this to get the registered routes of a remote system. The Destination system can be specified by RouteName (route name on local system), AmsNetId, IPAddress or HostName + + string + + System.String + + + + + + + + + All + + Broadcast switch. If activated a broadcast search is triggered within the local network. The search can be constrained additionally by the -Address/-Name parameter. Searching by Address (direct access of targets if no wildcards, otherwise using Broadcast search): - HostName: Searching the target by dns resolution and then via IP (fallback broadcast search filtering DeviceName/Hostname, not working over subnets!) - IPAddress: Directly accessing via IP (works also over subnets) - AmsNetId: Working via Broadcast search (not working over subnet segments!) Searching by Name: Works always via Broadcast search, wildcards permitted + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Broadcast + + Broadcast switch. If activated a broadcast search is triggered within the local network. The search can be constrained additionally by the -Address/-Name parameter. Searching by Address (direct access of targets if no wildcards, otherwise using Broadcast search): - HostName: Searching the target by dns resolution and then via IP (fallback broadcast search filtering DeviceName/Hostname, not working over subnets!) - IPAddress: Directly accessing via IP (works also over subnets) - AmsNetId: Working via Broadcast search (not working over subnet segments!) Searching by Name: Works always via Broadcast search, wildcards permitted + This is an alias of the All parameter. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + (Broadcast) Search Timeout (Default 5000 ms) + + int + + System.Int32 + + + 5000 + + + + Address + + The Name / Address of the route to get. The address of the route can be coded as NetId, the HostName or the IPAddress in string representation. Wildcards are permitted. + + string[] + + System.String[] + + + + + Name + + The Name / Address of the route to get. The address of the route can be coded as NetId, the HostName or the IPAddress in string representation. Wildcards are permitted. + This is an alias of the Address parameter. + + string[] + + System.String[] + + + + + + InputObject + + The Destination address specifies the target, where the the routes are determined. Use this to get the registered routes of a remote system. The Destination system can be specified by RouteName (route name on local system), AmsNetId, IPAddress or HostName + + string + + System.String + + + + + Destination + + The Destination address specifies the target, where the the routes are determined. Use this to get the registered routes of a remote system. The Destination system can be specified by RouteName (route name on local system), AmsNetId, IPAddress or HostName + This is an alias of the InputObject parameter. + + string + + System.String + + + + + + StaticRoutes + + Indicates that only static routes will be returned. By default this Cmdlet returns the actual registered routes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Static + + Indicates that only static routes will be returned. By default this Cmdlet returns the actual registered routes. + This is an alias of the StaticRoutes parameter. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Local + + If set, the local system route will be returned. By default a list of the actual registered routes will be returned. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Self + + If set, the local system route will be returned. By default a list of the actual registered routes will be returned. + This is an alias of the Local parameter. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + + ---------- EXAMPLE 1 ---------- + + PS> Get-AdsRoute + + Name NetId Address Sub TcVersion RTSystem + ---- ----- ------- --- --------- --------- + CP-15ECA0 172.17.62.128.1.1 172.17.62.178 [UNKNOWN] [UNKNOWN] + CP-15ECA1 172.17.62.105.1.1 172.17.62.105 [UNKNOWN] [UNKNOWN] + + + Lists all registered local routes. Because only the local port 10000 is addressed, the TcVersion and RTSystem is unknown (the Cmdlet doesn't contact the targets and doesn't produce additional roundtrips. + + + + ---------- EXAMPLE 2 ---------- + + PS> get-AdsRoute -Broadcast + Name NetId Address Sub Version RTSystem + ---- ----- ------- --- ------- -------- + CX-1CEEDA 5.16.136.222.1.1 172.17.62.139 3.1.4020 Win7 + CX-20BC62 5.32.188.98.1.1 172.17.62.90 3.1.4020 CE6.0 + CX-10A87B 5.16.168.123.1.1 172.17.62.140 2.11.2254 CE7.0 + CP-15ECA0 172.17.62.128.1.1 172.17.62.178 3.1.4021 Win7 + CX-0A7F60 5.10.127.96.1.1 172.17.62.148 3.1.4020 XP + CX2030-B4018 172.17.60.157.1.1 172.17.60.159 2.11.2256 Win7 + CP_11BB16 5.17.187.22.1.1 172.17.60.180 2.11.2038 CE6.0 + CX-128CE5 172.17.60.165.1.1 172.17.62.191 2.11.2237 CE7.0 + CX-124218 5.18.66.24.1.1 172.17.60.192 3.1.4021 Win7 + CX-1D82AA 172.17.62.180.1.1 172.17.62.180 3.1.4021 Win8 + CX_0AB4F0 5.10.180.240.1.1 172.17.60.195 2.11.2243 XP + CP-1DFA0A 172.17.62.118.1.1 172.17.62.118 3.1.4021 Win7 + CX-AF0001 172.17.62.75.1.1 172.17.62.70 3.1.4020 Win10 + + + Start a Broadcast search from the local system and lists the devices within the connected network. + + + + ---------- EXAMPLE 3 ---------- + + PS> Get-AdsRoute -Name "Tc3*" + + Name NetId Address Sub Version RTSystem + ---- ----- ------- --- ------- -------- + TC3TESTA1-CP67X 172.17.62.105.1.1 172.17.62.105 0.0 Unknown + + + Get the (actual) route assigned to the local system that has the name pattern "Tc3*" + + + + ---------- EXAMPLE 4 ---------- + + PS> Get-AdsRoute -Broadcast | where TcVersion -lt "3.1.0.0" + Name NetId Address Sub Version RTSystem + ---- ----- ------- --- ------- -------- + TC3Test17-C6930 172.17.62.98.1.1 172.17.62.98 2.11.2234 Win7 + CX2030-B4018 172.17.60.157.1.1 172.17.60.159 2.11.2256 Win7 + CX-10A87B 5.16.168.123.1.1 172.17.62.140 2.11.2254 CE7.0 + TC3Test13-C6650 172.17.60.239.1.1 172.17.62.156 2.11.2246 Win7 + ECATTest01 172.17.61.6.1.1 172.17.61.31 2.11.2239 Win7 + CX-128CE5 172.17.60.165.1.1 172.17.62.191 2.11.2237 CE7.0 + CX_0AB4F0 5.10.180.240.1.1 172.17.60.195 2.11.2243 XP + CP_11BB16 5.17.187.22.1.1 172.17.60.180 2.11.2038 CE6.0 + Find out all TwinCAT Systems within the network with Version numbers lower than '3.1.0.0' + + + + + + + + Remove-AdsRoute + Remove + AdsRoute + + Remove an ADS Route. + + + + Removes static or temporary routes from the local system or from remote systems. If access is available, the route is removed on both endpoints of the Route. + + + + + Remove-AdsRoute + + + Address + + The address for the ADS route to remove. This can be the NetId, the HostName or the IPAddress. Wildcards are permitted. + + string[] + + System.String[] + + + + + + Credentials + + Destination system route credentials (only if removing remotely). + + PSCredential + + System.Management.Automation.PSCredential + + + System.Management.Automation.PSCredential + + + + Destination + + The destination route, where to Remove the specified route. + + RouteTarget + + TwinCAT.RouteTarget + + + Local + + + + Quiet + + The Quiet parameter suppresses the 'ShouldProcess' messsage and the routes will be removed without further question. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + Remove-AdsRoute + + + NetId + + The NetID of the route to remove. + + AmsNetId + + TwinCAT.Ads.AmsNetId + + + + + + Credentials + + Destination system route credentials (only if removing remotely). + + PSCredential + + System.Management.Automation.PSCredential + + + System.Management.Automation.PSCredential + + + + Destination + + The destination route, where to Remove the specified route. + + RouteTarget + + TwinCAT.RouteTarget + + + Local + + + + Quiet + + The Quiet parameter suppresses the 'ShouldProcess' messsage and the routes will be removed without further question. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + Remove-AdsRoute + + + InputObject + + A collection of routes to remove (Pipeline support). + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + + Credentials + + Destination system route credentials (only if removing remotely). + + PSCredential + + System.Management.Automation.PSCredential + + + System.Management.Automation.PSCredential + + + + Destination + + The destination route, where to Remove the specified route. + + RouteTarget + + TwinCAT.RouteTarget + + + Local + + + + Quiet + + The Quiet parameter suppresses the 'ShouldProcess' messsage and the routes will be removed without further question. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + + Destination + + The destination route, where to Remove the specified route. + + RouteTarget + + TwinCAT.RouteTarget + + + Local + + + + Address + + The address for the ADS route to remove. This can be the NetId, the HostName or the IPAddress. Wildcards are permitted. + + string[] + + System.String[] + + + + + Name + + The address for the ADS route to remove. This can be the NetId, the HostName or the IPAddress. Wildcards are permitted. + This is an alias of the Address parameter. + + string[] + + System.String[] + + + + + + NetId + + The NetID of the route to remove. + + AmsNetId + + TwinCAT.Ads.AmsNetId + + + + + + InputObject + + A collection of routes to remove (Pipeline support). + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + + Quiet + + The Quiet parameter suppresses the 'ShouldProcess' messsage and the routes will be removed without further question. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Silent + + The Quiet parameter suppresses the 'ShouldProcess' messsage and the routes will be removed without further question. + This is an alias of the Quiet parameter. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Credentials + + Destination system route credentials (only if removing remotely). + + PSCredential + + System.Management.Automation.PSCredential + + + System.Management.Automation.PSCredential + + + + + + TwinCAT.RouteTargetCollection + + + + A collection of routes to remove (Pipeline support). + + + + + + + ---------- EXAMPLE 1 ---------- + + PS> Get-AdsRoute + Name NetId Address Sub TcVersion RTSystem + ---- ----- ------- --- --------- -------- + CP-15ECA0 172.17.62.128.1.1 172.17.62.178 0.0 Unknown + TC3TESTA1-CP67X 172.17.62.105.1.1 172.17.62.105 0.0 Unknown + + PS> Remove-AdsRoute -Name "CP-15ECA0","TC3TESTA1*" + + + Removes the Routes "CP-15ECA0" and "TC3TESTA1-CP67X" from the local system. + + + + ---------- EXAMPLE 2 ---------- + PS> Get-AdsRoute | Remove-AdsRoute -silent + + Removes all registered routes from the local system. + + + + + + + + Test-AdsRoute + Test + AdsRoute + + Test the specified route connection. + + + + This Cmdlet establishes a connection to the specified target system and tests if the connection is working. A Port scan can be executed. + + + + + Test-AdsRoute + + + Address + + The Target names/addresses of the systems to test. These can consist of RouteName, NetID, HostName or IPAddress. Wildcards are permitted. + + string[] + + System.String[] + + + + + + Port + + The Port(s) of the target system to test. + + int[] + + System.Int32[] + + + + + + DefaultPorts + + Tests all default ports. The following ports will be tested: 10000, 300, 301, 302, 303, 501, 801, 811, 821, 831, 850, 851, 852, 853, 854, 855, 19200 The 'DefaultPorts' switch overrides the 'Port' parameter. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Mode + + The Ping Strategy (PingStrategy.Ads by default) + Possible values: IP, HostName, IPOrHostName, Ads + + PingStrategy + + TwinCAT.SystemService.PingStrategy + + + Ads + + IP + HostName + IPOrHostName + Ads + + + + + OnlinePorts + + Determines all active/online ports from the target and tests them. The 'OnlinePorts' switch overrides the 'DefaultPorts' and 'Port' parameters. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Quiet + + The Quiet mode. Returns a boolean only ($true, if one ping succeeded and $false if all failed) + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + TimeToLive + + The TimeToLive value. The is the timeout how long the Cmdlet waits for the answer. + + int + + System.Int32 + + + 2 + + + + + Test-AdsRoute + + + NetId + + The NetId(s) of the target system to test (AmsNetId.Local by default) + + AmsNetId[] + + TwinCAT.Ads.AmsNetId[] + + + + + + Port + + The Port(s) of the target system to test. + + int[] + + System.Int32[] + + + + + + DefaultPorts + + Tests all default ports. The following ports will be tested: 10000, 300, 301, 302, 303, 501, 801, 811, 821, 831, 850, 851, 852, 853, 854, 855, 19200 The 'DefaultPorts' switch overrides the 'Port' parameter. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Mode + + The Ping Strategy (PingStrategy.Ads by default) + Possible values: IP, HostName, IPOrHostName, Ads + + PingStrategy + + TwinCAT.SystemService.PingStrategy + + + Ads + + IP + HostName + IPOrHostName + Ads + + + + + OnlinePorts + + Determines all active/online ports from the target and tests them. The 'OnlinePorts' switch overrides the 'DefaultPorts' and 'Port' parameters. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Quiet + + The Quiet mode. Returns a boolean only ($true, if one ping succeeded and $false if all failed) + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + TimeToLive + + The TimeToLive value. The is the timeout how long the Cmdlet waits for the answer. + + int + + System.Int32 + + + 2 + + + + + Test-AdsRoute + + + InputObject + + The routes targets to test with this Cmdlet. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + + Port + + The Port(s) of the target system to test. + + int[] + + System.Int32[] + + + + + + DefaultPorts + + Tests all default ports. The following ports will be tested: 10000, 300, 301, 302, 303, 501, 801, 811, 821, 831, 850, 851, 852, 853, 854, 855, 19200 The 'DefaultPorts' switch overrides the 'Port' parameter. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Mode + + The Ping Strategy (PingStrategy.Ads by default) + Possible values: IP, HostName, IPOrHostName, Ads + + PingStrategy + + TwinCAT.SystemService.PingStrategy + + + Ads + + IP + HostName + IPOrHostName + Ads + + + + + OnlinePorts + + Determines all active/online ports from the target and tests them. The 'OnlinePorts' switch overrides the 'DefaultPorts' and 'Port' parameters. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Quiet + + The Quiet mode. Returns a boolean only ($true, if one ping succeeded and $false if all failed) + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + TimeToLive + + The TimeToLive value. The is the timeout how long the Cmdlet waits for the answer. + + int + + System.Int32 + + + 2 + + + + + + + Address + + The Target names/addresses of the systems to test. These can consist of RouteName, NetID, HostName or IPAddress. Wildcards are permitted. + + string[] + + System.String[] + + + + + + NetId + + The NetId(s) of the target system to test (AmsNetId.Local by default) + + AmsNetId[] + + TwinCAT.Ads.AmsNetId[] + + + + + + Port + + The Port(s) of the target system to test. + + int[] + + System.Int32[] + + + + + + InputObject + + The routes targets to test with this Cmdlet. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + Destination + + The routes targets to test with this Cmdlet. + This is an alias of the InputObject parameter. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + + Mode + + The Ping Strategy (PingStrategy.Ads by default) + Possible values: IP, HostName, IPOrHostName, Ads + + PingStrategy + + TwinCAT.SystemService.PingStrategy + + + Ads + + IP + HostName + IPOrHostName + Ads + + + + + TimeToLive + + The TimeToLive value. The is the timeout how long the Cmdlet waits for the answer. + + int + + System.Int32 + + + 2 + + + TTL + + The TimeToLive value. The is the timeout how long the Cmdlet waits for the answer. + This is an alias of the TimeToLive parameter. + + int + + System.Int32 + + + 2 + + + + DefaultPorts + + Tests all default ports. The following ports will be tested: 10000, 300, 301, 302, 303, 501, 801, 811, 821, 831, 850, 851, 852, 853, 854, 855, 19200 The 'DefaultPorts' switch overrides the 'Port' parameter. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + OnlinePorts + + Determines all active/online ports from the target and tests them. The 'OnlinePorts' switch overrides the 'DefaultPorts' and 'Port' parameters. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Quiet + + The Quiet mode. Returns a boolean only ($true, if one ping succeeded and $false if all failed) + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + System.String[] + + + + The Target names/addresses of the systems to test. These can consist of RouteName, NetID, HostName or IPAddress. Wildcards are permitted. + + + + + TwinCAT.Ads.AmsNetId[] + + + + The NetId(s) of the target system to test (AmsNetId.Local by default) + + + + + TwinCAT.RouteTargetCollection + + + + The routes targets to test with this Cmdlet. + + + + + + + ---------- EXAMPLE 1 ---------- + + Test the Port 851 of the local system (PLC 1): + + PS > Test-AdsRoute -Port 851 + + + + + + + Get-AdsState + Get + AdsState + + Gets the Ads State of a TwinCAT Target. + + + + This command let gets the ADS state of a TwinCAT target. + + + + + Get-AdsState + + + NetId + + The NetID of the target system. + + AmsNetId + + TwinCAT.Ads.AmsNetId + + + 172.17.60.215.1.1 + + + + Port + + The AmsPort of the target system. + + int + + System.Int32 + + + 10000 + + + + Force + + Force Mode + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Quiet + + The quiet mode + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + Communication timeout in ms. + + int + + System.Int32 + + + -1 + + + + + Get-AdsState + + + Address + + The address(es) where to get the State. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted. + + string[] + + System.String[] + + + + + + Port + + The AmsPort of the target system. + + int + + System.Int32 + + + 10000 + + + + Force + + Force Mode + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Quiet + + The quiet mode + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + Communication timeout in ms. + + int + + System.Int32 + + + -1 + + + + + Get-AdsState + + + InputObject + + The target systems, where to get the AdsState from. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + + Port + + The AmsPort of the target system. + + int + + System.Int32 + + + 10000 + + + + Force + + Force Mode + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Quiet + + The quiet mode + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + Communication timeout in ms. + + int + + System.Int32 + + + -1 + + + + + + + NetId + + The NetID of the target system. + + AmsNetId + + TwinCAT.Ads.AmsNetId + + + 172.17.60.215.1.1 + + + + Port + + The AmsPort of the target system. + + int + + System.Int32 + + + 10000 + + + + Address + + The address(es) where to get the State. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted. + + string[] + + System.String[] + + + + + + InputObject + + The target systems, where to get the AdsState from. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + Destination,Source + + The target systems, where to get the AdsState from. + This is an alias of the InputObject parameter. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + + Quiet + + The quiet mode + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Force + + Force Mode + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + Communication timeout in ms. + + int + + System.Int32 + + + -1 + + + + + + TwinCAT.RouteTargetCollection + + + + The target systems, where to get the AdsState from. + + + + + + + ---------- EXAMPLE 1 ---------- + + Getting the actual AdsState from target with NetId 1.2.3.4.5.6: + + + PS > Get-AdsState 1.2.3.4.5.6 + + Name State OK Time (ms) Address + ---- ----- -- --------- ------- + WORK01 Config True 0 1.2.3.4.5.6 + + + + ---------- EXAMPLE 2 ---------- + + Getting the AdsState from the Local system: + + + PS > Get-AdsState + + Name State OK Time (ms) Address + ---- ----- -- --------- ------- + WORK01 Config True 0 1.2.3.4.5.6 /// + + + + ---------- EXAMPLE 3 ---------- + + Getting the AdsState of target system at IPAddress 1.2.3.4 and Route name 'CX_0130C7': + + PS > Get-AdsState 1.2.3.4,CX_0130C7 + + + ---------- EXAMPLE 4 ---------- + + Get the current target state from all registered routes: + + + PS > get-route | get-adsState + + Name State OK Time (ms) Address + ---- ----- -- --------- ------- + WORK01 Config True 0 1.2.3.4.5.6 + CX_0130C7 Config True 0 5.1.48.199.1.1 /// + + + + + + + + Set-AdsState + Set + AdsState + + Set the ADS State of a TwinCAT Target. + + + + This Cmdlet sets the ADS State of the specified TwinCAT Targets (E.g. Start / Stop / Config / Reconfig) + + + + + Set-AdsState + + + State + + The state/value to set. + Possible values: Invalid, Idle, Reset, Init, Start, Run, Stop, SaveConfig, LoadConfig, PowerFailure, PowerGood, Error, Shutdown, Suspend, Resume, Config, Reconfig, Stopping, Incompatible, Exception, Maxstates + + AdsState + + TwinCAT.Ads.AdsState + + + Invalid + + Invalid + Idle + Reset + Init + Start + Run + Stop + SaveConfig + LoadConfig + PowerFailure + PowerGood + Error + Shutdown + Suspend + Resume + Config + Reconfig + Stopping + Incompatible + Exception + Maxstates + + + + + NetId + + The NetId address where to set the state (Local system by default) + + AmsNetId + + TwinCAT.Ads.AmsNetId + + + 172.17.60.215.1.1 + + + + Port + + The AmsPort where to set the state (Port 1000, SystemService by default) + + int + + System.Int32 + + + 10000 + + + + Force + + Forces the command (no questions asked, ResetFailFastHandler) + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Quiet + + Sets the Quiet mode of the command. The Cmdlet then returns a $true or $false but not the actual states of the targets. The return value will be $true if at least one SetState operations succeed and it will be $false if have failed. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Reinitialize + + Reinitializes the target system before it is set to the target state (goes over STOP) + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + Communication timeout in ms. + + int + + System.Int32 + + + -1 + + + + + Set-AdsState + + + State + + The state/value to set. + Possible values: Invalid, Idle, Reset, Init, Start, Run, Stop, SaveConfig, LoadConfig, PowerFailure, PowerGood, Error, Shutdown, Suspend, Resume, Config, Reconfig, Stopping, Incompatible, Exception, Maxstates + + AdsState + + TwinCAT.Ads.AdsState + + + Invalid + + Invalid + Idle + Reset + Init + Start + Run + Stop + SaveConfig + LoadConfig + PowerFailure + PowerGood + Error + Shutdown + Suspend + Resume + Config + Reconfig + Stopping + Incompatible + Exception + Maxstates + + + + + InputObject + + Target route(s), where to set the state. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + + Force + + Forces the command (no questions asked, ResetFailFastHandler) + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Quiet + + Sets the Quiet mode of the command. The Cmdlet then returns a $true or $false but not the actual states of the targets. The return value will be $true if at least one SetState operations succeed and it will be $false if have failed. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Reinitialize + + Reinitializes the target system before it is set to the target state (goes over STOP) + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + Communication timeout in ms. + + int + + System.Int32 + + + -1 + + + + + Set-AdsState + + + State + + The state/value to set. + Possible values: Invalid, Idle, Reset, Init, Start, Run, Stop, SaveConfig, LoadConfig, PowerFailure, PowerGood, Error, Shutdown, Suspend, Resume, Config, Reconfig, Stopping, Incompatible, Exception, Maxstates + + AdsState + + TwinCAT.Ads.AdsState + + + Invalid + + Invalid + Idle + Reset + Init + Start + Run + Stop + SaveConfig + LoadConfig + PowerFailure + PowerGood + Error + Shutdown + Suspend + Resume + Config + Reconfig + Stopping + Incompatible + Exception + Maxstates + + + + + Address + + The address of the system where to set the state. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted. + + string[] + + System.String[] + + + + + + Force + + Forces the command (no questions asked, ResetFailFastHandler) + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Quiet + + Sets the Quiet mode of the command. The Cmdlet then returns a $true or $false but not the actual states of the targets. The return value will be $true if at least one SetState operations succeed and it will be $false if have failed. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Reinitialize + + Reinitializes the target system before it is set to the target state (goes over STOP) + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + Communication timeout in ms. + + int + + System.Int32 + + + -1 + + + + + + + State + + The state/value to set. + Possible values: Invalid, Idle, Reset, Init, Start, Run, Stop, SaveConfig, LoadConfig, PowerFailure, PowerGood, Error, Shutdown, Suspend, Resume, Config, Reconfig, Stopping, Incompatible, Exception, Maxstates + + AdsState + + TwinCAT.Ads.AdsState + + + Invalid + + Invalid + Idle + Reset + Init + Start + Run + Stop + SaveConfig + LoadConfig + PowerFailure + PowerGood + Error + Shutdown + Suspend + Resume + Config + Reconfig + Stopping + Incompatible + Exception + Maxstates + + + + + NetId + + The NetId address where to set the state (Local system by default) + + AmsNetId + + TwinCAT.Ads.AmsNetId + + + 172.17.60.215.1.1 + + + + Port + + The AmsPort where to set the state (Port 1000, SystemService by default) + + int + + System.Int32 + + + 10000 + + + + InputObject + + Target route(s), where to set the state. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + Destination + + Target route(s), where to set the state. + This is an alias of the InputObject parameter. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + + Address + + The address of the system where to set the state. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted. + + string[] + + System.String[] + + + + + + Reinitialize + + Reinitializes the target system before it is set to the target state (goes over STOP) + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Quiet + + Sets the Quiet mode of the command. The Cmdlet then returns a $true or $false but not the actual states of the targets. The return value will be $true if at least one SetState operations succeed and it will be $false if have failed. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Force + + Forces the command (no questions asked, ResetFailFastHandler) + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + Communication timeout in ms. + + int + + System.Int32 + + + -1 + + + + + + TwinCAT.RouteTargetCollection + + + + Target route(s), where to set the state. + + + + + + + ---------- EXAMPLE 1 ---------- + + Setting the local TwinCAT System to 'Config' mode. Also when the target is already in 'Config' mode, the target will be reinitialize via the 'Stopped' state: + + PS > Set-AdsState Config -Reinitialize + + + ---------- EXAMPLE 2 ---------- + + Sets the target systems with IPAddress '1.2.3.4' and Route named 'CX_0130C7' to run: + + PS > Set-AdsState Run 1.2.3.4,CX_0130C7 + + + ---------- EXAMPLE 3 ---------- + + The example command gets the actual routes of the local system, and sets then (after requesting User confirmation) the state of theses targets to the 'Config' mode.: + + + PS > get-AdsRoute | set-AdsState Config + Name State OK Time (ms) Address + ---- ----- -- --------- ------- + work-nb2 Config True 0 172.17.242.54.1.1 + CX_0130C7 Config True 0 5.1.48.199.1.1 + + + + + + + + Add-AdsSubRoute + Add + AdsSubRoute + + Adds a SubRoute to a target via a Gateway system. + + + + If two logical ADS Devices are in different (Sub)Networks of an heterogeneous network they can communicate via gateway system that connects both network segments. The gateway must be reachable from each of the ADS Devices. To enable communication via gateway the concept of so called ADS SubRoutes is used. A common user scenario is that this service engeneering system should be connected to machine devices via a gateway PC. SourceDevice (e.g Service System, engineering) <--> Gateway PC (Connects Networks) <--> TargetDevice (e.g. Machine device CX). Several communication channels must be announced here on the different devices of the subnetworks. - SourceDevice and TargetDevice must be registered as Route at the Gateway System - SourceDevice has a SubRoute to the TargetDevice (with gateway address) and vice versa. SourceDevice --> Gateway (Route) --> TargetDevice (SubRoute via Gateway) Gateway --> SourceDevice --> TargetDevice TargetDevice --> Gateway (Route) --> SourceDevice (SubRoute via Gateway) Only when this scenario of 6 Routes are registered routes poperly, SourceDevice can contact the TargetDevice and in the opposite direction. The 'AddSubRoute' Cmdlet helps in creating these registration. The Precondition is that the SourceDevice is already registered with the gateway (both directions). From this status on, this Cmdlet help to create the Route Registration from the Gateway to the target device and the registration of the SubRoutes on both ends of the communication channel (SourceDevice, TargetDevice). + + + + + Add-AdsSubRoute + + + Source + + Address of the Source of the SubRoute. The Address can consist of NetId, IPAddress or HostName. Wildcards are permitted. The Source system is the system that builds up the (Sub)Route-Connection to the Target System via the gateway. By default this is the Local system that builds up the SubRoute and must exist as Registered route on the current system or be the local system itself. A common user scenario is that this system is the Service Device. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) + + string + + System.String + + + + + + Gateway + + Gets or sets the Gateway System address. The Address can consist of NetId, IPAddress or HostName. Wildcards are allowed. The Gateway describes the ADS Device that acts as gateway between two (sub-)networks. This system must be reachable from the source and the target system which means that it is registered as route on the source system. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) This parameter is mandatory. + + string + + System.String + + + + + + Target + + The name / address of the target system. The Address can consist of NetId, IPAddress or HostName. Wildcards are allowed. The Target system is the system to which the source system builds up the (Sub)Route-Connection via the gateway. A common user scenario is that this system is the Machine Device. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) This parameter is mandatory. + + string + + System.String + + + + + + + GatewayCredential + + The credentials of the gateway system. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) This Parameter is mandatory. + + PSCredential + + System.Management.Automation.PSCredential + + + + + + TargetCredential + + The credentials of the target system (e.g. the Machine Device) SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) This parameter is mandatory. + + PSCredential + + System.Management.Automation.PSCredential + + + + + + SourceCredential + + The credentials of the source system (e.g. the Service Device) By default the Local system is used as source system. With this default no credentials are necessary. But if the source system is different from the local system (system where this Cmdlet runs), the credentials of that system must be specified. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) + + PSCredential + + System.Management.Automation.PSCredential + + + + + + + Add-AdsSubRoute + + + Source + + Address of the Source of the SubRoute. The Address can consist of NetId, IPAddress or HostName. Wildcards are permitted. The Source system is the system that builds up the (Sub)Route-Connection to the Target System via the gateway. By default this is the Local system that builds up the SubRoute and must exist as Registered route on the current system or be the local system itself. A common user scenario is that this system is the Service Device. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) + + string + + System.String + + + + + + GatewayRoute + + The Gateway system route. The Gateway describes the ADS Device that acts as gateway between two (sub-)networks. This system must be reachable from the source and the target system which means that it is registered as route on the source system. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) This parameter is mandatory. + + RouteTarget + + TwinCAT.RouteTarget + + + + + + Target + + The name / address of the target system. The Address can consist of NetId, IPAddress or HostName. Wildcards are allowed. The Target system is the system to which the source system builds up the (Sub)Route-Connection via the gateway. A common user scenario is that this system is the Machine Device. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) This parameter is mandatory. + + string + + System.String + + + + + + + GatewayCredential + + The credentials of the gateway system. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) This Parameter is mandatory. + + PSCredential + + System.Management.Automation.PSCredential + + + + + + TargetCredential + + The credentials of the target system (e.g. the Machine Device) SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) This parameter is mandatory. + + PSCredential + + System.Management.Automation.PSCredential + + + + + + SourceCredential + + The credentials of the source system (e.g. the Service Device) By default the Local system is used as source system. With this default no credentials are necessary. But if the source system is different from the local system (system where this Cmdlet runs), the credentials of that system must be specified. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) + + PSCredential + + System.Management.Automation.PSCredential + + + + + + + Add-AdsSubRoute + + + SourceRoute + + The Source Route of the SubRoute. The Source system is the system that builds up the (Sub)Route-Connection to the Target System via the gateway. By default this is the Local system that builds up the SubRoute and must exist as Registered route on the current system or be the local system itself. A common user scenario is that this system is the Service Device. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) + + RouteTarget + + TwinCAT.RouteTarget + + + + + + Gateway + + Gets or sets the Gateway System address. The Address can consist of NetId, IPAddress or HostName. Wildcards are allowed. The Gateway describes the ADS Device that acts as gateway between two (sub-)networks. This system must be reachable from the source and the target system which means that it is registered as route on the source system. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) This parameter is mandatory. + + string + + System.String + + + + + + Target + + The name / address of the target system. The Address can consist of NetId, IPAddress or HostName. Wildcards are allowed. The Target system is the system to which the source system builds up the (Sub)Route-Connection via the gateway. A common user scenario is that this system is the Machine Device. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) This parameter is mandatory. + + string + + System.String + + + + + + + GatewayCredential + + The credentials of the gateway system. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) This Parameter is mandatory. + + PSCredential + + System.Management.Automation.PSCredential + + + + + + TargetCredential + + The credentials of the target system (e.g. the Machine Device) SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) This parameter is mandatory. + + PSCredential + + System.Management.Automation.PSCredential + + + + + + SourceCredential + + The credentials of the source system (e.g. the Service Device) By default the Local system is used as source system. With this default no credentials are necessary. But if the source system is different from the local system (system where this Cmdlet runs), the credentials of that system must be specified. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) + + PSCredential + + System.Management.Automation.PSCredential + + + + + + + Add-AdsSubRoute + + + SourceRoute + + The Source Route of the SubRoute. The Source system is the system that builds up the (Sub)Route-Connection to the Target System via the gateway. By default this is the Local system that builds up the SubRoute and must exist as Registered route on the current system or be the local system itself. A common user scenario is that this system is the Service Device. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) + + RouteTarget + + TwinCAT.RouteTarget + + + + + + GatewayRoute + + The Gateway system route. The Gateway describes the ADS Device that acts as gateway between two (sub-)networks. This system must be reachable from the source and the target system which means that it is registered as route on the source system. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) This parameter is mandatory. + + RouteTarget + + TwinCAT.RouteTarget + + + + + + Target + + The name / address of the target system. The Address can consist of NetId, IPAddress or HostName. Wildcards are allowed. The Target system is the system to which the source system builds up the (Sub)Route-Connection via the gateway. A common user scenario is that this system is the Machine Device. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) This parameter is mandatory. + + string + + System.String + + + + + + + GatewayCredential + + The credentials of the gateway system. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) This Parameter is mandatory. + + PSCredential + + System.Management.Automation.PSCredential + + + + + + TargetCredential + + The credentials of the target system (e.g. the Machine Device) SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) This parameter is mandatory. + + PSCredential + + System.Management.Automation.PSCredential + + + + + + SourceCredential + + The credentials of the source system (e.g. the Service Device) By default the Local system is used as source system. With this default no credentials are necessary. But if the source system is different from the local system (system where this Cmdlet runs), the credentials of that system must be specified. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) + + PSCredential + + System.Management.Automation.PSCredential + + + + + + + Add-AdsSubRoute + + + Target + + The name / address of the target system. The Address can consist of NetId, IPAddress or HostName. Wildcards are allowed. The Target system is the system to which the source system builds up the (Sub)Route-Connection via the gateway. A common user scenario is that this system is the Machine Device. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) This parameter is mandatory. + + string + + System.String + + + + + + + GatewayCredential + + The credentials of the gateway system. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) This Parameter is mandatory. + + PSCredential + + System.Management.Automation.PSCredential + + + + + + TargetCredential + + The credentials of the target system (e.g. the Machine Device) SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) This parameter is mandatory. + + PSCredential + + System.Management.Automation.PSCredential + + + + + + SourceCredential + + The credentials of the source system (e.g. the Service Device) By default the Local system is used as source system. With this default no credentials are necessary. But if the source system is different from the local system (system where this Cmdlet runs), the credentials of that system must be specified. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) + + PSCredential + + System.Management.Automation.PSCredential + + + + + + Timeout + + (BroadCast) Search Timeout timout for searching the unregistered target system (Default 5000ms) + + int + + System.Int32 + + + 5000 + + + + + + + Source + + Address of the Source of the SubRoute. The Address can consist of NetId, IPAddress or HostName. Wildcards are permitted. The Source system is the system that builds up the (Sub)Route-Connection to the Target System via the gateway. By default this is the Local system that builds up the SubRoute and must exist as Registered route on the current system or be the local system itself. A common user scenario is that this system is the Service Device. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) + + string + + System.String + + + + + + SourceRoute + + The Source Route of the SubRoute. The Source system is the system that builds up the (Sub)Route-Connection to the Target System via the gateway. By default this is the Local system that builds up the SubRoute and must exist as Registered route on the current system or be the local system itself. A common user scenario is that this system is the Service Device. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) + + RouteTarget + + TwinCAT.RouteTarget + + + + + + Gateway + + Gets or sets the Gateway System address. The Address can consist of NetId, IPAddress or HostName. Wildcards are allowed. The Gateway describes the ADS Device that acts as gateway between two (sub-)networks. This system must be reachable from the source and the target system which means that it is registered as route on the source system. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) This parameter is mandatory. + + string + + System.String + + + + + + GatewayRoute + + The Gateway system route. The Gateway describes the ADS Device that acts as gateway between two (sub-)networks. This system must be reachable from the source and the target system which means that it is registered as route on the source system. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) This parameter is mandatory. + + RouteTarget + + TwinCAT.RouteTarget + + + + + + Target + + The name / address of the target system. The Address can consist of NetId, IPAddress or HostName. Wildcards are allowed. The Target system is the system to which the source system builds up the (Sub)Route-Connection via the gateway. A common user scenario is that this system is the Machine Device. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) This parameter is mandatory. + + string + + System.String + + + + + + + SourceCredential + + The credentials of the source system (e.g. the Service Device) By default the Local system is used as source system. With this default no credentials are necessary. But if the source system is different from the local system (system where this Cmdlet runs), the credentials of that system must be specified. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) + + PSCredential + + System.Management.Automation.PSCredential + + + + + + GatewayCredential + + The credentials of the gateway system. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) This Parameter is mandatory. + + PSCredential + + System.Management.Automation.PSCredential + + + + + + TargetCredential + + The credentials of the target system (e.g. the Machine Device) SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) This parameter is mandatory. + + PSCredential + + System.Management.Automation.PSCredential + + + + + + Timeout + + (BroadCast) Search Timeout timout for searching the unregistered target system (Default 5000ms) + + int + + System.Int32 + + + 5000 + + + + + + System.String + + + + Address of the Source of the SubRoute. The Address can consist of NetId, IPAddress or HostName. Wildcards are permitted. The Source system is the system that builds up the (Sub)Route-Connection to the Target System via the gateway. By default this is the Local system that builds up the SubRoute and must exist as Registered route on the current system or be the local system itself. A common user scenario is that this system is the Service Device. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) + + + + + TwinCAT.RouteTarget + + + + The Source Route of the SubRoute. The Source system is the system that builds up the (Sub)Route-Connection to the Target System via the gateway. By default this is the Local system that builds up the SubRoute and must exist as Registered route on the current system or be the local system itself. A common user scenario is that this system is the Service Device. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) + + + + + System.String + + + + Gets or sets the Gateway System address. The Address can consist of NetId, IPAddress or HostName. Wildcards are allowed. The Gateway describes the ADS Device that acts as gateway between two (sub-)networks. This system must be reachable from the source and the target system which means that it is registered as route on the source system. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) This parameter is mandatory. + + + + + TwinCAT.RouteTarget + + + + The Gateway system route. The Gateway describes the ADS Device that acts as gateway between two (sub-)networks. This system must be reachable from the source and the target system which means that it is registered as route on the source system. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) This parameter is mandatory. + + + + + System.String + + + + The name / address of the target system. The Address can consist of NetId, IPAddress or HostName. Wildcards are allowed. The Target system is the system to which the source system builds up the (Sub)Route-Connection via the gateway. A common user scenario is that this system is the Machine Device. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) This parameter is mandatory. + + + + + System.Management.Automation.PSCredential + + + + The credentials of the source system (e.g. the Service Device) By default the Local system is used as source system. With this default no credentials are necessary. But if the source system is different from the local system (system where this Cmdlet runs), the credentials of that system must be specified. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) + + + + + System.Management.Automation.PSCredential + + + + The credentials of the gateway system. SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) This Parameter is mandatory. + + + + + System.Management.Automation.PSCredential + + + + The credentials of the target system (e.g. the Machine Device) SourceDevice (e.g Service System, engineering) <--> Gateway device (Connects Networks) <--> TargetDevice (e.g. Machine device CX) This parameter is mandatory. + + + + + + + ---------- EXAMPLE 1 ---------- + + > $gatewayTemp = Get-AdsRoute -Broadcast -name "GatewayPlant1" # Search for GatewaySystem + > $gatewayCred = Get-Credential -User "EngineeringDomain\UserName" -Message "Password Gateway" # Credentials of the Gateway + > $gateway = Add-AdsRoute -Credential $gatewayCred -temporary # Add the Gateway route temporary to the Service PC + + > $target = "CX_1234" # Host Name of the Machine Controller / Device + > $targetCred = Get-Credential -User "MachineParkDomain\UserName" -Message "Password Target System" # Credentials of the Gateway + + > Add-AdsSubRoute -GatewayRoute $gateway -GatewayCredential $gatewayCred -Target $target -TargetCredential $targetCred # Add the subroute + + Name NetId Address Sub TcVersion RTSystem + ---- ----- ------- --- --------- -------- + CX_1234 172.17.1.2.1.1 172.17.1.2 X 2.11.2246 Win7 + + + Search for the gateway system from local service PC, add its route temporarily and add a network segment crossing SubRoute connection to the target system CX_1234. + + + + + + + + Get-TcDataType + Get + TcDataType + + Get the DataTypes from a TwinCAT target system / Device. + + + + This Cmdlet get the DataTypes from a target system if symbolic information is provided by the device (Symbol Server running). The DataTypes can be determined via different Providers (e.g. ADS, MQTT, OPC, see the '-Provider' parameter.) + + + + + Get-TcDataType + + + Name + + The data type name(s) to get. Wildcards are permitted. + + string[] + + System.String[] + + + + + + Port + + The Port where to load the datatype descriptions. + + int + + System.Int32 + + + 10000 + + + + NetId + + The NetID address of the target system where to load the datatypes (Local by default). + + AmsNetId + + TwinCAT.Ads.AmsNetId + + + 172.17.60.215.1.1 + + + + + Get-TcDataType + + + Name + + The data type name(s) to get. Wildcards are permitted. + + string[] + + System.String[] + + + + + + Port + + The Port where to load the datatype descriptions. + + int + + System.Int32 + + + 10000 + + + + Route + + The Route object where to load the datatypes from (RouteTarget.Local by default). + + IRoute + + TwinCAT.IRoute + + + + + + + Get-TcDataType + + + Name + + The data type name(s) to get. Wildcards are permitted. + + string[] + + System.String[] + + + + + + Address + + The address where to load the datatype descriptions. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted. + + string + + System.String + + + + + + Port + + The Port where to load the datatype descriptions. + + int + + System.Int32 + + + 10000 + + + + + Get-TcDataType + + + Name + + The data type name(s) to get. Wildcards are permitted. + + string[] + + System.String[] + + + + + + InputObject + + The session object to use for datatype upload. + + ISession + + TwinCAT.ISession + + + + + + + Get-TcDataType + + + Name + + The data type name(s) to get. Wildcards are permitted. + + string[] + + System.String[] + + + + + + SessionId + + The unique session Identifier that represents the session to ose for the datatype upload. + + int + + System.Int32 + + + -1 + + + + + + + Name + + The data type name(s) to get. Wildcards are permitted. + + string[] + + System.String[] + + + + + + NetId + + The NetID address of the target system where to load the datatypes (Local by default). + + AmsNetId + + TwinCAT.Ads.AmsNetId + + + 172.17.60.215.1.1 + + + + Route + + The Route object where to load the datatypes from (RouteTarget.Local by default). + + IRoute + + TwinCAT.IRoute + + + + + Destination + + The Route object where to load the datatypes from (RouteTarget.Local by default). + This is an alias of the Route parameter. + + IRoute + + TwinCAT.IRoute + + + + + + Address + + The address where to load the datatype descriptions. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted. + + string + + System.String + + + + + + Port + + The Port where to load the datatype descriptions. + + int + + System.Int32 + + + 10000 + + + + InputObject + + The session object to use for datatype upload. + + ISession + + TwinCAT.ISession + + + + + Session + + The session object to use for datatype upload. + This is an alias of the InputObject parameter. + + ISession + + TwinCAT.ISession + + + + + + SessionId + + The unique session Identifier that represents the session to ose for the datatype upload. + + int + + System.Int32 + + + -1 + + + Id + + The unique session Identifier that represents the session to ose for the datatype upload. + This is an alias of the SessionId parameter. + + int + + System.Int32 + + + -1 + + + + + + TwinCAT.ISession + + + + The session object to use for datatype upload. + + + + + + + ---------- EXAMPLE 1 ---------- + + PS> Get-TcDataType -port 851 + Name Size Category BaseType + ---- ---- -------- -------- + BYTE 1 Primitive + WORD 2 Primitive + DINT 4 Primitive + UDINT 4 Primitive + DWORD 4 Primitive + E_ByteEnum 1 Enum BYTE + FB_Test 12424 Struct + PLC.PlcAppSystemInfo 256 Struct + PLC.PlcTaskSystemInfo 128 Struct + POINTER TO BYTE 4 Pointer BYTE + R_Range 2 Alias INT (-6..12) + REFERENCE TO BOOL 4 Reference BOOL + ST_SimpleStruct 166 Struct + STRING(80) 81 String + ... + + + Get the data types from the local system (Port 851): + + + + ---------- EXAMPLE 2 ---------- + PS> $types = Get-TcDataType -Name 'ST_*' -NetId 1.2.3.4.5.6 -Port 851 + + Gets the DataTypes with name pattern 'ST_*' from the NetId / Port address symbol server. + + + + ---------- EXAMPLE 3 ---------- + + PS> $session = New-TcSession -Name 'CX_123456' -port 851 + PS> Get-TcDataType -Session $session | where ByteSize -gt 1KB + + + Gets an ADS-Session/Connection to the target system CX_123456 on port 851, downloads the datatype information and returns all the DataTypes that are larger than 1KB of Size. + + + + + + + + Get-TcLicense + Get + TcLicense + + Get TwinCAT License information. + + + + This Cmdlet gets information about TwinCAT licenses from the target system. To contact the target system, it must be available as actual route or the local system. + + + + + Get-TcLicense + + + Name + + The name of the license to get. Wildcards are permitted. + + string[] + + System.String[] + + + + + + NetId + + The NetID address of the target system where to load the licenses (Local by default). + + AmsNetId + + TwinCAT.Ads.AmsNetId + + + 172.17.60.215.1.1 + + + + OrderId + + The OrderID of the license. Wildcards are permitted. + + string[] + + System.String[] + + + + + + Status + + The Status parameter selects the Licenses to return. Available is 'Valid' (the valid licenses), 'Invalid' (the invalid licenses) and 'All' ('Valid' + 'Invalid') licenses. The Default is 'All' + Possible values: None, Valid, Invalid, All + + LicenseStatus + + TwinCAT.SystemService.Commands.LicenseStatus + + + All + + None + Valid + Invalid + All + + + + + + Get-TcLicense + + + Route + + The Route object where to load the licenses from (RouteTarget.Local by default). + + IRoute + + TwinCAT.IRoute + + + + + + Name + + The name of the license to get. Wildcards are permitted. + + string[] + + System.String[] + + + + + + OrderId + + The OrderID of the license. Wildcards are permitted. + + string[] + + System.String[] + + + + + + Status + + The Status parameter selects the Licenses to return. Available is 'Valid' (the valid licenses), 'Invalid' (the invalid licenses) and 'All' ('Valid' + 'Invalid') licenses. The Default is 'All' + Possible values: None, Valid, Invalid, All + + LicenseStatus + + TwinCAT.SystemService.Commands.LicenseStatus + + + All + + None + Valid + Invalid + All + + + + + + Get-TcLicense + + + Address + + The address where to load the licenses. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted. + + string + + System.String + + + + + + Name + + The name of the license to get. Wildcards are permitted. + + string[] + + System.String[] + + + + + + OrderId + + The OrderID of the license. Wildcards are permitted. + + string[] + + System.String[] + + + + + + Status + + The Status parameter selects the Licenses to return. Available is 'Valid' (the valid licenses), 'Invalid' (the invalid licenses) and 'All' ('Valid' + 'Invalid') licenses. The Default is 'All' + Possible values: None, Valid, Invalid, All + + LicenseStatus + + TwinCAT.SystemService.Commands.LicenseStatus + + + All + + None + Valid + Invalid + All + + + + + + Get-TcLicense + + + InputObject + + The session object to use for license upload. This must target port 30 (AmsPort.R0_LicenseServer). + + ISession + + TwinCAT.ISession + + + + + + Name + + The name of the license to get. Wildcards are permitted. + + string[] + + System.String[] + + + + + + OrderId + + The OrderID of the license. Wildcards are permitted. + + string[] + + System.String[] + + + + + + Status + + The Status parameter selects the Licenses to return. Available is 'Valid' (the valid licenses), 'Invalid' (the invalid licenses) and 'All' ('Valid' + 'Invalid') licenses. The Default is 'All' + Possible values: None, Valid, Invalid, All + + LicenseStatus + + TwinCAT.SystemService.Commands.LicenseStatus + + + All + + None + Valid + Invalid + All + + + + + + Get-TcLicense + + + SessionId + + The unique session Identifier that represents the session to use for the license upload. + + int + + System.Int32 + + + -1 + + + + Name + + The name of the license to get. Wildcards are permitted. + + string[] + + System.String[] + + + + + + OrderId + + The OrderID of the license. Wildcards are permitted. + + string[] + + System.String[] + + + + + + Status + + The Status parameter selects the Licenses to return. Available is 'Valid' (the valid licenses), 'Invalid' (the invalid licenses) and 'All' ('Valid' + 'Invalid') licenses. The Default is 'All' + Possible values: None, Valid, Invalid, All + + LicenseStatus + + TwinCAT.SystemService.Commands.LicenseStatus + + + All + + None + Valid + Invalid + All + + + + + + + + Name + + The name of the license to get. Wildcards are permitted. + + string[] + + System.String[] + + + + + + OrderId + + The OrderID of the license. Wildcards are permitted. + + string[] + + System.String[] + + + + + + NetId + + The NetID address of the target system where to load the licenses (Local by default). + + AmsNetId + + TwinCAT.Ads.AmsNetId + + + 172.17.60.215.1.1 + + + + Route + + The Route object where to load the licenses from (RouteTarget.Local by default). + + IRoute + + TwinCAT.IRoute + + + + + Destination + + The Route object where to load the licenses from (RouteTarget.Local by default). + This is an alias of the Route parameter. + + IRoute + + TwinCAT.IRoute + + + + + + Address + + The address where to load the licenses. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted. + + string + + System.String + + + + + + InputObject + + The session object to use for license upload. This must target port 30 (AmsPort.R0_LicenseServer). + + ISession + + TwinCAT.ISession + + + + + Session + + The session object to use for license upload. This must target port 30 (AmsPort.R0_LicenseServer). + This is an alias of the InputObject parameter. + + ISession + + TwinCAT.ISession + + + + + + SessionId + + The unique session Identifier that represents the session to use for the license upload. + + int + + System.Int32 + + + -1 + + + Id + + The unique session Identifier that represents the session to use for the license upload. + This is an alias of the SessionId parameter. + + int + + System.Int32 + + + -1 + + + + Status + + The Status parameter selects the Licenses to return. Available is 'Valid' (the valid licenses), 'Invalid' (the invalid licenses) and 'All' ('Valid' + 'Invalid') licenses. The Default is 'All' + Possible values: None, Valid, Invalid, All + + LicenseStatus + + TwinCAT.SystemService.Commands.LicenseStatus + + + All + + None + Valid + Invalid + All + + + + + + + TwinCAT.Ads.AmsNetId + + + + The NetID address of the target system where to load the licenses (Local by default). + + + + + TwinCAT.IRoute + + + + The Route object where to load the licenses from (RouteTarget.Local by default). + + + + + System.String + + + + The address where to load the licenses. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted. + + + + + TwinCAT.ISession + + + + The session object to use for license upload. This must target port 30 (AmsPort.R0_LicenseServer). + + + + + + + ---------- EXAMPLE 1 ---------- + PS> Get-TcLicense + + Get the the valid licenses from the local system. + + + + ---------- EXAMPLE 2 ---------- + + PS> $session = New-TcSession -Route TC3TESTA1-CP67X -Port 30 + PS> $session | Get-TcLicense -Status All -name *scope* + + Name Valid ValidityCode ExpireTime Available Used VolumeNo + ---- ----- ------------ ---------- --------- ---- -------- + TC3 Scope Server X Valid CPU License 0 0 + TC3 Scope View Professional X Valid CPU License 0 0 + + + Create a session to the License Server on target 'TC3TESTA1-CP67X' and return all valid and invalid licenses that contain 'scope' in their name. + + + + ---------- EXAMPLE 3 ---------- + + PS> Get-TcLicense -Route TC3TESTA1-CP67X -Status Valid + + Name Valid ValidityCode ExpireTime Available Used VolumeNo + ---- ----- ------------ ---------- --------- ---- -------- + TC3 C++ / MatSim X Valid CPU License 0 0 + TC3 CNC X Valid CPU License 0 0 + TC3 Target For Matlab Simulink X Valid CPU License 0 0 + TC3 CNC Axis X Valid CPU License 0 0 + TC3 Serial-Communication X Valid CPU License 0 0 + TC3 NC PTP Axes Pack unlimited X Valid CPU License 0 0 + TC3 PLC / C++ / MatSim X Valid CPU License 0 0 + TC3 Kinematic Transformation L4 X Valid CPU License 0 0 + TC3 NC Camming X Valid CPU License 0 0 + TC3 PLC-HMI Web X Valid CPU License 0 0 + TC3 NC Flying Saw X Valid CPU License 0 0 + TC3 CNC Spline X Valid CPU License 0 0 + TC3 SMS-SMTP X Valid CPU License 0 0 + TC3 Hydraulic Positioning X Valid CPU License 0 0 + TC3 Kinematic Transformation L1 X Valid CPU License 0 0 + ... + + + Connect to the License Server on target 'TC3TESTa1-CP67X' and return all valid licenses. + + + + ---------- EXAMPLE 4 ---------- + + > Get-TcLicense -NetId 172.17.60.153.1.1 -Status Invalid | format-list + + + Id : 4c256767-e6e6-4af5-bd68-9f7abad0c200 + Name : TC3 ADS + ExpireTime : 8/17/2017 12:00:00 AM + ValidityCode : Expired + Valid : False + AvailableLicenses : 0 + UsedLicenses : 0 + VolumeNo : 0 + + Id : 66689887-ccbd-452c-ac9a-039d997c6e66 + Name : TC3 PLC + ExpireTime : 8/17/2017 12:00:00 AM + ValidityCode : Expired + Valid : False + AvailableLicenses : 0 + UsedLicenses : 0 + VolumeNo : 0 + + Id : 3ff18e97-7754-401b-93fb-70544de28a13 + Name : TC3 IO + ExpireTime : 8/17/2017 12:00:00 AM + ValidityCode : Expired + Valid : False + AvailableLicenses : 0 + UsedLicenses : 0 + VolumeNo : 0 + + + Connect to NetId 172.17.60.153.1.1, determine all invalid licenses and format the result into a list. + + + + ---------- EXAMPLE 5 ---------- + + > Get-TcLicense -OrderId TE* + + OrderID Name Valid ValidityCode ExpireTime Available Used VolumeNo + ------- ---- ----- ------------ ---------- --------- ---- -------- + TE1400 TC3 Target For Matlab Simulink X Valid CPU License 0 0 + TE1500 TC3 Valve-Diagram-Editor X Valid CPU License 0 0 + TE1120 TC3 XCAD Interface X Valid CPU License 0 0 + TE1510 TC3 Cam-Design-Tool X Valid CPU License 0 0 + TE1110 TC3 Simulation Manager X Valid CPU License 0 0 + TE1111 TC3 EtherCAT Simulation X Valid CPU License 0 0 + TE1410 TC3 Interface For Matlab Simulink X Valid CPU License 0 0 + TE1300 TC3 Scope View Professional X Valid CPU License 0 0 + + + Get the valid licenses from local system and filter them for OrderIds starting with TE*. + + + + + + + + Send-TcReadWrite + Send + TcReadWrite + + Sends a Read/Write access to ADS Server / TwinCAT Devices. + + + + This Cmdlet Read/Writes values from/to TwinCAT Devices and works with different ValueProviders. Because this is a low level data access, only IndexGroup/IndexOffset addressing is available. + IMPORTANT: Sending Read/Write commands should be done with highest care because it could destabilize the TwinCAT System when the write operation is not addressed properly. To enhance secure operation, the user is enforced to use Length parameters in conjunction with the in/out values which will be checked by the Cmdlet. The highest attention should also be taken with the IndexGroup/IndexOffset because that represents the Address in the Process Image and cannot be checked by principle. To prevent that process image overwrites important data by accident please use the -WhatIf and -Confirm parameters whenever it is appropriate and inform about the $ConfirmPreference settings ( PS> get-help about_Preference_Variables) before usage of the Send-TcReadWrite Cmdlet. + + + + + Send-TcReadWrite + + + IndexGroup + + IndexGroup of the Value to ReadWrite, only for IndexGroup/IndexOffset access. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset can overwrite data in the ProcessImage and posibly destabilizes the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! + + uint + + System.UInt32 + + + 0 + + + + Port + + The Port, where to read/write the value. This Parameter is used in combination with the NetId, Route or Address input parameter. + + int + + System.Int32 + + + 10000 + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Encoding + + Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page) + + Encoding + + System.Text.Encoding + + + System.Text.SBCSCodePageEncoding + + + + Force + + Suppress the 'ShouldProcess' message and forces the write. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + IndexOffset + + IndexOffset of the Value to write, only for IndexGroup/IndexOffset access. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred! + + uint + + System.UInt32 + + + 0 + + + + NetId + + The ADS target NetID(s) of the system(s) where to read/write the Value. More than one target will be supported. When not specified, this argument defaults to AmsNetId.Local. + + AmsNetId[] + + TwinCAT.Ads.AmsNetId[] + + + 172.17.60.215.1.1 + + + + ReadLength + + The Length of the data that will be read from the process image. + By default, when not specifiying this parameter the marshalling size of the -ReadType parameter will be taken. This -ReadLength parameter is only helpful when the marshalling size cannot be determined from the read type (e.g. byte[]) + + int + + System.Int32 + + + -1 + + + + ReadType + + Use the ReadType parameter to specify the Read/Return type of the data. + If not used, this cmdlet returns the raw byte[] as result. + + Type + + System.Type + + + System.Byte[] + + + + WriteLength + + The Length of the data that will be overwritten within the process image. + By default the marshal size of the object used in the -WriteValue parameter is taken. This parameter is used to override the marshal size and can be helpful to secure the write operation - to not overwrite more data then expected. + + int + + System.Int32 + + + -1 + + + + WriteValue + + The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshals this value to its appropriate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters). + + object + + System.Object + + + + + + + Send-TcReadWrite + + + Address + + The target address where to read/write the Value. The Address can consist of RouteName, NetId, HostName or IPAddress. Wildcards are permitted. + + string[] + + System.String[] + + + + + + IndexGroup + + IndexGroup of the Value to ReadWrite, only for IndexGroup/IndexOffset access. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset can overwrite data in the ProcessImage and posibly destabilizes the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! + + uint + + System.UInt32 + + + 0 + + + + Port + + The Port, where to read/write the value. This Parameter is used in combination with the NetId, Route or Address input parameter. + + int + + System.Int32 + + + 10000 + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Encoding + + Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page) + + Encoding + + System.Text.Encoding + + + System.Text.SBCSCodePageEncoding + + + + Force + + Suppress the 'ShouldProcess' message and forces the write. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + IndexOffset + + IndexOffset of the Value to write, only for IndexGroup/IndexOffset access. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred! + + uint + + System.UInt32 + + + 0 + + + + ReadLength + + The Length of the data that will be read from the process image. + By default, when not specifiying this parameter the marshalling size of the -ReadType parameter will be taken. This -ReadLength parameter is only helpful when the marshalling size cannot be determined from the read type (e.g. byte[]) + + int + + System.Int32 + + + -1 + + + + ReadType + + Use the ReadType parameter to specify the Read/Return type of the data. + If not used, this cmdlet returns the raw byte[] as result. + + Type + + System.Type + + + System.Byte[] + + + + WriteLength + + The Length of the data that will be overwritten within the process image. + By default the marshal size of the object used in the -WriteValue parameter is taken. This parameter is used to override the marshal size and can be helpful to secure the write operation - to not overwrite more data then expected. + + int + + System.Int32 + + + -1 + + + + WriteValue + + The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshals this value to its appropriate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters). + + object + + System.Object + + + + + + + Send-TcReadWrite + + + IndexGroup + + IndexGroup of the Value to ReadWrite, only for IndexGroup/IndexOffset access. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset can overwrite data in the ProcessImage and posibly destabilizes the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! + + uint + + System.UInt32 + + + 0 + + + + Port + + The Port, where to read/write the value. This Parameter is used in combination with the NetId, Route or Address input parameter. + + int + + System.Int32 + + + 10000 + + + + Route + + The target system (as Route) where to read/write the value. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Encoding + + Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page) + + Encoding + + System.Text.Encoding + + + System.Text.SBCSCodePageEncoding + + + + Force + + Suppress the 'ShouldProcess' message and forces the write. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + IndexOffset + + IndexOffset of the Value to write, only for IndexGroup/IndexOffset access. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred! + + uint + + System.UInt32 + + + 0 + + + + ReadLength + + The Length of the data that will be read from the process image. + By default, when not specifiying this parameter the marshalling size of the -ReadType parameter will be taken. This -ReadLength parameter is only helpful when the marshalling size cannot be determined from the read type (e.g. byte[]) + + int + + System.Int32 + + + -1 + + + + ReadType + + Use the ReadType parameter to specify the Read/Return type of the data. + If not used, this cmdlet returns the raw byte[] as result. + + Type + + System.Type + + + System.Byte[] + + + + WriteLength + + The Length of the data that will be overwritten within the process image. + By default the marshal size of the object used in the -WriteValue parameter is taken. This parameter is used to override the marshal size and can be helpful to secure the write operation - to not overwrite more data then expected. + + int + + System.Int32 + + + -1 + + + + WriteValue + + The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshals this value to its appropriate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters). + + object + + System.Object + + + + + + + Send-TcReadWrite + + + IndexGroup + + IndexGroup of the Value to ReadWrite, only for IndexGroup/IndexOffset access. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset can overwrite data in the ProcessImage and posibly destabilizes the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! + + uint + + System.UInt32 + + + 0 + + + + Session + + The session object represents the target session where to read/write the value. + + ISession[] + + TwinCAT.ISession[] + + + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Encoding + + Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page) + + Encoding + + System.Text.Encoding + + + System.Text.SBCSCodePageEncoding + + + + Force + + Suppress the 'ShouldProcess' message and forces the write. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + IndexOffset + + IndexOffset of the Value to write, only for IndexGroup/IndexOffset access. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred! + + uint + + System.UInt32 + + + 0 + + + + ReadLength + + The Length of the data that will be read from the process image. + By default, when not specifiying this parameter the marshalling size of the -ReadType parameter will be taken. This -ReadLength parameter is only helpful when the marshalling size cannot be determined from the read type (e.g. byte[]) + + int + + System.Int32 + + + -1 + + + + ReadType + + Use the ReadType parameter to specify the Read/Return type of the data. + If not used, this cmdlet returns the raw byte[] as result. + + Type + + System.Type + + + System.Byte[] + + + + WriteLength + + The Length of the data that will be overwritten within the process image. + By default the marshal size of the object used in the -WriteValue parameter is taken. This parameter is used to override the marshal size and can be helpful to secure the write operation - to not overwrite more data then expected. + + int + + System.Int32 + + + -1 + + + + WriteValue + + The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshals this value to its appropriate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters). + + object + + System.Object + + + + + + + Send-TcReadWrite + + + IndexGroup + + IndexGroup of the Value to ReadWrite, only for IndexGroup/IndexOffset access. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset can overwrite data in the ProcessImage and posibly destabilizes the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! + + uint + + System.UInt32 + + + 0 + + + + SessionId + + The session ID represents the target session where to read/write the value. + + int[] + + System.Int32[] + + + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Encoding + + Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page) + + Encoding + + System.Text.Encoding + + + System.Text.SBCSCodePageEncoding + + + + Force + + Suppress the 'ShouldProcess' message and forces the write. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + IndexOffset + + IndexOffset of the Value to write, only for IndexGroup/IndexOffset access. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred! + + uint + + System.UInt32 + + + 0 + + + + ReadLength + + The Length of the data that will be read from the process image. + By default, when not specifiying this parameter the marshalling size of the -ReadType parameter will be taken. This -ReadLength parameter is only helpful when the marshalling size cannot be determined from the read type (e.g. byte[]) + + int + + System.Int32 + + + -1 + + + + ReadType + + Use the ReadType parameter to specify the Read/Return type of the data. + If not used, this cmdlet returns the raw byte[] as result. + + Type + + System.Type + + + System.Byte[] + + + + WriteLength + + The Length of the data that will be overwritten within the process image. + By default the marshal size of the object used in the -WriteValue parameter is taken. This parameter is used to override the marshal size and can be helpful to secure the write operation - to not overwrite more data then expected. + + int + + System.Int32 + + + -1 + + + + WriteValue + + The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshals this value to its appropriate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters). + + object + + System.Object + + + + + + + + + IndexGroup + + IndexGroup of the Value to ReadWrite, only for IndexGroup/IndexOffset access. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset can overwrite data in the ProcessImage and posibly destabilizes the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! + + uint + + System.UInt32 + + + 0 + + + IG + + IndexGroup of the Value to ReadWrite, only for IndexGroup/IndexOffset access. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset can overwrite data in the ProcessImage and posibly destabilizes the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! + This is an alias of the IndexGroup parameter. + + uint + + System.UInt32 + + + 0 + + + + IndexOffset + + IndexOffset of the Value to write, only for IndexGroup/IndexOffset access. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred! + + uint + + System.UInt32 + + + 0 + + + IO + + IndexOffset of the Value to write, only for IndexGroup/IndexOffset access. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred! + This is an alias of the IndexOffset parameter. + + uint + + System.UInt32 + + + 0 + + + + WriteValue + + The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshals this value to its appropriate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters). + + object + + System.Object + + + + + + WriteLength + + The Length of the data that will be overwritten within the process image. + By default the marshal size of the object used in the -WriteValue parameter is taken. This parameter is used to override the marshal size and can be helpful to secure the write operation - to not overwrite more data then expected. + + int + + System.Int32 + + + -1 + + + + ReadLength + + The Length of the data that will be read from the process image. + By default, when not specifiying this parameter the marshalling size of the -ReadType parameter will be taken. This -ReadLength parameter is only helpful when the marshalling size cannot be determined from the read type (e.g. byte[]) + + int + + System.Int32 + + + -1 + + + + ReadType + + Use the ReadType parameter to specify the Read/Return type of the data. + If not used, this cmdlet returns the raw byte[] as result. + + Type + + System.Type + + + System.Byte[] + + + + NetId + + The ADS target NetID(s) of the system(s) where to read/write the Value. More than one target will be supported. When not specified, this argument defaults to AmsNetId.Local. + + AmsNetId[] + + TwinCAT.Ads.AmsNetId[] + + + 172.17.60.215.1.1 + + + + Route + + The target system (as Route) where to read/write the value. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + Destination + + The target system (as Route) where to read/write the value. + This is an alias of the Route parameter. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + + Address + + The target address where to read/write the Value. The Address can consist of RouteName, NetId, HostName or IPAddress. Wildcards are permitted. + + string[] + + System.String[] + + + + + + Session + + The session object represents the target session where to read/write the value. + + ISession[] + + TwinCAT.ISession[] + + + + + + SessionId + + The session ID represents the target session where to read/write the value. + + int[] + + System.Int32[] + + + + + + Port + + The Port, where to read/write the value. This Parameter is used in combination with the NetId, Route or Address input parameter. + + int + + System.Int32 + + + 10000 + + + + Encoding + + Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page) + + Encoding + + System.Text.Encoding + + + System.Text.SBCSCodePageEncoding + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Force + + Suppress the 'ShouldProcess' message and forces the write. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + TwinCAT.ISession[] + + + + The session object represents the target session where to read/write the value. + + + + + + + ---------- EXAMPLE 1 ---------- + + > Send-TcReadWrite -NetId 1.2.3.4.5.6 -Port 851 -IndexGroup SymbolValueByName -IndexOffset 0 -WriteValue "TwinCAT_SystemInfoVarList._AppInfo.ProjectName" -ReadType string -ReadLength 1024 + + ReadWrite access of process image on target '1.2.3.4.5.6:851': + Start ReadWrite operation WriteData: 'TwinCAT_SystemInfoVarList._AppInfo.ProjectName'(IG:0xf004,IO:0x0000,Len:47), + Read: Type 'System.String' (Len:'1024) on target '1.2.3.4.5.6:851'? + [Y] Yes[A] Yes to All[N] No[L] No to All[S] Suspend[?] Help(default is "Y"): y + ADS_DynSymbols + + + Sends a Read/Write request with index group 0xf004 (SymbolValueByName) and offset 0. The write data will be initialized with the project symbol path and an returned (read) string (Default encoded) returned. + + + + ---------- EXAMPLE 2 ---------- + + > Send-TcReadWrite -NetId 1.2.3.4.5.6 -Port 851 -IndexGroup SymbolValueByName -WriteValue "TwinCAT_SystemInfoVarList._AppInfo.ProjectName" -ReadLength 64 | format-hex + + ReadWrite access of process image on target '1.2.3.4.5.6:851': + Start ReadWrite operation WriteData: 'TwinCAT_SystemInfoVarList._AppInfo.ProjectName'(IG:0xf004,IO:0x0000,Len:47), + Read: Type 'System.Byte[]' (Len:'64) on target '1.2.3.4.5.6:851'? + [Y] Yes[A] Yes to All[N] No[L] No to All[S] Suspend[?] Help(default is "Y"): y + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + + 00000000 41 44 53 5F 44 79 6E 53 79 6D 62 6F 6C 73 00 00 ADS_DynSymbols.. + 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + + + Sends a Read/Write request with index group 0xf004 (SymbolValueByName) and offset 0. The write data will be initialized with the project symbol path and the returned (read) data is by default a byte array of 64 bytes. The result value will be formatted as hex code. + + + + ---------- EXAMPLE 3 ---------- + + PS> $route = Get-AdsRoute -Name 'CX-123456' + PS> $session = $route | New-TcSession -Port 851 + PS> $handle = $session | Send-TcReadWrite -IndexGroup SymbolHandleByName -WriteValue "GVL.vgInt" -ReadType Int32 -force + PS> $session | Read-TcValue -IndexGroup SymbolValueByHandle -IndexOffset $handle -ValueType Int16 + 42 + + + Create a session to the PLC (Port 851) of a target system, determine the SymbolHandle by InstancePath and use this handle to read its 'Int16' Value (INT on PLC System). + + + + + + + + Get-TcRouterInfo + Get + TcRouterInfo + + Gets the router status information of the specified target system. + + + + This Cmdlet gets status information from the specified target system. To contact the target system, it must be available as actual route or must be the local system. The status information contains the amout of overall router memory and the used memory. Furthermore the number of active connections and the size of the actual router mailbox will be shown. + + + + + Get-TcRouterInfo + + + NetId + + NetId(s) of the target system. + + AmsNetId[] + + TwinCAT.Ads.AmsNetId[] + + + 172.17.60.215.1.1 + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + Timeout of the seperata ADS Read operations + + int + + System.Int32 + + + 2500 + + + + + Get-TcRouterInfo + + + InputObject + + The route object where to get the Target information from.. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + Timeout of the seperata ADS Read operations + + int + + System.Int32 + + + 2500 + + + + + Get-TcRouterInfo + + + Address + + Target names/addresses. These can consist of RouteName, NetID, HostName or IPAddress. Wildcards are permitted. + + string[] + + System.String[] + + + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + Timeout of the seperata ADS Read operations + + int + + System.Int32 + + + 2500 + + + + + Get-TcRouterInfo + + + Session + + The Session to use for the value read. + + ISession[] + + TwinCAT.ISession[] + + + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + Timeout of the seperata ADS Read operations + + int + + System.Int32 + + + 2500 + + + + + Get-TcRouterInfo + + + SessionId + + Specifies the Session (with unique ID) to use for the value read. + + int[] + + System.Int32[] + + + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + Timeout of the seperata ADS Read operations + + int + + System.Int32 + + + 2500 + + + + + + + NetId + + NetId(s) of the target system. + + AmsNetId[] + + TwinCAT.Ads.AmsNetId[] + + + 172.17.60.215.1.1 + + + + InputObject + + The route object where to get the Target information from.. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + Destination + + The route object where to get the Target information from.. + This is an alias of the InputObject parameter. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + Route + + The route object where to get the Target information from.. + This is an alias of the InputObject parameter. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + + Address + + Target names/addresses. These can consist of RouteName, NetID, HostName or IPAddress. Wildcards are permitted. + + string[] + + System.String[] + + + + + Name + + Target names/addresses. These can consist of RouteName, NetID, HostName or IPAddress. Wildcards are permitted. + This is an alias of the Address parameter. + + string[] + + System.String[] + + + + + + Session + + The Session to use for the value read. + + ISession[] + + TwinCAT.ISession[] + + + + + + SessionId + + Specifies the Session (with unique ID) to use for the value read. + + int[] + + System.Int32[] + + + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + Timeout of the seperata ADS Read operations + + int + + System.Int32 + + + 2500 + + + + + + TwinCAT.RouteTargetCollection + + + + The route object where to get the Target information from.. + + + + + TwinCAT.ISession[] + + + + The Session to use for the value read. + + + + + + + ---------- EXAMPLE 1 ---------- + + PS > Get-TcRouterInfo + + Target Version Level OS Image Device CPUArch + ------ ------- ----- -- ----- ------ ------- + TC3TESTA1-CP67X 3.1.4021.54 CP Win7 IntelX86 + + + Get router information from the local system. + + + + + + + + Close-TcSession + Close + TcSession + + Closes the specified session object. + + + + This Cmdlet closes the specified Point-To-Point Connection to the TwinCAT Target that is represented by the returned session object. All registered SessionProvider types of Sessions can be used here (e.g. ADS, MQTT, OPC). + + + + + Close-TcSession + + + Id + + The session object to close is specified by this session ID. + + int + + System.Int32 + + + 0 + + + + + Close-TcSession + + + InputObject + + The Session object to close. + + ISession + + TwinCAT.ISession + + + + + + + + + Id + + The session object to close is specified by this session ID. + + int + + System.Int32 + + + 0 + + + + InputObject + + The Session object to close. + + ISession + + TwinCAT.ISession + + + + + Session + + The Session object to close. + This is an alias of the InputObject parameter. + + ISession + + TwinCAT.ISession + + + + + + + + TwinCAT.ISession + + + + The Session object to close. + + + + + + + ---------- EXAMPLE 1 ---------- + + Closes the ADS Session: + + PS > Close-AdsSession $session + + + + + + + Get-TcSession + Get + TcSession + + List the currently established Sessions. + + + + This Cmdlet lists all actually Point-To-Point connections to TwinCAT Targets in form of their session representation. Different types of Sessions can be accessed via the registered types of SessionProviders (e.g. ADS, MQTT, OPC). + + + + + Get-TcSession + + + Id + + Specifies the ID of the session to get. + + int + + System.Int32 + + + 0 + + + + Force + + Forces the Cmdlet to determine also the internal used sessions. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + + Id + + Specifies the ID of the session to get. + + int + + System.Int32 + + + 0 + + + + Force + + Forces the Cmdlet to determine also the internal used sessions. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + + ---------- EXAMPLE 1 ---------- + + List all actual sessions: + + PS > Get-TcSession + + + + + + + New-TcSession + New + TcSession + + Create a new session to a TwinCAT Target. + + + + Creates a new Point-To-Point Connection to a TwinCAT Target that is represented by the returned session object. Different types of Sessions can be accessed by the registered types of SessionProviders (e.g. ADS, MQTT, OPC). + + + + + New-TcSession + + + NetId + + The NetID Address + + AmsNetId + + TwinCAT.Ads.AmsNetId + + + 172.17.60.215.1.1 + + + + Port + + The AmsPort Address of the new session. + + int + + System.Int32 + + + 10000 + + + + + New-TcSession + + + InputObject + + The route target object. + + IRoute + + TwinCAT.IRoute + + + + + + Port + + The AmsPort Address of the new session. + + int + + System.Int32 + + + 10000 + + + + + New-TcSession + + + Address + + The target address of the new session. This can be the NetId, the HostName or the IPAddress. Wildcards are permitted. + + string + + System.String + + + + + + Port + + The AmsPort Address of the new session. + + int + + System.Int32 + + + 10000 + + + + Provider + + Selects the session provider registered on the System (ADS by default) + + string + + System.String + + + + + + + + + NetId + + The NetID Address + + AmsNetId + + TwinCAT.Ads.AmsNetId + + + 172.17.60.215.1.1 + + + + InputObject + + The route target object. + + IRoute + + TwinCAT.IRoute + + + + + Destination + + The route target object. + This is an alias of the InputObject parameter. + + IRoute + + TwinCAT.IRoute + + + + + Route + + The route target object. + This is an alias of the InputObject parameter. + + IRoute + + TwinCAT.IRoute + + + + + + Provider + + Selects the session provider registered on the System (ADS by default) + + string + + System.String + + + + + + Address + + The target address of the new session. This can be the NetId, the HostName or the IPAddress. Wildcards are permitted. + + string + + System.String + + + + + Name + + The target address of the new session. This can be the NetId, the HostName or the IPAddress. Wildcards are permitted. + This is an alias of the Address parameter. + + string + + System.String + + + + + + Port + + The AmsPort Address of the new session. + + int + + System.Int32 + + + 10000 + + + + + + TwinCAT.IRoute + + + + The route target object. + + + + + + + ---------- EXAMPLE 1 ---------- + + PS> $route = Get-AdsRoute -Name "Tc3*" + PS> $session = New-TcSession -Route $route -Port 851 + PS> $session + + ID Address IsConnected EstablishedAt + -- ------- ----------- ------------- + 5 172.17.62.105.1.1:851 True 12/12/2016 12:22:02 PM + + + Establishes a new ADS Session/Connection to the specified route destination that has the name pattern "tc3*" via port 851 (PLC1) + + + + ---------- EXAMPLE 2 ---------- + + PS> New-TcSession -NetId '172.17.62.105.1.1' -port 851 + + ID Address IsConnected EstablishedAt + -- ------- ----------- ------------- + 5 172.17.62.105.1.1:851 True 12/12/2016 12:22:02 PM /// + + + Establishes a new Ads Session/Connection to the specified NetId/Port address. + + + + ---------- EXAMPLE 3 ---------- + + PS> New-TcSession -Name 'CX_123456' -port 851 + + ID Address IsConnected EstablishedAt + -- ------- ----------- ------------- + 5 172.17.62.105.1.1:851 True 12/12/2016 12:22:02 PM /// + + + Establishes a new Ads Session/Connection to the target system with the Name/HostName 'CX_123456' (Port 851). + + + + + + + + Get-TcSymbol + Get + TcSymbol + + Get the symbols from a TwinCAT target system / Device. + + + + This Cmdlet get the symbolic information from a target system if symbols are provided. The information can be determined via different Providers (e.g. ADS, MQTT, OPC). + + + + + Get-TcSymbol + + + Path + + The instance path of the Symbol(s). Wildcards are permitted. + + string[] + + System.String[] + + + + + + Port + + The target system port. + + int + + System.Int32 + + + 10000 + + + + Force + + Active only in recursive mode - ignored otherwise. This parameter forces the Cmdlet to output all symbols - even Array Elements. Please take care because the output can be very lengthy dependent on the Size of the Array. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + NetId + + The target system NetId. + + AmsNetId + + TwinCAT.Ads.AmsNetId + + + 172.17.60.215.1.1 + + + + Recurse + + Gets the symbol recursively. Often used in conjunction with Wildcards in -Path + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + Get-TcSymbol + + + Path + + The instance path of the Symbol(s). Wildcards are permitted. + + string[] + + System.String[] + + + + + + Port + + The target system port. + + int + + System.Int32 + + + 10000 + + + + Route + + The target system route. + + IRoute + + TwinCAT.IRoute + + + + + + Force + + Active only in recursive mode - ignored otherwise. This parameter forces the Cmdlet to output all symbols - even Array Elements. Please take care because the output can be very lengthy dependent on the Size of the Array. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Recurse + + Gets the symbol recursively. Often used in conjunction with Wildcards in -Path + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + Get-TcSymbol + + + Path + + The instance path of the Symbol(s). Wildcards are permitted. + + string[] + + System.String[] + + + + + + Address + + The address for the target system where to get the symbol.. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted. + + string + + System.String + + + + + + Port + + The target system port. + + int + + System.Int32 + + + 10000 + + + + Force + + Active only in recursive mode - ignored otherwise. This parameter forces the Cmdlet to output all symbols - even Array Elements. Please take care because the output can be very lengthy dependent on the Size of the Array. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Recurse + + Gets the symbol recursively. Often used in conjunction with Wildcards in -Path + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + Get-TcSymbol + + + Path + + The instance path of the Symbol(s). Wildcards are permitted. + + string[] + + System.String[] + + + + + + InputObject + + The session object that is used to get the symbols. + + ISession + + TwinCAT.ISession + + + + + + Force + + Active only in recursive mode - ignored otherwise. This parameter forces the Cmdlet to output all symbols - even Array Elements. Please take care because the output can be very lengthy dependent on the Size of the Array. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Recurse + + Gets the symbol recursively. Often used in conjunction with Wildcards in -Path + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + Get-TcSymbol + + + Path + + The instance path of the Symbol(s). Wildcards are permitted. + + string[] + + System.String[] + + + + + + SessionId + + The unique id of the session object that is used to get the symbols. + + int + + System.Int32 + + + -1 + + + + Force + + Active only in recursive mode - ignored otherwise. This parameter forces the Cmdlet to output all symbols - even Array Elements. Please take care because the output can be very lengthy dependent on the Size of the Array. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Recurse + + Gets the symbol recursively. Often used in conjunction with Wildcards in -Path + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + + Path + + The instance path of the Symbol(s). Wildcards are permitted. + + string[] + + System.String[] + + + + + + NetId + + The target system NetId. + + AmsNetId + + TwinCAT.Ads.AmsNetId + + + 172.17.60.215.1.1 + + + + Route + + The target system route. + + IRoute + + TwinCAT.IRoute + + + + + + Address + + The address for the target system where to get the symbol.. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted. + + string + + System.String + + + + + + Port + + The target system port. + + int + + System.Int32 + + + 10000 + + + + InputObject + + The session object that is used to get the symbols. + + ISession + + TwinCAT.ISession + + + + + + SessionId + + The unique id of the session object that is used to get the symbols. + + int + + System.Int32 + + + -1 + + + Id + + The unique id of the session object that is used to get the symbols. + This is an alias of the SessionId parameter. + + int + + System.Int32 + + + -1 + + + + Recurse + + Gets the symbol recursively. Often used in conjunction with Wildcards in -Path + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Force + + Active only in recursive mode - ignored otherwise. This parameter forces the Cmdlet to output all symbols - even Array Elements. Please take care because the output can be very lengthy dependent on the Size of the Array. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + ArrayElements + + Active only in recursive mode - ignored otherwise. This parameter forces the Cmdlet to output all symbols - even Array Elements. Please take care because the output can be very lengthy dependent on the Size of the Array. + This is an alias of the Force parameter. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + TwinCAT.ISession + + + + The session object that is used to get the symbols. + + + + + + + ---------- EXAMPLE 1 ---------- + + PS> Get-TcSymbol -port 851 + InstanceName DataType Size InstancePath + ------------ -------- ---- ------------ + tc2vBool BOOL 1 .tc2vBool + tc2vInt INT 2 .tc2vInt + Constants 0 Constants + GVL 0 GVL + MAIN 0 MAIN + Slow 0 Slow + TwinCAT_SystemInfoVarList 0 TwinCAT_SystemInfoVarList + + + Get the root symbolic information from the local system (Port 851): + + + + ---------- EXAMPLE 2 ---------- + + PS>$session = New-TcSession -NetId 1.2.3.4.5.6 -Port 851 + PS>$session | Get-TcSymbol "TwinCAT_SystemInfoVarList._AppInfo" -recurse + + InstanceName DataType Size InstancePath + ------------ -------- ---- ------------ + _AppInfo PLC.PlcAppSystemInfo 256 TwinCAT_SystemInfoVarList._AppInfo + ObjId OTCID 4 TwinCAT_SystemInfoVarList._AppInfo.ObjId + TaskCnt UDINT 4 TwinCAT_SystemInfoVarList._AppInfo.TaskCnt + OnlineChangeCnt UDINT 4 TwinCAT_SystemInfoVarList._AppInfo.OnlineChangeCnt + Flags DWORD 4 TwinCAT_SystemInfoVarList._AppInfo.Flags + AdsPort UINT 2 TwinCAT_SystemInfoVarList._AppInfo.AdsPort + BootDataLoaded BOOL 1 TwinCAT_SystemInfoVarList._AppInfo.BootDataLoaded + OldBootData BOOL 1 TwinCAT_SystemInfoVarList._AppInfo.OldBootData + AppTimestamp DT 4 TwinCAT_SystemInfoVarList._AppInfo.AppTimestamp + KeepOutputsOnBP BOOL 1 TwinCAT_SystemInfoVarList._AppInfo.KeepOutputsOnBP + ShutdownInProgress BOOL 1 TwinCAT_SystemInfoVarList._AppInfo.ShutdownInProgress + LicensesPending BOOL 1 TwinCAT_SystemInfoVarList._AppInfo.LicensesPending + BSODOccured BOOL 1 TwinCAT_SystemInfoVarList._AppInfo.BSODOccured + TComSrvPtr ITComObjectServer 4 TwinCAT_SystemInfoVarList._AppInfo.TComSrvPtr + AppName STRING(63) 64 TwinCAT_SystemInfoVarList._AppInfo.AppName + ProjectName STRING(63) 64 TwinCAT_SystemInfoVarList._AppInfo.ProjectName + + + Create a session to the target system '1.2.3.4.5.6' Port: 851 and get the symbol 'TwinCAT_SystemInfoVarList._AppInfo' and its subsymbols recursively. + + + + ---------- EXAMPLE 3 ---------- + + PS> $session = New-TcSession -Name 'CX_123456' -port 851 + PS> $session | Get-TcSymbol -recurse | where InstanceName -like 'Project*' + + InstanceName DataType Size InstancePath + ------------ -------- ---- ------------ + ProjectName STRING(63) 64 TwinCAT_SystemInfoVarList._AppInfo.ProjectName + + + Gets an ADS-Session/Connection to the target system CX_123456 on port 851, downloads the symbol information recursively and returns all Instances where the instance name is like the pattern 'Project*'. + + + + + + + + Get-TcTargetInfo + Get + TcTargetInfo + + Get TwinCAT Device Target information. + + + + This Cmdlet gets information from the specified target system. To contact the target system, it must be available as actual route. The information contains the TargetName, TwinCAT Version, Running Operating system, CPU Architecture and Image Information. + + + + + Get-TcTargetInfo + + + NetId + + NetId(s) of the target system. + + AmsNetId[] + + TwinCAT.Ads.AmsNetId[] + + + 172.17.60.215.1.1 + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + The ADS timeout in milliseconds. + + int + + System.Int32 + + + -1 + + + + + Get-TcTargetInfo + + + InputObject + + The route object where to get the Target information from.. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + The ADS timeout in milliseconds. + + int + + System.Int32 + + + -1 + + + + + Get-TcTargetInfo + + + Address + + Target names/addresses. These can consist of RouteName, NetID, HostName or IPAddress. Wildcards are permitted. + + string[] + + System.String[] + + + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + The ADS timeout in milliseconds. + + int + + System.Int32 + + + -1 + + + + + Get-TcTargetInfo + + + Session + + The Session to use for the value read. + + ISession[] + + TwinCAT.ISession[] + + + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + The ADS timeout in milliseconds. + + int + + System.Int32 + + + -1 + + + + + Get-TcTargetInfo + + + SessionId + + Specifies the Session (with unique ID) to use for the value read. + + int[] + + System.Int32[] + + + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + The ADS timeout in milliseconds. + + int + + System.Int32 + + + -1 + + + + + + + NetId + + NetId(s) of the target system. + + AmsNetId[] + + TwinCAT.Ads.AmsNetId[] + + + 172.17.60.215.1.1 + + + + InputObject + + The route object where to get the Target information from.. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + Destination + + The route object where to get the Target information from.. + This is an alias of the InputObject parameter. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + Route + + The route object where to get the Target information from.. + This is an alias of the InputObject parameter. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + + Address + + Target names/addresses. These can consist of RouteName, NetID, HostName or IPAddress. Wildcards are permitted. + + string[] + + System.String[] + + + + + Name + + Target names/addresses. These can consist of RouteName, NetID, HostName or IPAddress. Wildcards are permitted. + This is an alias of the Address parameter. + + string[] + + System.String[] + + + + + + Session + + The Session to use for the value read. + + ISession[] + + TwinCAT.ISession[] + + + + + + SessionId + + Specifies the Session (with unique ID) to use for the value read. + + int[] + + System.Int32[] + + + + + + Timeout + + The ADS timeout in milliseconds. + + int + + System.Int32 + + + -1 + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + TwinCAT.RouteTargetCollection + + + + The route object where to get the Target information from.. + + + + + TwinCAT.ISession[] + + + + The Session to use for the value read. + + + + + + + ---------- EXAMPLE 1 ---------- + + PS > Get-TcTargetInfo + + Target Version Level OS Image Device CPUArch + ------ ------- ----- -- ----- ------ ------- + TC3TESTA1-CP67X 3.1.4021.54 CP Win7 IntelX86 + + + Get the target information of th localSystem system. + + + + ---------- EXAMPLE 2 ---------- + + PS > get-adsRoute | Get-TcTargetInfo + + Target Version Level OS Image Device CPUArch + ------ ------- ----- -- ----- ------ ------- + CP-15ECA0 3.1.4021.50 CP Win7 IntelX86 + TC3TESTA1-CP67X 3.1.4021.54 CP Win7 IntelX86 + + + Get the target information of the actual connected routes. + + + + + + + + Read-TcValue + Read + TcValue + + Reads values from TwinCAT devices. + + + + This Cmdlet read values from TwinCAT Devices. The devices can be accessed via different ValueProviders. + + + + + Read-TcValue + + + IndexGroup + + The IndexGroup of the Symbol to read from target system. Only for IndexGroup/IndexOffset access. + + uint + + System.UInt32 + + + 0 + + + + IndexOffset + + The IndexOffset of the Symbol to read from the target system. Only for IndexGroup/IndexOffset access. + + uint + + System.UInt32 + + + 0 + + + + Size + + The 'Size' of Value (in bytes) to read. This parameter is available only when Indexed Group without ValueType parameter is performed. + + int + + System.Int32 + + + -1 + + + + Port + + The address Port to use for the value read. + + int + + System.Int32 + + + 10000 + + + + Async + + Starts the read on different threads. Only for test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Encoding + + Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page) + + Encoding + + System.Text.Encoding + + + System.Text.SBCSCodePageEncoding + + + + Force + + Force reading value. This flag bypasses the FailFastInterceptor to retry communication in every case. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + NetId + + The NetId part of the AmsAddress for the value read. + + AmsNetId[] + + TwinCAT.Ads.AmsNetId[] + + + 172.17.60.215.1.1 + + + + Timeout + + Communication Timeout in milliseconds + + int + + System.Int32 + + + -1 + + + + + Read-TcValue + + + IndexGroup + + The IndexGroup of the Symbol to read from target system. Only for IndexGroup/IndexOffset access. + + uint + + System.UInt32 + + + 0 + + + + IndexOffset + + The IndexOffset of the Symbol to read from the target system. Only for IndexGroup/IndexOffset access. + + uint + + System.UInt32 + + + 0 + + + + ValueType + + The dataType of the Value for a 'ReadAny' access. Only usable with IndexGroup/IndexOffset access. + + Type + + System.Type + + + + + + Port + + The address Port to use for the value read. + + int + + System.Int32 + + + 10000 + + + + Async + + Starts the read on different threads. Only for test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Encoding + + Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page) + + Encoding + + System.Text.Encoding + + + System.Text.SBCSCodePageEncoding + + + + Force + + Force reading value. This flag bypasses the FailFastInterceptor to retry communication in every case. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + NetId + + The NetId part of the AmsAddress for the value read. + + AmsNetId[] + + TwinCAT.Ads.AmsNetId[] + + + 172.17.60.215.1.1 + + + + Timeout + + Communication Timeout in milliseconds + + int + + System.Int32 + + + -1 + + + + + Read-TcValue + + + Path + + The instance path of the symbol to read (symbolic access). This parameter supports wildcards. + + string + + System.String + + + + + + Port + + The address Port to use for the value read. + + int + + System.Int32 + + + 10000 + + + + Async + + Starts the read on different threads. Only for test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Encoding + + Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page) + + Encoding + + System.Text.Encoding + + + System.Text.SBCSCodePageEncoding + + + + Extended + + Switch on 'ExtendedMode', what means that primitive values are not resolved to their primitive managed (powershell) counterparts, but still contain rich metadata as DynamicValues. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Force + + Force reading value. This flag bypasses the FailFastInterceptor to retry communication in every case. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + NetId + + The NetId part of the AmsAddress for the value read. + + AmsNetId[] + + TwinCAT.Ads.AmsNetId[] + + + 172.17.60.215.1.1 + + + + Timeout + + Communication Timeout in milliseconds + + int + + System.Int32 + + + -1 + + + + + Read-TcValue + + + IndexGroup + + The IndexGroup of the Symbol to read from target system. Only for IndexGroup/IndexOffset access. + + uint + + System.UInt32 + + + 0 + + + + IndexOffset + + The IndexOffset of the Symbol to read from the target system. Only for IndexGroup/IndexOffset access. + + uint + + System.UInt32 + + + 0 + + + + Size + + The 'Size' of Value (in bytes) to read. This parameter is available only when Indexed Group without ValueType parameter is performed. + + int + + System.Int32 + + + -1 + + + + Port + + The address Port to use for the value read. + + int + + System.Int32 + + + 10000 + + + + Route + + Specifies the target system(s) to read value from. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + + Async + + Starts the read on different threads. Only for test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Encoding + + Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page) + + Encoding + + System.Text.Encoding + + + System.Text.SBCSCodePageEncoding + + + + Force + + Force reading value. This flag bypasses the FailFastInterceptor to retry communication in every case. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + Communication Timeout in milliseconds + + int + + System.Int32 + + + -1 + + + + + Read-TcValue + + + IndexGroup + + The IndexGroup of the Symbol to read from target system. Only for IndexGroup/IndexOffset access. + + uint + + System.UInt32 + + + 0 + + + + IndexOffset + + The IndexOffset of the Symbol to read from the target system. Only for IndexGroup/IndexOffset access. + + uint + + System.UInt32 + + + 0 + + + + ValueType + + The dataType of the Value for a 'ReadAny' access. Only usable with IndexGroup/IndexOffset access. + + Type + + System.Type + + + + + + Port + + The address Port to use for the value read. + + int + + System.Int32 + + + 10000 + + + + Route + + Specifies the target system(s) to read value from. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + + Async + + Starts the read on different threads. Only for test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Encoding + + Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page) + + Encoding + + System.Text.Encoding + + + System.Text.SBCSCodePageEncoding + + + + Force + + Force reading value. This flag bypasses the FailFastInterceptor to retry communication in every case. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + Communication Timeout in milliseconds + + int + + System.Int32 + + + -1 + + + + + Read-TcValue + + + Path + + The instance path of the symbol to read (symbolic access). This parameter supports wildcards. + + string + + System.String + + + + + + Port + + The address Port to use for the value read. + + int + + System.Int32 + + + 10000 + + + + Route + + Specifies the target system(s) to read value from. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + + Async + + Starts the read on different threads. Only for test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Encoding + + Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page) + + Encoding + + System.Text.Encoding + + + System.Text.SBCSCodePageEncoding + + + + Extended + + Switch on 'ExtendedMode', what means that primitive values are not resolved to their primitive managed (powershell) counterparts, but still contain rich metadata as DynamicValues. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Force + + Force reading value. This flag bypasses the FailFastInterceptor to retry communication in every case. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + Communication Timeout in milliseconds + + int + + System.Int32 + + + -1 + + + + + Read-TcValue + + + IndexGroup + + The IndexGroup of the Symbol to read from target system. Only for IndexGroup/IndexOffset access. + + uint + + System.UInt32 + + + 0 + + + + IndexOffset + + The IndexOffset of the Symbol to read from the target system. Only for IndexGroup/IndexOffset access. + + uint + + System.UInt32 + + + 0 + + + + Size + + The 'Size' of Value (in bytes) to read. This parameter is available only when Indexed Group without ValueType parameter is performed. + + int + + System.Int32 + + + -1 + + + + Address + + The Address(es) of the system(s) where to read the value. The Address can consist of NetId, IPAddress or HostName. Wildcards are permitted. + + string[] + + System.String[] + + + + + + Port + + The address Port to use for the value read. + + int + + System.Int32 + + + 10000 + + + + Async + + Starts the read on different threads. Only for test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Encoding + + Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page) + + Encoding + + System.Text.Encoding + + + System.Text.SBCSCodePageEncoding + + + + Force + + Force reading value. This flag bypasses the FailFastInterceptor to retry communication in every case. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + Communication Timeout in milliseconds + + int + + System.Int32 + + + -1 + + + + + Read-TcValue + + + IndexGroup + + The IndexGroup of the Symbol to read from target system. Only for IndexGroup/IndexOffset access. + + uint + + System.UInt32 + + + 0 + + + + IndexOffset + + The IndexOffset of the Symbol to read from the target system. Only for IndexGroup/IndexOffset access. + + uint + + System.UInt32 + + + 0 + + + + ValueType + + The dataType of the Value for a 'ReadAny' access. Only usable with IndexGroup/IndexOffset access. + + Type + + System.Type + + + + + + Address + + The Address(es) of the system(s) where to read the value. The Address can consist of NetId, IPAddress or HostName. Wildcards are permitted. + + string[] + + System.String[] + + + + + + Port + + The address Port to use for the value read. + + int + + System.Int32 + + + 10000 + + + + Async + + Starts the read on different threads. Only for test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Encoding + + Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page) + + Encoding + + System.Text.Encoding + + + System.Text.SBCSCodePageEncoding + + + + Force + + Force reading value. This flag bypasses the FailFastInterceptor to retry communication in every case. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + Communication Timeout in milliseconds + + int + + System.Int32 + + + -1 + + + + + Read-TcValue + + + Path + + The instance path of the symbol to read (symbolic access). This parameter supports wildcards. + + string + + System.String + + + + + + Address + + The Address(es) of the system(s) where to read the value. The Address can consist of NetId, IPAddress or HostName. Wildcards are permitted. + + string[] + + System.String[] + + + + + + Port + + The address Port to use for the value read. + + int + + System.Int32 + + + 10000 + + + + Async + + Starts the read on different threads. Only for test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Encoding + + Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page) + + Encoding + + System.Text.Encoding + + + System.Text.SBCSCodePageEncoding + + + + Extended + + Switch on 'ExtendedMode', what means that primitive values are not resolved to their primitive managed (powershell) counterparts, but still contain rich metadata as DynamicValues. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Force + + Force reading value. This flag bypasses the FailFastInterceptor to retry communication in every case. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + Communication Timeout in milliseconds + + int + + System.Int32 + + + -1 + + + + + Read-TcValue + + + IndexGroup + + The IndexGroup of the Symbol to read from target system. Only for IndexGroup/IndexOffset access. + + uint + + System.UInt32 + + + 0 + + + + IndexOffset + + The IndexOffset of the Symbol to read from the target system. Only for IndexGroup/IndexOffset access. + + uint + + System.UInt32 + + + 0 + + + + Size + + The 'Size' of Value (in bytes) to read. This parameter is available only when Indexed Group without ValueType parameter is performed. + + int + + System.Int32 + + + -1 + + + + Session + + The Session to use for the value read. + + ISession[] + + TwinCAT.ISession[] + + + + + + Async + + Starts the read on different threads. Only for test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Encoding + + Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page) + + Encoding + + System.Text.Encoding + + + System.Text.SBCSCodePageEncoding + + + + Force + + Force reading value. This flag bypasses the FailFastInterceptor to retry communication in every case. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + Communication Timeout in milliseconds + + int + + System.Int32 + + + -1 + + + + + Read-TcValue + + + IndexGroup + + The IndexGroup of the Symbol to read from target system. Only for IndexGroup/IndexOffset access. + + uint + + System.UInt32 + + + 0 + + + + IndexOffset + + The IndexOffset of the Symbol to read from the target system. Only for IndexGroup/IndexOffset access. + + uint + + System.UInt32 + + + 0 + + + + ValueType + + The dataType of the Value for a 'ReadAny' access. Only usable with IndexGroup/IndexOffset access. + + Type + + System.Type + + + + + + Session + + The Session to use for the value read. + + ISession[] + + TwinCAT.ISession[] + + + + + + Async + + Starts the read on different threads. Only for test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Encoding + + Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page) + + Encoding + + System.Text.Encoding + + + System.Text.SBCSCodePageEncoding + + + + Force + + Force reading value. This flag bypasses the FailFastInterceptor to retry communication in every case. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + Communication Timeout in milliseconds + + int + + System.Int32 + + + -1 + + + + + Read-TcValue + + + Path + + The instance path of the symbol to read (symbolic access). This parameter supports wildcards. + + string + + System.String + + + + + + Session + + The Session to use for the value read. + + ISession[] + + TwinCAT.ISession[] + + + + + + Async + + Starts the read on different threads. Only for test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Encoding + + Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page) + + Encoding + + System.Text.Encoding + + + System.Text.SBCSCodePageEncoding + + + + Extended + + Switch on 'ExtendedMode', what means that primitive values are not resolved to their primitive managed (powershell) counterparts, but still contain rich metadata as DynamicValues. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Force + + Force reading value. This flag bypasses the FailFastInterceptor to retry communication in every case. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + Communication Timeout in milliseconds + + int + + System.Int32 + + + -1 + + + + + Read-TcValue + + + IndexGroup + + The IndexGroup of the Symbol to read from target system. Only for IndexGroup/IndexOffset access. + + uint + + System.UInt32 + + + 0 + + + + IndexOffset + + The IndexOffset of the Symbol to read from the target system. Only for IndexGroup/IndexOffset access. + + uint + + System.UInt32 + + + 0 + + + + Size + + The 'Size' of Value (in bytes) to read. This parameter is available only when Indexed Group without ValueType parameter is performed. + + int + + System.Int32 + + + -1 + + + + SessionId + + Specifies the Session (with unique ID) to use for the value read. + + int[] + + System.Int32[] + + + + + + Async + + Starts the read on different threads. Only for test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Encoding + + Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page) + + Encoding + + System.Text.Encoding + + + System.Text.SBCSCodePageEncoding + + + + Force + + Force reading value. This flag bypasses the FailFastInterceptor to retry communication in every case. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + Communication Timeout in milliseconds + + int + + System.Int32 + + + -1 + + + + + Read-TcValue + + + IndexGroup + + The IndexGroup of the Symbol to read from target system. Only for IndexGroup/IndexOffset access. + + uint + + System.UInt32 + + + 0 + + + + IndexOffset + + The IndexOffset of the Symbol to read from the target system. Only for IndexGroup/IndexOffset access. + + uint + + System.UInt32 + + + 0 + + + + ValueType + + The dataType of the Value for a 'ReadAny' access. Only usable with IndexGroup/IndexOffset access. + + Type + + System.Type + + + + + + SessionId + + Specifies the Session (with unique ID) to use for the value read. + + int[] + + System.Int32[] + + + + + + Async + + Starts the read on different threads. Only for test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Encoding + + Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page) + + Encoding + + System.Text.Encoding + + + System.Text.SBCSCodePageEncoding + + + + Force + + Force reading value. This flag bypasses the FailFastInterceptor to retry communication in every case. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + Communication Timeout in milliseconds + + int + + System.Int32 + + + -1 + + + + + Read-TcValue + + + Path + + The instance path of the symbol to read (symbolic access). This parameter supports wildcards. + + string + + System.String + + + + + + SessionId + + Specifies the Session (with unique ID) to use for the value read. + + int[] + + System.Int32[] + + + + + + Async + + Starts the read on different threads. Only for test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Encoding + + Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page) + + Encoding + + System.Text.Encoding + + + System.Text.SBCSCodePageEncoding + + + + Extended + + Switch on 'ExtendedMode', what means that primitive values are not resolved to their primitive managed (powershell) counterparts, but still contain rich metadata as DynamicValues. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Force + + Force reading value. This flag bypasses the FailFastInterceptor to retry communication in every case. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + Communication Timeout in milliseconds + + int + + System.Int32 + + + -1 + + + + + Read-TcValue + + + InputObject + + The symbol object to read value from. + + ISymbol + + TwinCAT.TypeSystem.ISymbol + + + + + + Async + + Starts the read on different threads. Only for test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Encoding + + Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page) + + Encoding + + System.Text.Encoding + + + System.Text.SBCSCodePageEncoding + + + + Force + + Force reading value. This flag bypasses the FailFastInterceptor to retry communication in every case. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + Communication Timeout in milliseconds + + int + + System.Int32 + + + -1 + + + + + + + NetId + + The NetId part of the AmsAddress for the value read. + + AmsNetId[] + + TwinCAT.Ads.AmsNetId[] + + + 172.17.60.215.1.1 + + + + Route + + Specifies the target system(s) to read value from. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + Destination + + Specifies the target system(s) to read value from. + This is an alias of the Route parameter. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + + Address + + The Address(es) of the system(s) where to read the value. The Address can consist of NetId, IPAddress or HostName. Wildcards are permitted. + + string[] + + System.String[] + + + + + + Session + + The Session to use for the value read. + + ISession[] + + TwinCAT.ISession[] + + + + + + SessionId + + Specifies the Session (with unique ID) to use for the value read. + + int[] + + System.Int32[] + + + + + + Port + + The address Port to use for the value read. + + int + + System.Int32 + + + 10000 + + + + IndexGroup + + The IndexGroup of the Symbol to read from target system. Only for IndexGroup/IndexOffset access. + + uint + + System.UInt32 + + + 0 + + + IG + + The IndexGroup of the Symbol to read from target system. Only for IndexGroup/IndexOffset access. + This is an alias of the IndexGroup parameter. + + uint + + System.UInt32 + + + 0 + + + + IndexOffset + + The IndexOffset of the Symbol to read from the target system. Only for IndexGroup/IndexOffset access. + + uint + + System.UInt32 + + + 0 + + + IO + + The IndexOffset of the Symbol to read from the target system. Only for IndexGroup/IndexOffset access. + This is an alias of the IndexOffset parameter. + + uint + + System.UInt32 + + + 0 + + + + ValueType + + The dataType of the Value for a 'ReadAny' access. Only usable with IndexGroup/IndexOffset access. + + Type + + System.Type + + + + + Type + + The dataType of the Value for a 'ReadAny' access. Only usable with IndexGroup/IndexOffset access. + This is an alias of the ValueType parameter. + + Type + + System.Type + + + + + ReadType + + The dataType of the Value for a 'ReadAny' access. Only usable with IndexGroup/IndexOffset access. + This is an alias of the ValueType parameter. + + Type + + System.Type + + + + + + Size + + The 'Size' of Value (in bytes) to read. This parameter is available only when Indexed Group without ValueType parameter is performed. + + int + + System.Int32 + + + -1 + + + ReadSize + + The 'Size' of Value (in bytes) to read. This parameter is available only when Indexed Group without ValueType parameter is performed. + This is an alias of the Size parameter. + + int + + System.Int32 + + + -1 + + + Length + + The 'Size' of Value (in bytes) to read. This parameter is available only when Indexed Group without ValueType parameter is performed. + This is an alias of the Size parameter. + + int + + System.Int32 + + + -1 + + + + Path + + The instance path of the symbol to read (symbolic access). This parameter supports wildcards. + + string + + System.String + + + + + + InputObject + + The symbol object to read value from. + + ISymbol + + TwinCAT.TypeSystem.ISymbol + + + + + Symbol + + The symbol object to read value from. + This is an alias of the InputObject parameter. + + ISymbol + + TwinCAT.TypeSystem.ISymbol + + + + + + Extended + + Switch on 'ExtendedMode', what means that primitive values are not resolved to their primitive managed (powershell) counterparts, but still contain rich metadata as DynamicValues. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + FullMetadata + + Switch on 'ExtendedMode', what means that primitive values are not resolved to their primitive managed (powershell) counterparts, but still contain rich metadata as DynamicValues. + This is an alias of the Extended parameter. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Async + + Starts the read on different threads. Only for test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Force + + Force reading value. This flag bypasses the FailFastInterceptor to retry communication in every case. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + Communication Timeout in milliseconds + + int + + System.Int32 + + + -1 + + + + Encoding + + Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page) + + Encoding + + System.Text.Encoding + + + System.Text.SBCSCodePageEncoding + + + + + + TwinCAT.ISession[] + + + + The Session to use for the value read. + + + + + TwinCAT.TypeSystem.ISymbol + + + + The symbol object to read value from. + + + + + + + ---------- EXAMPLE 1 ---------- + + PS> $session = New-TcSession -NetId '1.2.3.4.5.6' -Port 851 + PS> $symbol = $session | get-TcSymbol -Path 'TwinCAT_SystemInfoVarList._AppInfo.ProjectName' + PS> $symbol | Read-TcValue + + ADS_DynSymbols + + + Create an ADS Session/Connection, determine the 'ProjectName' Symbol from the running PLC Project, read the current value of the symbol and print it to the console. + + + + ---------- EXAMPLE 2 ---------- + + PS> Read-TcValue -IndexGroup 0x4040 -IndexOffset 0x1247a8 -NetId 172.17.62.105.1.1 -port 851 -size 0xff | format-hex + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 00000000 41 44 53 5F 44 79 6E 53 79 6D 62 6F 6C 73 00 00 ADS_DynSymbols.. + 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00000080 11 00 01 01 A0 86 01 00 14 00 5E 01 21 C2 15 00 .... ?....^.!A.. + 00000090 00 7F F1 57 3B 83 6C 07 1E 00 00 00 00 00 00 00 .⌂ñW;?l......... + 000000A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 000000B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 000000C0 41 44 53 5F 44 79 6E 53 79 6D 62 6F 6C 73 5F 50 ADS_DynSymbols_P + 000000D0 6C 63 54 61 73 6B 00 00 00 00 00 00 00 00 00 00 lcTask.......... + 000000E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 000000F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ............... + + + Reads 256 Bytes via IndexGroup/IndexOffset from the specified target system and prints the out formatted as hexdump. + + + + ---------- EXAMPLE 3 ---------- + + PS> Read-TcValue -session $session -IndexGroup 0x4040 -IndexOffset 0x1247A8 -ValueType String + ADS_DynSymbols + + + Reads a string typed value from IndexGroup / IndexOffset. In this example the ProjectName of the running PLC Project resides at that ProcessImage Address. + + + + ---------- EXAMPLE 4 ---------- + + PS> $route = Get-AdsRoute -Name 'CX-123456' + PS> $session = $route | New-TcSession -Port 851 + PS> $handle = $session | Send-TcReadWrite -IndexGroup SymbolHandleByName -WriteValue "GVL.vgInt" -ReadType Int32 -force + PS> $session | Read-TcValue -IndexGroup SymbolValueByHandle -IndexOffset $handle -ValueType Int16 + 42 + + + Create a session to the PLC (Port 851) of a target system, determine the SymbolHandle by InstancePath and use this handle to read its 'Int16' Value (INT on PLC System). + + + + + + + + Write-TcValue + Write + TcValue + + Write values to TwinCAT devices. + + + + This Cmdlet writes values to TwinCAT Devices. The devices can be accessed via different ValueProviders. All sorts of ADS-addressing will be supported by this Cmdlet: Addressing by IndexGroup / IndexOffset (see IndexGroup, IndexOffset paramters) Addressing by Instance Path (see path parameter) Addressing by Symbol (see InputObject / Symbol parameter) + IMPORTANT: Writing values should be done with highest care because it could destabilize the TwinCAT System when the write operation is not addressed properly. While writing with available symbol information is not critical and should be preferred the size and position of symbol data is known within the process image), the access via Instance path is less secure. The size of the overwritten data is not known and therefore not checked by the Cmdlet. The highest attention should be taken with write IndexGroup / IndexOffset write operations because beneath the unknown data size even the position of the data is not checked. The data is written directly into the process image. + + + + + Write-TcValue + + + IndexGroup + + IndexGroup of the Value to write, only for IndexGroup/IndexOffset access. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred! + + uint + + System.UInt32 + + + 0 + + + + IndexOffset + + IndexOffset of the Value to write, only for IndexGroup/IndexOffset access. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred! + + uint + + System.UInt32 + + + 0 + + + + Port + + The Port, where to write the value. This Parameter is used in combination with the NetId, Route or Address input parameter. + + int + + System.Int32 + + + 10000 + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Encoding + + Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page) + + Encoding + + System.Text.Encoding + + + System.Text.SBCSCodePageEncoding + + + + Force + + Suppress the 'ShouldProcess' message and forces the write. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + NetId + + The ADS target NetID(s) of the system(s) where to write the Value. More than one target will be supported. + + AmsNetId[] + + TwinCAT.Ads.AmsNetId[] + + + 172.17.60.215.1.1 + + + + Size + + The Length of the data that will be overwritten within the process image. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and could destabilize the system. No further validity check is done for the symbol alignment and therefore this should be done with highest care (best with use of the -Confirm and -Whatif Cmdlet arguments). If applicable writing data via symbolic information should be preferred! + + int + + System.Int32 + + + -1 + + + + Value + + The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshalls this value to its appropiate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters). + + object + + System.Object + + + + + + + Write-TcValue + + + Path + + The instance path to the symbol to write (Symbolic access). Wildcards are permitted. + + string + + System.String + + + + + + Port + + The Port, where to write the value. This Parameter is used in combination with the NetId, Route or Address input parameter. + + int + + System.Int32 + + + 10000 + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Encoding + + Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page) + + Encoding + + System.Text.Encoding + + + System.Text.SBCSCodePageEncoding + + + + Force + + Suppress the 'ShouldProcess' message and forces the write. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + NetId + + The ADS target NetID(s) of the system(s) where to write the Value. More than one target will be supported. + + AmsNetId[] + + TwinCAT.Ads.AmsNetId[] + + + 172.17.60.215.1.1 + + + + Value + + The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshalls this value to its appropiate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters). + + object + + System.Object + + + + + + + Write-TcValue + + + IndexGroup + + IndexGroup of the Value to write, only for IndexGroup/IndexOffset access. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred! + + uint + + System.UInt32 + + + 0 + + + + IndexOffset + + IndexOffset of the Value to write, only for IndexGroup/IndexOffset access. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred! + + uint + + System.UInt32 + + + 0 + + + + Port + + The Port, where to write the value. This Parameter is used in combination with the NetId, Route or Address input parameter. + + int + + System.Int32 + + + 10000 + + + + Route + + The target system (as Route) where to write the value. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Encoding + + Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page) + + Encoding + + System.Text.Encoding + + + System.Text.SBCSCodePageEncoding + + + + Force + + Suppress the 'ShouldProcess' message and forces the write. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Size + + The Length of the data that will be overwritten within the process image. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and could destabilize the system. No further validity check is done for the symbol alignment and therefore this should be done with highest care (best with use of the -Confirm and -Whatif Cmdlet arguments). If applicable writing data via symbolic information should be preferred! + + int + + System.Int32 + + + -1 + + + + Value + + The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshalls this value to its appropiate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters). + + object + + System.Object + + + + + + + Write-TcValue + + + Path + + The instance path to the symbol to write (Symbolic access). Wildcards are permitted. + + string + + System.String + + + + + + Port + + The Port, where to write the value. This Parameter is used in combination with the NetId, Route or Address input parameter. + + int + + System.Int32 + + + 10000 + + + + Route + + The target system (as Route) where to write the value. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Encoding + + Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page) + + Encoding + + System.Text.Encoding + + + System.Text.SBCSCodePageEncoding + + + + Force + + Suppress the 'ShouldProcess' message and forces the write. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Value + + The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshalls this value to its appropiate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters). + + object + + System.Object + + + + + + + Write-TcValue + + + IndexGroup + + IndexGroup of the Value to write, only for IndexGroup/IndexOffset access. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred! + + uint + + System.UInt32 + + + 0 + + + + IndexOffset + + IndexOffset of the Value to write, only for IndexGroup/IndexOffset access. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred! + + uint + + System.UInt32 + + + 0 + + + + Address + + The target address where to write the Value. The Address can consist of RouteName, NetId, HostName or IPAddress. Wildcards are permitted. + + string[] + + System.String[] + + + + + + Port + + The Port, where to write the value. This Parameter is used in combination with the NetId, Route or Address input parameter. + + int + + System.Int32 + + + 10000 + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Encoding + + Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page) + + Encoding + + System.Text.Encoding + + + System.Text.SBCSCodePageEncoding + + + + Force + + Suppress the 'ShouldProcess' message and forces the write. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Size + + The Length of the data that will be overwritten within the process image. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and could destabilize the system. No further validity check is done for the symbol alignment and therefore this should be done with highest care (best with use of the -Confirm and -Whatif Cmdlet arguments). If applicable writing data via symbolic information should be preferred! + + int + + System.Int32 + + + -1 + + + + Value + + The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshalls this value to its appropiate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters). + + object + + System.Object + + + + + + + Write-TcValue + + + Path + + The instance path to the symbol to write (Symbolic access). Wildcards are permitted. + + string + + System.String + + + + + + Address + + The target address where to write the Value. The Address can consist of RouteName, NetId, HostName or IPAddress. Wildcards are permitted. + + string[] + + System.String[] + + + + + + Port + + The Port, where to write the value. This Parameter is used in combination with the NetId, Route or Address input parameter. + + int + + System.Int32 + + + 10000 + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Encoding + + Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page) + + Encoding + + System.Text.Encoding + + + System.Text.SBCSCodePageEncoding + + + + Force + + Suppress the 'ShouldProcess' message and forces the write. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Value + + The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshalls this value to its appropiate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters). + + object + + System.Object + + + + + + + Write-TcValue + + + IndexGroup + + IndexGroup of the Value to write, only for IndexGroup/IndexOffset access. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred! + + uint + + System.UInt32 + + + 0 + + + + IndexOffset + + IndexOffset of the Value to write, only for IndexGroup/IndexOffset access. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred! + + uint + + System.UInt32 + + + 0 + + + + Session + + The session object represents the target session where to write the value. + + ISession[] + + TwinCAT.ISession[] + + + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Encoding + + Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page) + + Encoding + + System.Text.Encoding + + + System.Text.SBCSCodePageEncoding + + + + Force + + Suppress the 'ShouldProcess' message and forces the write. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Size + + The Length of the data that will be overwritten within the process image. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and could destabilize the system. No further validity check is done for the symbol alignment and therefore this should be done with highest care (best with use of the -Confirm and -Whatif Cmdlet arguments). If applicable writing data via symbolic information should be preferred! + + int + + System.Int32 + + + -1 + + + + Value + + The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshalls this value to its appropiate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters). + + object + + System.Object + + + + + + + Write-TcValue + + + Path + + The instance path to the symbol to write (Symbolic access). Wildcards are permitted. + + string + + System.String + + + + + + Session + + The session object represents the target session where to write the value. + + ISession[] + + TwinCAT.ISession[] + + + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Encoding + + Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page) + + Encoding + + System.Text.Encoding + + + System.Text.SBCSCodePageEncoding + + + + Force + + Suppress the 'ShouldProcess' message and forces the write. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Value + + The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshalls this value to its appropiate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters). + + object + + System.Object + + + + + + + Write-TcValue + + + IndexGroup + + IndexGroup of the Value to write, only for IndexGroup/IndexOffset access. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred! + + uint + + System.UInt32 + + + 0 + + + + IndexOffset + + IndexOffset of the Value to write, only for IndexGroup/IndexOffset access. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred! + + uint + + System.UInt32 + + + 0 + + + + SessionId + + The session ID represents the target session where to write the value. + + int[] + + System.Int32[] + + + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Encoding + + Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page) + + Encoding + + System.Text.Encoding + + + System.Text.SBCSCodePageEncoding + + + + Force + + Suppress the 'ShouldProcess' message and forces the write. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Size + + The Length of the data that will be overwritten within the process image. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and could destabilize the system. No further validity check is done for the symbol alignment and therefore this should be done with highest care (best with use of the -Confirm and -Whatif Cmdlet arguments). If applicable writing data via symbolic information should be preferred! + + int + + System.Int32 + + + -1 + + + + Value + + The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshalls this value to its appropiate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters). + + object + + System.Object + + + + + + + Write-TcValue + + + Path + + The instance path to the symbol to write (Symbolic access). Wildcards are permitted. + + string + + System.String + + + + + + SessionId + + The session ID represents the target session where to write the value. + + int[] + + System.Int32[] + + + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Encoding + + Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page) + + Encoding + + System.Text.Encoding + + + System.Text.SBCSCodePageEncoding + + + + Force + + Suppress the 'ShouldProcess' message and forces the write. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Value + + The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshalls this value to its appropiate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters). + + object + + System.Object + + + + + + + Write-TcValue + + + InputObject + + The symbol object on which to write the value. + + ISymbol + + TwinCAT.TypeSystem.ISymbol + + + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Encoding + + Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page) + + Encoding + + System.Text.Encoding + + + System.Text.SBCSCodePageEncoding + + + + Force + + Suppress the 'ShouldProcess' message and forces the write. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Value + + The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshalls this value to its appropiate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters). + + object + + System.Object + + + + + + + + + NetId + + The ADS target NetID(s) of the system(s) where to write the Value. More than one target will be supported. + + AmsNetId[] + + TwinCAT.Ads.AmsNetId[] + + + 172.17.60.215.1.1 + + + + Route + + The target system (as Route) where to write the value. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + Destination + + The target system (as Route) where to write the value. + This is an alias of the Route parameter. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + + Address + + The target address where to write the Value. The Address can consist of RouteName, NetId, HostName or IPAddress. Wildcards are permitted. + + string[] + + System.String[] + + + + + + Session + + The session object represents the target session where to write the value. + + ISession[] + + TwinCAT.ISession[] + + + + + + SessionId + + The session ID represents the target session where to write the value. + + int[] + + System.Int32[] + + + + + + Port + + The Port, where to write the value. This Parameter is used in combination with the NetId, Route or Address input parameter. + + int + + System.Int32 + + + 10000 + + + + Value + + The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshalls this value to its appropiate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters). + + object + + System.Object + + + + + + IndexGroup + + IndexGroup of the Value to write, only for IndexGroup/IndexOffset access. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred! + + uint + + System.UInt32 + + + 0 + + + IG + + IndexGroup of the Value to write, only for IndexGroup/IndexOffset access. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred! + This is an alias of the IndexGroup parameter. + + uint + + System.UInt32 + + + 0 + + + + IndexOffset + + IndexOffset of the Value to write, only for IndexGroup/IndexOffset access. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred! + + uint + + System.UInt32 + + + 0 + + + IO + + IndexOffset of the Value to write, only for IndexGroup/IndexOffset access. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred! + This is an alias of the IndexOffset parameter. + + uint + + System.UInt32 + + + 0 + + + + Size + + The Length of the data that will be overwritten within the process image. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and could destabilize the system. No further validity check is done for the symbol alignment and therefore this should be done with highest care (best with use of the -Confirm and -Whatif Cmdlet arguments). If applicable writing data via symbolic information should be preferred! + + int + + System.Int32 + + + -1 + + + Length + + The Length of the data that will be overwritten within the process image. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and could destabilize the system. No further validity check is done for the symbol alignment and therefore this should be done with highest care (best with use of the -Confirm and -Whatif Cmdlet arguments). If applicable writing data via symbolic information should be preferred! + This is an alias of the Size parameter. + + int + + System.Int32 + + + -1 + + + WriteSize + + The Length of the data that will be overwritten within the process image. + IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and could destabilize the system. No further validity check is done for the symbol alignment and therefore this should be done with highest care (best with use of the -Confirm and -Whatif Cmdlet arguments). If applicable writing data via symbolic information should be preferred! + This is an alias of the Size parameter. + + int + + System.Int32 + + + -1 + + + + Path + + The instance path to the symbol to write (Symbolic access). Wildcards are permitted. + + string + + System.String + + + + + + InputObject + + The symbol object on which to write the value. + + ISymbol + + TwinCAT.TypeSystem.ISymbol + + + + + Symbol + + The symbol object on which to write the value. + This is an alias of the InputObject parameter. + + ISymbol + + TwinCAT.TypeSystem.ISymbol + + + + + + Encoding + + Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page) + + Encoding + + System.Text.Encoding + + + System.Text.SBCSCodePageEncoding + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Force + + Suppress the 'ShouldProcess' message and forces the write. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + TwinCAT.ISession[] + + + + The session object represents the target session where to write the value. + + + + + TwinCAT.TypeSystem.ISymbol + + + + The symbol object on which to write the value. + + + + + + + ---------- EXAMPLE 1 ---------- + + PS> $session = New-TcSession -NetId 1.2.3.4.5.6 -Port 851 + PS> $projectNameSymbol = $session | Get-TcSymbol -path "*ProjectName" + PS> $projectNameSymbol + + InstanceName DataType Size InstancePath + ------------ -------- ---- ------------ + ProjectName STRING(63) 64 TwinCAT_SystemInfoVarList._AppInfo.ProjectName + + PS> $projectNameSymbol | Read-TcValue + + OldProjectName + + PS> $projectNameSymbol | Write-TcValue -Value "NewProjectName" -force + PS> $projectNameSymbol | ReadTcValue + + NewProjectName + + + This example shows how to create a session, determining the Symbol 'ProjectName within the _AppInfo Struct on a running PLC project and reading its value. After that, the Value will be overwritten with 'NewProjectName'. + + + + ---------- EXAMPLE 2 ---------- + Write-TcValue -session $session -IndexGroup 0x4040 -IndexOffset 0x1247A8 -Value "NewProjectName" + + Writes a string typed Value to the specified IndexGroup/IndexOffset Address. + + + + + + + + Get-TcVersion + Get + TcVersion + + Get the TwinCAT Version of a target system. + + + + This Cmdlet gets the TwinCAT version of the specified target version and returns the version object. + + + + + Get-TcVersion + + + NetId + + The target address. + + AmsNetId[] + + TwinCAT.Ads.AmsNetId[] + + + 172.17.60.215.1.1 + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + The Ads timeout in milliseconds. + + int + + System.Int32 + + + -1 + + + + + Get-TcVersion + + + InputObject + + The target routes where to determine the Version information. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + The Ads timeout in milliseconds. + + int + + System.Int32 + + + -1 + + + + + Get-TcVersion + + + Address + + Addresses where to determine the Version information. The Addresses can consist of NetId, IPAddress or HostName. Wildcards are permitted. + + string[] + + System.String[] + + + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + The Ads timeout in milliseconds. + + int + + System.Int32 + + + -1 + + + + + Get-TcVersion + + + Session + + The Session to use for the Cmdlet. + + ISession[] + + TwinCAT.ISession[] + + + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + The Ads timeout in milliseconds. + + int + + System.Int32 + + + -1 + + + + + Get-TcVersion + + + SessionId + + Specifies the Session (with unique ID) to use for the Cmdlet. + + int[] + + System.Int32[] + + + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + Timeout + + The Ads timeout in milliseconds. + + int + + System.Int32 + + + -1 + + + + + + + NetId + + The target address. + + AmsNetId[] + + TwinCAT.Ads.AmsNetId[] + + + 172.17.60.215.1.1 + + + + Timeout + + The Ads timeout in milliseconds. + + int + + System.Int32 + + + -1 + + + + InputObject + + The target routes where to determine the Version information. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + Destination + + The target routes where to determine the Version information. + This is an alias of the InputObject parameter. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + Route + + The target routes where to determine the Version information. + This is an alias of the InputObject parameter. + + RouteTargetCollection + + TwinCAT.RouteTargetCollection + + + + + + Address + + Addresses where to determine the Version information. The Addresses can consist of NetId, IPAddress or HostName. Wildcards are permitted. + + string[] + + System.String[] + + + + + Name + + Addresses where to determine the Version information. The Addresses can consist of NetId, IPAddress or HostName. Wildcards are permitted. + This is an alias of the Address parameter. + + string[] + + System.String[] + + + + + + Session + + The Session to use for the Cmdlet. + + ISession[] + + TwinCAT.ISession[] + + + + + + SessionId + + Specifies the Session (with unique ID) to use for the Cmdlet. + + int[] + + System.Int32[] + + + + + + Async + + Starts the write on different threads. Only for internal use and test purposes. + + SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + TwinCAT.RouteTargetCollection + + + + The target routes where to determine the Version information. + + + + + TwinCAT.ISession[] + + + + The Session to use for the Cmdlet. + + + + + + + ---------- EXAMPLE 1 ---------- + + PS > Get-TcVersion + + Major Minor Build Revision + ----- ----- ----- -------- + 3 1 4021 50 + + + Get the TwinCAT version of the local system. + + + + ---------- EXAMPLE 2 ---------- + + PS > Get-AdsRoute | Get-TcVersion + + Major Minor Build Revision + ----- ----- ----- -------- + 3 1 4021 50 + 3 1 4021 54 + + + Get the TwinCAT version actual routes. + + + + + \ No newline at end of file diff --git a/ExtLibs/AdsApi/Powershell/TcXaeMgmt/TcXaeMgmt.format.ps1xml b/ExtLibs/AdsApi/Powershell/TcXaeMgmt/TcXaeMgmt.format.ps1xml new file mode 100644 index 00000000..77c99f77 --- /dev/null +++ b/ExtLibs/AdsApi/Powershell/TcXaeMgmt/TcXaeMgmt.format.ps1xml @@ -0,0 +1,1683 @@ + + + + + + RouteTypes + + TwinCAT.RouteTarget + TwinCAT.SubRoute + TwinCAT.RegisteredRoute + + + + Symbols + + + TwinCAT.Ads.TypeSystem.Symbol + TwinCAT.Mdp.MdpSymbol + TwinCAT.TypeSystem.DynamicSymbol + SessionProviderPlugin.CustomSymbol.CustomSymbol + + + + DataTypes + + + TwinCAT.Ads.TypeSystem.DataType + SessionProviderPlugin.CustomSymbol.CustomDataType + TwinCAT.Mdp.MdpDataType + + + + + + StructTypes + + TwinCAT.Ads.TypeSystem.StructType + TwinCAT.Mdp.MdpStructType + SessionProviderPlugin.CustomSymbol.CustomStructType + + + + ArrayTypes + + TwinCAT.Ads.TypeSystem.ArrayType + TwinCAT.Mdp.MdpArrayType + SessionProviderPlugin.CustomSymbol.CustomArrayType + + + + ReferenceTypes + + TwinCAT.Ads.TypeSystem.ReferenceType + TwinCAT.Ads.TypeSystem.PointerType + SessionProviderPlugin.CustomSymbol.CustomPointerType + SessionProviderPlugin.CustomSymbol.CustomReferenceType + + + + AliasTypes + + TwinCAT.Ads.TypeSystem.SubRange + SessionProviderPlugin.CustomSymbol.CustomSubRangType + TwinCAT.Ads.TypeSystem.AliasType + TwinCAT.Ads.TypeSystem.EnumType + SessionProviderPlugin.CustomSymbol.CustomEnumType + SessionProviderPlugin.CustomSymbol.CustomAliasType + + + + Members + + + TwinCAT.Ads.TypeSystem.Member + TwinCAT.Mdp.MdpMember + + + + Sessions + + TwinCAT.Session + TwinCAT.Mdp.MdpSession + + + + + EnumValues + + TwinCAT.TypeSystem.IEnumValue + TwinCAT.TypeSystem.EnumValue`1 + TwinCAT.TypeSystem.EnumValue`1[[short]] + TwinCAT.TypeSystem.EnumValue`1[[Int16]] + TwinCAT.TypeSystem.EnumValue`1[[System.Int16]] + TwinCAT.TypeSystem.EnumValue`1[] + TwinCAT.TypeSystem.EnumValue`1[[]] + TwinCAT.TypeSystem.EnumValue`1[[System.Int8, mscorlib, Version=4.0.0.0, Culture=neutral,PublicKeyToken=b77a5c561934e089]] + TwinCAT.TypeSystem.EnumValue`1[[System.Int16, mscorlib, Version=4.0.0.0, Culture=neutral,PublicKeyToken=b77a5c561934e089]] + TwinCAT.TypeSystem.EnumValue`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral,PublicKeyToken=b77a5c561934e089]] + TwinCAT.TypeSystem.EnumValue`1[[System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral,PublicKeyToken=b77a5c561934e089]] + TwinCAT.TypeSystem.EnumValue`1[[System.UInt8, mscorlib, Version=4.0.0.0, Culture=neutral,PublicKeyToken=b77a5c561934e089]] + TwinCAT.TypeSystem.EnumValue`1[[System.UInt16, mscorlib, Version=4.0.0.0, Culture=neutral,PublicKeyToken=b77a5c561934e089]] + TwinCAT.TypeSystem.EnumValue`1[[System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral,PublicKeyToken=b77a5c561934e089]] + TwinCAT.TypeSystem.EnumValue`1[[System.UInt64, mscorlib, Version=4.0.0.0, Culture=neutral,PublicKeyToken=b77a5c561934e089]] + + + + + + PingInfoTableView + + TwinCAT.SystemService.Commands.PingResult + + + + + + + 32 + + + + 7 + + + + 5 + + + + 17 + + + + 6 + + + + + + + + $_.Target.Name + + + + CommandResult + + + + if ($_.CommandResult -eq [TwinCAT.Core.CommandResult]::Ok) + { + $_.RoundTripTime.TotalMilliseconds + } + else + { + "" + } + + + + TargetNetId + + + Port + + + + + + + + RouteStateInfoTableView + + TwinCAT.SystemService.Commands.RouteStateInfo + + + + + + + 20 + + + + 10 + + + + 10 + + + + 10 + + + + 20 + + + + + + + + $_.Target.Name + + + + State + + + Succeeded + + + + if ($_.Succeeded -and ($_.State -ne 'Invalid')) + { + [int]$_.WaitTime.TotalMilliseconds + } + else + { + "" + } + + + + + $_.Target.NetId + + + + + + + + + RouteTargetTableView + + RouteTypes + + + + + + 16 + + + 20 + + + 16 + + + + 32 + + + + 5 + + + + 12 + + + + 20 + + + + + + + Name + + + NetId + + + Address + + + FingerPrint + + + + if ($_.IsSubRoute) + { + "X" + } + else + { + "" + } + + + + + if ($_.TcVersion -eq [Version]::new()) + { + '[UNKNOWN]' + } + else + { + $_.TcVersion + } + + + + + if ($_.RTSystem.IsEmpty) + { + '[UNKNOWN]' + } + else + { + $_.RTSystem + } + + + + + + + + + RouteTargetListView + + RouteTypes + + + + + + + Name + + + NetId + + + + + if ($_.IsSubRoute) + { + "X" + } + else + { + "" + } + + + + Address + + + FingerPrint + + + + TcVersion + + + RTSystem + + + + + + + + RouteTargetWideView + + TwinCAT.IRouteInfo + + + + + + Name + + + + + + + SymbolTableView + + Symbols + + + + + + + + 64 + + + + 32 + + + + 8 + + + + 8 + + + + 8 + + + + 8 + + + + 8 + + + + + + + InstancePath + + + + + if ($_.DataType -ne $null) + { + $_.DataType.Name + } + else + { + $host.ui.rawui.foregroundcolor = "Red" + $_.TypeName + $host.ui.rawui.foregroundcolor = "White" + } + + + + + if ($_.Size -le 0) + { + $host.ui.rawui.foregroundcolor = "Red" + $_.Size + $host.ui.rawui.foregroundcolor = "White" + } + else + { + $_.Size + } + + + + IsStatic + + + IsPersistent + + + $_.IndexGroup + {0:X} + + + $_.IndexOffset + {0:X} + + + + + + + + SymbolListView + + Symbols + + + + + + + InstancePath + + + Category + + + + + if ($_.DataType -ne $null) + { + $_.DataType.Name + } + else + { + $host.ui.rawui.foregroundcolor = "Red" + $_.TypeName + $host.ui.rawui.foregroundcolor = "White" + } + + + + + + if ($_.Size -le 0) + { + $host.ui.rawui.foregroundcolor = "Red" + $_.Size + $host.ui.rawui.foregroundcolor = "White" + } + else + { + $_.Size + } + + + + IsStatic + + + IsPersistent + + + InstanceName + + + + $_.IndexGroup + 0x{0:X8} ({0}) + + + + $_.IndexOffset + 0x{0:X8} ({0}) + + + + $_.FactoryServices.Session.Id + + + + $_.FactoryServices.Session.AddressSpecifier + + + + $_.FactoryServices.Session.Provider + + + + + + + + SymbolListWideView + + Symbols + + + + + + Name + + + + + + + DataTypeTableView + + DataTypes + + + + + + 25 + + + + 8 + + + + 10 + + + + 25 + + + + + + + Name + + + Size + + + Category + + + + $t = $_ + switch($t.Category) + { + Array { $t.ElementType.Name } + Enum { $t.BaseType.Name } + Alias { $t.BaseType.Name } + Struct { $t.BaseType.Name } + Pointer { $t.ReferencedType.Name } + Reference { $t.ReferencedType.Name } + default { "" } + } + + + + + + + + + DataTypeListView + + DataTypes + + + + + + StructTypes + + + + Id + + + Name + + + Namespace + + + + + if ($_.Size -le 0) + { + $host.ui.rawui.foregroundcolor = "Red" + $_.Size + $host.ui.rawui.foregroundcolor = "White" + } + else + { + $_.Size + } + + + + Category + + + Members + + + + + + ArrayTypes + + + + Id + + + Name + + + Namespace + + + + + if ($_.Size -le 0) + { + $host.ui.rawui.foregroundcolor = "Red" + $_.Size + $host.ui.rawui.foregroundcolor = "White" + } + else + { + $_.Size + } + + + + Category + + + + ElementType + + + + + + ArrayTypes + + + + Id + + + Name + + + Namespace + + + + + if ($_.Size -le 0) + { + $host.ui.rawui.foregroundcolor = "Red" + $_.Size + $host.ui.rawui.foregroundcolor = "White" + } + else + { + $_.Size + } + + + + Category + + + + $_.ReferencedType.Name + + + + + + AliasTypes + + + + Id + + + Name + + + Namespace + + + + + if ($_.Size -le 0) + { + $host.ui.rawui.foregroundcolor = "Red" + $_.Size + $host.ui.rawui.foregroundcolor = "White" + } + else + { + $_.Size + } + + + + Category + + + BaseType + + + + + + TwinCAT.Ads.TypeSystem.StringType + TwinCAT.Ads.TypeSystem.WStringType + SessionProviderPlugin.CustomSymbol.CustomStringType + + + + Id + + + Name + + + Namespace + + + + + if ($_.Size -le 0) + { + $host.ui.rawui.foregroundcolor = "Red" + $_.Size + $host.ui.rawui.foregroundcolor = "White" + } + else + { + $_.Size + } + + + + Category + + + Length + + + + + + + Id + + + Name + + + Namespace + + + + + if ($_.Size -le 0) + { + $host.ui.rawui.foregroundcolor = "Red" + $_.Size + $host.ui.rawui.foregroundcolor = "White" + } + else + { + $_.Size + } + + + + Category + + + + + + + + DataTypeWideView + + DataTypes + + + + + + Name + + + + + + + InstanceTableView + + TwinCAT.Ads.TypeSystem.Instance + + + + + + 20 + + + + 30 + + + + 20 + + + + 10 + + + + 8 + + + + 8 + + + + + + + InstanceName + + + InstancePath + + + TypeName + + + Size + + + $_.IndexGroup + {0:X} + + + $_.IndexOffset + {0:X} + + + + + + + + InstanceListView + + TwinCAT.Ads.TypeSystem.Instance + + + + + + + InstanceName + + + InstancePath + + + TypeName + + + + + if ($_.Size -le 0) + { + $host.ui.rawui.foregroundcolor = "Red" + $_.Size + $host.ui.rawui.foregroundcolor = "White" + } + else + { + $_.Size + } + + + + IsStatic + + + + + + + + InstanceWideView + + TwinCAT.Ads.TypeSystem.Instance + + + + + + InstancePath + + + + + + + MemberTableView + + Members + + + + + + 20 + + + + 10 + + + + 80 + + + + 10 + + + + 8 + + + + + + + InstanceName + + + BitOffset + + + TypeName + + + Size + + + IsStatic + + + + + + + + MemberListView + + Members + + + + + + + InstanceName + + + BitOffset + + + TypeName + + + + + if ($_.Size -le 0) + { + $host.ui.rawui.foregroundcolor = "Red" + $_.Size + $host.ui.rawui.foregroundcolor = "White" + } + else + { + $_.Size + } + + + + IsStatic + + + + + + + + MemberWideView + + Members + + + + + + InstanceName + + + + + + + NetIdListView + + TwinCAT.Ads.AmsNetId + + + + + + + + + $_.ToString() + + + + + + $_.ToString('x',$null) + + + + + + + + + SessionTableView + + Sessions + + + + + + + 5 + + + + 20 + + + + 10 + + + + 10 + + + + 20 + + + + + + + ID + + + AddressSpecifier + + + IsConnected + + + ConnectionState + + + EstablishedAt + G + + + + + + + + DetailedTargetView + + TwinCAT.SystemService.DetailedTargetInfo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $_.Target.Name + + + + TargetVersion + + + + + $_.OSImage.ShortOSName + + + + + $_.OSImage.Image + + + + + $_.OSImage.Device + + + + + $_.TargetHardware.CPUArchitecture + + + + SystemId + + + FingerPrint + + + + + + + + RouterStatusView + + TwinCAT.Router.RouterStatusInfoResult + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $_.RouteTarget.Name + + + CommandResult + + + + [int]($_.OverallRouterMemory / 1KB) + {0:D} + + + [int]($_.AvailableRouterMemory / 1KB) + {0:D} + + + RegisteredAmsPorts + + + RegisteredAmsDrivers + + + RegisteredAmsTransports + + + + [int]($_.MailboxSize / 1KB) + {0:D} + + + MailboxQueueSize + + + + + + + + RouterStatusView + + TwinCAT.Router.RouterStatusInfoResult + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $_.RouteTarget.Name + + + CommandResult + + + + [int]($_.OverallRouterMemory / 1KB) + {0:D} + + + [int]($_.AvailableRouterMemory / 1KB) + {0:D} + + + RegisteredAmsPorts + + + RegisteredAmsDrivers + + + RegisteredAmsTransports + + + + [int]($_.MailboxSize / 1KB) + {0:D} + + + MailboxQueueSize + + + + + + + + LicenseTableView + + TwinCAT.Licenses.TcLicenseInfo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OrderID + + + Name + + + + + if (!$_.Valid) + { + $o = $host.ui.rawUI.ForegroundColor + $host.ui.rawUI.ForegroundColor = 'Red' + $_.ValidityCode + $host.ui.rawUI.ForegroundColor = $o + } + else + { + $_.ValidityCode + } + + + + ExpireTime + d + + + Context + + + + + if ($_.AvailableLicenses -gt 0) + { + $_.AvailableLicenses + } + else + { + 'CPU License' + } + + + + + if ($_.AvailableLicenses -ne 0) + { + $_.UsedLicenses + } + + + + VolumeNo + + + + + + + + LicenseListView + + + + TwinCAT.Licenses.TcLicenseInfo + + + + + + + + + Context + + + OrderID + + + Name + + + + + + if (!$_.Valid) + { + $o = $host.ui.rawui.foregroundcolor + $host.ui.rawui.foregroundcolor = "Red" + $_.ValidityCode + $host.ui.rawui.foregroundcolor = $o + } + else + { + $_.ValidityCode + } + + + + ExpireTime + + + ID + + + AvailableLicenses + + + UsedLicenses + + + VolumeNo + + + + + + + + EnumValueListView + + EnumValues + + + + + + + Name + + + Value + + + ManagedType + + + + + + + + EnumValueTableView + + EnumValues + + + + + + + + + + + + + + + + + + + + + + Name + + + Primitive + + + ManagedBaseType + + + Size + + + + + + + + diff --git a/ExtLibs/AdsApi/Powershell/TcXaeMgmt/TcXaeMgmt.png b/ExtLibs/AdsApi/Powershell/TcXaeMgmt/TcXaeMgmt.png new file mode 100644 index 0000000000000000000000000000000000000000..036d9473497c96960ac7186903a5dc4646513ee0 GIT binary patch literal 501239 zcmV(oK=HqcP)4Tx0C?K0_jOcNU-b8jqm&>ZA|)y)5>f(!AfSM>Agu^UcXyob?(X0m4&7Z+ zB4T%Uw_h5zx3|Jb}PKetFtZRP*; z)oZBF&-;({{^N{>;{3+{xa>c+*}Egi?LTIyt;j6+k9Yjv*j;T!_V@qcpdEYN)K<=C zsjb{K{2#lkY5X+)KY53m_Kp+(!-d)9b!s}L5H&Rh^MB9tf0=b~Wp-VD-sZ5_@Pxe{ zKAX4gON`y@zQfDY+hvFE4mUSX2etoitu7x>_dn<0$|_(@abZ#2=Kr4Jy?Jk5WlsL) zL||=QetE6)=6w~p+tt*PQ&Kno?_M|li^YRjHMN;%|5yKg!NCzBdk_3y6IZJ(F8p6@ zD+>y0|8MW75wg=w?f+~0-|_h`68Tr0RzhSQEA?&9sDX~@sKFDK)rz(0|D&byg1R05 zYXa)4)&94p{+~+we_yZo-$J;yqIV@py+k8UbGMd@_U2VaIvP4(bziK$rFU9?%Ak9V z)R4XwWz?{)#5mLBplPJpUUTpDP8Mq{K5w|Saeh;~CDRJLxnN78bQTOwrn_}8xd*X)TCllrqPaU{?@NUxcLm!j> zr0N_tN!ya{lHr-@mlc#9krSJnl$V~LS5R75Qv@tVl;BJ0WxR4pg`%>xs=IoqX0rBZ z-KqLZ4R;!!0X_i#fOQ~dP+OQgd^chrG8t8f24W~!1#TRFiSUl3M|PpaQ5$Gd`YhuX z^Bdckvx6JYtK`!J-NI9%=Mr_PmCRRuu&Gi(QYxD#RhL>`wXJMl-{IaF*_G1`?&0?K z^_}W}I=FJkYIx5`+9-64J}#T+ot&AvaOBbS=h;R?U&uJcwF_ow)6VV8#`}$-txHZe#iB$%RR^Y_77|yZh2(+ zc*7I3r^ZkJK706l;YI69!mHBPF>l=88o&Ma?&k85_woR5($c!7ioS(_CZSyxlkNSiR$$#}m&>JLkOyy_$idH|%Hl*ND&i-b6l(y0QO4^vRfo*qOMg`0<3X z#IXb82d9!|56vadrp%_!9bQOVN?<+Y}T2R(d zPN)!7_Es%a->g}#)2`p#;M150r~r~ct>9yjN3a!eYeXQuz(>NCQ#^XFb(SaZ?y(xJ?`YA z+4ry?TYmiddF|K0Z_1y-zajs&{IB?rtSDP)yYjJmi$=NTE-g*13)-SpxjN4O<$$@> zB)ug4t@BG*Dw}XyE8FjOm+X7CksL}K_dB^duXFz4a)0}hYrmVw9kZj#Bh52%=Ps{p z-sZbj?fU8S#`nJ8<=rRtO#2T9bOp-y(t=>Yl_A-o2g1U`cSpGIvyZflGTE;mtrh(* z=11(OxOed{6P_kMJaF&e?WCKBt|wnhxsrP2@Qt)P=?^lVX1>aLpZzuGcbKL6pTIRBTd*G_9$ExLz=eomKDdE94(kD_RJ>m_cWbu$Lhk3Jkh3 zM&C5Pef$3A$CIBAe%=55=+BG4AOBbU$5vFWbXxgByI^+wy*K(p2B0;24Rs7JtmPYJuCrgaY&>RyFpV%zk}>i z;JJ6_#+_fiE_iqD!uVwP?(#G8d%b&ckK7*+kPzs+S8MNsps8Tqf9pbYm_xW`_@ju~ zebPus)ZzVp(Ho=x#yp5U7S|q6OQ=swI}m!%EosA{RfoPLKS{ZqdhGB>T3fm(gPMuT zYRE3j$<9sAi^&fy*j?yRK`tbE*-zVg!cb~hzz`eZt+UpJT?Yrfe_kACY zKGlD|_0|8I@`uLHykCodw*6)N`%eIf|BjbEh!u!6SN0>+5u0Xi{pX!KV*m4gY}tQ4 z8ajy3M5GnwBD4`@aXAPL1k(FC{0l<5AsBuMsrGvicA0qhc?xWa(0fT8b_TCJG6H*t zJKL55*TmT{@4(HlbjVh?Ggh-e8y<*3$L@y5Vzj+i!eh}wi+;Ebn)4F}y}@35>I%Kd z*cNj#l*3Wg_i#CX8k@Ek8s*a%K$;S59L zHh+ge&Ps%6A^YJq_kX=oBV_P8!5`{7lf)TQ)agZ5a3%~)Y z!G4p|2Hnq0-4BHlXm35=Lt81o*HfX1B+BPyFlAujelNJSXT>Qpc(%QML<+v93T(O! z(QPWG7(v1%gN^18rf^sGNyuI9yQu5X^{ktobf_BxyuKAON|Ag5f_7>5r##)@3~`o`vsXbNB5YJRWSqC;xf^ndqrH9#;!4Z< zXaQbveAAuRpntO`m+pbpCpw1=!0U$Y%h2HP-WuX>Fur3;{Q>YL)uyaW$R>GOI zNdxHe^Z;QySbOw!?Om{6e_mz`xU|zD(i+TA)q1eN!_s5xUx0O)n0IGEQ%_Yl+d$I0 z1;@HU_^ZKvzd@+8apFNx$Kn7U3A!=kSepP=AHACK3T)qZao=NbX!})<3UHPD_xg{Z zlT7l5TznvO=57jZKlIE=4=fn^WB3W?5$r%y9p(_Mo%{fO3HG<)D>@H;AX|*qgm*@f zQQZhNkN2oNM1Z+FDid*M*$R6aKXBUt^9?t z1I5AUW@VxFp=TnIs1;~{$2Q~w+S}|nvI`ARM5aGdhQG0oiOj=&-BE{h#rc>OAhoc!UvI?ti^SIh(6#(e z3kOlt-0Hp*loNZKI3Kylbi$`2tLXb{{vti7oQxev4f2nODa2J0!2JrMofu+fh^WGU zc$tcZs{*frQJ0$L=LIN7X=Tq4k|xR(K1Mq7RX8ogZLUW34MZ!8n;wXOGh!lEA`)q? z?kNZx3f=TKe2Mt``3=;Qo(Gp-qoO*bbE}YjEx7Jo$hC@50SVDB^TAv}ZQE%J=ZIlDmh;;XT4VVUOTQ?rXPkxF1_;wi^ba@}4|L!RHGu+9G?Wx~5AJ z??z2Jjv%7@r+K09H(gVxi*R}C%}OhHjWXo0F+5KCHLMbDC0gy)2)oMrXLb8H5CT?+-wuJ8g@k1 z2kD5^dSEJ88LZ+U}pW2QfE^*q}@H=y_Is4#MlN97yxY=-cc^~XX zZ*b}gn5vx-Iu6Tk&Tun=ZIKYoAW%2@!-p49j`wHI=_B{tu%AppJ z!AFx2#jqz+>E-q?`LG~G49o3x32lH`wH8~DhXk7nCyBHhvc&f$T0*_hrwOZ|OO+q+mawG50$e=oNf-{xhgZ5@z^;W~H~xloMGQS` zr21jI&rOnhFyE$bllEg`+D{U9phvhZ1Q&EJDj)BL-cd1tOGE3W!mtX|a;OON6?NNn z8>R+z)_4L_f%dvDrNq*{ocT^VO)Z^tB36?>wpkMnlh~Zi_*^0ixf<61O z3S$&fM&5eUk+gdVbDTgp*86SfDZZ?es0hIAZ;hlaV$+m`ko_2lti8AaeM0P<d9(_!WkT%B~0N_4MzL34g z9vO+GbYSNCbwQQrYn|^4pQAUlZaS!jYEX#xB9SMht#IQGtqZ0{ zKNEsap6Rc`on1gnKVhlUf#jnY;#dl>8O)*{-Sfokp&|t>0sOeQ{-|t zDDV-|yQSMX8Ud54nHa*i(fqGo=j{fsJGPO19b7T!!R!SeZCXix3|UP*OY?#d!DtE( zYF%`c>;N4&2q8X%1?;USOu{ZXHRC_P^VXgqXd-}@Z*e|g)Q(!Sj-oOBag2Gip6md9 z6-rErqE@2{KrZALsF*??36JtU03n8;wg4B-mj0V`NOF!ALEJ`qN|_}D0hY;Oct`<~xQts&WD|yPTLRwWSy+K%8*Ubxwsr(p zjQM<_n4QdRn7PgjWY_gL)8m;4aWYj&R}xv2%{1f21yUcSJs(cYAtxlv5L`(n0nvCP z;tIz-xZQ+;wLREL+_`fvSu?W4>3BxJn9|inJ1)2_{6ID3MH8aQ0*-NmlH|lv%OesV zGj!s=;fH8m{*yQkMeOhb+fN=`yM%d9ke)@d!rF|do-u-(n>!r%%$ z+KRT5d=w?5`998sw9ph=*GW7id6ILFuvXX`*MfV<8{KmnJHpxOP>X3{jmtKRLX$?Gbgpub!7f{?+*qYe1@RZL6IpYAQK77Wiq|Y}{%bN$j~N6Pqk> zcG!dQ=DHarpr$CfCr6pf^Pk2Y=wnBETidA3V-;L4^0~p?=-(v&p1hj#goXB@>^OYA zDmbB`fL}+mE1FN53NTs z8ZNH>MWFR<%97)KI}Kx=Vt=(1?&e@7n>x2$LSu#FMs(yNg|b9uzPY+)bR)g>T$5^; z3P0h&K1^oKpFu?um!~GG;|RGU=d%p)I{h{=4cOzIs@)M7c=Lm8o#dbdvmx5G-pqVRTQ-GW0ribNL~Vhd-km}*fR)-; zkoDkp2G2AohtVro?~uak-;66reinrG5Xp;a zpc*4(em&%Rf3K`qzw~q80Yi8F^Jcr%1W&`0drftDZoXM^l91^rLa{H=@+Omw7>hq$aHF|?`q;Q`M2E`!VtM} zO$I)Jpg)%E?^igtwiCw&FwA-g3?Nw#8w zd_=@LdbjNdf(7mD8X2yfsG8j_vg;n`y~HnVe<3U2TyAlvK4jG^1W*toU6x#KN=p~} zr$tkcg7_#C(locp$A_rHF0@_3bD8aHu3|e$!!rgV^^u^S9)3XoO=$>6(v7B^XL+F!!h zFp+!OdgICjy9}c+>ST?{9+Arhz0NFt=&6k&V-EP3EAbTb=}b6qmaZD_D?Uwy4~3?X z$&_BZi1);y_G8|&_`AwAwrg?QgocLs=r*#+)UK8X!0%l^r4@)OX3BcN2IOM#2)GIy zCinpUQM#TN0uiLvuunmE>t0$mJYO%Lx*hRq0<3z7(&@Oah(TTw zt&{#h3P~HptB@HWOF=v`w#1k_fIO7KWcwluBk+u6B;ISB_7b^d{f*j#O46fIwxgbm zZ&R%&t!w8tv58KC`_f245aEL;8=nN!=a1sLinnsN;w+QrS%cW-@VkscY@nA9?J!o? zdYHNzo1iyDj>0sLK5K4ZzHK`oUuI-cNJd1@?R4d0TowkU|hC4EU=!Ez?P z4iBO~C;Z!af_j?}XAPu)2x)qkNf?~-h)Q`!_@vcTp3fiWHA-x`G~5xPKf9#SkSAmE z3$r<9^p}T%nS->%ux@%e<ZF8?$;TKMMRGUF*fIJB82tnJ3;K%se?Wt2x#3{m&0W$DfwEgKk{t{BNAP?elpq ztVz|i13X5A!YM>V{Um+qxq>_>8rX83xWL_Hpo^O(!uoC~w;ZK4(PW6}d8U_m?f66F z3I6Ayr!@@j_P&tZG8Ve?YT{RhZtGykW@^9ksmB1hNP1<<2(g$qZLk9uK@|2bD~(S# z$%kc)$K4pkVvV^eq$dB?lz;VouI{L5&IMM|fL&re{YE!5c!mmU)A6VxJ2fS55fL}@ z#tjm%uZVrUr9Iz4tL2c6VGxQ@*D?(HgbY_&f>Ua?%9g;7bAE|Q5LDt}0R(Cn?7?k^ zUf;o8u;W zhcrs)=08Dt1vPOEkX7y{S#0Db%V$h`lvwvLEeCDbb*DR)7%AP@?oG(0g{qS97GkLF+k4te$%j^DkDza+=YA73h+wwHSHlL{~3kQli!- zr0=2nG*3`Z!P1)CCKu@_3GcTKNX^Nv$~z(o1R&opSXF*mqR+jR=`MK5z8Yu8 zeaZY7*v2+sM7lLHO6glHp)?S6dG#UE1$6aTQav@^5!F8@R8?yeog z66O9j3h1n?ula3Rf;g|KC;g$oQ!0x!%Tj78OK0^fVhX{a zCA0J3sEGHn)ozeOC{k|gMFVfhK%IG|wc@RBftrwZ5^HnYTA(P}aog~uq@j2s30lf?~eE9n)z?S7k9!*6YW8~udC zZ3*@N%P|tNYUpaWK#UZLRE~(bR7_JU;$GA@$vDz<_ak8tMZBO2}1q%+(_m|?G7VL%G`tJ{A|)kp$MNyEFjyn#^RVgm<4|*ZZ7v6XoBD zWWB1(YK>u96_AuQ^p@md*(fa`vR=HAy3y|le}H1)9KsQkDHc~)6!I#a?Nlmmr*!v_ zn)C~OUoTQzh|KNWDEL^*Zh6X64HgAys7ZSVDVH2 z`E$?Im@&+~W82_`Dza*^mz!(eG}}3Qa9VPs%{4+#=+ykj=O?$bX@k=~)e&|FC3xB1<1@_7 zZw_#>X6Z`iEtctfSYEm}i9`4#p218n*o@FO;SEj(#|>+N73J^xLcw3NB%Nm=4T+Jh zjnFlr6lFT}h z9MUYyw9^o|G2wd4G;(*SgQ5iq@%kaXhJ0lILxe-YOwS2g&?2ol=09{Yr}4;J!VrGX zm>7Qnv~m!K`&+iya~T(!$?Yh>o=PZaF~in`oKmd7hI;i&U9sWz=Y*HAJkx9ZMV!0# zO2%)DfIW32f)2t_Mt{=ufms7DC?jP%d%VcdOylfz-JOi18MyW!dU`yt`8#cE zh>rXb)!55cqD2X_#|wxQb<@w?cd%!S3KWU(4SvC7Ay>rzxWd!?zkv54Ka6{XTSoH83boyR)suvq|8MT7aqFbrWX|YnJO%pbV zFa0Z9v(r_iFRrq8=Ed`U%!uqg^p`s76f2xLy>)W`cnu0X{Cv2vzNoLiA6W$GJl)Ma zywJL*!!*`Wai(QCC{U_Y-uC=1?3NAKn{i(VgU!UOS^8I(W#09|8p{hR^v&G6)u zsP0)Gdd#!%S0{7u+2I2%zx&K%&MGink$Zng54BEuo)%^(qV2W0Y*DURCo7eqrc+7| z!ex+(m!cq>p{M6}Kw_$QOcgBf0b>vQXm-rwz58`04m=6agAMw;#2ws(n(3ypiWT5`}C!G}Rx8lto2$RU(i0 zH?-bCX}Q}fWhmHIE!k_dm(hZx2mMwvoDD?R6XO@N2!9~QXDbPts)8qu;iGa-50i0> zLpgmcoN46m&I#;-|ISuBY=_%7#bfLl>yI)^T%^$>aX-#MlfkM$FA&}y8=^xXIWzM# zlgh^v=9Htk4MR`KtV5=~?@67J zX!JV*=GZFkIq=&VEB5col5sH0FIRggj3G!G>5Zd@L>6__(X98(s_s#J-P)Vzls4bA>Y%55|`H(j4sI5SNk^+B3qw9BI&gi50U4 zrrO0cbi>LYGWJ+M7C)e;uEPi}lRLC}=|T(!Pgz*6+yQzsZ6~K!l#JC&e&v`B?hwHa zKJ9T8WbB)759NXOgf+KuUbz*>BiVPXUx;@yXV)F)f2MBGHlrQKoW`3SJ=!h?RUcVw z!Im$N=_*m#ih*glcQ|)2^ni z!>+>dk5>0>1HL^{(RHM}c(k)UJ$v&&T#NC+wcY;8fPEX-SBY#m*vD#x9sDR+|foG_6Z*ccf)UcCr+dp*Z zraR47G4=+(n({DC>dTyqs18`*xosq!n)OTn2qz1y=fB~nQX7ug;eN;58KvP+!Qlg@ zI4|#vu8%lRC(X8PIK-x>%9nWmHE!}4oRLNVdlq#c=6bfAvARZk$(vSOU^wqY`J9?R zRY*P=b9Uqs=~b|Ae+tRZJE3bQ@rL8y)dQEq_t}@WQXuG8d%mjv;p+dnNIHS z>c!)Y>>v5p<|a{%R3YBP>@bc2K(3bW00WzYsJCAGSFVoZU)5UnBg7?CU!0WL@%Z{+l7*2=^$gx^M^aB__NZ+ZN z9)1<(*sf0VJl4#H)|1IU$K9G2qFV=1iol?%?lR`7NC8dy^M4-QJy;JT^Am{yVyAa7AlqP+WImGtBE{n~VIp zlZ(L>drmMgz5)Q()uGnv8L>vdn3ZVo_>ur7QWv`Lh-xAdxR=ucqF@EPS4ZG=tI~BtY(f&Y!*n zwF4g*+X=;izbIkQ;}9IR8Tu1y0%(MJKv_9=U==W}{S;Uetlo13HV!*s-U1WAw|_hc z-hk=7rv+}n7@ceb-$i3bwnLK8Yns|2y{I#km5?7OS)(R20#%yLhjLNgQ6T6Il%~fs z=uhND^BvHm$ZPL4fsbj}+s8qNDPNaxpo?VqPzX4b?`wn96L;>wLAvmN%&H;#aL3Nj7_F(C}$=!u7T`@t^}Yy0ITP9P-u`r4-XX%8Wes(tpI1? zoRH%X^Xkt?0%RdQ5Lo~%2)}|1hpD+;K{~*yO@zpu@D)$DpjM(fFF7DZsIXZ*WE66_ zYZPgN>=y(fz99LS4#Y7evr3NWK$6qU5F#Wt>@I?cM7nK3)FA6jViD=cp~qT?dzAGT zHX(?l>(ds92x3pidxR~agV%x3!e2xO!e8L^Ds$lXaR(1;!yjPVL;t~VW3^q8@KYFs zi5{Gf+4j&2{+C;IE)_n)&Ya4F1DGZ4VelBboNEo=Mbkk(g>Rz}D!k#&C!ndPfGSVaCGq7!h!n?;{UG4BwUtu+>6XTXJe}#X`PMERu z2P*}(O7s?90n_AvE!zY$VaLFf&?)@n>i$DeKNoSir!~lThgI z9^&W}bfF`-`5jc;63BFivJ{Q5A}C8bU+NES7X=+^hc58G2G>JRvOl}Lf-0CVO-vyt zDQj+>fPS9Bov?x`N6SX4pxFbB$}y-<_aws%>elWJt%SNZpD3w-hRV5zw4fPcd9VgF zTd>Nd2kOc7H}QZ3QsFn@&|{0P$8SROX0gNWQ1gk;3Ib$#m_%2HJnBn@4Us5ZT_PZLq8^h>a0RXQIuu%QGw#?usQRU{ z!C*+=X`y@of;#qqdH_-}lK}b$NgKOTR0T;JfFC45vbtbFx{&x5J(sNzXGyzBCD@t< zyS19s(^z=Ij+hOw8Pz511Kem9;o(3yQxDe%ihyNc?}Keh9kD*(&xcAdJ&@_3WsDmX z>U;`)6J}skkNyL@e#3|ug}8M*fZ&Aa9QMY$BVdXLxGF?49fTc5WJ7*oej!lBA2CG; zRZ<4}E#hR5DH?)!@9d4XLmC*RqRo&s*ESQ@5`P`bz#9^N4p!mZ2%1g)SR~$>rjEIR zs{{98+_86xE~0y}i3f|(ftYK16HqrW1x`aK6vosj2o;5%yAp@r&w6rHiA!Qy_n*Q7 z=@qge%rWW(iUhNTQU$6(W5|w$b7)=SuLA^>itsQ{g$lwyaPmjK#oHOVAoiNh!hs!515Y)=2+C&z9Ui$YH*;-04?a`nJf?yX4KM;bOLq6?>)Q2LY+AikiBW^Zl#;->-$angCBGknkhqv%rzOm7D zSTtq&v<$oL)TT*CjQ+9W_967znQ^`!Dsn;}dl%U}q^yG?SN104%pxcq-f=>NjjCeL zU3icDwZja2gD}Bp8Tx{9_7oHI>+;))9q7AfTiY(79xSEvDo|$gMp#>9`IK7iZN$=u zPR=gG{=U6&?(l~l7x(bs1s z0i45sB2NKZ8V-|+K*T&xVj%c%Jc!@}vDxzn9|w7}Z4fsNm9HV;kg&N^pBSg$>62^e z>)O|m0RI$a8$1TrNO}mbsn;Va;hnig1U&p+905;681D(jsSpX<_TqF9@-|7W*07J%PokHK8V4X>HTm|*uU-le$+50C7jbn&;UU}S&JS2m0Im30%< zLO911&nq(@}A;6|v*7$@u*ikTk_vrL+`_rds*)Yd#gN8z^~J4hW>d>)#h_{i5Z z>ypk%d|11QFd+z8LpaF$S0%ywauk{SZ~?6BXdw0gBf@Vbrjk}~_ZO|C!VJw(4TOhB z-%ztUMT6PoyKQ=kB~ocKooPZeZgNBv;a^L&D+h5GMQRxs>~;Ru{r53%IAC8s`X6hD z-5K;IMzdi!a*mWaFQD2DB@bATxqYrp43c@*I{FvFbekSL56@~2tvHLTmy6PmVS$n@ z`y((E!AsxmXd!RAodDIwE-+LAZUrBGKM@$0)y&KzUNQ;F9GU(hZSK)vCxbbMsT z)AA=c+m@#E6^iqy7EM%4 z{-j0U( z|GAqz*T@`Zj-y5sx;j9mUaM(?z4scsV0)0DZUAiX~4tf~{ zBmV%8?fOeBC1gxjr ziUxuGO50Ak1`mqtA}7GfyK;#?;g4;06YUWh`lbX;q{9&-{s0cxox{z?UXl>lfmjbp z88aE9goMx;82>Uo>Sgru;Sh=!x_RGQ(il3|`zA3Hy=UuJ0u-IAAA)yBJ5LIEmuTZ% zD>!UwkvM<_q*#)7Geo3&V0YR*;_Xs%sw?4hYAsntSi3KjWRDN@&LmvM3Ac{npW>?Z z%W(~u4-;E?w!B{*eD-Iqw(te>5qmvpC1WMi6J$n0}&0CT9P~x%`Cpt{Fqv*NtV-g`4fK6I2qT(xd4^`<8LjS~oj6VT4Qm*N$WJtALzxg?44ze}>g$`AWd|E-Id{Yf zjoH{n!BK!m{a@Z8ph-a``!7f>DUx{+bT5=bzXl%n_(QXSNH^zEBcXI%9JvBsFc8y( zhZ2=QX$EwW-5_d!e#30%e}iqPyT%p4a`MaA(Xh#b6-;~h+K@YRXLyANidqYQxY?D0 zKoE78NR`OyzGreGHd$dKfnYwdyo8+?3|fQljagNDlJf#Ro(E^Oq2UKw83c4xh(C>i zw)a>^xs0~oyn=iZO_vA8|62|Gn6e%eZfcadgNCgiukwYDrXOIV{SW3 zhme@~f&LlK4DO??z&+hDKnccGSY0RE;&`h)2uql&Jr*)A&L%l2lp@Xg|1(3qT~L7ON%R-1b# zX@qHLMI`Q^JL#$8!U$F!NNHdLVFq?*{TcG0E*W@wGr`6+!S}@6#*68WZx{s8Wq1e}xvpo8u!S zA@B9@VaN(jdf&@(5KE(LGUFS4vTYzci`jLY#tDF zDnP>i2_D-1kNFVNz0sSo44q$9LT!cLZ82|$K`r>Esw>b~!Ushz6b<6YBB5ht+r=rc z)#+0LFswRehUf8%Dx8pPzPQHl^b*!-}Kj-hZrHvhyp;U6{$ z(I(ig$!Z-Y+ zv2aIpJW01P(~9EOgX}nVuX2HT3wueP!^mu$m+YtADQ*?kP+5mjydFya{@WZKa_F8u zCYiL)Wsx33Y~ApldX-4mK@xx9ESoA@UWf)*9m>OkA6nNR5Qv(otwlpxDNT@7Ov8sIjGc>3((6lxm2xT zr5G$qDKZlX1!}1d+_T(sQ8R2?_Vn)S3@P)SOAu`@V{*eAN)0Va*Om~0yCX|#IovVD zm{82O%F&v#gl2HPlh~mtsxV0qB&|q6a;rqsQJ$)~?G-&~l^0<7Uz_(OpXP3C+8ilil}TOve$a1= zTAhcf#eC3))8t&{J6#EW4c=LTZZViRK)a$y8##cqmEInRs;v=q_3X?)!yoG?N_OB} zX*m~Z%G#`K@MF@+azp1T>RQqE4WpzVtRuQ7aYB5QxLfsP9zZitxKFDgDx`hm*qYNK z=&*Xe7a!Ai{7@T5)HS=WgZZd!(9fS9r4%{)Qcg)yHnfnMSp&LnaDMn)QPjXdeLLlA z54@oOPU`?PI@M^k^f&&a2J^FHSV(clTkjog!v-VYP)8M-u zo^XD{-2tAhm-G`;YHv=9B^zo&dc0`WsYmp22k2DZM;3bNah!!TPKKt zfS9#1>FXi(upYrYsee}eh&SKM3@6%ZpCiv= z!?|_6s{}s?>7A?iTHv78&0LF$&B{!+Pu3sVBc>$rni$Hk33C$!&=z*B;yP2s4tA^@ z%0Kf%j5>1uDtFQ)EQ!PJ8EMkPvpagEED)(>M!d1SM)6(Hm6aoF#FwzXOx+^?Kkr_Bg?#)K0{4dg(GQU7uaJx^=)3bnT{NlFL17_q!z)Q}5&4e@Vpb@pT7;x-oJJulR}jK*f5bygFWaGO{w zde)A7!2E81KWGQgRlV%ZE_GL|>ukx$mBQM5` z`7}!gTxT~S78k%Y?|w1eh4F4bHc{G`qnaGqT_S0^KVX}FUmDtz5^pb@={Otwk5|z$ z=T*QCYZ}<*!3Y+S&9kVp46sffei@faV^1tM#Gy1sRyP{dXZ7bbo-UGgZvbEp-*49f zrpH>S^g;XfE;c2CeLb#AUPE@;YKcssq3f;*Ucv|(pP2g)P1IB4520qrm|;_BXx))M zG_{{}d9TnZU3^ZKV7d z`-y&pAPxDVv309^2hiIKYdWE*d#Tr20jQZ6PbC30u~$!a0d>|RNt}jOw>dA!MgxsE z@=jvxG+XF4=rW4ym=_5MKQRa;cGjl$d?(y5xZklz*pPatWf6~yUR2!1>je(W>~NhP z8$<)R8k=!`CysCI!+nYaX)e=(FzV#`(I%z~+;HG2{c%l4PdZIn5ZGZyO-ni5VoOPg zj#2oM3j+^Hu_XSEyQ0;^zcxzVN8%IXTmUyf$iL1PLaSCZH4zg;x-z6-ThaZI_aYU-z6Vt*d6l!DsqVpofkm$G3Iktl4M#Flxz%z zw0UG!RtsGkP?vaCmvz?)KjyD)cj0#@kE^V?Gy6-MTsSKN+9Xx1njOW0=gdGG7+1wu zZ@j?XL5bEjA+s>2h{YqtEmqJC{T<4xs#D#@@*{b*ZO5f6l0BM7MQu^P%aanmEq=J^#Dlk4+3mz%?=c#k@;%)ovq2W1aDzho2071b6mt?88(R zcY(W2a=qF%wkr==HmkMJqSncNDv$b0#O_U+?qhtOWQUCx$BA!lvYMGp^V7adyo`;< z?;38K%muIRdpw$5@u(|k5R^01dbf8XX+$~Ql@vK88*KaQe@OJS`IOq8{gCl}a1G2f z(VzzmD-E~pP>0>~omQQLm%1!9Eh9{=zDnB>9}R8ASmYD+_e>!w9JO|?9AnZDI%SNW zD5)L!j?T*959~(kB}{jBquz$yZ}&zm`{GqA&?YWzO&id~R$nAD7#+h@Q7Oh%Ba%T! zJwsAv$)vRU=}8}=u=v}E4dF(HUw<{hJfWuRDV`kG)K-PJ^i68^$6a$F$y0F0tv-vF z@%Dy9VKvTELr8ByZ$ui*JY-DN`%RGOnBvCa8d_}n$-Wut#stGIcgohV_||c9obM(j zhScIxDie`{tbU0tNb!az1tkPijlZ-3bQVG~lg0Z}cXVPUH@@h{&?9zRdPJWM^IyEY zlgVfb{n~0oukyL8xJj#V*)M%ey|{UmXdl&nttmg7cuup1I)&~-7*9WtI@RqT$BWk% zQHJsbU(;^(%6Yfr_jGD;%|km{kZg)in<9i2=(0l^#w^^tPROCN*Cz9zv8dTqpy;%;`}h4Z1Qs=xe)K2=Rec(E?#k`d1J&6@-t zn8(&KxWnWJT8$5`oAX&BP@XMY7#ooAzjy1Bgp_(eRMCIe% zv|Dt-`H#d!ptjjokitH(c8;q~QPZj+H(?IL@{b(t5389R%k8l&G#%X0@%1pcC${xW zoMC&XYE8(LYJ;NHM^k=5*5~|8JRxe|?99K(1+RV1siatFb(3u{Xz2YTWn;-T5o2aU z#Dd|0SA7o;TX+BKu8Td^eyF211krrFRcqHB`G3`i^A&NLju^XtF^g!~fL*=qXm5{+j)&-a`-zr1^s>bxg$i>@?~SwxvrAo{c?)IO@aTj;>0N2< z(SG91EYE3w!t;avW8Vpmk-G=a<68pUd#3Oa9%Jo4@SE*tR7`xZ#qXvOe6PNu=b~w*J<7xQe^X#QT->P!$d=k2-8fFSdepZnS-b2nC^s+$73kvnti|wl!xHUTS&M7Ng-JbSY2umTX8F~9T75;*0spj4fALF?q?TOaQ~TFV zOT38=5q-?*=IGQQ$6Mf6ZISR**cy1R@0kBT&#)kWlvn z(0!0ACO4p)p?jY58gX#@E8zeixb@t1zyr8Nj|Z>;ZYU&!G~v6jr$9_NpjrU7hBv3Z z0QbReKJT^PmTtDvhG{jg?m8XDpH6Wos0F$n{QqXr)*)=jW(T(GI{V0=6BwgE|Z z?PzcGq*8fVjh`rXsK0F^fko*9ADRucmAS zJY@QXP=G+%h3zunELGFQ7HC0)-gB;Fg@Y~V1wV(P8 zR9bc8U5A)K^^DdxFi=B@l3$wG=qoEbG~f6`R29qxFnOo8n*c6wHko7qG$=Q2XH|b* zIDVqB=E}^r5l(IExLi3?mpkOcFs=9Q-2|;^(CaWOfi+xJc^$HAB+E&`9)L~aaF=_4 zZ2o?e`bHtm_SUxQ<7ZDS1=YxxD8q%dCG**eraG&s1p3;#cO!TRxqhbaLh)h)ymMz# zbEC8Ba?s<(artML0f4&jlL@{tkVd4t_{2TQ<8id?sfVEDH;n@rY_XRQHhZWx8WyEaOW@la&70S`*2C!g>fRh zzW!m$J$PZmRkk5KtMM^n6Z|l6MOhoX3Z#|X24{kP2ET^)f$zDH;Ik04(H;0zsQ#@n zm@72*#4yYrN*zVPY@p*RZI~1EDYF!|2j&jzh9$zNrFk$Y?Cv2ZYyfT>tOL6PFLqvr zy@PX%CSZ@@H*Oq-OyIsBpMqS%?H(3G-eJkgM5sRI9sN1f8v}$Mg63gNO8lS-^k5PP z`UIU22e`ROL=9! z6?9O3y6-fIBe^PF0*wp*k&lD^@pFO0;CRlR!p-0wR_y_Oh!$g8U@|0(w#La9vX8Ej>;^diN1=EO4eBNF;#tRn?7?pxh>C zJ^-{R8A+G}TMIV_RDd(NFC3@AaqL{9pP+8?^7#P3<5~S_K2T@kch@7J$M7G~24G(Q zMnW}kpsTFm7-(hdxx8LbrZOeL0W>PJ4A2F=6D2$1K@WJ*>r6mCl;`JG16ocr9Vr7G zJNmD45%6-lT(}mvVeAVY0n8ti*DnJHdJg5OfmXHeh;Ij_G{^dnf+(_wjwv9dU}BvU z@D}CkneTw=OVv}=0MZ$+j(dRamDBn(ra(= zuL12=HaqSFd5AjK?E%uLD=+xrW@~7(e%Sl97ka*8E$V(sA~47XH4+m2tp*oTPA33uh{SNbGssJ62 zsqRcb9Y=oq3%%6PRyWUDb)7k$V=n|J`q_>vc~O2ZXw#$JwjY3?9F+C=*AbuB_J3$@g8GD z753q_C`1_cu;E(xAB_8nKICWKnekOfC}*k71G$!Uj%S7#WxT?CMpV)F)=nebsD0V5 z5&9I5STg(@>GW+dk_DoW#_LISa3&>-qhI$5Dgr$KcwOt%ljKT7u~!6LGhlJF)^%-r}f= zLue?@v&-P^G75?cFA|fho8ayORhB*6l>0cw5x$Zg?MH>(WNO&MU~oFtkPJOV95`l& zAP!K6dJuX&*k&WRxC74$hWoV$kOvbc_h=OFXs^!eimqlFg(xp2(P^`?h#^@(YQ8;n29gG*pBeeIPx zF#XO;>3^ZGTkZBkpcfU#eDk0Zslx6F)SaJU_#Bc>E}y##e|#3ukAufAU1&0dojz(s zFNUQa$%Z|L>5pEhD1n|BIG7HEHg~VwZwke=t?=Chja6vd%|adtw;KL}=##+NAmZgs%<6s;BtxjWe0q_)UPD(f+tJ;A7u|*fG!(TQ)WW zd_?~M<_T1Po=9PWFas>|e$a149?1+`#CS;f1zto%5mrD#DrI;R$d!yJ+&<``{pnaP z^oma(<|{1T))&KpE$U;?KjGZjW$1pqCOfQ9EFN@taXP6+m1l z@^g9umVmq)#lqZ2p7gQ6gdyi`UZHOzuju!p9g&x2%t?{tvEF#1BdJH0PS`+fq1oWK z5t^Yla0&QpK8i;0G*CzO zV0$OO5nfA{x&rZ!MXBN{+#~)^awB$`+YPS9Ze@#0Q!sf zo$3uFSYW0)%>c#dH?59E187HOa&jFCE$a$Df_y9v@+v}l2nx0e5rynG2E%Yu;)jv* z_}S!uvF5zQ8^b_ZQ9nvuB@pMWHQmU6NEAPQr&&P51MDg zx?*d}aARz;n4AQt2rnmD0AV|;iEBWFEnos24Agys4}(SzU*Pxy8(QA7l0oXclMFlv zi{C@L2KwIELX8Jg3V)FAL);E2NmR(OunuA>G{N&VAr|^op(+~$M-h>loBXcl1= zR>xBZuZ~e|evUhUk*)5>oIw-&H!{PS9~EFaj{#$KQNPf2&JHzqET zJq~&hxFn;Hqxc5mN)IWnlwh~{2(|_PYV|wxKkUBVX~wunx5xMWAA|if+>v~VuSlc)%Mtly-Pl}nS=RC-l6A$-iCYIlgv1%w33~p z^~p;Z)>K2u6f%$u5gFA)k+$$#a>EHXxQU6w_*S+>ump!>8tk}@&88P`uEu20R_NuT zDhUU>Ef~6;@lq-6aGMT&1!cH-5#deV(1fo}C(cMQISqtbku*^gzn6bK*a)|t8?ys~ zdC%Uzc^~=)qfw86yhMO^8PP8cc1n;m)85C_N0frDjc{kuQrm&5GGc!7Vs%7yjO{4nyRpZ#F|`vzqnBkTC>d$4|Os%2o`d-Wh#Cc}1}uRKY?>$ljDn zF>ym@P}Up#QtQ6>5gb!l6|@ptAp7h-irFDLVf7mIn^UQG9r2LR+y0zhws1$ppmxq$ zQnrxaPacL6N#P^ZijRbQ{qM4p@%Zk_crRRRyYXHz*18$wUWR@x#aS((y0{R%_XrYU zwliF6QZ*w95XIL7Q$O$*YL#$LF1Bu|Dvw=L|2rGXtZ(#-e?)HrWbKtwzX5@67>W?Y z+;os)1QxF9BaT2{w9kki11^hB3-Tjo8OS43r3M`=@5U*Y5$QzKho2*IcNR`e({B`8Rmeax)gkXUIKLfu&GU2Yk zyMT|dUf~+bqnInP?=zO@E?8u&irRoR2zW`pk7;+UAOSEHoAijym|-0u-Uy9Rr3l^W z|9I290op6VV@@h{7SzECq12WgWMq>w(%;kAr0kfFln2CufE;op0qMG)cng1L<2S-n z{8ODrI6tg;v#mhImvYg(9o+Bue)c2I9w3u>oRw3WMt{VZOE;&jqx;4LQnIKs{d55PVnEiIkRK9jjCj1)OFhgH-7p>6bPGLhG@=N<7Wr+T{sA&zxs<2ddMy;@g^{)Km!ALozu8L~pS zJG;(dq^v9L^$jzOR@I-PtF%eQT6}Tcle}pLTyIx=GKt zfbkSz;l>)A9_zF27xW5zu}q(zJj-BkIp?Qh(Q2%`(SP-O7*2!SLNIM-Z&u0}%r#0K)vvu{Hrqow$rV5PQ81{RVhgYlQq5RwudCJPSyp_csZE z+NcDn0N7T?6I})ED!44z3woBal6w@aiiEN&AxVDm%y{T3r&u}-dS<-??FMXI+l+Jr zks^jE=im#pGPw$V59uK3hrg;72!FsIwabaGQQD#~#Z$Z?b-(O9PKnqmeu%TJ85C~EGV<+tgILEyWX^uft$nd9 z9Sq(VNdJHdalB32jPY6TPW>;ZYfln4pb>&!3U699#ad=Zt%a`_`%#Lj7X$?IzPv=< zT2fllWp+Q25HZ25B8>X#(Ub6h9i>zNp10nUasV$|rAOF}dCmXU)W_{4n@QU^wlE{n zEQ?)rS+I)nHW$XF(cwuO+0HbV2ph(0$}=A+?G$;*F^zJYY`lIa8B5x}DjT1K?c_aa z+AH}=+9dT8J%qZ75(G!9H28cTJ7|M(m~k)!Bee$8F=7%TYsge5Rzl-x5R@)^y9t z`8-9(sw@e|yrnl$%4}7_!VKuCa+voY>NZKWLo|6c|Hb+hL_fw0oiNNxTqrwD9y5i( z^+@)Nv4PKpdxykjzj-BnqO7&-J6)F&w=(nFeM8&mW-6g~C*_g+g@Z9^Mx;T;?h_N-CwHiV{dc>)mQ*`w)EESFN;xz*Hvd8mK)ahB_xYKHT($S2n_)4UK@F} zz#O}2PC7_r{Fi+Zd`06A^#trKGotGvKoj$%-5nqSB&xcB-lafA0`Pir; z>fmAN&!mZPXuOFi3Vte>|DVE*ch++*Bg*U`tR}>=Nd&VC`AqXTc>=YK?%weaXM%dv zT7y+I0F}S6+l!yc+cA^rz7i&;CJruSV*-P>^5!u5JDoVz==XM6%qJKVlLE#fMy9o% z^Z*T|S$D)zw<2G)EK;oN1iLtUp`fEQv{ zkUHCD+TX&MD(BWUHRVm6&7K8b(!EXTDc?m~q$i_C`4-}wzz3ZFa=r(eiR1g<TSP zx+bHPcQmec6MhwT8}W7$ZJgAGbb|v(A}KH8-Yi+bO`1_zYK5jFF{h&8|e-3 zWZcT(6##EgY+pa%Rz*V>9oU$Y)iwrNofM@q1T93mG-1JvJq1!v$YIy7B3J14EzSH1 z*v7RRcuaVP`b*jY#8d39p_Q<&KwR$}+`N3Mvje^(`$X$Cc)-Dv&0cWuz8U!d{QRD^ zl5B*d>!R=w;=j+!JB##Ndw^SmGSY~pCZa+yhX<{&bilEm2iU#k>pIS2USxZ>{KX&- zMk;eLq5BeKk1*D|=fnbxmMc%d#H`vP;Qqv_}6 z*1l)e5Lz`WNo;fv%A~CVT4u=1g>NCFj%?gju zN4J0F$!W*8G_a3T9~y09@=2+hOTKDO=O)!@Dw@Zx+wD z1t_93wl}BB1`|~BQAtj?rNmLR&(A<`Nl>&M%2n}-wgj;{S(lCC8E%vutvCV-6N*^d zm(mkdr|dHCOf7b5{nA#R-rTII0wg%dGZYuXM#UH81-?fFwNkC^!Q22LV~Z_o7w4=| z23<F*Z1LwBwGZ#{*NfOU`51DY$B$C$v~c~gUr zfoD>(dkLVp7=zACuzJu~>ml$3uLUIqqH^3WUk}A^?3P5s2>MLnb@-!|Qu-Xy5=5NJ zfooJ&j8frtd0_)@;DITtdPMM;=*5l(I3)=5@i&Wi()E&6u^ zO4J^89oiU5ANXvt0=vKB%?KZ>mwT`OD`q~qx4RRQ6Af%9VBCZDsNk3lUX@J~7;{HG zX$Z!D<7H6-X3@Zs&%nf~7gEomqJhN|0&+)1@$hldyWI4CN0M{0U)OzNcC=aB5yJ7k z%gz0SeO|uuSNJCmUnN!e@r^HpMfk4M!PY&4lTRn1*DIs z^RJd49Afjla`yNB;P4Iwc6P8n?%&&rV)FM!C@UEyJ5R}^^kRn-VqMy~O$PiWYJ|aO z4wTraAtW24H#VLbdoBG`c7AB1_5INdurG9z}O zL!YRYwR@8V-+~Ta9OmBOa^{}U} zCG6mGN3c>5Wz}Nd6cU)F(2)7<+$OaVcRK)t)q<6qws60&UDhYtjjC&_^rZABWaL@*U@^>YP$RM~dr~W8aKb)L#uP7;JC&=zF_&HNeGnu44*V zwDnKReNd~}cIAEW3!P<|Jxot+nH7l8t^BZ<1eE5x&&2|-q@t$cK-RHuMzcVi(EI@f zILP--j}~OD>xuSG$R`^!)gbhZS(yR_*U>#B8ATjkQNh$he6JilW($|*tIgWOOH#8Y zJ>hY&cSjQ7>7g0@LU@z!?XKSl4cGH+QUt-qrCE&hGE+81p|?EAG>OBSR_? z3#+khc{gXYu%@ZO6YDV2*yF=~n8?t$J~+n4_j>1TjFs!vRy@YnX0MWkp_*Ni@50)w zRu@HK+*StB^^o|=kfUzo<~+`{C8;&#_xM)gVk~wjj<_atQ!k4^@*V4VPH=EN)xyTV zvx!#-@&C+qWj6Rbt22Z)*xM`nX~xKl75C?X%!E9rBYE`qDeSQVT34*iAd|`pIoETM zGU*HN*g`RI9Z(%3vu!e(#>imv2&n~W-|AVxN_>X;R_X?nRYk?zJnv)f($oakImKsm zfsKv1IPiwGI)v2Y$avrz*WN&X=PFUHrTf?v%RkfP<`9V&C0);muS0N9$5BF2ITeO; zn%NCjl}BJrK+535o2ca(DXLwB6vWa3waEvCVDj_%}+0t zx1Erxev8aNiObK<%9M4vTPFog`pJS3iS%fUPydKm8Dh}&MflX`XIqE>=n7C?X9Ek)RR4zYr=o9<+Y@ zO7JA;@j7Ghb#USxWvvj{cFMo58?<9=tiA&@toqS_1lzOR8xz1o@OXd~B)V)R;1%Rb zvL~8;MG^q$`hMw*P~rVM(X@fN1J`>x1ov|9StTZ zcj)g%HI!D#&BiCltA}<1jv$+YZUP&SWzIK%50G9)mw?X^zi#AKl~a9=J5|q;pANmO z`9x|}aBII2ar7N^zX^26Nc~@Yd+~h3H{4QERO5Z@>!2-w7OaKyVc=R!vC$}S1G@2A zeq|!>+OdSHKF;uG%j&xuzsPQA= zxzlGrGJeTu4v>mHdu6Dit||U#SLG9FWxurAL)0R}*Tf4}P-<$cxNJ~V9f|E-I8-lS zd^(_PV9}NWpEqVw7MxU#Q{-TymyI3x50|ydk9M4&-&X0}>eJ_6MNy7O1FHw*G33aa zo02WSu-ae3RR!1U4S8!4KQ^pk`vev>+-1m|G8^4#r`PE<8WE3QWR?32<;^ZtboXuS z`B1f@^N~cm+M#uhw7uql@+M$^El93ipjF2brzOVMv-o!dzBgoZx}CN*46QgZ|Ux?2A_st%2Y6E;^P26P)BHOj90 zd6e4G)~g9Vb$v?BfS`JywBK>I{)#|*U2^?ts`0sqvi%n>908U0oT79NRJ=cyB6we= zGZTbATX^X$P|fWO zCc!Y^y%$KJtpJPJLm&v?LeDbj3J@ak0dE6YkV?P^&>{d1z5xamtcL7`Y)#aK^g@mX zL_*g<4?3KIMncC7Q=xd6&AD^{1Sy=327E^rbguW}3iKPhbe1cj zK|3fq+Y&(uq|1iwpaOjCQe53gYsjdozNlHN<#vO<`~l}lLzCnI`hH`ONW11l<1_xA zY*zrA!;3Wo?qr$lP677QFKsgg9-|#JJP%wV>MXvl^X#h`iK)BaMON|Zk!=&~(FQY> zF6w;4OcS#DW@El|RaPOuL^u%x22Aoqes6)E>3`;cFSyTl*xBTKLZ4b;eG_bq`=j_9dMjezE&S_ zmP}Xx)z%+17<^u5G_9cwt?L=rW>V^dhc+N?)W7JBsDyPY-0L( z0AeL_doUn_cW$jMpo+{t3aE8B%^3Jzdu;KuqOdM~E{AcX?(^gw#D;poNKs{D!>+#H z8PyGsJ4g5bYecuq`7SqpZ;G%#1ke$TuJs1kl2yl@P|wR5qh_eg%EK)~$T!s*oJ&Yy zO#}K8GO_ke%^-4JeNomY#HWTcF+9Wzz$U+H#1r5ly9&f7&|dusj<{hU3HT zh{;At^F2fjAe(KC2muJVFC<$4(ES4^7d3 zgxCbLIvNUx!cPoF!4JY`los$E@DU~lZUOH_yoaxXFI2g~e!!n+T!3pM*6hCyw?_E- z+Q4@qa%_j;eu#PlO?W7RJ9h}?Phj^mU~c$pO%#|dem%nlwh5O8AAoJb9;>u~Sz-gy zpThhw3;Wl@vN7>K0vHti!nWW)&o{7v;ZUCjOE+-EKHDxPY)8M=gfZV(Gyz?_>lf&fHYd$J&S{tqbz z!s1@17DEK=Ip{7(7xPxx2gp2QRoXhpdst+2R}<3-AVR!x}x%7m~~9F%ao^ ze_IWxdcKwa1C)J)N!Sa@9xDYfLG^<?3+3snq1WvzkoL};(RgX~2V4im8;oV=wQ zb025H6Jo-#bo>tVAm&$NE7}!9E&Pib#JC?CK_#HChh0XkM5A}^LXM#Wwp>Dj(AIjU zh;OL!!Mhj=-9%-9{zrYnwLw=?da;jCPsz0nAXF(Szu*V*2eCBi7P6TD2y;ND;klj* z$hEjjTjYqNxJtcP#172iflBmQe!j959m}P#kD$)52Qfla5c6jJ0pxjxYyNj+E=`oA zfi$9;hN2K>$X%ZC2oR}ZOBuqD_)rfIFT&aOYoOibM-&H86Vd<{8s#fmKtqv(f_-&K z$Pn(o{Pl=?>@x==5iI6V$Ol9;{iw$~_*a_Mmc8(L%2&Nn*b#hhZy##9eM{3iR8Wfn zGZ{Ir_=ze-?vg#O%|@IN|IG_V6bao9@DQ7Ln2=of4UV1%2@Ynh*s>1xlHQ?rALc+9 z?x{yr^>btokS}|*89R_!9o5Lgh|4W!YswJ$%7eM(@ISK8i4WoZ;<4b1@It|q#}>FI zZ|~;&uwvF~{T0w2!s+fXl>lzc^5!cl}4NfE2GzPkV#^(TtmNj^LAVJh%{fZk0X&qrn&1xF9n_1D0-L*|ab)m2 z%L6z+NUKf*<{~Vp(~sr_IWF<1JcnA))X7R{7QBd51?5z=5L2L!vlj``u)PVs_;i>s zXblbx`{=$2djg(d>4PnRPwJe-s3CIN+0?C=TcRW6`xq>xoz#l4gLx7W=!r@Wp%z_} zbrWBM-V+bRvCtZO;n-8Ci*CoT=BQyyYfKyJlCA|h0u|W$ixNV4A`Bwyl0T4Rh_^{! zA%6*z#5WZP{3vlv=1bfWLRj1o_9-3~_yTK#TXf6CRN*`=)zQy!mbzIe7)Gb1iOl01 z=RYSEvG)-F5d)ds;PZsdj5Xyo_$@Sf#vhyuH6->OHktf6FdoAt&AR?WUn8E}bRX?V z%+i%1d$2>QB+_5WQC=VMmPkanOBffFgHGTDyj^7koRqU8!wuWV3XToM++`F8oWq#W z#$DUdvDCaxb0{3eQTGbs2i~gLibPeN1;j0zDNg>@=I5|Y~jxJmm{#|Q5-~{eO zvs1||_H>h8ni6wMsuBGWqaoVlKaJkShird>%HVo$DnV8<=2zRp@8d~LH%Ti;^w@_8 zmj}wRR^3%j)(^OV1fj^Ok`GhYSv1#(@$1y)FPLP-Y$S93e9fOey< zC_0y#RDW|%H$}bC+r^CZ6F{(tB%K5*wO10XA(SRd{)ReZ)<4dt`amq5^`RlUv6<=6 z=uj-CBLEu?gQ?Ge>-Q@uH6WcmmSj872j@kSIryeUBykZkpk0BtgN?};+-u-|CY5~> z5{e0A-h)gwpcrgd(tP`bLLM{8uBv3hS*w{Oal`Z3x+A52nNaD$c^~YND;{n zcgnAg@CE1R^dA2d`_N)9eiu%6RSl*O{Z@oy2eLraL1rp59??OkGW2WrQ=iZj`HPe+ zYF6?#(o2fhzGb3-Z02W6$RU|K$??I&LJN0XDdF9!DfAU=sqirCsAvsE%(x+lhqu#L z@jx|s)JzT{?;H6ZYxqzdsf?+%FO9g7p6fe;e?}+|Qr&7e<(-I-=R__S>`Yo9{^I_MSR!<>ANdC2%UP?Oba6WwBNlqt zjZ~(N3krnW$=}H`=%^wQYW=|q zVqnwDa3%hg^r=rQP9=77Jd8cecU^xRvyr)42ZqGqO1XQOkcl+H6rDBF2GOTZ4Lqvc zK>pXOo}))<=nOdUj_|Wp6z+*vG&}D4giDs|IGSN~gp~DN=p)R-Iuhh|9GrWxDY(pq zm@WmB|A4fME?2f!k_Cm;jyW+rtD2DmU)gW!!o#jI-_=ih|6puywBELpb{zmQHKdIJ zTQ%)S;ZR2oN_MZdh2SP}ty==~g{t~16*PWK!(4VLcYWjBfgP+bfHPsf%oV_s-gJ5> zXl|P(^$GZhsRxw>8Pk*y_rR^#j?ymBYuvKf_`mwHP9O&VDd+LxAP2Kp9DB%_L;!0I zG%>V|VF$hH?Lw=9rP<%6>cGC6CQvBw(^{H@1jH@oTS*6MBleic0%Zrx;&-9U%aq(= zu4`rC(WorOr1%^$3!@N5 z6K(?%c+UyJrGuOfJSF1=i-!A~pvyqvuptCmCr;n1jPeiLV~-}2u~bti=?HdMYaG{# zzD(~GZ(!ijTtOEd)ELi;rKOde<``0KGBz@QP)y@f=pV>d!QW}-Bu}pulmcR5M4YGpHANE2DFxajOgeTwrBnE>H54(*FKu3|Q*r(( zJd3hf!!q*W9}KBPFBV1P3%i3VC{z3z&vT?7T)rKWxQ}gST7thpGtr(#U&Q*6CxxP( zdH7YnW#`q}E1aRWn}yA+9M#g{1V)77X3R%gfLwp?CrY-Y+Ovox5niS@Nxwqr3c>Ngc@FP&nhDE2fV z#Y#PGe-Y^XInw~#SNiHz+Gq`IIVrZ?t1Jj6P<<YH|Ca!8H(Tk~1Z099*0u||O7>LiLSbch(*dc8Ig+S%M&ms)+TNmieh z-yt1tNKVNYy=g3nHW2IrzyscM=YZrL7HlSnwKau#8{BN<&8&i))6gaxz=4DvEnT2E zh(aj@ovV5*7lA|b?np+#1IZ)8Z;(Cv8~IU?TLB2pZD_6g4OTDAcxw#fHSD5MEh8F! zU!##^j?}~3sQQqWV1=R?xuNo#tOIG3r!PK-T#>9MG(nm~-Q!gv{Q}l-Rv|Oph0F&? z_SR5_3G$~=JAFS&sd0lCh$_d~H=ieHfqI%Q;=z?h(ucU^+#s7OZR>u1z=l#T0jC{SXp=3QJT z`Ww1b=_ttrY>|72ipr)Xp@Q0MXJG*kaS*_p;7sis;aIXw_9QV!nOwJgdOf4qdW@P$ z-?DBU`6$^@%Mz!C*@~hmZZ!uthRAL;eJgz-ej;nlDii#XL?1ZMixzF(XUiTCnC!m8 zjNo~>t)Q!OI<4y{512RCttM}#bZQ;MR$(HLBMNwDW&=P*XzML?5_43)GLH&cl)(pl zxu4`i5v}Y4(x}~)j923IuI)6XAkBIwrGaC$PK_j_+|)v0eqss{ZxxmUv-PKBdwTID zEOBC2R^~22Mte-+Jh!7ICnA8Yqio%6#*oR$u9>t0;sk4TiWT?0(KnJ4<+4^AMuLIE z4f|uu#%sTKr&J^tO}29@pQH!2Y^sir?^9f;xfZrsrl>3QQHtm4A3Fnu0gdsNG5kWn zpurZNA1H0*M(Syp3oNMjZEaC)Sl9YGaM7l=>Uu<4w@SC6I^MbIWFsV0Dpdk_K8d1P zV5jo|fjel{GK=Q}zH0#fPo-rm6_hUcDQHd4F_1|Ov{N0_T$tBd0=7*vYSsg@<2vM* zAU2_Hl0L{OA1&coXsxq5-xua+S;cjNuQWKtRw7)~P03wIZ-}6K3Bjoz>d-;-74)>! zA*K)4C^sP{;x@~kB5s7tisz7eyT%1ikzvmIyhBKyC5+>TvR$)=MMVkKp`=r&H1LJ4 zhj^>1_wDYu+5E4n7F<&51w|b8K`cjRfu)B;iN0YE?#dHv!rD1K;1aPLEs^YGZ1tLG zCIE9){SomVstIh-Wks#6@@Yd-I`TuC|B)}Jx;J%@-o)xk>q)M`H$;g<+AafrJyFA{ zn{$=WZwY4M38&Ve8D+Se8o`8js7IivPCEN!CBF3oiT&4FUPPXPiafR z^}=J+IqwDDW6B*T1ZNi|)Uuv=kvzC&kd7s=G`NH<==DHMr-jJ1;%aMyfSjkNT;|7Six7TrJi(gh zy|LWLaAZ-}yrI^Rj%h~V3el`ac>Al~!)5PUQoHJN_9?El%MYPtxh)U&4~yNJ5AJ;` zFm8J3h2%O*{|^f8vaO1SYrrtwASeooq_lLG2$BNQ-Ceu8V|I53Y`WXR?(XjH?tIkS zdVT-E`C*Q0t(o;@X8bjZj&87vp7exj`GPN^{{$zEp&S$DEZS_xR!DINVarPB&Dv`l z?!t45?Pp#iM%QLcu0XjYc8=1}Q(-rU!m!@n;{I}6_tKTUYwKn&t%L4_bKau9AmZnxb-E8^ zH_K@4R;rDDhs2IUMFhqQc?FFTAHOs(@w|fKM|V)8OXA&_Vm?l-!~qnH`TCbN9d%&50mHVjLgEZ zMfBNKvqNC|+pzZjCBQ0gW{(rFe(9F3Sw^SjOZ6It#voth4#*J4ws>)nZJ-TzIsP?z zGe_Ci3yBk-+31Y-qtWc>Rds_R_M)(uzDTx_H%=GM_F8&fJINllic>9Ti41lLgMb@| zRr8gi>el-k+=Sb!aWe~qh6R5oRtcgrI3o(%lJyLEVzt3EQsz;h8XuIr&j=WPD*lvkbRbT= zJoIYMbrIUTtZSPnaGACGrO?>wsKSbS$&kQrXH>xTHwSd(w49s!qPbJWpL(ROEASb& zQl3daKU}21B#`>2R@ra)em_j@2KHn-d2VXM%gse-`J8l zhv=QGGMlQ_-OHaJqjdd92Mrz979{xhuTb9)ZPV>k&3n6P0mZImPAZ->-r7Zm;oUbf z;JGrkK|gJZ7+v3dYWDB2yizmyauAxoZp^ShDSgpUUT;DCqrQ#0(aFLQFXkP8a1FO)8 z+UngqFbj&;ZjZto&dS`p8{3tXyS@Y06O}t1kKeU&e!PP4!mV@o70J`yY_OW#ZnjDn zN*&V6k(SXT+GF>9A~x50?LrZC#V%X_5MO5bZ|WjdCMC?}kp35yIkl8Lw{rhj2!-w@ z9oj%e+gJAgkES)7?z&9ht#?L}Nf)$z+q<9MT=QaQIz6%I<(BL8ptXND;^}LWTxPxK zgsAw5XY^AmkBk}s(QfMpxxfYc;l7=WL30ajA48>|Ag-WaYa8Bkij!5-y(5Rczi4p& zHamCiz72G?{^~a~D_OUroX4NCF0I@@{D<|*?c@M~ooxT6m&a~52WdK3YxQSE4S+}6 zsy+I`J2kP}X@ajs>GReC@3r9d^L*m!>FGMYUgU@ICA^uHn}$7kY`2H~0^W|rkv(AU z6Z2E*WcDQkM`0TPYJI;uR*tEDwe5(^qwvS(O39nGUhDP6PgWzQ=EM$>r^cE@#Fe8% z9inA!U;Fk5A1_Af@B#x1C)FCxRRfGb0Zg@a@8W9htGl;3s2d8`Z`z}Sbc=TW+>t0`Djzq$PHz@nn9Latmc_py1htKO=#eK{N89Wr?E`g#%%c5hI?x zb1NGLmUY*;JN3k<)0ZsL>LhP1-pgCLEr#v9dPeT$FUVz`;fI1yUf{@$rRWvV75$AE zOV~S67Um0LoVW;k2UXQZ#2rI_FK)n3V`)iP0uJ}gUq<+ge`4E8+(3X`+z0DLXCLr~ zzsF>*CnJNgNxh?}d|ZfN54s)if!~KA5*%Ceu^hthqBZ!j9F<2bUC-F6| zmA2MTiF-oJwQa+X(bCS6L3g>*JzfwV=kW9?m_5g$yA6(DgSjseM_JFX`6ydfXLB67 zkomr#4?|;O5>v4h#&17A>^FwUwhea{xN@4>DV1C7$^&OfkyB2PSK<%a`>U<4ZV#Aq-g=_r<5cnJBhbj$kn$TOdUz4j6ndb49%%(%)zefziWu*T z&OL^Fr;bQSM157@eHWwiWNmhOm?Zw?qn&MY+X!349UYq;M>c`%=T0cDfhVRE3_WPr z7!TnI+cYGtdx~)G+mjoGY||}`zl(xtF8Vx1ol)ZLT+mm9en%?XqV|8B2iiaF`aC?> z*|*I|eh(bDDG+dh?3|^*t6?z{ck7bjV_k;-jO?P(B;n{` zLhJF9%FPq)qQlRIZg9pn#SWt##}aXAm@rj7?iDtfnU5Fa z)*)jFf%xirE#VfSHn)k$A(q6qkz7cT-fR+{bi&4pyqb(TvHb#;g)qkbq+G0%;SW;-*9i$6DkttRF@So-+lNS}ezoxzGD6FePbLd7^r91|c!u&?>$2v0yVb8Ijn7OqBxU)>doa6XG#_qTzNbECchFT~5C_REs6x^egV*L3xp{KF7yjwLJvHx*j-#}f4Zk7IpY{!&K z%BoLb*NKj1=i|bKnX%ruSNykL*?4E(cbg%C75m1X2Qc|y`P@SIc%QB>6tPA3pEww~ zt&2x7NA1w~gHNKjDz8=RVYbKzvo>Rgq@tMZxC-%luO&FD2xD^&594<2CP3d!WzXz~ z>y5qX`GT+>o)B3f7Y%U9hN$JeG|&^YYd27pjPcY=WjSM)DF4LdW6#S6JRf7n??NZ2FJa+gD2EfxnAWsdVUdiUpMc9|v!s@{q`?4b&O5XO=bfE@pppH*FCvZp8{(E@lEh>#ardlG*09?iYL zEZOclP=TS$d&|~iUT^RNE@Rtgypa#FFDDY39^hI=8jACAKL_Sh6Y%2R>~JprWw(WU zEPkI7Yn?>sW4NgDz})=blefw0i+ zv;iQ-Gc!2E`n}+1y>mkt!`2ON-S}+eny-l;`j>03UA2~l8;MA*}`a*N+ z4fd%u7Sw0##L!&oQ`T{pdFpSlxaHgjVe?a>Wrua*{tv#wON`^8KP#3-@#m{ zv7*^}3e{IgDoCV;3(Atg)Kq>($RlbZui1r9`NjQXahB%ZJ`|QiWMBB zY}6!>6_f#0JT!o!Rn*l@Q)DuAzJxL?d6@KwvQ3;9!lulM3|yKi1wuXND`p>l4B55+@z%_W|^ zO}xW0l6;b@8r37;p6=7+k@rpLcmR2PR7hl#wL@TV1zFYKS-Y4l?IGnwlZU(JR$m~` zYn+1*k^5AJE>>h8nZ0EtIiEW>{E$rB{6BRHxqbtI%O|JLydeyeqb9RJQgX=X?wVGz z-%w)iFgd30+sY*%)OntqZK#6P0UUeu=b#dH9~S47!XCwG zOp93Si16Vbf)8*L^%(yq0?ISz-9+vq{O0~Zy#*cS`eXcSIylW(cy2L!8*V&N&UV9} z4gA5HCOmRVWNC@>rpK5y%6h*-B>z)-sLhb52o=GxRrR9N;|td%qpmoO?~afD^|p zVculpIj67%tmB;Eb^&VzdvoOolgUoYab#Mut|xqAOtFxG=8SBXzmpg6KUTEaWx$Ma zs#n4Zk&>k|Y?uVcP_uT3n=rww1)}IS9up%Bs5r#9F9^-9VSxFG35^VMUVXqcFv#8R zWCr+f(dPE_1Qw~MfQ{8wODL>;>Ma17wLoQn4rf9XDXo)?JF@Zezl>a|Q`TC+)hwr)RaHRD+qs^uc1T$5Rz z3Y=GkW;p|mitzY$`cGL~fB~H*wOMwac0n|5PNe?ew0G;VAQQ%-)yzYqEwoyu)6f=V zHiOXrs`&@-x;L&&0MvK)ucgr6Y2D%;(E-(yl>@Y&iXY2HXbF;&=EGDnhpBzdTC%}F zxS9!>c|}Drj!qszU>WXX^yXE7Y&f^{6<{zBl=+D+?2U?p&>gz9E7NIwP0BJdb-zqv zeu%o5)2;cBd3k%Lpo8f*FQ;r}&^FwHp8{^odNhp#>66gXcKX)QGnou}{7_Sz4eemx zWBj;4>;cc7XpK{oGH)Ps2hSoc?vFFz)1xlcKa_MINkK=qlsD|3`&LULji$v0@o& zpy{S41O2SDN@$La%v{EQk3+_K@_ylm{qlIJgd+}7yd>hR@l*CB1*-l}b|3qmzf~H6 zdrI*XZ^Z9~yNQ|!t&LBFfkd|wo3!P8y2Y#9K(N_FKxWrZ_m{aw90mOo~{? zX)P+Tbb^ZFRY=UKmq?F9O4?$Wp|F$|)bK{&L#r#^#@D0ur(fV%&~C(}b7Sa>eP42f z^k#=9P6qv<$vjIRa8>$AbnKs83$YFR1aVF{&L%=W3earh`v3U3thu7+ydYL<`bzE^ zmP_;n4xahgcZz+SdETL&UCpvLHDd-d4$H5JPm43z=S0~eEkPuBBRm0q&)+XNQ@?~a z%zszp&K2=J(s-O7w4S(}Wyf7Zz4<$)TLNosTe;0we6@(r%Hs zHXDf^!^-Vs9#xt(6-`QCNqhT%Rk<=MuI<8q-|Z zZF&SSV<$XCcqGcYVzX?h;*AfhWgG`!nSZdxiRJlmRPK z`NoIHY?A+W@M1v46w{A%HoHzt6`q=D2et`{CbwV?^L~uI>JW2J4gaZe;%pyWkuPJ< z^wp+RvkvGEM{1b&yHGyoGQ^rdW^NG|N0kEFj87;N~CvEyx+-Prz? zOPQ*umU24BE%F`NHN%(Id|^Qcu0*b8@_XaGUoceK@Fi~nx|D7fPCLvNirGDrZ93pY zcX-Dk%u&s2(3y@3)ly?1|(&nd?IWlKIl`PyTy^%qJ>Yz7#zcJ zo_CP+T$IrL1NxIbrX7dV(TCJ@#JhHovJVwi^-_KYEzHZ3nPQ$L-;-c*LE&4(&iD?` zL6IAwd(jG!A927aio1>SO7O0$3mZTKX&Q0vs4-Om?r$4jfyeKva*)jvc)421FJfbI zsTfZR53d*bkqtfhLT~b|MHNCl%5I}+&Pm!P{t`aP1UN61M&nX|5`0@sFm?9R>X!Q=^QZ6PekAID8?CHSU#(A=6 z3-=Ev-FOcxiTRL|qk5?Tk!%%rV*$NsL9pL)#$R_$s25SL3OV!j(A-XC`v=5;tWNn(Lrj?Qz6}qfIY@s-x zT`NS&lM;^$%%m4Xb-Z1Yi4}8PqWHw3y&RCB!z6+6fECTkSN=M|x~9@Tk+Lf{>xkf&rXVqeFIVA1SMpXXzOSg^e34yUG{rtDaxj4~%2?&ha;0qI z$-ldTJw|{mlxjxw8pg#J24N+CL_vKYvJwSdJ%Ux|`2pSeAt$)kw98l6a{y)iA{9GU zoM55>p0m&ljM8^Q9gZyzp6vjGrI}OMhJ|A4IJ<-@yfZSe_L3ld@cJq^?^gec5ImQz zgL>TLc&a-VFXeJ4Tv^_-qC2%-3R*B)4P<_k?7 zVoidlDhp*8BvlB}ldfOo)!6U_&T<3XHiIaE`ro}(Gjtm|iG>YVz!!irdg~DIx?|n1 zk;jXdYXxZk%rbQxMiIYT8HjxrR4IqzgIxd0RuZ5K(9(Y5WrG9!|Nn*R+Ccy#z;yJT z!M1mn^+e!S*Z%A}fwwM#YT)<}8OKz3U9AV3YVWr_uF^2*nZFRtvq@-9|O+r;N|!oZf4)BE$w=nl!%k zqxOu%x9YbVFJ6{^S(za6O;gA%g*mZP(xn1n;0kexz}WSaa6kWNS>(;y|y-sQm)%$Y#FknP zsjTrhy{Do`iUqcR>I!rWoIG9+U(&E+#2rB>eKi<{JdypkuNv)>^hei+kwu1ft;D|d z9nv`Blby^}BLu#cr9wfH>Z65=s9P|XCUKZ>5Pr-B>skMM=nKxQblre0?nXALHyM90 zN!iUI?1*@ybs%o=6{`M_W}E_*Q1Vu*4tX-QQvb8So*smLG*L{FcMgpFCEL}<4c;NM zONRRm$j`D~_C!(|l3cp5l(!Ls8XGFX7q0w|w%BQ%qK0=W{-s#qG23IF(?sF<4^i^1nkFUET zkK^f7FC%bh)^Xy?Y-dAnZWY5FNgX{ck+#EzRO0QmYx>!uTSd=%=7pcvg1f#7S0+Bz zqzI_tdzIJtUwnSaNBA3^8l;=}oz|VAdz{;b7>=A#ir6t4tvc1VZ}5*&RWsiAR#8$^ z+p|<|p83D7I_bScKs_(H5ROo$i9h+AlADW>PK8nf;a_Wk$e34exZ~esu@DPJHupHR zSr6j7yQ=@|YwoftJgyUH+B4DG%c>`di`4;2AbhD}zoOWODsBze|4VG2Lo z@FTmJF%2&s2_EWdZ5sGHu(P_M_kG``!erfop8J{l+A5v-s;#P>T~%Qx6*-zSK3Otj zRjiYR_@OMpdQ33Pk27*(-DRADbq#NyENeM4pdEWz^|V(uA}hGsJu_62F{=4*AbM51 zs=6;BOdx-+qxm>WM>U(5y%l5S$F1iCZv53oX)FrkF?h%PbUUnZ{RVMoS$WsYX0U%Q zcrpfZKXv8kZP;w=)uCYoJ7`D$IaH>{xn2_b)8hFa3oP7BtC17fdV1mz$}D)n<`vNW zjREWZ;GX3n(`^V+uFd#=$bBhyN2burVs(QU3_GZ=Pm6u)aks|@U$8{4n?@Khw^bXG z*Xb3DP&88zZ{tq%&xX<2o0wN+o2G)W=hlslUBnHgaECc~No>_XAwe8O>4g!s9?!c! zkY<;pcDa(zo0F7-)I)mLg8H~@&8 zts_SP?3zP^c%UohcwY=~E@-8$lwt4jLVJ!uU$RMkj2UGSEDvS8(%;5c0KOf=a~rr} zbR`VPE!>;Vi-JH46uf1*>8bdrtEY1m5Vn!-sp^ z)`ar0OMWWv@un^INUb>u1|aT5V7R?$HdAq{_Vy%OeyJpJ^n>hhHg#x7I+nbrzfrO= z`oEq)@q@tWt~hbF$4NCq^whyxxmfVj;+-Uj+ib9z>keFMdp)zh>s)Qc#0xE@c<*SQ z#v^;d;7`@INXF7s!TELU@ku@QCJ3v z4sxZ2uAGI8<*kROrDNVTP2&%TzZQKMDIUC^RWtCd|8vsO-V=S1(ZSs_J%xexn(bY5 z4}|iCYPW-lJX0#SOckx-_8X?NH!`9d>h>@?GRh9^DD2#o8@VM4ygGIN##qSx__Wyq z*l6h9NhyNp!x&3Kr7gz|3(?{Mg?$_lm$FbCFM-z34pQ!#VXxQzHEQ|Ivsp_|672pK*T!+pfg<Q1m9@;y4gi`ObeyD`% z>TKIzN&Rid>Ul_CY8tD80w#Ld!tM0%deiOe=#NSV=GV{e`@$GtyBoS*#yitKWjN!g-Y&rbI<;s_PJg`QVL<}B!42VV(c|PJ~VZB5$}IK)BOV8YiD9l0pD&RxC_DU zGs}{jvwQUMysz{>b&gx+<(QJa8xP2WbC9#Qq&6w5rc5O(;(W(K#Nf~sLp7o&K7)Pd zMU&1F9ZUFW;jos+7nq4;-t6Q0hj__ANbRmI23oz6wv9$=e2(|*VwL@xUz16SXR)6~ zQS!GTKL+RI!9JqC)Nhe?U|-fWDjFJ(%0O4c*EEnZ zbYw_gAhru_oM4I*V%B?K#4o{~w%$un;qb?Hf@+~(wi!TN;P|mH=q|*2RXp4URlr<{ zz@tZy2FTNx5A{vxCAgKj37B>GqWBDK38Bin5__4bXMGlrBchKmI`r|A^Y1`rgxHZh z@EyWAML)Ee*bbb4Jth8yUqRH6)OGd9Q)Jh54d~_M{&X4@e_{Gfiv4StGr3N*^ArUgT4xk6|+%#w4kh6*2J|H{6B zbYdsOVo_^ZfL9i3l6l)^5#|~Lz3+B&lnS?gx^+-7-j8p;Bzq-E>D(aAr+fgD#OEPw zXpE?=S_``;c$@8osOBqTej$atT(8B*2iy{yGK>#vZf|%~a-V80sAYYRZQqKv7hMBl ztB$Lh9P(|@CY1wN4WY>2R$YJvNpENI;q&6hF$%;}k%Q+8WT@b}jT|lKD0lB@q>OKy zxzYS|gx~X~&2uP6Auntfrs4jEr_&S7NwdpzXIk--)q=b2u+e$qlg{!Xzs?8Xu)f*KPRIvc(ONQ$ zuJwt21mCI3_3S|y%2RFLqQ?2sovjV2I~}IRnl^0N*nOkr&BikR|JokS+7TCaoSk^q z=?9t`Ia+ZQ0vb5Ib^-KnuUT{-JicqaCk4(|9$l~il`9C|!L8qPC~NX^Q^?-5?u9Lc z9eMn?Ht0Nz(9uz~eyBqYikZ4oQ49V(mXx_2su_F{-3q(fi}7rMd#jHxScx(fB=3ES z4sFg}zXD^_`nW#~bEczS{1wXrZKB9=$&kwsE8K6`ld2#1V~E>Xc?1b+YxH^IYE09L zWa2EAX-OqJ;U;%)M07z8&#pwy!#aCAQG4NkMeERWNFv!0qd`3aoyL+d8I`Ya9oU|= z2z);7UbG)!G5(Lo3j&g`(Q=MtPMp{&gEe6Pn+}HWz@60fA->|pg8e89LJIK!+L7?B za}483Twn1C8$hbhoWKQ=&7#zJ1G3Je3tvQjV0n$`Kml*(LWXFcCJSIoXy3X%!V$FJ z`~t)X-H5UN$_&s zlW`?v3(sF$4GZ96xo_ZT&N+NGVhbmzU4VSUR+a~&SFrwMBwshS`*7CNp9#x92&E0S8r5jC>P z(mv#@M3`=hx+}U7aR7Z(Smb^L{XkG^wF$S9W4dWYhu28pa7E|i!4@S7OzWFwH9}tW z7-D>21zoU~OYlwVCnax@W=cXD9hD@HjA%pqOQYNe(W}H{t0&k=u6V$qCZtQ>DVhCTQX}7DX2+VinR?k zhIeKC`F4XXp9YtA?A-WAUJ5Fhvu7Z{d#2)0AgJ#cw7C!_9GWSfhrjB#O;sZObsNLa zqLymM-0M*O3b}PC<}UB`+{ZTI-cJJ=9ceqOWTMUoTP_3J!8scnkVhdqW_~msf;mm- zidVrYBWN${{!oE{(y)yW<^DApAW3b#o{onQ*vxE#V2VJ7q7COKJ^kCs~u1 zxh^Bclkw&+$Vv)gwjYh4uI#VI@;%&V?)p$4JcskpWe88@v{=j#)0r11_QQ{B zLEX<0U(`dwhbRN(b&3M@NMQ-HLm!Y;*P}39lHCO%SfV&2xeS*hJP>jQ_dvjOVc?GN z*IPU%jI)7p4BT?yQrAXAcweXB05ZA9fGk4!b#+61(YBi0x*7Bb)uMa>=BE5>(lzWR z>E946E>%+E(ui9wQdl|>TsR-c(qY`mY%LGoKUU5kM~n&INxMTjx6D>ROx!mm|Nl?MgGW85> zYHI=a1ANP-Ou{$B;9LUeE|NbLTeAt(HkO+E99=dM~j|_F9mTmW5yJ)KBZcKQKK`+ecbB(m*jn$ElxC(l8mka0&*SN(`n*aQ>i= zlo`Bzjf`@FV313sd?CC{+)G_SJQfs0T}u)8o{Fn+!45I{4cLm;|G*JIKQ7Bb3FEcpRktQEB zCEBuj73YX-Rx7)W_>AR>+fMRf9_%lAc96!IF*(0TKN;Uw4Ur2Oy8;2Skim6o zBSRPnvptj|K+%uIKNbn(RRp4NH_M*zRd5%}Bc}3Sw(lXT_|}ydi1&F3ISHghE@G7p zsf)8U(1Ub_v&?B7NyffqZbVixp?xN}KPstgA--4X%y>_5l@DS70!g;8?F!+#WT4WN z7%Yy<)(|zqCkayGSHX0^1(GL!#wm(;p7+o^ne>5e+;aez)7vX~f_tG;0JreqE*hGT zzo4mY{XvLORa9gXl!~UTAB4X$W`aGjR&q9gLga~|PEJHOA>SNBYUb4ICa{M`hs0-b zRl_Uj7jX9mRH!a|O7GiNFZ`6Qrd&fX*WSr$AfVN__-?`lWoCd6;ftKT><0l5KQtdE zzT+^vd$D=5heTJg&!&#iUgJ8(cOp;X&W*@hVED*ELfLz*FENc^*7K$^QyNPtiL8rr-Z{x0xE6T|Dh~d9$ zQTX10zPOwCkG+_c{RAuRuVshvB6*YfV`4IALl2tQ&}1pu%aykb1G_k9+n1nIILkXr zT2*WUm|cE=bsxGZYbmQ0J|8#FvOp^Qo0(V8sSf*DHkcM;3F8C)UH27^8z@Gcz#fDw zpjWV$Lr!8OlpI!TgO*r@mwAFlC6-%m8eDa~tCfF2D311Boxr)G>Sr>tZK>7sPnKJHU35 zy~90V6KTQ(2G~=EHQkJhBt1bqLqwue1{sN@&+sweDY>|*9Z-^wl$rvml!T0rz(UGY zYy|xS)z)u>evXQEctzhtJ!*26o=;P%Ede@X5APgM%$OsW0?Qdv7(l{m_u2E1~3N!!U-VCqie0#K!vUMYy>qUc5Z36di{nr{eg zqy6HgG(c&`xZTCYG%4q2x{QY6)WrnTYS|b4%xMv9u)}TY1$L$>hyA^D2>Lu+}f&ul2#u_Z7_NXH2&QS3RRN)(Hq3lpvD|NNhGdi2D=_UIookm+0tq=9I5ps|zzI7d2L? zHz~W7pQ5f&`V@>Nxo6eOg>=xQ*MnH;zB4FM`k+TP$mZ- z)HYFg{cZ)jC@np()Ot#G*MlfH#alDvbDexmxzm9~c9K+^MUZFMBJocOZR15o6@@)F zjb%{q(}d0fO728#%^gbc$j^dIiq+t`lt1M6eV3zL$VYV-eRO1qCf@-{nvxzjDnK#=dy{Ci4+m1O{{g!(N zdoe$pYmR%iW-F%z|1N^T-cNYr1z{HwZ`Wpy!gGjq1kns%w zQ<^_-ArONCxZyx<8=M0I5~^I-(?C-09P2HRm&{{T1Et}+na_YGucb^1z_*WKCIa`2 z*}x<~<0o)G@cbyBxz5~&$aYQ(>75Xiv4bO(VP})L%#L1Q@5ooqpJlZnIx+xM=a9Ke@?z&tiTcAh+ zG5+vp!rm}gyl0-H3_TvkJ`HH*t}Q1;%#a?i2h`qKVo3n-SL0Y-`4Fe?p9mWUViY|M$0<|JX`y~1xzs;nGreI~TKe4a%eIY()FX>$c z8)jAOnwyQ8vt1SC?o2C9U5+aQqQb5Q15Xu`VXi=f+}YEKeoV@;52Ae(=9;i*i&*Wf zkL<>=3ZfxvbR-;lllgk^byG1jwjWi-W9WKKv-^QR-Lr{*0JIhrdYJx7&02ATo~o#~ zccRsa9+}KiXIM;@G3)Q_eL@l|eL4^t&6G~GHy&l&9%YwVGgb{vW=8`f{SOky0LR|U zP&}R29lK(Pc1tyFZ$*72mYAHOmb1Fq&6)>Idc-8v*A^-Cw$iihd(%QWsnfsAR{9cL zk@ZT_3FWT3DfWW1gTIJ8khShMLJ`_>!F6FDrq!U1n@QBLOjOT1QwR=9UvN0&mYfMS zX!MjB!iGy%NhFB1S&?Edp{wPQMj{QO9qb$v@1?!3s}yz8jfyS{UFboX!Tg)_ z=J<=eb96<}5$-$s3Abz9Xu!>OH%A31jTSNGfRtt{9pe(9ct&2s8lBHOEMHY?Dmow1AYjcOn{BVLJ;iNPX5 z`vZ}qaBIyu!4<*PLIS^6V4h*h>)_|aJ>$0W27}x#Tgs}F)Z2bwIt#3fJ?M{^cv6hmcIZ3&f5P2^_N@#-XTL+$KE6lK|MKU# z-@6~C2|3rak7CEzmo-L#&aB(2XxDqpTe4@iFBn`Q)OZ~o%TyEVMd~RZc#5!Kd}qrW zfyHQQRXlIs(Bb?Pu67_hEr^5feH&ZC#^`1OZn5xMvg-yWRPomKA;VVKX$+&gGG~dp zenOKmJfPRB1=+&yzSnlFQlXvh_>$M6R)D=z7b=y|^5~QD2k;92AsH7Ly1Z3-6m{E* zCYit-(YNK>kx~id-t`@CV5@W;p#9Bzx)LCaip!cXSWxb6RXF@n3QLiK?2c}g>CmD6 z7-`%PWhwv*JZ>V+n z2jyYPDS~`msr(SJWKE6q8ObY3Cn+X9^>-4RkjIvfi0mk6YotI%Jz#*~ETbo2W4Z*? z#o#avm0H^HO$AU@We`O#^f-{2K8HyEyDRWUr#>oh|`hfYAXLx8HMDz5O)m3qtmK-<`JR9vXx4#qDA3%OC<(6y-jqY|q* zSZ67hshf(QOXroJvjFiIg*-`5lq^q+I3(CFTjG14UnPxP9>Oydd)PR!@9_R-_>O^Q zOd+1CPWK;Zk5qi@v#D*AFX|~OE|Z3I^RrCF810$WJ;DyRl9Z7Krlk$I>eIhbFO&Jwoj!T5BF z0_r~e6`tM<42B^lDmV2>k)QI_JxkHf>G@roF%|LeHMQ7*kVC3+++EM}idn*9hcj|H zag9Z&B$Le1d(NZK>>>F>I&5##eE(w{ui|ZQHoh_MW%nb3TiQM?gYY4qtPUZb4k0MR zNQ0ic8qA7ZfkNS>KkQK2#k(BFsIbBz%erYip zGF2RJrwXS22?9fQOboOhP1 z`B&L)1`TWrptsYk@0_%){#H+_WVDRXbzXdB-6;)0^eN?&DoW%XXD0tGLI8tj_9wv!{L{3jrfA4lsm?~XlTuBW!Sba?D;cX zRJWj8IoMqCP`k39nFCdw=-s^LtU{&x8M{n|=!OPummsyVE4GRx$|nx51V^RymVI0w z?k&SGrUk>VrD#2+NmXqy{k`Q`p<-gR-6`|KXjiBA>X4y9@S4c7{*%yF|LNXFc)P2s zj)P2DSl!J*Jv7;+B;oe|tJ<5gqIv!7iH?(1w5f7XU!l+VGDuaXc*GO>E%E+fJbWzD zxetu2_E+eBqD@_+x{WXc3pZ&m;ue|)%O4S?dV2h))RJb)8E@F9$|nmLV|(QuOw5zte$6lZigyS%vE;oMDr{aHy5xmwu{W$_QMA?Agu8jIita z#K8JnX|Rl4u2rf`X27CZg@CCsQ;S|O9rRte3+RU$5aa8)W91_w3N9#bW>C#tk&fs) z%sIBoU-y;64!_eC!m085pkB`@cdb*xINghG$|W3kvm3%stO^7rBh zdwuC`0n$8DP{xVV|H!rh^6MUq61#)SLWjWG|K-;AqcuCzDtda=sDw3Lk5vWXKAIS1 zjUP_ANfF^1EYFwTwl|gfi~P)s`CB=82JWnG08y7e@?s#U^zh)5K2ok_-^ZRiX$yOn z=&BM-yPCQU!@jHcYbX6mmC@=VR~OlN`A>T*NspLk4&{e)>J2hkae%PWdpo4rvtZr) z-d5|(&W$c@zgMGY)gAwfLQgFLTLw0a?SclZkPY8~M?2mdoI)KjsQ9yWxN~WN+h%(ZH#1?q7-GCSXJ!FZ7gaT(gJ%ZTjwU0GS4<5Rpbjqe=>LKN z+gSEi<64Z4DxZ-`{|OpePQ~2(C)lt2a~lEpe;J?V?2rpqJ5G(DQlsL>BhZq-!r|MP z=PPy%Jiz5Gt?X;V@3QI8?IH?{qZC*Q_n%Nn*Q@Z@Ov0SXZ{DyRi^v$B*@+8Gygr$W zH;=L&y^H@Gm@q^pyk2pzpGN$=l-Ki%Y;CirJA=}1+$|5Mq5lcqbiMMiO$8);zR}zp z(wU6%X)ZZ5v3tUUyeabG$UG%E(0eeC@^HnezAS3j(w(|_8ghZ1_BEYi{8Rc1NYK;c zJ^LqgY)qj4%{w@IkNzQJ@f1M+Ut<0E3cx9H`|wVnGH~HQ8L)B1mEJUl@6y-Za>nfi zEt>Vr1tw*Zn~WQJNxTU9%5vWg5gd3PbLI{EXZoGVKK4*z&{#Sf8mSt3$gT<0@29gN zEAI9*v8R?T?$UCc7R;&p*vTdn;s>l4Jr%c|-duKd{aWFTyto;2p>=xi#6dybsvo0Z z{+&qhkPV+1@S<-Ezi`DJot$5}EKIwRZ@u8TYM2{q@=|Qbn$^3**-clM!RKi5jNHf5 z5wg|kMdMEZJ3z$0q(!UtjYuTo$b`Xo@z;Q3y>G>`6&JdXiDQYawSt(H9URcxTh*{6@U1&GAYt-fT6$!jQ1wX@2)u9?I5Er z%hxQEnA*lDJ_y*RIYKS#y?!=(6a7JH@2qQYa&GG6bsa11-Wa!Ae^u>pkoIcC`~J6@ z#{uG=t!mPWom~Q@%d!eJLweJ;Sdk~RFog*hvQ70-?0ovqeTkjsb?@f>g7!6D?%M|` zY8e*epxfHBDCY1Lox8y#gc#yjMMi#vRj&PlPDW6prI>0|#|lHt4fKfRTD%N1zWZqF zla860`|Ynm{XNe+&qFxEi(opehSUx9M%aPUVTX`AD^Z9dboSas$P<{OQTI_laEm;8 z&~>=mmMu64erBhz*$0(0b*+_-PSZKGPhoNeX`MW5H8CArg)8s$fv&*kR?uO$2oaeX z2nf+UDjB(vxX)uX%7C=Ql7m+gl@8DG-x!n_%Z$XGa$vC@4Td$MJ$o}B2ft_GS zSb3xEn2R>&*Q9BYBMJ51YP8C|@rqKw`d>?!d>>}8jUY2<4e6MZWS2&Owu&axHb5A{ zWf55D1O9q<5=@`B#R`t1u#Go9s7@a&8~R)q*tb*hz2R|>AM;srUe^Zn#@10yMoUxs z6Xo*~apw>DXj(YB*cw0eqE@)oY2tUS0m zdf;x&&h_nbqk7Wx7{jjd&G=`ORZG^$x~89P%7OL8(2i}r5veVp-mZ7y8z5F1bNAJd zAUV_84jIq8Hg~GhW4FtIeU0C?jk2t|ubT^j#>TewmPlChiK*jFm^S+{Zn05E!VoHT zDafyHD4Yo%=-%QU20pB$T1Ozh^4`uf;1+d7qjZE@<2rRQ(yt|${S@WV_5z!O_U>$M zm0?zbPnE`DV_9_<$R5%8|4CU_1z%$V0=4(i%n9rLsz<=9^hxyRX&UvL0b`-po zwH9Fp9Y8-su7S6<)S%GF6(w=#Y1HXdJmwOnGVCGt2zHliEN&r=Z%!n)^ztw_4l)m{qE@YKXmgE3EryULc1N)>laS4OnmK9l6pm%a-M@}{9Z@1D|HD$~j z^Ws`sH&_tU+OlUnz$-ceCK7AjcK#h{%yS1H8Q8e`4792@J@^8Q(beqY2?Hs7Ey-vE z_sFCSTVMN3H-vrG@I{2hL7Q(;-s66>(O{8yamVla5`rfflD~y;5xOI(o(RD21_zOx zk;k1blTfH1rp1&7Y|Z!}3e|SJ>pD8WN4VxB#P22MnZ74gkzNlUfmz^xtJC0xgf4D3 zf=>)4Odv;zdqE`BM$)<(fAl=*L9Pep5E+z+z#byM3H*%XP|BPjI2nat7DD7uqX)l0 z@_|<6G;}{u#R-Nl0kZM!h-@INvl)p5JgZlsq=3`9dh|T7VAVa$AwVxsgB8->IhA6m z^fP8;!d`mIKndsuU#RGmSGa1 z)vAEDe%KC0am9UvxlE7^Ll#OdB{ZXO;<$iGbdvCylMm{Lpw_$$_mr*c8R{?{4wr1| z+&FL$=m#hD<)8~8)4B_-7ho1$ofV<*YK?8yL&UW5Z2WiR75TP+W>l|C&uKBLQ1skf zh{JHuI$b+>8YSM>xnzP$KLDB-Wuo|y#X~@=D-_o+D({7z>>0~yM=a~Q9p8t{&}0Yr zq3o15os5wuq=x3(a7#Jz?hS3XH_wPZb;vdZ(5*oJGgHWC;GRjh78&HvXn(mUEPu!^ z%LG2!cPG9GaYc7$<$uV2&HH8FkrlFe^BdUnoXNg^^7C4qOi2FS(8Elo*f(P^1C-#l zMQw*EB^~ODeG~v}mGy#h09qPfK(&Np{I5{Ukrj?+)G-vpSVR+I@Aljyy0uwJo)gs_ z@xTt^A5b1ToKysfZKaZ?VN1&=$$IerWm%GIkvrqIk@unN`~iwB=8B^QB^Ent{EbQ{ z^mc#8orUFzz3?pfZn`&N1#%hk5n&M3)KWuqLQj=#CMq%S)@G1wab9r&Bp!aPe-!Bn zAsEd)j`u410ohwy6S# zqCG45gLj}CXS~55r#r=l5y12SziGl{0~f;jlo5k_!(znD;MFWgzY2mL^Qfafek*gvw1BjR;jG+_ zI4srUQju@Oe@RPGUqxS`5cCD%?FIs7KyanF3ERxSn%;}^=iQHq#$D(B_FIHck3d?dt(a~XmR&wniHl%yE57wYpD9@n~kkd@Ey)#zKMIxA_!~QB560walMwg z8J<5w#f>4rlXajfWbIf~?RixCuw9`y+O_|`)Pv|Zy;e~NG0N_8-({F*>MDl=7{1ic ztOWmuJ*bLtKr@-iv;f#iTr4dC5#M=+7KK#R zI?`fLZwpq@5-=GlJ+ySJBytU{2zSuikXDDkXx~l)6Tn87XnV-(#NCv5tSRuGg2cYT zno)XiM>-BtHsN_SVU!bu;(Q9_KG8G9jA}}J6!DN6PLg@uq2`f;?77q=ve-D3`j(m| zT0xqmjL_AjUzGpQ=g3Lal=e9?go>+PL++yP$lFXlK>f3(jr@}q6@j2c(b~O6DJ8Ui z`!0$f?Ygmux`OT}*iB4k8_?DekFYMGG^9Y5s!d0Nv68FuNz=^#avzf(Fn1>(AbT>g z;or#h%vi5FGMedN-$xE$+8RHgGy!k<&4dsUfoexMD4a*~h_QmltusWiz^IZ&yv~ov z4IwS#L6d_?E!??q32Bt8=e2^gfg`pbB9*W&n)s6UGhw_ae6jKi`49e;VjLkSbjtHu zE)h;iUsoI^x=A$aOUxS^gp zvN?WL_a^up{;>8#izUHFv#`REz)~fxGbCJB5RxK^-m)WM$BEU_B+nsYk@%0jjPONJ zZ_-WL%ffQvaSMhYl2+n24jzNO!N>Ninj7&0y~*V~f`0dx93i1nyLI(>!h~89h9X>3 z&Uv;F4$Fh=nFO%N+vG5*nx$mtV7sQdL=bM(#7$Tp?!=gT(@lKvaAo--yk{{ov_|EY>dM;*eoh2kMafN!D6Sl5HQW61&de z6XO=~G;1>_3sOfo!rl(EhYHvM@X5yeto2B%()X-b6e{Zm^A!5ds*g+rHZ&xQ8H_`? z&oiy?3foJJzXXtB9q^2NnOV+Kqxa&utOb}m5GYfNebDfX8HU?c>cF^!@5}OHU6vijFNl6g^U!6ef?YD3#Gjz z2^gcCSPKWrsKE&j0Y54?co49l-gYO`U(sUiJm{NfJB^&_iS$DH6<{~h2I~u8nVz5| zAcE;u_ly2N#@AvfeH-Ii<~}-xaUh|Hp34{wPN0V{6z{LFR@wu5p(Y;IRVY2!y4hf(%1ndCt#Z2*C6r#AE*YWqY@>iJmX zOm*&lTkxG~sQr+>iSkUNA2&)lsahHMkqV6k6ucT0Qf8werbzNryw@~~wtK6!{hZLT6x#SMv zyfHvAWA3D6$bZzfB6rA$4MlBlrHh&!s*j7$we}S>i26EQ(k=+8pzhc;f-cCdm6!Nm zU@x4D`1=vttj+jtD73y0`z@h{^gue(qC$uyjcxZ^--v@d&8lvQoWT0|BB2%JXWDXs zDeQkS2l%0g(<>!BIf~+3#>>R$S(kDZSgHOf>k<;i<}94q{9_n+_ zinSFu?9XCF0uP*{nFkpGHo=T5j0D3#pb&V0`NT`*eg}JTiQK71N6t2GR@pTBJLhW7 z7j^;%w8n)6a4e&E%y;a~{wYit8|UoCc*~aA6ab%DctZkxh*5$5$!(R)f!11qic8oHhw3!9S?`1z=UYB(x$1y{t4Uy*6tnj4` zj85bE8GfV*7}KaMj(u-%#~yaA?m*rDSQFjRCAXMwwcKn7Gh2Np=?-JPDm9YEa8?}h z!vK7F`SJ<+Z3)Z**7NhcH2XP>=*akIxF zNzO>=UJ|()*rZMLO9qyxl*`%l8X4LKPb2V87_Fh6WjsV)>IT)KI`p;dhM3y_)H6+w ziu;w1Tbr{C6rt_USI5h=ptkT%X%1wWN&H=qBEPIu|x4B4g6Ln}rhW z_)<%uHSU$gN#1`%553Q9E@d-}rM!UTw(2Y5QFGO6Wt-5a3lpWWnA;g&#V4^}R|!SU z_$6U$g{uj!-m3&`{9~krmUi5Om zlVp=oB+`+#tuhs^A-9FT5%^Gyy>0nxC?iY5c>~l6%Y05RO{~9_d6ce!K;(8baq~*) z9PMc321yR>NB$krN4kId31JVtIYBL0N1q7o;>XdScs<}11EEVpxjn#6OAcEKyfm<7 zd;nU&Y?&eZMN_L}mc72xTwKmZ<>!h_*%9e^f<3Ii31NI3>sn|Yuah{r~smRFb$*z*QMKp$`%WGI0vx*NWWUF6%!_X^L+j^)J&sM14e z?fi7f(RdusL3}f07k7c^x7S+EGEuwZU-nADM$6~S0PY%to4``wZD*c%clV-(LJ?Ve zrQBZ_sp04D=RZ^jq#5xxE3d};a3u;=2#&*&w|m*Mxzb;b4_G|Wd&@5jEpM@*DSbV| zs$*1aGcZ+uNcg_*S=qc`XRlvw4Zl%`O`Ye(cAbrT#&yxI4q3yoSND3pWG_(May-s5 zknFYm!*Js*Hw>VcF}&JahMa3B>O%Xw8rn)u^+q+D<}A{gw-VO)Y2UVgj9IFF18NJj zRTV(S-5r&|u=R@`DDESgOxq+7^gBI0E}w*IV-MK2EUv}%4z}f$`0J`WVAVSH7ea#NMLb& z*LmpGtecuk@S0?I)m_B9=(URPC{}=4-i$GGw~z&33HDV|5$>3ouMk4Ks;9?!PjzTH z($j_5QGKkt17%Rut1U&xW(BF+F=a_IC4ePIU6W7ZCIWJ0PWU5kza$R`H|-@7FXD4E zydacPs8`Byp|v+()P>{qs=jqC#9uFbtFa^utktSk5{r`T6a^%kD3lB!T?(+3d?${jI89>tbER6Ho}VV)txC?QlfF@UCniZ&E1V+D zMg8)?mG(jhS+N^}KPDNnf5XcYwwO<_UU0borrR25sXweb)r%+xDfM(e^B&8?y2Tj_ zr1f2XtNw_0X>LVa6M3jN`@a?FRC;b@d^fp^{ZsB9(J%AeEHFo95Cv=nXticjskIkM z>c%4*NI8O$@@BIX#Ngr9j<|^a==N(NH+oKj(!I6aS0G%c_AVSuwjftqgWwoj%CuPL ze@(WK2WsFG(aj%ZG^X!apr zEf`VL(VL8klAri5|AYmUht)gBN_8MkxlTQMd~3VWMS6(ehf;xW=XFd z`cSM(_Z;R^$U4uV}nUVcvc!Z?cus9tEBJ*%mJQLiIJ_3SDWt{|T$< zdX*DH?&O(5P(P27l%>~eO*x#ru6qwPAcm#|QHO#@)gH7J-VRD<+9s#-@kb!P=po#f+Jx-(6=J+hUS6EXJi^k}8?0?`^7x zVx~LYmvu4^*glkuFn5_c^BtKXdP3G+dTmATfH}{!fYU4I-d(#|7t9?`n$^DMR>l~p zr@5ZNxk?z<)a#?XfotsaRLbE-*qMqaI3}j0yfl_p?*c29F0SzE4;Jq(uN3 z>}yxD@&|O^6o)g>T^jlKBy&x!+$EZ>a+Ng%y_NqbJ>#`i`a){ubWQw4>|_@t{J?); zI>vdyUa23)Or&2ackbQZU6>!IE9qLE>8t&v`Lz19dR~1eI!`H7y$(7dhpBA5`lVHh zaHsR)T4}0Xf-pyzX?l>;$xhU-XFQ?5EArnQUFV(kcK!DT_!`~Jxu!jFUXw>!7laOs z&9`Ix42BPPK6LFGtcI*y9N)hM7H8?vlY=xjc&w1&^8YoNM%h&OX`@|>Y1X#cudO%M zv`oEf-xm92{Cnp_D1GEBc-r^(kOg#$>(+iXeA8l1?@^@4lHXl|@i(lLeIQ)^*TZY- z#X`|~_s%<6*)yTw*fqwJDUi9?ZDS>{HKA3*Rq#i?9|q7!q3em>FX-sSM|w;!S1q4t z<@i*?!%{lg>Yva{yHN0B76uosy*1U1&?Ijh--Fx|iyFCv`WU)$@Gd6Q_eS4$EZ+5e z4+eK?@waX?!Nn?E{g+f?4HI>sst&9QICf`&bQbDmHeQgcpSx z4~PjU-;=#F#AeqAIu}ywlCUm)GR2Co;!#%_QN-r7i~od$|Ad&Si=@f5aTEHa-^qca zLFBeri=i^|r;r!@2#Ub>P>-A%;rip>KL6hmlx7F*q18iWIQ^#4E#VvB-)yok(Dm}a zOb!DEnSaJ!(0?TT9Pt6nVjd2b0|_DL`v?HvcdxDwc;{xL{T~ChWJ=x3^tBFD*f8yl z{RBT45B~|;e?sqsij$SOZS)EIThhT{fA+4JEdveg!H^BT0`|D?hVHHG^KOn>6OPl8 z%PKV|z`9fRm+fE-7PvEK^eovWbkqFM@fo2!vv%aYa6uAjC|J-JL+x)BtO?=v^a!kd zHC-14hHgtV%LT?u-YIpwFV?-%-<V7k>o*0lkSv+>`U#kl;pVCsf)z*4u*=u!fflqQV$;4_yTV)^PL`+RYK3tYaTPx z6lWY6u2Q=uSqzM*9AkWXZz;<|(sb^MOTL|2ko=FEjcSu@p@Y3*u{gl`u>{U@_MfjD|=>pLDs0Kw{?26R;GV?fN~nUm?#1?loXwg|hEW_uwZO zMy)H5*~nY%rKk-}(oQ1Aq-Z0Ujm=DngVy4Zq3>bG@kkdL>@xnNc^w8vTr#`4Is^N- z->%LGCzQ4}OyZO1Q_VgEGsLD=G2uX?s{K9@Rd^3%L0Y^<0{%`K3xz{F$c`@A&=PWp zITbA)?IK**Vnn;&(AP$yy)InXagg>t`90_W z?PaJjB!+g?#T&Am)@6Pab(B^(Lf5Y4I#Cxk*mGDgMAHHGoB9o{ z#q6Sj!uAcU-O2TxdsyBf8^H-owTm;@hq=Te5akGrOlV7Y$=ka@6_2D(g)!A1BqZ{W zx*OssD5Y^w__^*;%R0g4{MokMd`i;Oj;p+~kXBF)H``?isFb6&;2>Gd{_)h3W}RbK zMEQjFhrp%kocbNrZzj@cB{AVKUVX+ z@nO$oo@)!HYyIkrZCllkgD-cKDG@F<9en9J%XCC4cVMKk@Y5DgHK#OdV?1}Df;HPo zn5dRd?g1(4sAGmT@W#BMtlT5bZ~FGER<=dyAi-POA7~9-tUFf7*I2^gf4O_6@ShPna`?v9_w_zVFL>@<*=6TR2r9H{cbfyKt|Gg~Q()XE8PEqULkhIIgty0nU-o z)qWfIKTu=mDg3D#6YzS1Zru+komici4)-Ei1s+1wkb0d05rw1^rf+fP*+8yc!hPok9Ife;r z8kK)+6Sf-2)>fQqFOW=RS9ik2OA?B~>B7E%ZirM+>9i2Ch3{sbgvPV3_smo+8)%oz z)tu-H0F?DLy0_@8#xq@0t;bu!G>{74HjXML>rTf8g=74GAgOG5Ks)%J1ma`|Sth*o zZ$DUaf^-v=B@@TRyK2lwf77?sjSh#R_>D^k>RUaUnZ3&Lf!15yXR{C;7Fv(^4V|A= z69KEinF_R%Em$XUHQ$8V%n^5=t~jtUUi7&dK6`|2SZ6s^j(pp|8T-}J+w^(3w>+dZ zXCO7psh!zt8;|Tnce@3+g3hY<{SzXjAI)!~K%A-mXNW76k@7AiyN1njMrGCS#8#kJ zHXUxS#w>2_sf@piTb&!|#SO9G4Lc5C@C_auxb*?|Uer@wN0K zOw>}#pu*?c4x_Ijo^;x`nV>Ad85K*=UQk$8HD)cG8218Ohivp$;bPEMj%K(z^e5w6 zq(s~^-9ykQ2oOJm7(jgJ$Dl3HGbk|Z0vy_M1>uGGTfP_xM)B85P&+UNaYg7i*hc?V zm@7D$!*|SEyoZTDF@-4VUfL0adL&xcc^rL*Rs*iZTtkLKK4LF5AA^B$N6W(CxA0ps zZy_@Y>e%zBZeo+)d$feKz~L2ol9XoxBeakoXxFy+kzEBl+h34LRK3n&@->73xQr6q zv=8!?!YwU^F)8;meGpdEfY=-)j0*J|MRih#9iF3v)KQb8_#T?0dUp$s<;Tx$t6@GQ z@92nQ_Q4*3%$YTfN5F@f9wh)2%6OGQhMO{GW6mLv45(if62ypgc!TU_IGXz4UI1RI znx?-ZFP?3yzA%~8+xA^h4}IBjkI!m&1DfZ}7oURQxG&OQ!rZv7F%579r^(M5A!HwS z_<%UcE;S|Mav9H+!Hs8Bo}6#Z4-^}TJ*_Y02~gwqhtiV`KAp!UEydp893O~rFIebDa;f0zW#GYZbC_)6XseMbghAewJ+49)gwFp zs!EIGpc@KA+B=9+)*U?sTPS(zI}f)M^Bg|GNrD}wzp*v!HhENo^QbS|sVRAAC;mxG z^*{=k+Sb;4sP0Bbxo&OIB2bw2cA5bENzI6^hhmjgzI+%`zRuwj?5F6WSrFEc&6DNU zlV?3ym5mcqUijqZ6XTwsx2?BET@NH!H>LVvneb@M#r~xDW8MnmAGt{&hVJT1BXD0yTsa9=4_y-6ytm*rZJpzk-IM zrbry9p7%Dg8GMm_5gCt2G<-@WV3-OSW>I4fCmwU6`50j*mev*mevgaqpw)fAeFp6+ zJd2-%yiL7EsDk~DawZxgo_XVme3Z-{Oniz)7?n^O@!7I{$f8axi-jrzN8$s}>mYAI zrMX_1>A10hxY>~s*MnLfSq{^lqE2? zCJ7w`bVU?mRsw*R8gmN3*l)qc0Tkm?#D(;?f?1Fiznf+Y*6_ZfN}-E+1#KW0lRH}# z48Os(%{_-)&LJdkL}jxdg}*|tW0!f=pkJ^)+3&}6uqY-@1S~_vr*+(yCsBTZD6)mf zTF3&)<5mS!F5X;;hJ6zWbHfm8h2Z2cBp@gb7o*txQZHZha-PoqD0&Om-J~A>k@=fP zYX7h61;xB`P@9dQgX7iXEf*lim0v0@z+x0x>t^99*>uuT#ChrB@L1#}@tEgVRHH~@ ze+=!&Cz$B)01L;Jw8sv1lcPFb_A}wfK;qu!mLQ0mF0vv6+TCTjZWZj8`b`oD5v#l( z_8A$cF!wxxJSsD`KZeo@K_;j0UMwwVZ<}f|hs5s49~*}Ucm5v!+dKo-4i=Z+fI9Te z<~)Ycdu)?D;QPB2VY?9fG&-_)C}dg}<(&+TWE^l8qZs?d$JQpg66dfE_do9!&!1^zz+Bwc|`Hsc9oP2=VymdYV5W1YjLBb*5bakr4QP#PYJQa8RL7^3%=nGxie=UKmr z%WyV{-o!Ed@(>ki1!1Ab5)zT{+%BE;iwHH`Pgze{%0yt=@cnoab}69%Qi?rG_|@`r`dbFj} zqQ~hLU@r`fzOw!fwt${il7w48Z&*vk9i#&Z|KXu@Rq%0w0e#$kCn2AH+>TCoL;qw% zA^XxV(hng)+<)5&)yO#nazdAIO6tB~*07%!VdoHsf{;xVddLx@5N5&aukA{KRqp~^&kb^hp5;at%vOswEYW-8X4|0qEZ zdz^0^Y>%tqrMOq)dbsE9hVbhpCo)jUT`|iAREtVP`}n_m$YYLXq7#?jSGScr8)PR8r2scJwVl6~j;URJHF$ z-0D`;yhOgxZY$i6daS;i0Y#rt*~I5!go?Z%7S>*N#_caQUb5M45|=1gV2mdQG3O~p zFoRJBay>j?IJ`X+ku&hL292!i(-hXAntL)c+|Z@nX7SdTC7LHed6+KM8MnKbZSokq zY3x-Y)wqxFn0bcAV_&b>f!@nrQnRe%0E<+gU5jNoHiZ;EVjgKV%5Y_p+t0?;FpEJ& z0o#~GkUkd!rWmHR1~K~(3Hl+71GqxUBgU_W98?)Y-t?iJ&q!`X))X<8wjV5b0DK0S zrKbTGAz88efP=95fCk_=BHQ^l@EQ5VdNacc-Jm}Mj1tDl#dJ~oDB?A}rgOS2gPsId zS7*=@pym0$=&^8zG%h^`aWyuAo`S*zETLDRzd8S))36!VAL&y#n!!@~Bxx)01(gH4 z2j50*M%1*frdA;jR5efusNeZfR3#=Z^(l1@i;vk)y@u;vd7WmAA9nsq3n55t{AdVb zw*i56n!+ONAaB4qz!c7qUo-*CV9kC8&TFlQzyg1g#gE9nTk!SE!- zfFZ@eamN%VL9_Vf@<$Cj@GRM*G6KO!x;N)BfgsVX@g_VH15tg%L=oJ-nMe>yoNI^> zL9fkWk{h?c$dD{#Y(sbB47v|>e#W(QVH=j?u4xyPe#2L)sX2K3E#>>l{GA|g03Fb5wZ`zOM1=_JPv zIb(5!9e}=|$7d>u4M-CAL)*Ld%iPG0|JAn|8h((q z1!d%u&Z42^OLw!_n0J=W%%iwxdS4lGauOnd{TX_qZ4)~KUQqLywF7ai=p3s6<+Qer z`38+hJjE1ZPK1{+*JA(rEMa=$U6-C=dJsGPe1LY}vDa#8p**e42U}tI! zm>#(P!e5N*cv9vpgGZ=HjA6tRfeoA1!yGTv0x(l;_*7pUkG#)AwJy^e8X)oOYG<7!w0-JWsI z8%j4|+*!Jdc7qvc`Hd!J>@jGdH3GemP`WoC*KAIE%(ttYqiyDm$PTe88l)$2n2>*l*Q{}=?Zxbp?(6dxd_2C0nK~zr;&fp%k82A9{qEa;7 zjlrrGyFkIR4El-8y+hrYRt-Ua=&`R+%3{;jki)KCCZldabR&< zJ2BW!B<%d*u}!o961Lb)6bD;i`k7Be*6Qi8ZW6Y1E|hPmAF2Nt!$}iEL&dk{R!YOcn&^Ey>=zfo0K_z@{aj~EgS!hWcKdxQtkYihm-<}vGvzwmcsi?auLk8wq7jCt1h;+PEXDnfbS zET@;a+G7pJi?nRXIBjtnMRtAnX-SR{bN$joh=ckjxidXa6NyoBHxg+GN zWDe&J`9t&*jw3}7*v4j27kRj|?Wlu`FS7R1ip-%*dwPNXLST}m3n$K1{6HXmU`GAi{O>EG!e znxnXvxOP?hIKMepi>x{EobD`hwv1Dqw2k$I;})IFie=nabX|_yOY_ zTWx+8K(IXZ$LS4#OOufET%1zn#91ynQAlCeijvoAS@Xilq$<{8;ex22OtOFxu$S?J z|I>XRgT&vk_$u&@mu>!-2N?IIE&)4>&Jgz4#;$B#>Dc&_g&!3>MIcKyzaryR!RDr4?&?S64wV zYk@W^^98eBW4!tzws-p8m#aIUJEzG$K$hD|W&2?Z zjJ3iisLp>yJt7&`M|Kz0YhBIxiNlqfujDHF;vG{)ios6%G(T2C~Ej^$vZ$Fm1R5{*xFwI913?7UBPqqUp z44anb!4bY-NhC7fIYW#?J+@mcHo`znig|Yl1^)zp%7NM(bsYFz$#W$QDqL40e+hR= zrO3DlZ9GWojanEMBfg9l`}&CvU_Lr034h{}?6QS0ywGHb+ef;jr^mcYeOS|>WTBRo zc*q~1*X7K}YB8vk*U|-8UfgH#L0nJhT@eMp(dVlWLD=G)AQ&ZXvZL_-l1`eu<6x*h z|Ab!J=jv&N3BkUYBqI?XYt)V(o|Yg_K^4`ZGVc5XeZq&E=9*T+xw>EQP84V>LMQ@jgyU)dvE2h)p8Q?|3-A7BlA zw({T8mK`Z95}{-(=Vbk=ub;ukNl_%%)KUN-*nh0<@2a1@n;W-B zuGZ;VFab4P1MR^cJgsNvdWQ{~Jn&;HsfrKlFyxAVp~wFf^_uKk+Bno+pO{>&qJZ+08QsuC31Ao#Ng4|O3Dyi%*=pgwsdD$FoY zM-$m6>~(9T1c6F{9xZmCv!K zRyHbpaGyN_WD^8O#}!fvG0u9s7(x1K^o7TuR{s;^biE>(E(F(;eZ6ZbUYPPfjUNFL ze^Uh~#)oSZn@AQblVm?gk39UOX!0({bV)d6#QK-Wp8Cr;lZ&7y{}amo33^>mDUsQ2 znunCbDFbSKYI?jvSxVg=-XtHUg|1v7{Ycy4;Vo&WXE-*Cm(YLNL<^n)3S$|E2R!&E zc+vF=ncBmQQ&~UN$C!pG>B{%akoX)$HgjEgh-`$3TWKiy#oXfIB8D@6JK{ywEVxYz z|2*@#@oDx>W}cot;|E>8&`EQgSDmF$9pzQ8d8T;H%Z@jaujRRh{gBS`4E^s*7V-2w z7Km6pOGk##j=R~0$2-okF#gH<%d*sqXQ1i61>@?o5`(Nj?5F>@Xi_G1{~}y04R93k1)^b_9o$HMn#mgG3s$_I4A@Bj zcjnFBudGU)n)+G&F5&#d>N-KhozXpwkpbt2S2Vx%93Pl!8+97$JKVX_ZoZcYCYZg@ z-h|uhk4v9n-u^4<6D2&yZaTl-CAD@!+PEe`Ir^;`8!!7x_H(vO-wiGDP zLW{e*6o=yOt|9L3?w;Uog;GkXK;7Nl-QC@3dwb6Byz|bTxlGs-_~SE~wZD7qXRRlb zcyiD=a}zEI#B#vc7Ua3O1EVGAya=12ub3ABMFUD4&x6(%Ojx|+UQZ}-qcyQ>n4E3; zw#|%|t#?Y%%AEb1hjUz=9Qe2r`zrP43P-$A9AkJVAw2xOG z=iWoKa~||=3jOR-kIp*AjfIBo8kWAR^>5axn7 z$3b_dD7?S#Ez2dqs%L_A(u3dC$d)Y4=!oHzFU)EytB@C^VakLf?x-OhXH!RajH1DDpfyYs&-WVU(;n$1I%>jWVN zizG7sAsrq5)4#&JVWj9w%Hu%?(f8QNz8hk_@Qj{W@k0MwU0iXB2d*Pm+`bgtW+Q&S za9pb|PB4ckhDA08h2oR^7k`EQT%D}hp$bJ}O5eaj`CKfr_qO~<_>%5z@=^c2om%+{ zkLGr;{K8UXtG~Q@;X#eLbftN_e7ktsfF%wPnEn+;{|bn~Ty1YkV}G#bL2N>=rKU9O zd)F(Cp8u+j)9MEvrT#qE^CCE!P{?A&SAz3L{ZLu+vFC=toFyP%PFDeQ${sHUXP% zY)L+k7fpE92R5R+_cvYuWXh@lB_I>}Q{Vt(6qyaa1h=eLK<8S;K(G_jjHIeNW9h->XItv-vtCibs;Othp%Hcpem zU~_;ba!Tz0@DC*`Zxn)}E=!mXlhUjL*23S>_B-SwfOK8sPQo+;IAU7*gpO{5S0d@3 zg}ZBZFbL#t^&1(Fps$;{n7K7OTAG<_b6v9JFmH=Ee#~&e`tXslILS8kx@WZN~0?c`zbJKwvc$?!b!Ebql02e5f z7vfL}E8)H|X~IWvO9x&TURF$K21*agH}MlHk+PG-qcv-#uOaj6FGv?uhcsQ61m|pR z=@eJTtphz0sr}zWAj0bo2&h7cFgc1F<$sX z_duTQ_<7})qUaT&oW3&KVI{t$QZ;ZNWLR^*Z&_t$gLQXzwzla$dG%ut8Q$Vc0uD;LFD=nYs#$BzrHdYT**F=oCS1zkZ z4ZO)NZffj(6nhu&xO*tfS zh}%t62n_{n8Ldu2zXZ?b)M9C{j@UD}SIAVqT7n+BchO1$8uQ8!P75R$4s34;YB-=N z1tm6*^G-oxff(Wf*dmB6H~{_}rm6Blu0wpwrl4`?gxICn`PgdTN4PM2z#=woC&9yT zBUPWgs87?l8`7$R0zzOrxNbl;;y8X9+<{sT`~w}uFe(G!Be;aDNn|_z@iHd5n27SF zWB8<MF9JC&yDCj9J?uOo;BYg$*9_Vgx-=#`G$Lp1N2rp{-`uKMH-%f{19 zR&6OI&jBa2l=Lc4rusm15Tr#F>{AZis(83)27Xx9XZ(raATrVJC>b0r5sp*@54%%a zs#yc~5pV0DecZ<7jj26eC2W9R=f(8-KzaK>v;lagwcRHlYN0u~=p;N-al<4Ke^4aR z{4Tz|8Y_5Lj+@X@4pki(n?^uuw~QQYxYW=+c&EgtxuIV#?Oe;-p1i0BVAswoKA8|v z+xJEHVE0w4Olt8=(W*`dR9LxIx*T0!UC5}w@arC;Q?dO`5lvrlds?bX1^9blWO_2u z7M2qgPfA3*^~xi=qT_7zDN8UE{i_TlVX)l*hHVHEGY|&N4zy!PdCL>zWz5| z0Mjj@VD}(MX>hzd>Tu)=0tWNU^9!*Sx6ek8M8~f)h^A+d2U|_S?%)C86x0lQoEiwb z1;2~nBDBc!4PB^E^!j2E`T$n6d0-xQZ?1Imtw)2Y6+seAjv@_>SkCpL_h=A4Z~RU1%>wzVEX3NMpOc$AR-8T zjd8^@2y>m8X|o8oiitFgq_nf1Dcu`(vLA2@o9j7l#G01#oN{O&=nn^1y9;X1Q5Jf` zT{x>!&LK@XJHyYSra31)P0(vNH*J!zvz(`fE65KxzvZXuK8QDPTpRa_%LyfbD$y%Q zCUB()Tk{QkOZcNe4E-gPq?E(I3Kxa5kYj=k9#2uD0)S03=AOXG@DDkccT_f7OI1_Y zb`8xcH6Gl&P}v1$v``e1nmo`UxgdWI@? zg`|^$Jn3LfQC9%VuRg8g0^5$BzM8QRK?+j@P|r$ zkG+Ve3Im&Av|36wY9loWagv#8z~FOceO>LqJnX|pw?2E2fAfkSz3NDyQRkO@cW^=b zm*heyqHSK-O?a5L#A6d8R=vh%J9@rcWptcmDC`nHtQuK4&X}p~AM?hRHb6&4fE$`V z44G7&ZE5Id=3NA>>-m*z2f5fa6t*2U+9C9qhOcYwwKsPb#ah^?`xEg#;OA{!HkO}%;b%(ed%FF|h;^1GBtjH0l%#bbFgGyU;R{+mVZR|wD^KJ7QJ->Igi_44 zL;#V58x4_@$b>A{BV;GydduUKBP6nZ5~GgRCE5pjj_ReSBKBe;(bFgdb|>H!`a0gJ z;srK_K+ZXUlM#<6T)TFkPQ3w``ipaor)YUCEFts2DMD{V9kfO8uE`u8FPJDJBEAWlvUZ^c1Wxf;7$^SS z;6Q90f66r-XTWc@Y9WmAs}1&2K|C=R1Yju+kT}2>iUn{M#9dz0mhoV0-QL zh6(5*jifXe_CuYVc@}X{r5D$Ys!?1D+KC>PpLBJ?q{!!6jo?cq`G$EElAx2_+0@vl zB|HQ?>zRYuf#SN08yq32or02^u<-T+nKXo1n?+nDa#D*8YDK-*7`a-awJNyPR@_Bd zf+3f(M6iwZvQfK2kB|%S8a@wg1BwQ_>equi`twV;P;IYGW;h(*^(M|8xwzwL5C#Qk zU+QXr*3mAtI*vohPZ&;-FA6SmAJbjRfut$ApxPW>OTShpYVAM9YO5XXMgu!o|yG=_urlfE@Z)^e@NT3=sCz{BGu2e6(&K8$sF1DkW?MUc&Q< zCm>59ZKOT0oH{I7h{!KCp=6*k(kWCuOw2Mn>Q>wW|M#>i{65Dsw1dQu`4<>Dq((h+ z7Lu;dc!@JY*5V5AWoRp~jKIdMs}&OoIM1RaQXRe{?GibT@F!-7Vn-_SpQ2nL3mo@T zvnf&wW4bk!tA}PPn8x&O^l`#LtOGWQ_yR=1X-VH}y724B&k6~IZIlaXLBvhe?J@48 zNt)8XnM|YSJI<1y)4y26QNJ?I=v`v$Vf~@b@jzYqa2x_sH zj1vavU!y(c_mP)Ew`jeP4)AVGaq|~sp&D4(k2uqygst!V+1!L6bo5ucBEPmT&eNh%tz#*- zFlV(1Q4s8B^-I4T+)33%M-YC2(%s?%sX}URkWE{{e?r^cBHxFD#w$%PS&so5D>B(8pqyMVI~;N;xt2e6yd44Gkb(|SmzB#OrOC^sUC;`=uYYZlvBetS~>c0Su^b# z7L|RRUWR*{G>?9UfDUIf3W(>teHcf{cJ`;3&Xhp&S{9gkTepC{f+@!3lYZh;AuGr` z2vha@C|KgFQaN=o>2vl%>PGVSL>euVG8b-3yF-29^_~u-9kD-0-$+-Q_b{`V^L1xf zXW6;fc;Zr;4S0}bNc&oMo^+4CtzcmW?Fmeyty(#2WD1Y(Tnab_9G zRwPZZA>9*&huM<*gfF~66kp+9`}34y;k9|8wC#dXy&1++-UU<@=9vlsw8J?oU)HR` zCn$4^-Vve|jEt8=FZpczA(El&OXv;K5m~lZ3b{mj-2NmPE%lvOO0yTW>%CzRct4Tt z=&v1qEm&-9dwPu%uBk1dNQkd*)ywE4)M+lp3yB5l&7o^ZwyHH=?xaEG9s9$i8TtEp zC~Bu9RNt9l!(WQHj}Gm740woP_0p?1V5hpj6$Rqfbd_Zk;kR}ih%X{+Z_f@D5{0d= zyv#_Z+8X5tdEWkUzhS2aZT7)#{yu4MUAYgi$ViH zS-~^GX5gE&Jpvqr6^jrogBu3B3EYu&Zl46p&@9_7!5}u(1S&8jr0D4IR?xP?dAzGF zz~&g<8PJu={k$Dej{;p@7d&?PPaX}KyX+LN1zj1ml?TEucRR)t;!SKf^3D;&CYyMJ z;uYq*KKWPCM#zegvln)3!XHGlcVBmcp69?+>cs93(DtTfuox zYO_7f4I%F~`ND0cHR|MZdCafSC9F#9qeg$01m9Txo3)9sEsxB)NxYZ3jx|R%h&jk! zO7RLZV&_vs-MDNK&Cm7;dzNl#8p}yxX6UTtOtIVlt|!?PWJ5mVG8I}L&h(&V<(^`K zXunfknFI8VF%`^H3|Qc9mO0bLt%;S+++#b(YGe^i+3ZyIGhGYzQ|=;gB<(TlaXpn@ z#cnJU()Y6urz?=fc*}X!y$;qI;lu44G(yF9?qQSJiQc<7- z-Ck<%W=k)X+_!V17fTkK&1V`3pX)wk#qu&+UXVepZnaFx0a3U?`Q6RqGGTByWtW%?`7d~!PDtm#P zHGC$C!G8Fg>SS6a0IYad=T^O4;nO(3=(4=I`FiGvtRF~A^p)O+SVc&r%V49vk0d7$ zzn$_W6KEGJmEw{aa-`$Vq^0Y+WID2l~jfzBj0S&2WxmR4>Sa}l*?*c;z0K#>f>-2^t|OkY#}O$y#=DStmzZf(zBOB*!y;az32 zb#%C|*;i8a9qMzFr)0!A+46|Y zdDdyXa^??X0{0U8fsQ|y&2_9N@#u`#;r?q(;7zM5FEHNr}rIrd@h znp!sNqdK5;3)@(AGIu*$S5>qe!MdhgAA68>TDd6nE96BXa?)^fvKwf0jdQYitK=sdhT_GRsHv$R~y6 zsBw3E#r&vhv|i7=DYrK%WVMTibW7Qm+{e{pU8M4D#e$A&)o$5=?d5f#WO3`qMr?Gq zc0GU?MAfK4XpbuONvOMhs9Fsd&8Mn1A?Ng;%hY(Azp19uhpXSvR83oa1USQVZ=%ML?s3FX8wMK02^YEE%`ul`YRYQohqMb zp8~uK-)eRMM>CJ8`@uhw3RN1ITU4)7g~$rrr5HdV-M`CUUSRF{C(t$+#tL1SSN;knoGs-o@&m-2{Nu8ZBt`mXnJ;;L!f`2t zvMRDgGD#f?xF>!~8**q^xjfQE3}xO4*d*G?61ek4UhE)yk#LIr&f=wD6X%oRd44qa{9j@A zuV5^B&AE}cQL>C%oxVgY=k88$5y)ix{rt1|T#(P&M66Ehx*3kgDzwloBPk54>@k zB-H%PrD+o|1~##pN$hL0ZOTc)X}zaXDfQIfL>*@5<=^dE2|;A=I~TyjiF5551TQ+W zEfAF-9IZW%S?ukgkzyY>1*z%yA)6}IIbxjI5BYQQE&WJI2E+WX0O8c;J9NyVg3_P2 z2cSPBN?Lbg+oP^((RiJpj~Xum((9w@74eo+pz;B?cx2X#GgUs5bQrvLxt;YKAiGbzjM+?s1A&plSDP_Q^XLCgxp| z_bey<`yxxu-}!<2f~%AJrnQEeoNlZ&r{yKwQ6Hm6MOCP}=Qv|`5;@)t~0+W-p|=#5FqsD?)WS0`77|WhOEtLlj>b;Y(lGw%Q1^`RF-oHK{Q1) z=Y`h+xigpGR3^?r8-og8vIWw6USm=#={Khq@tn-qwpsL2@^Kzja7*lJaDne2 zNc}6+{}qCjtJEROdlVwom-zj1fNE2uOctvG2RTR+Re@eTl3bO86HFYfOtPhmT;yT% z1_WV}euJ;PF+uHLA&aY%-nt4^-kYcz|5&v)x^_i>?dISIBZP)2pV*_oe%fvuYa?6Ib}v&qcco|7_|G-Zc2D zCD6yK|1;=_3$4!_TEFN=PY3+6#jmaxD3CFzm4l<`{8XHwr2Q4jS-;X|Mh`WcCLA2z z+maZyd2k1 z%i7M8Pz&~He^Qp2)G2-FQr$n2S1jCLA>yy#*nbmO6W`TmieD9Zw=fZ4zNLjg9-I`4OVQHtSr+1j_mhWZ7=+%jDas20fEBX{Lr;n-hc zWzTuWs`!v@H)egLrW3_73z}|U&zkg}YW>5maT(B7a6A@2RgZ8@EytCU+&R-4DULU! z_d(>z`|?*9`YWKiJGqmDCcz)e z`wEcYt?7^iDd^A-7NYrouWl~muVCL*C3+mUxno=$9~sd0PAm?BwJsCy@|J6cBxWuv z)g}_Iy_YgiBD1oQ7mHD*e^+y&IDLTNGC${ksZQD6>8J3GBe(Y}Od^e1f6IRc6=`!7 z=H6`eRz-}=!SjvU4}f3l-Qj@2cv!%CR1E- zf&GD%S8HUdwwmMhM>y~5+nXNXQ=42{jsZb{KCr3+44i|dXI_QmB2L9@fEA-%d}iQU zth-%15{HX5WRQ0gGkbMQM_bwzYb(vb7VM&$XebhUzkVLPuO+7OJaW1m3gDn;Gxb5n z*wz?BNC-aDCk9F&?6zx!KO@o&*ONh%`mWDK=18FIN9i84H}iRA80HLSb4@lb8xT`p zj$c=%ZOS5=X5<0pNSV=CP&^sreF{vWl-h;CG?bl&x5?wwJ2Pe?9OOwn_)52L+o zoU$0*TKSRkq&cNFin_A&NJ9gyHhpb#G+ig^cZ-tV>a77DV;I>bL6M9Aqj(a9xwm~? zP84fUVqVa}x1HoRu_|oX=}k4&95$@fqV6PHlJ3>Gk3AGM4e)2L_hz&Z+1u?{ z5H5SG(SBkl$D?g|=6BI+(WyLzh(}8*+9R?=s>?vap2oJy&qBu%Y;B8RIBm9pAn=L; zHGSZ3^@ano`PFu_;BEW}<8ZG`z!`h3ZmsQAXa;(OlM<_z%?yO&@i5#G3y5W;_}U7Xh66()F)4eZ!V(dM6T z_dr+`Z)>GC)R!|fmx{I3cIwD9@47S#bkVtB>fJEx16SB13;({yX;t<0#V=D- zz=!g^CVuz`kx0EGl{1mXAIZ!elarCTCr3`e%?oc0>DQ}E_w{EL8&y(zdY0d>Io)L) z6;iKmKjwX=(W4cUK8nhe?~F zOOg@EEdy!RC`0h^$QblEY_lf`vk@7;5Q_VS>e4?zo4_4xOQ}CxVr%Z9 zFeBJd*9uCaxHK+fq(g@GtJCCi|f8cVNH_Lq7Q)ZG4xDdG_#t@=LcHq@nV75PvttC36@E|>vC zQVA(xz+JSc@CD!tv?m^3kVkaN!dxVjK5H;XX=k2L1QoS1dO1~P4NM85x*4BX-(`uiGy zd7>s86WDX%n9*_)fr`Di<7gqt~f{koNqIN z!AOc14;i-HFB|MvSD96r^}6Rd)mC&JP7*ehbg070nvS-$d*A>8+GREyphb#iV|}8R zaF4`yU0?ZCMf%^?>cIDz9 zA+B25k`ALX^(vY3@MxJ~%bV(MmL=$Z-6iZV$hO8ez@0EK;6hbC!U{B$yA!zq+L&02 zu7!UJiO1YPmAOV>_hG6mJ&EpEf!;1g6NxBsZZd6t$fyTY0#O(~Py)Wu!UD@+_LWIc zCL%rOI=le|Nti^&VPL_#P&aYQUEZPh<1bi-<7Wul_3h}#ss18Pog8jYd)^p@_>5lG zya}}f(A4rCQ&*7UA9DF zbLsi|r)XWw%X~tmGi@IwrKX+^MZBr6qW@|FH@;&K%7y_X#>1@5zz58tcyovgb4$<` z=ogl)OCRh83t_n#Q_4DRu$+35{fQS?_LbL6_O3$mFz~tBE*_$>v!R@qSNfr8ju(;@ z)FS5D#!Z8+a(@L0A=|jGT?U|2+&7jV(OmAF!4%brdys2g>MH#}3a!{BCBc1b%p{K+ z9@agT#FREQPKnzy_W=q;pW<488%2Pi7VxO>k;^1xm9X6^2z5+w(omP8;1_UQiifp8 zVtsj$h6y87ZB$bm@@iM9vPzye@RS~zh~`*@XVRe~D7an@6vaRD){n?tH_Jk5?y{L64)4QoiYaV9~xUOysDgr)H zWx3n}J1I@A29XoeCPN8%wO}`^w~#hmLa-?f8BBx%D#rU=>JimDdOnrJ)@|v!nenc% zwc}#!Yk+Uto1k3a^446JcOb3$q19nzg52D2E4fl|o7aY>72A-$Vus62;C0wFRp%S_ z;o9mdN*>`gjk_~$5Y#O;%ia-3zHH@T&=fq!IH9 zzQRICfaL=SBQidkgWN~K`K?F$QEQjZp|8_i<{u^8r<>_*WMG+hX?^vdC{NMvn+{Uf z0K;1fXbsinAR6s!K{7;2S1g|oV=)|~9TC}#DL)=^J2S-53`Jp1SuDgqWfAl}=rim) z)aKedoG{eWhU=Whma=9whg;Rva+{;h9|c=*hErRi&YYR3cl*p*sMX0Tn_+*se< z7GJ5;v{ZX4uL;nj!KbVQepCBJML|rJbAH~?5v87E3GA5sti?NQs${uAC3TAbmgHYi z-v0_=S3S{Z-SoC@vM01+vN66ZGjB=ri4Il@5t!I^D#`)e(3;@q0{N|Zv~RM#NU?CD23f zPMQWfYF|S4g+DRNX11gLsqJ-$zGOR`PStq?8y{W!qv;AEtm{tvxz28*8R37!9U;e| zhmm@)BMn5=o+P76a&&X&|7T&c>;&&chx^aLV0hBg-# zjp?MX_sYVqV$|6qa8Sma`4~Bkm7!8xZ;qoyK146^NNY;gFk?s@Dx5FZVjRRTkCh!Tas z%LvJq->^S~+9PY9$0Ur1OZ1n~)%+kNq+Z>_Z82>s?|N6=1vuMTQ#c2_*}g5q2K=!t zF@8SuhxTD;6?~Ou%JUE6rdn%%2^FdMJ#UB*FWIXPq^I$7(F_KqI2Ooc>?wDz!7x5n z-6+atE~raQzsxLc?2HR!P64h4x3b(pSKQ56+n^HL95xod&G<9t1nS#AsV03#exVFi z30qvL#kB{k!>P|2ZWcPys+zZ_oub_U3S&#?AV^x!H~Jsg6}SD2A!ML!Ei(yiXOh8= z#4Y_tpqd~AM2E&5&8JA-0AQ64*$Viwz?OU*61V&%MF8V28=xj2b_Y?Z-%+>RgtSS_ zSz83X5C=0+G0zZV{t;+5;NG}J;7v_4_$uhLN;?7#{wY6&2tyuP9z!ZY%a>V@Be2;) zc9ey<*KTE$s|1WKjoMFKXL5?sMk&-u;j}SEpij_L)QZNHn8%pPiYQzt_HiB;UxZ(l z+D&L8h+^9QEub4gIj~VbU6g)D%J^u>iUY*ijru z@MU;7{a5{M#An7>*+!I>8I+rd{>ap(v}5C$U!u?8u&k!QLcEA|$!!UthFxy^ipXNW zG+j#_;M~@QvWB@D&{rs#H&*WqujHL5vqR43-N@O867i0v1f!qv_C$-Yk-WWu9=ICb zCAWq62)?nM1%b(jnLejH;?LLJ#B%0&gVG^7(&#!C^ovxlQ~}>5*^pC-Opt^o-$QK` zABZl%xQGFPM%W7R5;rScv{=_J5I-i`XttD+Db&&Z#N5a$0rrEAtM}KwhMZMu`${W9V7o1@D{_8*ST3@L9#i!Oxy=4*(`&6R5YyT!>r+vT7Cgf zbcWaB!M8gWmF$3SX?vW#8=lPooe0lPF4G%MrG!YFW)J`)n<$n8W_sz{^_7{?^=_Na5H4Ln0

K;r0m~7Q>?>ypQE(?O)^`lVYMecVvp3>%))8O-BQTaU$5D$wo2ryFL&%rH zY1#_7bq1Th1o1gx3B4P2HoS|m5Hsc*&*;I`I+-(<;@?;uVtyeO869ThD4+fjnCd21 z(jH`aF66J2@UT0S32La%WojYK*U5-_ zi@wAlgmkjbMG{o~u2A^lCFKeSuoh8k2hy{Y+cAoP&9!sfj&>Gg7lczv6vV z`+cB<#i{@&55i960_!)V^|CY*G%ZZDQMaD8k^8Flwk)%lTv{nTTW*uHQyN#*mGVQv zu6-ACU;LwSS+GVt0Kj@Ci1{FZ{Uh;l$nW`g#Qkus!F*9LX3f8u)UVkh+FN<0q)DWz znah46N^USo2^F4cdK(idyd7z)s{rq5PO;9J_6+Y{+h981_VSkB_M8CHv=F@Q| z2HW{TqyztEGOP;A*#+ECB<4H@f61!n%)yo>UFQ5i*hJfK^-%^vp2Iil(2#jW`+A$T;#3HEv$X$)}$=fW2|G;O7=Y5Sl|P8 zG{MUwkBudE*xzJtAw9R)&55JX42w8t8KM6O>;n}C=)ZAZh1Lu*UYzO9xJEdWc$xXP z3X3XWR+4Q3S2H^)%RFM3H>nl&pIFW`)B=6hZTfY?3HBLQ&p!g^W%(=GVv0`zlD39w zn=wxJqP|YV(YdtAD1G{6IwX+F@L&Xacrz%BIR`VwPUiImiOgB{62o__kDQ5r1g=hb z7zNF8&c8ynWld#-P{-KLiA!kaY)a%I8i{>9u$Xp@lj*U9zKnCs!I{qGA{XEp>v{G@ z!K|o%K9}_$p=^}&LtvO+MxGUvr5~c?2>1!-D4PYm$X05YKphxPT_>3Ku%$T)9y)~6 zpu*w>!}QaF8%7{zyI`?SFlPhTrOc1GUOJcel*E;OOox)aq$d*E$XY2W5<+p3h6gUC z%u3BXtf)bfKMrYBmgL%k!}Nt>f1_5Wg%GFH#A)EBlpZ6rs$b=)i5xXB-I)}nI+xH$ z8dmv6W{?wP~fA)yi0{N>KYD%u2boG1RwCX#{9=-mI7b<=OmEJcQgbTPwFkIO_o=cTfUmCcn_MH?&Lc*V5)|BwGQlcGk)&p`UCQ%SebU zvoDf6=n}pCqN{{w|IV~$iqvwO`n}n}TF7S6 zG?MHC7uBP&&bcCgY^iOcC=@@>94ibZw(8dj{At<$X0o>6sPGZ&dghq04RI?uR+x&~ z6oU|a!4!ow3pQb2_(Tbqc%gHWpoC~?+af3+@yxgJM=59Z*Yk}StNzU-yI>)I0yCaz z#h2hxlaBK1@!Ml;_+Et1A)dS+qzIqIybENib2@K5WruAKZ;<+Ro+&Sd;bLII(_@|g zU!wA%+(V@D3>9}jS&;eH@BXi@0`m`Vr1DK=6W#8<`r-k zvKJbZaoss<{wL&J=6KV8X4r9p7&nqkIX=veXbH!XWgmQmW6E0X{eol2&T=kezi0ok zeaAk}xiwGCG3V|#=;i=;MgIwnti#;y^l8>{UP|H&Yd>#ybRKJp_a%4*YZE`t`!?$^ zztg#ywM$@Tw}dq)=$?0s?J7txIM3d}Kk+{y_bHPgPEXHa%Ed#85T;6eI(i9{EZ!R| zVrsI9+2o7`mhcNSpO5U&h<dCm!xwkc)>i;$2aDEnkeOwc_BrIR@k5m(;<3(q85|$> zPdAEDo0ZTRTF9)PO*94i4%w&|yoSx&+~7 z5-q=vG1V=SoFdu(6&5iMWOCaq>#dSEYF{)yUA9_t0nibaralWY@at1Oh7jBis}{j- zJ2)zN$WY4}#TPWugeQH1chwyi*HhO1n@OFFy&3@EVe))+9jIZMvkDBE4!xoj!?ycn zD|R4`xOFNFQ0ErxPvAKB)+5|-8Z5owDfk9A5QtV*l4~R%(}kigYO`Ld;3IS4|3)&sQNA0! zAjw2-fO!}Ll;z=sp?T5{{4L+ll261~H@2jiG~$peK2DiuRWDvh)tI7%VGN?)5dS6H z_ zJ+`ghYrZLG<9~uk5=%XwSR-CZ`yPE)Y)*e4@?HdEtnxi9e945mafK9Cyn{mUfE{3U zTj0SdH#6dW;xhEZcxk+l|AcVSEw)$Ud{H>ZC3;w>;XDdCDtO1O@tqZLxi{U!f~7oy z!+O4&A875wyT#vXR>0HaZ`a3hd-!Gl6P6zo@&t;6oq|WgglLE$OSm^=oWEK)=evTR zAxd{s^4^QqIGo`j#qQRX+~cBlGX*zVIHZ=s13ytUN@* z8bT=*cmu#EEQ!Y;iv=(w+OYWNO;&h5#_0Mv8`0f7_5>Joz6n%@~4vWfo zp|1wDl`s9?^dGJDbD!voXlPm*&~vw0y6{=|dmzpHM`u0cr(u=mKJsrpEN>%R{42a< zRwu>|B~@&RaT+MDJ{mgPC#*Z^IO=40Lku>UahoT-wsU61La| z)V2yCoY$rGL5qxx6(jgLoieG%Kc8~*H`Rv{VtO)~FGmM;-2ldgyy!%Og?@z{y3h%C zNZSnj#L}`>F7mAnOH0L=&pV@fi#uRcD7#DgqcbeNOPBqd>O=7}op&JVQO7zIu;!2z z?U9IDKeyKFC=d4v?J)Y&Qh(%@4zm`f>(?pHUAEkmEIG-W6p(2ef#19zzbjyUR z*)jhU;@-Ai#PvlLYG(*`Api}BNbu8FN0C;#1651O50_3V?WiHPN%GgUp82PxGRBlK zP_&+Hr@K;cn6u+Q;eytIye=w0qfdDplA^jv{p0&V*+YBd4ppe=FP9#Xw=;g(vSnaa zn1!Rnm3`BAt8kDTr~8^e$Fu%V*rD!WY>F~b;hCpG9F?i8y}q{& z(hY)+rE`)K!Xn$x;&I_ci*3SLA<3kKe_rrK55n8Q8~IOIrr0X_6uDM@Ok5ZIK()@sH_WVz1i>q9lhZQZW z-di+6^{D+&b_o8Vp|0v;{b-@+VvdSq6#nFoK4_epxr6d=N7I zPTB{|d(FNQv+_d%i?ZozH*!`bv`jn2b?OjXxs;Skdgo>fbI%A2gD#M z-IbtvREKpOf`C4+f1So5SgW-81`Qi{Aw_=8CB)686)n%9^D7i!e64r&EcAZCqPp#f z<;mDa35paJ+rTP+mepe{l>e7PBfMfWNy2gx`^AYenW>ybq3kg1JpVBlC-UuTkO!R zF_f!-CR6INF@ml+U`ewsRqGsvE!6#&2H|D-*v>MDLkhv%7;Z=pX+yj^X=s0nqcRWlB_ zZK#(povf8$F%xE(MzLpGND348aThVRFVE#VU=1@jau)$za-VbORX!~;<$TW-mHy^D zNEBBRIHy9s*Vu4&y6vxnakg7O0BzNPOuDZRiB?>4DlYrj@u0{c*R^C%lVJt~=pRS*j zr@oDDO*2s)0zAkXRVpjK=UXZoa=sSl%A*rY%YMi_LtQJ+N`u|gYQ`mmg_FQcv7wQe z_+0=J?u&WWJw&4<+OD!T0wst`+_8p>1FOeCA?Uw*5&zCnbFf~S1 zn=rL?1$Fu@whfybvnwW=?E&bVg)K0UApR6+1GF*dGNd2=%lRi%gNj;EjY&ff>UAVUe|QE@;EZ1Y<EGFVEp zU>kFQ=^kuXqBeUzyAa09d&VX=EH0X1YfETlE$mepyDDF@cg7ahny}9YX4C`NubgE~ zOE?QHvtU{d$)Jsz$@$5~rEV3SBW%jJDndi|<~$SW*Aoh!2-U^kOZE#LGQbsR!DOsQ z^=iTL!0fsu{CCc~8a?<2Ek~i3`6PocltJD~)==_*UDEG z4;EL;W-}toeWizDovQefmx1V7OG$`}c|)0a#!3eoAo4KGrC12&F`p&=?zoFDSWar^ zLKK;o+HC5?c?-1N#pOl*8t;sSWe%zXu`ZQrB{i_KCR$PBQdU1DM_ZLbMkLLKT5_-8 zAhS4O{XiP-SZYjP3dA8}swb%~BPH|^Rc*!Fpx5gv(v_!X=wT1{}-l;aLZ@?X?&1?J$ z?yT0M2VhniJ3>O)8jG@Gj32z3WAASQ1^?OBuz_t*%mUm3Rroa z5}Ti2^MY!SYEyrMdOXU$iAfXr5&;x?^iq9LI{or|GTNGPS6`3*lJ$oYm^;AqM?NUD zXCeXc5;1dq<(l%F%ny0ns_j@2DU)^nEOO+HhR3X3zM!VJY~!VYKxcN%{4=NojTdyPRlM8sF0R<-vk-WvqftD?@HS;3;x!;^hz9`l2TK%h94KXxt_Teu+wyz}~JX{|gkX&^I4ejWkOwUsYvURrQg)>tuGLXh_6eklJbxt9`9T_XvJ zTw7Nv?(|hRXv7Xn*8$2!cPyxghr$8_Cz=_58}VEEM4JixS~g#MzG+2%iKe?Ez1UV= zkvm(qN9CPjR+X$YiJY#jR2cZKub+_zEq&iSEvvIQfM^gm88lJ{_@9ZjX$`&J@S3c+ z?t-SIyv3dT@}GsD+K=RNN_Vt*CBLn#*7inD*C;e$z9;H_sm&d|n!S`h7Qf&hrKSe$ z)HK0j%4(QN-hJc%+@k1Yb3ekRY<0y1GPjD7i$}H9`6XMRuQ#3wKZ%WM@$uS#!+=8< zQ}G<=jOj(nT}1gmH4HwFbgkuk*=2+dsI$tV$p;cxn_8X+-P3@{Sq`smmL)AjyaaZH zTcCIllvh0ZD%@~!Ej9(|ZDvVMMQe1@ISP^y(XtUyw*dxiMl>#O*xv$ezEZXr)C`1Y z$3Y6guM(HR{9w&t2>55jCeN!#FzV9cRCETW-7J%M1-D;kBl`kHi&xiTfVoiT`rY8t z`iUkJXmzPQpa5Q<)dUnF3lc=&F?4w7L+Bu8&Qk#Qzzr?-M@sRZ%*cdJ;wxPnb`b3p z&b9Ib;v)E6jTn_(x4Pa2y|*Nxu@4)aISH7L8;<`5Y{vfz6@l5r9M4*)HHo!21OAcB zGCPbXQL}Z0EF9w_Rm{m^WuQ%rNumx8h8bc zd$$Nw&E_7-h^oVKx5RyFjODHm)oUK*?)F5qRC6CL{tap5`I=wBJm2Rut1EJ=G7&Hc9l0bSrO&(dqAMK8Rk&ov42*Vubu?!iqdRWq=Ifd;8^Jt?<=6 zcTAx`s&7ia%b$-tkk_GcZ*eYsqqeNZm&Pjp6wX!<6(7=fRIgJQ#7)05ga=!MjK9uR$AM9|NmQ~1%y^4zp89l+Lt$&SM6#U*-e>kA3x`K>Z)kMO21VUqX&@mzxaNjMK!~k8k!IFPMBaGP$bHu;vZo(Jj1vtBG zHDDBRv~ph+9;H`vw;&Vk*I>H*B?i>&ybOvR1bPL{!(9i@xn9FRhpBDI#IuM|`r}*B!kmq+EA~d`vVD>YJ{V!1j|9C z+c5ACG5RKpsOI>2|8^&HU?%`MEs(~Kz$j2tg&lYa1d!(s`357TI>PoNh|!-A1Qa|_ z4`qhQaLq+8$9}Wn{;i&?Oe)A{NC7%toW1lQsJP)ST-xxoc^*=?Jh~+eCCG(>3NV%_ zEJz`?Et&}n$D0Rihrb{YTw{)BTu9oeswvziAumQkx)zHkx(nn52p zVplArne)t6gLuM4m~JPya8K&)VOj9ZfPcynqQTl%RZb%Rl4CU|h5NGw^*CX3vPF}v z&^}5G7!*7Tr~~d2oOM-$O9c;XFCuIOKg@LSGX5()LuNOx9*8MDrA)3xSF|e{O90g+ za$$CIoxW^C(*1_xGJ_~&Gee3GsA<_HHF8}IqD#)(&4;7JU(Dk03xqR&YuZSju;oul zY1`piv+|VIsuIg82hGoHvzjaF*`(d|+f*x~Dw|ZwJpt8#mr6a?J;2ingk2o$iLBNP zj$12s)I%|z^2R|YNXUF(odfAb@zN41xv}hA)>HD~Dt3|q1z2Yj@to?=*ya0x`T=ms z@j2}}Xoux#MnBZYu$}FORR7yC-wpJ@8I|#BHsG#R4i-n@SJmvzoF(AupC)`F);E2R zFejC^{P4{tmw-<@j#E-$^_I_RScJszDN~M_`L{cH0dN?(x3;SqihA1+RAh#6Y&x7V ziOp_lNU+ASKrg~8@#~;)pEHCj@Y9ZH;w9uyD?N$`eZwe>;f6o;ZzpJVvlM0ppjEZN z8NlJfAjC`XzVtgN0Q6=&1bqSiJnS+y3i;ZHj1!@+I%eYAu-#URNmuaBMnu|U(*1w; z%(I%xK?h)om1qbA{;>cCvqFxfN5BuEQ{wI*!I-OIc+_Vc*e4m&jDPHyfh7~OtxAZ? zNeZJA)WfuYuPo-pMiAf$=4izT@Gwq4e-C&JACtBQ$|tnMQQ&z*MOYBxH)+<#55*#1 zcLbw{DPOGC;4jn6jDsjg81HplI49Ya4V)$tIlue~08i1$_X83s8`C1e3@SLz35uXO zhkk-5((d@!A{P{t@ruD6l?$-UK>DWxqhYUW6u#PV7$NGPHG;KdRTA6uxg_=n?T z*a?Zb^*-P0>5Np1ivk#iBe}nr3_3w^1rK}c7xmFfk zvYwh%S&;pVI#Yv6SwOR{?}>g-TiG-fG(j(Hnet#U%)xAX5aSxmeEtqr7oyi7j8lmH zcXyE%QxitmUGuqkfJmwD%KAczXo^Y>Cw&H7j*cOp0l|V6QPx8~cz94%@J9PwS|hS^ z{v*aT`nCaw^^`F7Z+G%hwKX=NSyZ$gXWz0nD;{qJ`j{jm*h3woritG0_`q3GII`IN zDLEXSZ=XO}h+S%7M*EGoGC0VbBLCY%Vb)dtLcWIT6y8Hy!_H>5V^R^Fi9fJ>R6$e% zZa4Z@AO!ygJK=tWXo63&FCzXTY`4g#Vn`@Mdxo4Q|F;u#uyP*U7admUf?#8MGJYX% zU_T~G(5d)@$mf_*f+#Qo`;K_VeII@a+0LFr@TZhnOj1m!w+)$e1vBX1-NgkJrI15J zWC0%*K`PE*z-P#ziSEcGih1NHYA@w=pee?mdc}PQ7D_u~zX~@bc#by1 z#{Sn^TnAc9@6P`W31ZC4FoW)4a1t)SL5#PNFr)z!6Yvt%%KYWN3;l#OX@3rz$Hp#5 zB%bH6j2x)nxc{GE-ExyVmQMhIxtG&dg8y*8CA2};^GqUB;YeO^zzw7$5AJ>p)y_L% z{|ghwuU;S|{N!_u>ZlF;Se-D=8m?Q}C?HI{Gk;#oRk1R?1jG{;Cp18!#QKr$FbmO@ zfHUxWq9g7Xkz~<*2M=_f*k!>ULY~OPsGV|8uuTWTDdnb@l{f8F9?07Z5Gv=VTL3c@ z^$C$+9r?ycbI2QcOu%8-9oZxI+X%Jnu)}gxhb(l#8~i?rrO{prL#WZwa^`UXWoCku ze0c6@{;Oi$<*j^eSzlZ!-@j^E*hc=6+C9FP__2)vE++hLK#gsnpakS&HX~?+4(Qbg ziqV{Z@BUj#F0h}J9?m(z{#bD{brbt@_0L!#`)Pe(m;uMJDb=@xLvBfP-p6?fUTPb} z?S@X8ec(kQ?&xjeZO8qa2RgQRHN&7LJo_;tuI_%yPX@D5x$Fw#EFdzJ#LNU<@_EU; z0D(EnSpe8W+X%K9($(CblZUa=H{cc#TmPMDzZ6YSL{0Q;SIP^(@st*73&?U=KJ^LHxQ7D`)9a5tZ1T9E|$!>o_AKmYETw-=nn z^&)#Rcj6n-ZpoE|2+T+fi|C3o4skfq+`PH(#$yQVnT1ybDRZnWlSL6k+eD_k>E$(>=R84q#So9kSwTgZ10jY z=u75R&^Sy_gHonFoAzIK@(9X~3d%Twwxlggl46$7c16F$Ces^3Y;iD#m5&!*%DCt( zAaIy7cDBT~tabB7sBDhA!2qL?TkxL{i%4O6W|Sb)*@H^_!Mzj=ohU( z=?Fc7AEIl7u|7_itwN0RI_zuVIXfo)hG@xrH}Yp;vY|CSRq$UQC$ANnEW4OK3xms` ziPP{-nPD^xaY(v8_&h39%JW%*o|H12_h7zBC+t?>?IrK#myn@i7sCYFO@ZQnLe394 zA|JS1D;q0b5N{!US~e5WB3)LM9#AfMTD#A~RC2b_!{Mf64v=ekR+?~&q zc&EQJ2Lk=+p3OOch;mrLbwJfv1#^WMh{;3lef(A3cf5G&zdbd!Yi1PVHHefv!T1Il zTy})%37ZVVGsOs*-+ks+6wE!4g~4PwtY=-s*;_%`IQ%`+2u=yvRxh1vPyhGI;^bw> zXnu%=$u2ZF^64@l?EtzjEQp?fb@tmqKZ#rA?#ZYpL^xbv948*M+Qu9tSDSXR-qIj? zD>;jp`~G(>GAzjlu$z*$QoQj?mMx%+5TK!-s1Zc1Uk~**X}`NOO-i0~ct`s~&9(Z) zm`B@W`hvNSS*!Pz9m^j2ufI7&+(6Dwsvx;j%3}_Zrl{GW2g&&~M?WsblJ?8pm2#Q> zYRN)sJ>!@4a@smpoLMYmCuhEXGK-2zhj(8{7R@~u8iRluCp3K2Z%h@Ge113 zhRt;kB*$`smL!tza1E_hR2p~AOh&)KYt_{p-_ckW~b?{f*Jjt%u2raKcN|OOZ*}cfCY)a z#Monhi~ocIaZ?gwzb5=@iHCbCVTS~=L_pL^)-Kc|uMrQvj=Zzmysf*YK8X6}(YL zN8*fI{%R1C=Ywf0Rt@KvIK)_llyt&MiAoT_sIvGk$ z!Ru|0OZ8!?^YP+2WQY+}M8x*!FoaFymH*DPJCl}67B`TVm53Xfy~52!H(J&QWQvBt zdY(ZdF|^$Au}B18X?tG8Lq3>4B%H-?jJ653|E*pQ2pp;ZzUz;DBXOl*4rmi|K|lag z!&VC%pz8wk1P1VNPh)`va>((%z#H9b`%U11RnC9RAHhE|w%~h_FY7MieP!7Go9b7I z;k*zSDTd0ukC2B!xHBlM{|)Xm#>V3(_dIsD;}@Pj9%UEJ(g<`T*;1hNRAt&-$Kht zp|u;I7?@i~!bh zrzFNoc7WXr#!*h{f;i>~mu^C5jq-BzD%tCJo&WV%x6+c?YoqIF3pvA~lQd&4!XHQT zIMvbv_%(~X=nz5t0vV%A05mzmyeEj&Yh`=#cKs*7D7yvkqJ1e-LPDsF zvQGHIA3!-Ps_^(strQ)0!c)JAD;Aa0^2M?R$LRY+J4_9j>B6IW`&ip}xBe%@#Pqx6 ziNacXtBQ&Oa=Q1F>3N>%0#$0Ao_CUJjTRl~xYhu)3~K+{yx)|kg@VoX&nin1)W4~o zM*#hs>L1Y#-32Aqp(i^#%h>_e9ZRY%cphl`QfKUJ(B{(Uwb-~-1_-wlYqx=NO>e5; zurdQ*xfS~FokFZnI{R-X3!?hk)s@>qA#K(*`}|L7&(yE;9MD{AVmRw+oLiC>`>DG@ zKP?ZdPC-wZdCE^9+YP8vYuw*46fLIw`z{VPBl3~fwmu=`g!*pdXa6GA6@bz+S2Z8_ z&FQj|1_3X2SDL~uSUyrjBg@Phq&&=7gFWJ6;$K0SO}p@KCIyis<$FL^2tx4|G~eG? zVFju6bd$Hhuui9BuMw)niLx%#S}S+y5zKS588M#VVrVbiNg3187fdr${~O83V0jtj zP)NKC4144EM%s;d=jkYUkJ{sOU($hTTTGUe;?PzMv5J5-UnCqO;|=+ON;*Ubz+cI# z`kxT-RdO47Bg9s+7`?{tnizzw_gpMGhI{PvNyI1M7OxallT59S2nWd*%`t+-v?;?| zd~fDqosGQ1?EC)-heTT3o!}3`w*-{mAz>-;j;D=a582n*SfHek7he^SsTZvm@z2l^ z=BIcYnNN+PdG_qjI=^|k|9s!Uze1aUKt30Ij{ks~?Ki_OqxE@O@{Z8AI6Lvi8E5Sm z@CKQ`t?|6YZ1}uzE`qCX)Wh}Vnd+uaN2ph{5m;) ze5I!ud$j=WoWdRzM%zQ#TSZn2_1R33&%7&ay6}i`2z$RUN_Uo1!}I)~priBW&;S36 z0u#gj{!7O|-&{vWSLgr!`G5TV_o4Uq*%jS&dUAcZL6Kp+QJ}GliM6SL=@+wS<~Qb@ zoWIjzdcmNj#)@xEUI@2ov@N&GS(LIk+TPz`fy1XIHqoOEh+X1IV|OWji4!#q4Z z7kkb3*7yG5^WOKl-+ljU0cQgb1#Jsn6EYC02&0C#MC3(AMY%+qMt_RAx9oK6&baCL zk%Z1fRgxr`n?g?|Eyt(f(s3F1Oi~s-o0B8XRpoW%j})vbTwAoUct^?p(i3GD%Wqda zt^82+tH!j}w$8Oaupy!`t|_%S3sBfn0jviB!3YQ*N`rCX5`+fXg&IJQVkWTDxQ+N7 zgagDAqzmL*lqb~pv|kKU<|39SJCqa8&E{3{Ap)9EDH;`TlU$I#kI^Jf79t=)5UmbKMr!R?W7d?dx{z*?Df)gWaF@n(SM;Kjc9A!J0#u!=fX7 zM>iZheEjB#cc%X+5<9FBl zp67kn2Tl){JX-YF=JD?*_n#hoHt}5g0`aooRp@J**I(aUf4l45@O$0|;Kz(lKA%lL zzx;Cg>xOR~-)TRZf9A|Z{qp>6_s8s?)aV@2mFt!2yXt>7IBU4pNM(#N$uspgGdFu_ zesbQL`AQ4)f+EW>D?6+2)^`>jv{`MdwWBPmTO4jb&;GH)o+Z6YNsh%%!OruYU%Q-k zUFX*7j`t|@jPi2u`s4lB=d|w@zfpfx03#3)R2N(r5*_LiW*+u6{87Y($o)~X(PJ@P z%Ve>vID9-Pp&~IWDLy$Q#WQuua_cm+bc6KY89y?=WPQqhm2*G$THd+*;{^u`_Z00c z-d3`;bZgnR@|_iXEB96Ht=?O+ul8Ww(fU&j7aMOjJ!*an_z5%t*?~PFA<%eOHoOu6 zMv_rdbRT9N_8{&${w>j%%H4~y$ zvy*qH=C6sHhOO;ccXa)y8SB}QjRl*Kn-yE8wjSU1e23Z2fL(>V3440>?%nt7fc3$| zL&(GZM@}C7a@_eu)=Au{-qZWfJU_SKe8h#yi_}X!m$zQIboK3ZlN&BKBX4EjuDyf2 zOTQ<+-}*rFkoKtQamEw>rwg9Ge|GWt#ux1`ajyzr2fQ(T^XToqcm3~49|}MEe$xMR z`}5W>ZC{b!GQPWh|M}y}&zU*pFUaq-Kd%3t|INBcJx{%d`YR1khA~ElM(2$COj=9> z{>}mW%;obc=DW}TU~ynUhb6=+&f3!Y$-*5rO4|mzkVX27E-#+6XE+oraa;0v>2b$F zC!BM-i-XG>*F$c7?pTjZPiN0>UKhOA`pA9ZetG`E0Sg1Z2i^@j8oVK-FH{(Y4X=yH ziHwQziC!FI67yr(tJu477vqm5>`vU2v?h5tMV-oCj!A1yFU!cxjL!Kz)!I z*c##hb%zDQqY){{d{i|Wgu!EZI1PT7u%5V|bdmgo@`JX3?#YN_7PFviE~l5fiFcO& zN@ynX73WA0Qk86j{F36k%2}PJfoV0Zo7--6=y&>cm2}g4R`j0yn**o8tRcei(8%%8 z&tuNx=_`>F?W=Z9KAbXN6ER)CR=jS*`WrKbe{)c~NwRsGc);tBbGsUyr|$ zceCae2@izxu4|^Z=KOT58@U;I~@AIw~tuK|Y#IMFF(OzSrNtWq+ z(+g%j<_+^a=e?T0(Sp7p#nROBoK?4V<3jI+Z*8{Pa_zDfSuMJ;c+4K*5aBSl^=a{q@-y?h=f5pL8wd+Z3w8?r9&$N! zLzp5Q9FY>aH1bQ-x#+1F;j)IjbhS$cU$#ga;s%Fk7gsxQ_Ys@+_-s=lv5 z)yQumHzNVfEmgn*P&zms5)So+xxg18ERY7sAEKpxBk?DmOqT1pl2M#wQQ1ey~P&+GTChy889Z4gE7a zXK!wt+w8a{c`Im}V*AD&w|ANDj@bj>JG}4e0jq=ghm?m;9kn=Ca=h!r%~P(YA!pW} z{dj)a1@^^5m(8yfU+uYe_lEaP?5!Pl4DS}*8@&JWVeBKtu>MH;bmL3n*A?FlegJT@0UUi*9WpE~*X z7~8q$?=gov!!_hqA;!2yTu?<9*MLh*k#W9qxdBYhL+lEB+E_0&2|G`+byc8Mj%;_uvo<JTl>}BsTUe_ei>dj+Y-jCO-GT!3^QbG(W(2)?BRlKxlBm^*|FEm!JaYA zYUb@uH3P-+Z|j33u(+D_rOvDi$}LH*Y$w@He#xwpF!jA1#n50ofbIL(Q~i>w1mU4I5!U$X1t5F=;D z);qI|>dh9%KQrL#J2nd$f+^@Ih_QF2T!m&Dk8G#Onau+hpxw;<-N+IPmSfwl#8wtw z?dC6K%}RfNNMl$X(%f!lEZpO8Y&~P?)-#(57$Gw!M{*g+X)7g}v1y`_x|=y~lt!^3;axy?l5XBWU)p zLc+jJM^Sz=_O09t>|xptrxzD7Q9YXz1DQA4BK!wf;R^e=kLVY#rQS59A3axl1VTS> zOg8IGKfdq5Pyu~zJ6XPi5jU$xsbz4cx`1Ac<6}<6=1j+aRiY`gufxcHoTaaL_g0sF z`hn98Kl;Y&%)=`BigWj83h3j<>ISv+OZyDvHjD*Z2g%nMx$6U3jx&@KYl<#0ZVxR^ zc+CWN_WDmTZz)&2*GPO=hi{)2hqEpp|1D}}>us?Y9%a|B2olDyXVjU3bsQ6VwjhR6 z4^HQw;>?s}^Xs`fiDkT(+;G2M9*!$`TO!&f>AX21d?+3}`biijIvG`*?a%95g!&q{BQ}Ck z6?hiKzpS`Cbd!&iD;1S|b6EprJ8!Qv8MuhYl6Vy7xIL?>i)Al*RC1qB=?!2DTAeQH=E*2>pB)aOTCP@Zk)m7T2KmCO|%3Rt~_b9=XC7m!2R z;v#s?ab53)ld@k-1~q1}4~%-}hq4Fz%;GZGs|le z8^KS`J)fab8}7;Ebp$)=^*}Eb$@oy#?`iJQdV#(#adLFP%=?IntrF z8>`GD6780b17eN(4!=h2iBvMaee1Qk;6Wt;hZVz^H=@3>HKt4)4s zgmNNU1{}=UdRuDSw``?Q{HwdH9UwO8*u?{ioZ1pFX~Ig)m3j}sh>Do&&wr{gTn6HY zNaa4Yyav&wn=$h8)sSO{r0-Uewtyt#qa))UV#(moHV;u--wJNNa7}jux=!$-BeD)F zSk`KlGsEYrZZ8Yq9g~my5V_GD+^5gTd!<|`XtiN9@7 zjh+{sUQ??z6JD9Xu_=OgqwUBmf{1~0wHbVQk7f3A-qrTRnA5zaYNF2|H&Rx1)lRne zkmI38(uh5Qv-`!zwk;dkENYw0(3lE4raM_(f>jeQkqiJ zHCenb!_L|1ywo0Q44d2Dddp`AXR|{0vY%}8734vE>HM=s8{UZ}M^!^VM2Y+KRb*k< zwkc+`AZ8{9q07gvzEu5!w|7NOwkglFZ);35x2ZkJ=P*aC7{3DVe8liR^rxM{5N@Qj z<}z-M?$r>P-db1HHs&OIP-(zQL%x(#SXXNUrN7wFY_UYd{uO;+yqF{RdMxbXW?mw7 z3<%yHv}}V4@G~RYCjR#kC-nedqF$%`$}eP9Dr)#4h>NlteCwJFDV+Bu>#F!W?^ZNZ z)WzH5bx*jMxAnqw`(9=Deq?LEqIiS7W=L)|G^V;My{W2DW=UQ!edW6(*6{PPY;kHe zQSv}U&WaP$g{!08MJ|HdUN;1j0?YFY+l@O-_FmDxZ2PrNqyDV@Js6{k*H|kp6>C)( z#yq*7;xX*L^nkpjYLf&keV92THjy+(T@r2;J@mRFNEa5I?Q261uG&+nt?RqEcCi}S zW7&UOxv>)=zpC(Vx1#-!t=67_&PlV>T~)f`56Xtj2vM)xJ*rcfEqUwpn14akekP{% z>xApBPnvft`qu1L8w`8&^(xc)kIFX6xAknI{*c9YZh?ABZnqt(Y!J&emokotLY23p zz=9jH58ej+a`EL;4_f!H8`-&0Gd=~LYE?~6MECL(4_7!!x5z7pa;T2dTYXXpR>JMN zT5&-f-0qWs5MI{cqY?#l#aVA>-V4d6lVh!uTitiCH00UX)ld~|ZAA}U(Lc$R?2wy} zy`iK?mBUc*4oPs|`-&{l-7ZFkrBK*97iA~#QnhDv3bx0y#@o#FDduQ`fW#^AK zw+{ETf3s3_Mz(rAh14Nkyt)}wC!QHwUY;td8C;wW7X0XX z6nTt4s6FCc&C{2wj@7sJpL@PFTT^^OccMt;byW2Z`87m}< z+RigW$a}N`<|S~nx{ie^pHybEjnX6K%h=Nq2c@Z;X3t=8C^!G8%K(9YXv@XkPJYD% zv+DuxbC-1ofwxk0uq}uuC3R{(@i?G()kPk;?5<)j51Te2ThGHs&?UQge9vUjYToSO z&i)nhADbI{F3ZlZT-p^Z-Pp0O{g`C6P}`~%-y%viAh8dyT9q%NmiZ|Xg(uTIWnn_k zh*-&Tfzq=;6wLp1XmQ{Dwm%y`^*FbBjveddYpUAi?XId}0Ym#y=||{NUyz?^Q7ezi z@TD^OA?c#!o1_QC`y+J3S4B+ETHzsK@PUne#r?jsJ>4BWy(^dRmeBDtHCGa;Jr|A_g(>%Y-r&ELcI`3hmF>i?ecCm%W%=Oa_AfIw>IJRnHBZ<| zP4L7=Ot#8kg-Mg1{QICo(RJzf9N3v{{6QIX*Mr{PgN*6ZU7L4r z8@S&7YU>k~b!*wIA!|}&HeHSuC@)P+G&ac(jl3>ulJ4vGO_>mH=mdrP3nw(YybSr( za{Hb8d#6tJthv&){jhicpY}(4MwIETN!#?9Z`H46WT*$qwQJ@z+?Mx_vkL!6+Xf$} zK*gNyif}6-LHowbhVL$4vnyw%4}H<})6rV`xm0Qw)`F*e60y%JH0b_Yui$Zr6^kaevdv{=Y$qf%$x9~Cx$27*g^5j-!GY=iwEqlc4cHbe%?vtO&;gxVEeu+_inT8j;ig{;5&5kos<`~ClcSt166$?za?FAi3eDC zNCMlqd=#_(!Fa>q*)>NxNqwMI17d!6@mLGxdWT>b0mHT)>F3w#Xk5An@-`^B?VA$U z$gXNGguIX}Q_lC02^*wov%#aNt)Q{=!TqyGJDU2k*Ub~LyFFI>lizjZj7y*st^DCv zHTCLi{rP#zl#yLii2#|j%{1hk_^FEPu}Wwn)0^=h1@ARoku|t=`-OI7U(_awu%}yZ z-Al4-hvVv2$j8>4@%ZY~>i(hIx#tvLdMSynvdoT!A=|}c>f;{!1P5d*He`-g9=SS7 z9Gu>Ft8JpsXU74-ovx>wcqCf;*L6@xORM8#VRf|{w!$};p*Yb0JK>GYs`F0Bgczl{ z=W$6OlY6c|vQ~#4G@39uNnhPIGp=Mf2^~kyGZds9gPF{w5Jm5C=KkuGt_Bt|SHE3{ z?H>PGGsAun^hr6yIqDW5!*lPhYn-;{bq>E<^@La2DjvJXTPkoF@#20W-WyoSeG5L@ z8^ZlnHP(58XO|;xL-XR|hc!+-WYA@$5pSJak@PHo@!G64)iTqex2poAj@quVU`Y%= zc9kmh8sYQ;z*;uomh#NI(G6h@*T zH@RfLFnNvRlv6ix;M{~^XQ{eYah(^;OM4aZ;p6Kr;CDH-PhJ(1~lsq zZJn)XYQL?i$-1IdsPyAHRWb5SL0Y+?l;ieEJR;6pt+$%Da;)#}%DNR5%HyL=!^Z4= zgRA>DV}JBT^-Q*qx-N9CD}UC`YTJ~>*7|F9#G6nX7BoPXuDU}f-E=9#WqY_u#&3279^BK zC>q^ML|Y_ZC%&w%+<3U>^~#0oQSuKXKc?nb#)G~S2n@D&e1#pry(?(&Oxex0OTE0z zJsM7DXzXXDyY@*CS$a#k$(<~!la5W;tC89cIkHuQeypTYHfc z$D2i+uSU<6)wih!&Sio$G2JI(4=8T7od|+S+g116J4Dv9@Rd!gLk`q+SB}5hH6a6y z9Nlu0(K>K#!%wtpZ{nKe&4!&@R<@OXYbzhVmg%Ja-RBtFrx@wL1T{#j)OXz12(QW} z$Bu0JP8W6l-rz$&DlJ&UWGtocT4ljdp#UqcGM$^!ho+c^OBeUaSo92?E<8JFnR6S4 zV;fMc-pti?xh;Rlb6>H3lNS%(@q0azXCy&Po#Gy#>rK>hr;&$O_;NQk?ijfSuAVY1Oscyv6x(sHj(6~&5yQ5P_459=T4m9L z?ni218le4}GBGAhb4KnKkfL}ab#^@?c_0oLik_j3m1|ELw++aYyQ|)~tq>c^qI>Ljn=ld; zQCp!55gR$H$GC($IQ^3u3aXy;Wp1ku8*5}$=9>+TvyD@Xd*8B;MCNxc=d}9n*B<3U zoTrqrJaBj2E_>cVIb};955?LslgabPg-$2(jDUAmVR%MWCss`HmgH?3{KU&jKH9sS zCyMm#=;j^wJ)&L2w{*Uv;PEM4+MU_bX4!?!rzKQY@CKoH2)lNTN^}DVnK&lOs{*bt z6<*5&3|0x5$%>vSVMwHD`)|Qh-;)}eV8msf{FVUQd1J@8`j*URbAYOe*|GkK;tSSu z>b-nb%e#qiS$pO0QHHc9&uZX|WGcC|$5nhZ;&nSo^xXHX`i;oOB|@GjEbWZjVbU2P z6cIohY)SZF^gPgXGdC@17@&v~`cVi0BWipLJLO9mXcEWc~bx3m8Wxs5m*rNT@_ViJiBzEJ;At8Nc9jjl6hOcJzv;i>Vn>+7T z>>vKro|5a_pQW8l+R`S}*R|$QyT~+pY5& z=|Npz?Krro`Q3P7@0E(0VM*8OoC|$7+u2Ftu25}N#CR)R74PSzydaNvjhD`sVB31P zU0!=$^mJp|>I*d3+B++cp`s=ak8WuOjJ+9rSpH<#rO!Qw-G}dLNh<3+-Zmc5-fE+M z>ldL!DT-VXk}1ht>+@}c8^4N{Z?srXpq^hlHgy}ha*{a_-SlW|VDxl3XXxl4IVZet zaj#>NcPFmnP=rvsTTAszQrat1UE3rzQe12PHs}ru;f~q6o1Rk3*AmumM21c#PZ68g zW7R8hn?Oy?fobC*da zUfFh9lZf<2e}uVx>Pvc zxDs{9gOBEB?f%KPAeL>@)P-PMNwult>AafhO$=mBj z*0jpF#o7r!sU)LwA5?ab<)!>`(0+c^$#T7R^?r1s%dZEHf&kMTE}#0p9C zvz-XVJ%VHPM9jfjjV|z(As=~$2PWy~uxE{3uU%c?KK!tHWA2W=P&GA8&~Z(1KW4N! zSGFbiXZ=F)({+S)zmVc2R3!7~Th9=E#P=DmBydzu^zQF&Il$74ksFiB4-b>--seX2 zUeu}6)^u#vFk;G@o++z>&(tYoly#NbATi)1liv}jtXGSu#3ADpVh-j?tlgi|mB(5! zX3$2IhYT-lYTkCKH>-Ys>go1pHHIf;> zScJD@BY55ZY5o5(Yj&OOR+L>II?(R0t)O>u)85p|cCcO<{h(>84hpWU9adMai_sLw z^PC#xv&6;LS;7H6-*_jUh#TV5_U#$4Jc603(!vjZZw_lVi2{S(@9IQi~KgBy3AgHiPl?y$vD#a9>K~9W1MDL5;;a`CG8l z;F|CRcoy(H1riXc|H!}ix&rFnTFfkCXlDW%o9H!YiR_G6-1Q#u@n7C@4u0jHU*7?D zI;_@~!xeGmV=Y#3_8PtB2yr?hQWdgcpLZL$(ag0Df196V-`5=F_bVeDn_4( z1`?i6re)()5G3 z)v@_^#w!)KGb~1(Wi<)M`lm`%;fFfTi`x8NH0=_cbI-2T^CvoFsEY|Vi$_uytjzE| ze=%~C>wNr7y>Zpp!Kj+)`HJ25wM)|kMS*N;rDo|mwt_o8}vIICTw z@bo+0h)N6H3v0-tb_azjod4c3RI-$aGD3L&pno`H$F6p4ta3iEu_Zo#^4Nuj^7NEp zQtfzxW$*gxjp19`r>MUB?Qi%d?{}x`-bl(EMwO?8zLr(uMxL3`K0=L^b4rgD_S#gw z*?+&|K;DtDjF$ZLl|w%ooa4Xt9ITB9_iw|su-~o*w(_7mu4BliJ6us_h_WrK#s0h- zMz0A!>^x`5v4w-DD!cdNJ&*HbW0N{&Z+SVSZcdE9(6hPzd$?VjneLF^aKkFK$X%{8 zl;=9UR!$eESnd*iwt#ILznXo5-QfFy{hc$}_AbYo!~MW!tcL6EQW-cr@nk9EJybQi zm01Y>Zp>sJ19ynFvzCA`J(*PmhUW&bj({`cyx7ZuqrQ>s9H7j$n%xB~dgn^}CW^l8 zPp=T{J)S~;$qyU`8Ck?z{Rra>epB$4>4M#%Enw==hua)kbCAceTUk{2uFp=^ZRn)! zX7)Nz_GTSziu%sY1e#E}{V0n*UA}PeAiYxZx!#ceLOhR8Fmi=HlzWV)d}@vhb2~8{ zQ_p;gJ@Ij2ZAItWTC%P|-~TJ31~=%g^QmX+{0|?Zh3n=Gn9_zdCbcbeS7iaum%dN7 zpL~?DQDU1N%eXDnM1N!E^S*nZWxmHZ+b(5QAbBtEQ&e3ESHDoL+g2W0OYLi#+t*36 zu8*pTqYdbe5{u}5nhm5=^ec*cS$sx`lonmYoG6;=jWQ)Xy{$EC9(w-8Cd#7WpH~n{ zec$H;*Qr)rOMACbyIYyM)im$MRro^M`Pu_jAL+$f*4BHB*-G!IkBoN7Tkj3bb%MRN z9?Wrk@w5BnlY6T#n^XLDp5HH^>>IM_v8RUjj8)I4-fai5m9&bc$SNxUJwU?0`n)>Z zts(RQ?X)N%BT9bVdlBQ6=$LIVvx;zkijsF6cf5F>GUvd+zCa3X_r|Wz)F~rNHD9Re zzImuQ&8lN!WfpBuiJIdH16WFFOr}F1M zE++fm3O&D{+;%Bvk3VI_DYSDArRmUawKvsq_b<4Sx?|X+!kOmVZI|(kcD&hS;~siO z&75_e3@gPl+f2q?{-I|zP!;vvw&3TS1nCkcTH z=DRF^AdFQVJq<8quU~hU`+|MMW+8WoQ}l!a`~>wEPXlt$d;bg|2zb(C2CM>Fs@HK} z13WC1I}UKGBDs2?a;p&pH5XdCzc#(w@d7v(kYHQ|O3 zA{KH_mz?2Oj1)^Pf~q<9PB?GU7R5__@e~oFvT4Yda?s z(ONffGNEJlE^~tGiqCA~Ow&=u&a*FQn%aHXZK_GibL?ul9HO%|Qpd8t>`u|0bdY^S zAc|bgzQc3&n$LcRowu%Ie?e^Sy0QD)I!^6k)0!Ua@?&q%`?sE9o7UV_AnfJZb})s# zN<}Z5!*-QtZaKzImV`!hu}MM`&x>px@!NWY%|p@Kz3hpa6zR=$$s8OV}}FIzul)e)zzzh*U_&OTbp@;P#IID`3qUu>ff^YqShl3eD&!5sDh z=Kikd#YW7lEm>(Q=C`^N;p7!BYiO7|lGH=R2P-p^&0OoL6h+O!{#lsg(e z7yQdT?GXcR=bp0i0uFI+Tph&T5$BHhp>Ob0Lqq5+>|(=rBo%!rNrb!6wd|wNA4FXA z4JwB}q^$x!z?;JIz*1<~{Wb6mnqajWhyjBxzr-A5_#q+cF4;f06iF6O($nDvVXEjC z^n?GLrG-*>MBxwc8sVB61Lk0lHe3c?qnNuAs6q^^jJYo%#U&dQ*X12}i0Cv|`Vshm zDz<(KJVpLg*aKxtcQC8K6Jl-QR4_)!OOXOk_{M}to_)HBmGQc=RTY(91S9&w~5kM8s3cUr)6gauB;HrrP zt6=U_blrJ#q^bM$-p}xk_6I%V(5>bNHD%Cp{TF^3$fymWmjchV4f$yRT{Sm35?C%{ zhElkFqT6o&alQCKR$DlYSl-#wNdCyco;J9k|6?~B0=n1fqQLPs2`>pWY%-t;06|?} zUISoQ9h0=5yI=VxbR{=Q%5gi$c_Lh8RnFOnSDoP@zI$ooS+M=Cv*Tm2&LD_%JI+Q$CRROe~}s0N0%-bpiSlh{4m->+799|{cK(j zUeD-Cl41o+I7ErMv9etIkr`|+3n_Gt6L4x&!sTS{wh>t2rs!WBe1Gcw!Nc z#Gz1WggK{gyB>SXd9Z00dX&2$_&ZX^4R+lEv$$0jwNMy${KR{44)$~xOL!bx-u_jv z0gcln^1dJ{>^L!mOr<2_RWOm;jctTyCw@kqAZc(hvItu2x(NCUsx8{Ui=e^rSdl~$ zx8tjDg6MdgfX@>KsweZ-@lT-D#AF^$j=?SxsoTz?J8}EO5TpbB8}uI5AZJ}JK|;8} zq94qMvXAZ*zS0~TEfs82aavdMJ}Lr~gG7^T9#VvtOIDJ?uuzdl&PUW$kd#o1*z>A_ z*sv)saH)k>pxqWnfe&!c5f34$VbSns{^z=t%>z7GXQ#*~>@|^a2=-IiTos01lF!I7 zL5@hO;{U+=g|~y2Lc@GtmkO{A@3wdbkdP0Dt_Y1gGKZS^+LqBK3eU80kvsxFQU^ex zm_lb%S%j9Tk7gGk*$PrT8P1fN2JV9rgeP61z+fI?IT4tSEjow`o(}X4ZsW)GY;FuA zE_BS2x#4BahrwvfN8etdK$p}=vUVdgHLSRI@C-$6U>^8K67FIRycPsouHg3IOAbT} z4vzgZ;J{xsvb( z5h7PV2sj89D3`Cj3#5ySEq%Gh#OOX(LD|XkeXhKNhgJ1KgyUX+aV~ax#~IEER5(yj zmW?EKe#?9V2Q=r#DxmeX2LoWxS#7cQAYdaIwv6Ds=Ed))X~Rh``oF6Vkxw^lR&1wq zOGUC6Dh`~K#Ly}$OhlXL+q2vRG)82cFRzQaCZHI9$TD&s#2nbG%-$looanvn8V|N# zUx4xyJE8uN9AoE8mPr9Nz-5c&>^_g#Ak#%>C41pYPNL`@JgxMPa0=9uS<3f?Vq)$PT=1hm z3p)hXI)|aFz!>w@a56Y=caJJvl-^yTSR$NSYa)Hm9};#*Ch>CF(IRIewseJHJ06`e z!0W*_#Dw8LQD6V%SQz5zY=CsY0p=mlb7;eupK?%@*)?BIQ>5!IOSj0<1x#^?B!?9s zY!o$@tl{4kd`*AHTg?xQ9>uu?-){`Ph+T8~ia4Pz=G&nH7~1(l8Cd7hu|vKNUar%1cqhKxTns)&cJAOS zzP2uIr^xm-9?)h>YU(R_;i8%v2S%*mjCM&8$e*d2xFC=hd%RJ=BL5A*uD{0Mf1qLR$JM|fq1o@WYPbX%~Ld|-Hb*SxHoka zJmVGCuiosB@2YOzIE2kn&0k-Rq)0hVOsGXT%lt902bT}qE1*5cTWn;eJKI!i#gB$6 zu#Ljoz2?+L!G!kr1&%!XrX6V=IIV8mMnCk7cJg{lWU0K}X$zDsDlz{C(1_3>KgHG~ zgUzwhU;Cab3&mq&lTeXxXy_N^3;%NO)ck7VXZz$dM?ARUVdNuJs~hlr0Y6ZRodO{T zajnI_Kp=5*c#i%(skcQ^t0WJoK2&ol&A5^JDwRV^S8kvc7VMYpqi3Z(mqasSHqH?K z$MpBj;7eKlj+covcARMuwvbaZsII@tQa78|=vkMQ8f_bUI{HXGo9##qQHa>o{ByE} z>yCX^kp2&HhO~f1cjUyS`2OF8*M#`b2 zUUn^^h}Wl7Q)K-zL$y}&6B<*_5j&8`vhM#YXoe(CFgwLmG=;|r|HR*ezxJ6)RAJeU znV3KF-fSBD0%r6i*P7@K)Z14t)Pj=lY8UkyuwS899IE2W*2#!mmH56SJ((+1idKiS z_>ugt-iPtO#0ke}^dL55<^iW6+HRwoQ%x>)3$=UnvErYq+qEgcDTQBkXypOv4R!9e z=VF#Zn)FfVEZrHtg!e*p+Z)BTf@zNaXd)3~mIXaTm7Tw8WSzaW6Sed;7Q>NwOW6APs^* zvnI$KckNhQ6Su2IH%q%}__c7h%AntXvsg~+GA`dFo!si5eMO{dNZ%AF2(H<-;R^9X zow05&)+)<#oPeYXF|%>-4t}jYtj6xZ#Oe*2kGuN?vC5C5?(AH7RKK`vx8!o?*X(Ff zW=nG7Rl)4~+6^#qPzViP8l@pjJh)`2#HWv^Y{ zbdr_BuhRRlYFN8!{;)2U8EJ2`ZL@|{d)d;&#qvJ(k5I0pos;inC+y}tv;UWOk4rXj z$9@B=TfkNwT&Vuj_#U3hE2}3#dgj@h0LZO0T5At}&YGZF0Uk*}%~IG4Bb@WyW;)o z-vVxCyW$t$IKEOgiP#wuFP?=*dvXQK(D$of5+O*R$v!j|CN{ma>_hYdpKag>R(O}T5 z*AL4d>3`P#LECB>IyYKYwW}tnC_-(a?9V7x7|WN(k)_rWT5z4nNqF6J72lQbzxo-z z5kGCZ8u3Q6^+wG(ZR4_!`jO^*|#oJ>#u0-2|V*?CZUoeR}uFCg|Cn_u8u*9$JIfVz+A z4)Rjnl30qQN^KkTM97r8dGzsE;)vB3F(Dr?rNdR&ow~He7bsT#JyOKW*e&&Oqw zOug|A9Ez%e2eZh@TBn|s`L(K9ZBMqC%U(Bj$25rF)TRZ63BG71dc+Z*WqVeSVN-?8 zroGT>{8^1l|2EP`aeVh8@-C3t_Lzc`>YAQYv+`c*=g<;1=hwK?H%0H(lrqu+S19_K zg>K{0i7cV5K&W6JG1|vl&RwJP>f6M8D=O_WWX%KG+9t95s_r!{VWD{e^&40(({AY) z?2PDe^%(m`zzM}aoOCytB$4ypRw{VHRT=#xvVhELzg`k_O^9`FfVOfkw|aozt1KHg zfz8|Xb#joJ7F&HDOpm&&UJ7mq;K;MVb#BGt-JqAPO0WTpFkXZ22Ps;&o?|>vpzNq8 zP|oibF|MvGX=umBa{t!8#{Nk?R_%r+MOCU$q$|Kfb`6>67Abaub8V~nd!fh1>9{jg zr3vlvkgn$sbSx0>m*Vs42?d#3cVWvRLeZn~kUw z71}oO9TBpz7Sq6`YNUIg`XTRWd%f}kJEK`5KT!TbUnd>jHdOOKd^4qAYbTnwQLE$# zy#1S{mw0(@Q$*Id-nNg|fPOQ+gZ@Oes=B%h>X_CVcrR)4d-c1?M--dzQ4Gp`{l z7N&S=_DV-LdMg)*qy4j`+XYWup9y#J1h!*5D?GtuDM~_Jl~=p1TjmkTZC@I0FyA#@ ztJ9S=)Zf2D6ri}>?W#BLeWX+YvsJI z_gyNS-8Ry8hq?W|FuOAiRk@JM!mfyt@VpLj$~cZt#5vp z6sj)KuZ$Ry@6kE?#Yh&Yf?eYUTcstoBlt+7d6V*a;wy8I-2s`Wx~J;%;a$uHxQBt|=& zSWd9{;5t?|)uE@Hr7iMq|BrP!6KICmYZIsISF&5fXu3Td3*VXQY)+r^C;1$1ptZH= z0r$4yO3KNMIzre8y)p_X@*q%nfB1tW3;5eVOFWV6(G?}s7bsdU z3w$z`HZu8>;&0TM6W2G$wAb)1ADWVnfzAh|-e`_>w(wtMi;)mN3Ks~2hiR%BAiYnf z7$&JZFUXGM|7eYpoKKfFd=SrxFRE1ww`>T|M)2EwHYolQADxFK-FSpGS5SiPF}i`9 zAR7dl;W;(CxJUY|s>4XLI&;)#@<}Z>m4WF74RqP(__?*KB)da@Yc7ZwJ_ZU@;O*QY zS;L!Yt>wSOz8SB;l;{lp^P$nkLtK;I)Ai@8syZjtoX&gRQlTB*($p|Vbvv%Rrbn?P zbV!pW-QfLBu|!07t`_g(@3!vdlLZn&No*|Mn4 zXN#e}tNMD}`kG)h7@DR2t}yoAEAN$zJ7eM`VXpNq{#>4uF&o{51@gcl``%IZfnLwf zW0lq&Ijsk_A8bC{*toe}zp1V__MYx__2JN!>Uz~FZ>c;{cHWsJ`YU>7eUP_{Z*1I* z=3%>uGlQ>(yVJWwZT9lVR>vlWfb zd7_%J(_5_R#Hj$yv`zz7LzS=VxE-{l#9F z{IlaNTOL*1e2+6J@NWH84(th3pXSbYBU4%9CPQO~^U1)$iGP)-4>E$2w)fOUq;`NrTd zoUvysah+ze<1#U=Wac0RUz=^+lZS0dE^W_4dpG`Q%0w3g5_Q`Uz%x#p4}Wtc6xnc< zrLDLa`evBG<3eKS>G)3Zd1~tpD-owyF>q99o3*cdC;xo%vbLQ({l<~TegX(gsU5?& zd#=+Q#Nr%9^1Wz?WsK-35^h*aT!nKX+PIstmg+KEFF#&vIN&b*FDtCuP%<-Vux+Ji z^TzFs^91_>EoxWtEj-OM=7iW$B{#$;TCzk&C}H@Xutl7~ue(QeK9s|wW||j8yZXme zyseMAsujjbsjV{UyNzZIsQ7Zgw;HK%m*-ryj^E%|CsPnA%VwbzYc=w~HOOPIWOt~3 zKP7x*xb|yNcz>AAU@NW5NaL6^p>>gx9eJ-|s_a3)shS0n0FR$)Lt(39vur7Uh2;_9 zBD~wE3SWh?fTv@xTW!flM&cWP7oP6BTR*aOT4z^H*rtY-I_;83m0qm;5>TVl$AsjLu`}STXnZnD>Ac>CSLZcVFQ@eO~Q8 znXw(;nyze`-u$dy7im_1O;-^RSN&MM-s70^qkN&`pyZQyiq&+%1iq=!du#=Egz?Yu z3Yuk^+d+_4xJ^HR!M}XxS#2lkCn53l+8Rquy<{v?QUf2($0`2<_`!#VPW2Y7XVR zb@^JC&tfVAqd;63n`&OcfT_m=M7FNHpATRS!crKZgpz6*Yhb?93R z9t*AS2ml9sZJH{<9WLK%Yrqq$*Q;+EX1-knY8ZWf8bf1ba%lW=* z4{n(HdFVG55^LJK4%LQg+w;+Xd@UPW5vI%Un!Ct^)iLU+FluffT?%GTBo;f>r{wEku-8Zy`pC9wBr;O(x%4(}6?0r`>Jj5+rC)Su^maFqsF{qt+ zoP>jT80_I)gR^Nz56@PvD0#ovR6Zl8a;Lv^QEJ&BQyd&K+PzcQ9vaj7L}21OxxtRt z=sHbTLfEb5DQmFZ<`VHKG|6xo&m1wN6(54CeM-9bDAa>F9y@xK{;Bo@_hnyWSlufm zPeN^5gGDcVKInylPp&hoFY>3XZc$DoOwA9Aov=j1T!N46r!71*souXNXV2W4;OuWZ zOtl#)uLdGjH8G)GuwrrO)RqBhv(MxDA7VGx1=WFq^Q#Xk$UK_)M^Pv4W7tN_KqIIp z4&u$mB`e2;`jgoMquN?lN?ZT#>VTL9ogdXfAx~P&6Z)UWXo}G7m0n|51Epd_{|GcEzY!LrzLjzi;he^y5xSwNJ>2<}TF(p9^(A zvYNuuFjhOq@eu*xs&j&MTU^e%QkYrCt#H?C(`Jof37~D{Uy&h zG)QMs{^>8IzoFcyHDhE^uM_te*J=NesmwI`)9fkC$BYZnb*y~msCOXi0gGzm&Q52i zK6^xI<=9<*KuzOV9ympt$}#Fy(e#|fIy&8rs7K>2-|y-=RvMxV&v8aYV6N?3X2Gg{I2*5k|yxa$6@ z%A6M3nVhPGhVNrLNp5wbc0=++U5Ijk{6OOYZKWJlx|F@9cF5e*DKwtgJ<^`OU10BJ z#aK@`TVG(#LLS_$tvK8J{nU@j1D&0_va8x#OIq)dXpON789BYK49um3RjbNYQr%RC zwp^ka%U(z9rcV>k^?XBr!ry59kTHze+;OSM*;#e6wlZ;O^UkGJUcK=xt)!V9+vOC} zhvs3RjC@}|xipS)PM5O9o4QBU7LiPAm;UFuhb|MwTEAx$;8C}3S2!NHbt1TO@%Ze~ zBbDz)!zPP9F5}tEr=R6LxKqiwTzTzOBd3luVOIx-N?y`d&MBnK zRl0JvQ7xbeoNQWTnS?{5r>D>6=os4~8aZRk?VfR*v#bqP2usv>b)^K{P$~kGA z7dOI~N6}lyWXuQXs*ww<2}pj^UzQnsLT1g1g`>EsEEsxN62UqFRcy9nF9rXEJF~Zf zh({&60r+i|!M+O=Tq77q#P5zgV7wD$4ZARx3LZ2vnC^V4FM=D!bSAq8f(TI#!^jFK{bP~v`7hNPLVckuw_z3OWiY> z_jol{Fv|(OdclzvK5Vw{Ar0(9d&RU}ou6wRY42O;nS+X&skG{zY~Byr$Mz`t z3VLFbW4b2mdvyoWNstI&J0i$ zXJ3s2)S=^1T}jkC2fC|WXe)M4C6Z{R!|~K!+Q}Zy_MddmRw8K&eW0Em@{M7y$#Xl) z*ej)3jWa!XdFP*^jTMLYyCVmxX7nY%KS`c-CU81ARPY5lPbp>Gg2JdB1r^{!+J)q| zAfNsrR06JL&UZ@&F0&R{TmeYzptA=M3&zvEj&KRnyQcy=$rRL-K!ME5d=hwuwVo~l zx3I?Zlfl_+r{r0{X?A1CO911{b^Q&j<7~IM$$i1Obmm{^4t!^v0{OuyUB|&;=vwu2 zFc3=NEe9S!(`Z=$0Upas1tLK-X+2;F28ASYUje^dySe>9lf^x55fFAN8ayXN$F6|^ z0>92+;3)5}76-NwNAL&0Vth9>j(ZwAw4KD&qh~hZTmZQoe1V$|Uvkaiu7!?TJmmZV zn@%u+SE`6zb^uASu6-{sL*}M2<@QVbum*0Sh(+G(h%sDi4sY%X>?3*f2WB=D_4W+VsTFNRhHeJ6n8)I+ReTf&dv()B+ciD-uP#1vh zFQi$}o-S(e4D2IB2uvT(Hg+wiEsr!ut|Y&x5@I-Yb&fkKr=`W8M7rp3APyg946QAO9y9NlyMe#ho(JiI1bY48 zE&fc#@}{N4c?K?Dj`uKLLaVV3W^rXI+Q*uh?T(yb3F0ThU)T!*{=!CV-C74Il4EF| z02Xuh?%&5>2pJ7H5|6->4G4Y+BuNLby`UlR20aJ7uLwb&16Q)*kY&I~Tnrow$O2%9 z07{%cgNK1o^HSg~V7+ezZ!y2BuLu9Y%h6k5_lZOa8GVL_bFZM&vC{H5WG&jV6@@F2 zE3pI6I5Ht%88i{Lbv^`!LkZ?6zy-;B5F$!`rq>2{mrbnOjX6lX#rCL|h|L*5as?mD z5@8*mnmGzRA-={gfZXv?|9%igpE#?53rMDU6EGDzGCl(z*Zt}4#|E^V+8DG~Jx%x! z*`cUq^Wi75?9wFINaC9D94Zz~ilKoA`KSD&!1;v8xg1EtHk%*e;>et_W<0#vvMU|) z*MF;7jQZ4`7aT%@ss~v@n4~^f!h{ADH#1zJDbf$opTI5RNq#?pZoz!#8184n+591Q zCAxN3GWMlAs?!vG+D@ado5syJMoEcsKlknbaQA_Xy>g#;NX4&whuxtKnYmqnWq)r~)*uU}7K`3%k) zDLRpP+Oz|fus4oQk)Nkkw{fKp>9(4)lBx85;*uzYVMBi>=wTcxa^xE^OSTvhEv#8l z6LA+-`+5WP2s?635t7ILYI+O$!8tMyeD|PEz@#U2%r}1}@X($_0_%1-~(RFL)K~LZhW{DsG z>HC*RHfh&2ToU!DXUk#Xbj5wdfL|&bCLiNXmW<}9@fOkHRA($va4g~yI-PgeXCFL@ zA9DNz<)N3&SileXM(>#TqyD{KAquTCl4S|>x(Ij){~ryBbdOLgPi?<|uan!P$k5jk zPDDD=C_L{&fus3mj(5P{xWud;K#{jSu(+eWv%X09sl`JYAqZ|b04?J+)&*AmA>688 zZJ&qTRBMtyp(4e)@aIUdV&rhN|fGlguto7 z6=u)5LcF3gS3Gmyjv9(Ea10b7d}zd(%OfuK?Wx#_Z|RKMwgUaud?6_T>8ZB}YlZW* z+q@H@74lt7a?CfwZn_p{$6^&9#*T zP%b9D5!uidhP4Y;(i7L!^A<5$?9bv3tZ61|QD3&c(^uz3n^4oQ;nRjhA5>H5iQE_R zUGzH@f248-yv;{UVR|R65f(CEgcz1)!vO}wMrW9z2j7r77Zd(bbyOp`|B zUm(0KLmP}wsh+Ot!`K3$A^^S5z9d_O8kgHj<{*OX4$*w%-^Bj}#xQk*E6)Xb>~$Ou zhf?k9(JJtv$vKz+NiAPBVlh*5P&G-E!rv~h6B@A2NXz+q%7VldJbu}AMXc*Jx9^arYMKBbwYIytzuZ#p$~+|bEcGl+6@3xs zXBh}53R@ET_$&FBLSqP5;|6+r7mGVR&!Aj^$UYy|5OPyC zC_ozVP|$cFgUgrJrNoJe zF74UiG3x+AdD-E+`xm z#$wAp5D`A?xzR%3%2D zmYK3RGbu| zHLdd1z-(=clv%}6oe>Y^O;K2j7NzZ#iUi!~NYP*3oq%_Oa>CW^6>%Ta+PPub=qlqs z@EN#6^SnMm*Dg@jcxg+yu38VZMddEl7RABssq&pNUYeuSNU|mBmPjfx4rmZe=HGKW zK$H<(cJAnZn8w5rjzE;^SM~oig8WY1qxxaaX3d?NOBJ7$zqL1Vd*z$d|EAVSb}M|N zwu>C3SpkuJy@=~3C1&xv?3_>t|6!5>-9fX}Q|gX)#PSa68d|5Y=^A-sZH1MxtA5_L z@3OzT=G4iO42{>u7s88*5&t**V5y~B65cOtwlha9c^gca5Eomla;cN{8xkLN`P~~> z!!Y+-ApZDY6m0X$n)apk~2Fh7eNU_pj!CmDjtO;akP!c1w^O{9+Rg#v%);iyl{d7p{F znffi19ic-mfno~dtM!;5g9RAY5W$>va#kly4aH=whpA5(%BE#Byp&W=(AQ>jYgW>K zBpuWYGA=|MQYJAQ*PoG1WKmsgMPuxA>kIrwPKx0R9N|)A7)9R6!Fl{g278nvSxP`$XLjU`_QJ#D%sB~#bvy~VeR(3(+EK<0OCj^JWqlWGOO zINVxxi}>n$LR^cp)*cgNU<+*)6W+)vqnGG(SSdQxHdRZ4RyAd*H&WR3$CT!UPip*R zKQl`-uO&Ydos`Yuf5Xnpa)lFpMPeJ?x3%5;=lEY6Q+y9*V{D3Wkz(PK)~@<1U|iGW zS_|^g`rPXB!u7hF>YW*PG_cYpVVBZV)*MzY{Vkd98zI^+%v;Ojvv@abtnetj)Hn{A zjoJteTFY8J0km;{(_Hd|`epSu3ivv(MwQ{GvDQ{5xGHX_lES7*YvhJLzeO41+iTPL zs{~y(X4rp(-k1(|p{E6#T3x!u+>?!P`$JM}-SrmB{Qq=b4TRYun@%t6H_R)q8 zX_)F?pPi!FGSjuLypy6>8$+y`*J)f0r(yB@x|T14N4U0)QN3W*;kuSi=lr7TzbzNi zgVi++%=j!tNUi0DEz)V4P9LuDq{3qDA|58*W3vKF=JSk);g#4yB5WwX{4RS@@5M@o ziff(Qs*1N`tsW%h=A1?w^8Hv=ogvjPB&*t(RsZ5B%Tgx4PMwe{g`>9xd_OBacFA*3^j$;Tx8B`StKx!xro^RF91G z&5(}K8#{X?(WQ;8MWWj|V~v}HTT=ektrR$W z70SGMace}P1RSzj%A=x}jU3QgWCI-5>sVV&OYS(Svnrvra5e4OJq_8a##Cp{tHui*;s^PH?~dH-NPjIvR4>UV*66ps~|p7*6wB&XIS30Da>TKN$E z#1Eq(qyU=)ZtRKaGopyv-*hc1y49>}n~>$I&u)B_bhReG?$*X58hZ7$z*a?#YQ%F~ zGA@&@2^CxtiLC?#KTJm)CecFdmot+Hig7EP0H*FT@` zlD?xWj(#iwYVBcQ;o8P&%yd6pZ6?dx?Sy8CZDPMwF_kmZe6zTm^Lo{F-dFBDR_`uD z&b&(d;aQxud3*beI8o`_I*T}45&~Mza&?R)Ut`1WQ?tUl~b zJs*AQw^}y=wRY31s*qxPTzU`QYkprC4_g@Q#UDa?rtN5_q`rK3phXt@uatVBEQ`5<4kXWTF76DMGwMbSRW{`= z1Irc3xi7liWQ@&6+xQY`+{?yKqAOt;|93d+^%u0~`Q>gbWiT;j-yrG67h1RrmZG>} z0#=JyF&2+>>1xVG`Wv)yx#X^0s_&cA+x}IEsz!j!jEo+iX;5p z_U)3@gwi63uf`;XBFqpuLf4E$=--uj^?TKY=1%Ae(?Mw;TE&{$IM0S}%7+`S)n>_E z*Hbh%B^0+rMU-%deV2HYKii_5Z-paw zFk@dfNVMxWRM-4g&0Qa*AV&|r?Y6X(b<-M$={uaGYF(Ji zZ2qYGSrpTMWp3=fD|v!X+`>lW(oa0{HvbeY`iwt>ofK%glhAp^CmLii!TpGx2ThDbzy z$k+jRC<7VEg4b-C(LWtJ9eK604-y1^YS{p7S+}(QKgi9QRn3Ez*k&pX!5^l3#CyQ| ztK>Wtc&T#Az74#q`BQh@B@Sl<4b$=Ci5L2;u-B1Y9p^CDz#Gl^D1Y7D`X$IiXF_`b zS#Jv{GT>&@Z{mO8WviYM_n?M~*1dAcq`a10mLgXAXUONnlq~ zKSA;OS(kxtc9v;pVnMd8@^;kS%uN)IcpLZ<*6`K}?>)Da|K@Gj$&}Admkk+8Efd%D zoD!!-+O?B}`vc*oc>)iwSG5Otoz7ZK31MV=R6Yx9GAk7JqP_+=E=2w<>6Y-S$4T}v;#1pQ$Cgq`k>eYiI=API{-@8`a%cdmwN9w$Ua9>Xp=dp)o*Zc0 zz)`I7I$Yx_wRRp-Jra4@EtLxR`DTv8PkVZ;NceRNtEr z+%;IcIHIhzK-(VpZ-a>{%4@goy6mO%E)^!0*x5>*1)I(O@V^iVhGFP;^u)ak(yh|N zXJ(W4l}C+@Qp6QU+7qeks|=LysUJujNKI=azbZGO=TQUF8yQYCQKSRo2mOj?FLOWR zyHyKI!3w;yyz&%n|EbAUkLZy*Z{A0=q%5q7~h6ZZ9(A&M2h7vEW8tDCK#6|aF@!<6R2TEu5==-9}3OjsjAC)&X zKNqxAJl5}Jh^wq>lm!{2LQPqU2f0@fydi+{Rx;O}OLOGEv>K#mVHFo<7d!3t*@u<1 zjvDkXD4W>-w`NDVd)EuTx`NvJmEKf2-uO>`1L>dIsmcB15cTiSHx!}liF*?Dj_|70 ze!2-xKKHHY+2P#1WhI;T3VZ%3?cO=08!5Xzc#GFvVbEhlyH>fiEivzJRcix1*_-sA zju+ZaaaR)VZdA2cYIU0Siby#7tElq~vIi+ybo6Prd1>zc;OfU^@?9;&+wx083u(@k zOS_Bm7*%O4ZAte?jddqOOUWP9kK9*MGo*8@uF&@LW?ph;dX{t@3}Hrlp``F+<6O!YLeO=I%ERT=ziD%@Zk`>j4!uh&qOV1l z<(1NJAc;x23=|fJ@R&}}e%HIq8{mD*`78iaFH5IqwyoR!*mDY)TTcAD?B7*CZh!%b**EjAge4*Sks}D6AdI@P30~Za)|bJ z`xyD7I#pv!;VHgi9n`h5K8io}k)$BEiPj{t-86|_$bS~BVK@+K*8;|KEYQ-Mse$(# zH>-Nx61?LaskPyKTM0R#u21!y{82}s8cK_XO-`hyD=W4=pxMYu5=&@5#ks+*^rM0} zS04sS1X(69-H~5Mk5-lS&K>2FOgpEwt|gsmou#}=E^D+x6cp>a6jCMSSv9)NhPqR= zE8#IsDtjDsi=HE%!swHvBQ9^~Hw1qzsf>Dj!Qsrxk$uRpRn_J(_ofe| ze}ev+UM)AEJ!C+izUt1_}uRKHb91v98M)^Q+RVLXVm_&NL zt%Li3Qkd|IdzShzsEWInp6oJ%+s_y=CviJi{zpuK+2r>l1>8}}$rdiRlqy$-asy}~ z$a3yV`h3zP&R6=&oCeMZ#=ZnQ&QGQ^@F90HD}C)@?sWD%a}jp|`_3U}4wrLcNX$v$ z>~A{G@!;%`ALW>G2A~t1g`A_6k2upg&$99h@b={(XE_s`Q_JZ&s2R)gNUgi>6EGvoZw&AeU9acP+ohB8Zn+6IkPT zQ=AFw7nU5rVtb;K)~;li!g}+I>>9{)?+PYgOX~gqhpt{%pTO)^P8AQdNVIe z&XiqceiohC>cCnnxDX4nSiJKAOIQc+!_MzmKhS>j_iS^RKHkN6-|)C6pE;@SP2D2q zBHbTR9n(U)gyY5Bph_tH%B+xUGO5fl$%B~htT`eJ|2?b}euncYmIBvW%wmlrJ-ZVa z)Xs=*3kK5KTJwaVXqqI%8Ljo(*ny0*y62^)j9;3PjFZf8#n%`zvqehv&trZSzIJY7 zdGhisOj$YTzA+=ll0kjvCx&tFcHKV4>P~Y3h2h5`r1 zywh~uU=iayeP8!L@nrhT)(7eH7(V*X(W@Da)gS$2%t?yZ&KsCH;t3XU%x=PT_adUH z*uUEkmzOT6^}tkR$AtILT@~?c0(n#Us5Bh0A+a)cz#Phyn0e4cD(Lqc z$n-5}$MV}1jQt{A>BKPu@_Ah?8bKKmpCXeD!r zp9!d9{&rdlE@NFaGXj+Cb2|W3z;3<8z+`Z#SqZlm&G6{5bDUC<+8mD&SJ z5Uj-!@F?#k?J^ia94+(%uHk)~3jh`--zWzh&r z<2c`V`D+R|jo4eW%N%E9YyWhxr?sQuJm}O^E*Ag;dI!V>u&udIe#$+d?aSNE%~S!Y zTevIaQIXR*cO(maCvjAQD{CS+fkdm>YxWg1ulE|5*(=hw0=GI(%F2QG*7xul?#agA zq`%yZ`c>OMbAIdGQ+9E7s)Hf~9Hu zkurg4Jxx$Fm)>zUYa&nqYl6P^8>U7~p*-y0-eC*h5 z@_XuWb5r&Le6Vk&^ zIe2GHBOie?#Q*Ywp;gvbV=sHZW=`Iq9>cZy0c}Vj* z6ym_W4t}5-+G`pQ)PkqmT=`*&rP@clB{HUfia(cJVL!q4iw(-7(NQ6ueG?hx|JvjT zpW@|i5JE5Ulj}U7NtlC!HMkV1Gi3sc;eT5`@rHFnnh}DpE#+^;v(+Z7SD3frP+2AF zAw#nb5g$o(q8d&W&D~%KG5M#wK7lF%cUS~;U`eKR+y=z7`6w@_DL}0t4D?%h3E1b_ z3g$QTY;}2Q9dcUD&&q=@E7}q#K_8{NLVKZQqC;Li;9CB9`=3B4{@HY#>x-^z>Lh-5 zj;a{=nYK706sv2x%AAZ=>OD%1BBeE5TL)mWc6mYpq)=9cx`SiV174efYoZ1Ax4Cb5 zOw%izSLo+PF)==9rKICTuPeROkZ%?u$~4U!QQ1-)ZtOX-?0YFpnp9bMqYJg6qDdbtreM4=t)CG zJOi3o6B9xQtC`s3}|hrl?&7DitLPqD-Dumd>0dEh_(5 zGAI^S%C^#lBP8$mSNxCUD|S`KkidFL12iLrf=dw zXm2cun204sz26!tWguJ&WqB;L5rkz~*A)9}ba6{)Iu6yMxs@@{H$>Lh6-tz=_^=r0}h_ZN&a znp~ZD0Q0m>5x$*0*=Q~r&e^JrsyW11OyJea89gkW8e`g*mnl~;1>0g|hgs88(j*lu zDz2F~qyX!*Y635qujqT$+FiJ&QxwVQ_x+CCpJWp#5&Sff9HNfvOfx;6w znZuX926iNmid%uf$TlGjX!dL6Cj%;%uY?C6vk_u;K)sO;SqkiteXM>>OvGX}DR>1# zp}d8iF71@Fv8ma|rJm^4wmGxByryZedf0@X;#c0B9?GMf^#dQ5yoYROhSzQokwUHI2n7(oZVOt%t?CWwHF04o* zmFxVsE)gedLKDvlt&|brY5dtTuk};$?_wjDW#}!zJR1SLk1#S8f-*EsWU3kKAJ#S1I>pP6MN{O|PP(paoh7FhT{Ea)n zVDzIfT9Y?01DvdU(PKg$l9zTE6vjv=G=I+gM|41cFyW~{SObUE@JJdX-*P-#-n(`u z8Y)h*se~Q*uEzVpX;`V?Nb94bM}VLSE>V%a^{!=p1&3<>l;6n6(B7{^6Kqt+NdX(` zVkN^@)|8*!#dd`dXe`%@pndz(=Fi&=4~rWUKV?`!E>yaQ_I`ayp@h|dK#P< zGphJ?GZ|QZc=ad7&-CT$PfSt#3dL8}+R)pw`K(LcU1B#j&FQjWE62_%jOgXOHuOS& zbB`0doAQAL>@mF$FuSs+))1JOM^rE1zTHAnujKxWlPj!%C811dG+^aT6T!ebr!)LL zK$_KdVjdti1kr5ZDt@eyk9D#x)R$n3Dz4U~pv>)Ov~kG&&6iYJNLJizISGCrxj;#`z`?WW~WNAZx>8$U*Q9_NL*YXg>2t-7&$ZikZ4S{43j6XhwMbn?04M zh>lpH>@nUIvQx4QYgqS3n24&K8hH{#Vbgq#vtbm758~xL2 zJtMdFf`(ewQoUalzU{7hR535jMsY#-nZudX$ZWMsjEjT?V6i&(bqS=&Hx9~5VYuu{t3G^iLoc2ZZSB1^ZfsCrHtM#>v|2AE%{g;VG?$%bY z)&^85->@EfM9NCpS_e$@fs<@uz!!2?8o1zI+;^PjuBluhDW=VU+fwkoDUREpSzSNE z?bwu7W5GQTnWB+%p9Q!m4S*RQYovX^8V9M!AJ}RU%6kOp4FF69ykyS$ze@{og9K!zLbcr2jzU4sxLe%Cactc|j`-&Y-Wr zM{LiIEJ1JOs}?Q)WPWGEL*CU4Qe7BvCNaDEAbu}GruM>q`?t%_VvF3LOY%@V2a(_x z5@{hMR4~_Y5xO2a$*OF>C_^iQTBb|Q^H(**iTl&P*6tFSCVa1U6AVQ7sD}9A{)O@| z;$?X8Gr4Gu_ec&-B^a zty`Yf98g_Jn6LF$q=o~^qteHIcV%0}o81dVzXcZ@w)4fjO%_LSbL_ieAAAD2$;fXL zG#x2VX*#6;wLL{YrEbZV{F*e~toT;VZOzPZJ7tb?hM!J0QTo>1Tcj7AcZlJy{&}91QHk*#3vP(^+EkARg*6(cOY?)Luz3y{-jE1i(4tt_ptbXLTO**Xb zbYCh;kO&=oc`t+$EiPaX(P8)oUW4wXz@r;Wtcq0wVCli^9o>)1V^W^C6BVao!kc}n zibLMle;`}#7t}QqjE#`*8QQ4`lMDLp?`KUQV~oayJ*=)7H)b^WXe9W@+HrZJB!R7 zIz*2v8t8MPKgs&gxt~#*;@=7~UPd2mj9~IYh`M4Topzn0gFkm2FJPUiX3|Fxtp_qjsx8CL#VVnD9q$NFt;Ki@r{Nvk!*Bvg-0)?vnZqT0 zvkC2k`|J9p3_r)~)svZO>otlGtf$6L#BVu^SN_X)<@yyB?!G|Zlf7{CJ!4|Z`@!jq zjM#-eOBwe!FxpL+n4f!-5i8jJbKOezQpfk&dF=Pr>53_wBPNdGd0g(w5?&7ARb)Tb z%H5K6d*m$FGvz@48?J54>+We>uMJsk^SRso>>Foso7{iYuHe2{GgV^)xLTuf7XUIT z6GZ^0RvsgIz~zN^ca0*Kv*g3K5T6uI-%ofvW~gf=oV>xk)e4^Dx2VA!y5Rn$#v4+v zS*A{gvaI`M#n4)l0U-g+SY?R62j3KOcfR92&ssOUfOwkX(C37Ijw$R+#0^6Kw&Y^j z>)+|OqdVPS=>T-j8XHv|l4pHWIt-sMc_%mrJFlw1-Jroj_nmg)S6e?0rHYD^U-Ux4 zi81ya9sH5dbIp5sg7p{b4-pma53BFv$!pw{f3QI7-_pgXhpB~N4dStC7p8`{6g=C( zR9xEHJ~$wIklfO9TRJKFeaA#`U}$}_fv{u!K)s#7(EVz41W&fcUs*`Zv{@-ZFo|hA zzXi2i^%&xp_N(0@;v_YbiYa$i-f@GU8v5@#>s^J~Pb{oW^fymW-{m8e*&di+yE9>)V;sP)OUqw+HMKFuQuz9vR7UD#!lB6jAzHSOn>;)wGQUVL&{|be0_azhww5J{ddVpjhOG6JgvzIdJE>`;x>S2w0VQff51mE*>b`)X zq|+@IGY>MYFJ_fKtD+w;Dfc5W`mR+FWNIC~atEbE=vZ~1n$P$_o=z($Xrj2&Gg5;8 zA8!o(MXP1Hx%JU6u%`aM!Xnno^Y+Cb*v9*&mvY&wdtR4)Vh7gTtXR)3;-9GGvm5BA zt8TJyM?(Y`1@D9N>oK68c+U)oI^?Z<2xC zxkY=#3p%wW`9e&4tMr{aF0!2NMF#GAu$vhB6B@P{RBH$ zTGA`P#*>1AdD^494j0~2Z|Rs*tX9s{RFvAw?qE;L#wDjIl!^$^zTA72Hw7b`HjoN= zt--g+-*LXHjLJa^Ed%LO;3dc3<%cz1*%?{5s=mE#XVIM+iQ1!ttJR?A$_!Nd$Y}X4 z`SaZ6m5I`&i33&dM1H|kGQm%G-9}x3b1lm>E>d&(TJ5rJTPvv;-&E~#$cQ#HG6Llc&>y!=~TV1j35 zr{=#P9w}1}y8NJ+iWXT)skd>;;mqw(NArhX6`Y#?E3Pi#<2JYm8muJgAz!~l&4)Dke`crmNnEqV$BJ2YIgqaoo}fp3$L|T(|n4b zYUa@nmfpb-dRX}=WhVVnr64z*QBI0aY+|mWEDWB^JWW08vYiFe^UM|ONT&0#IpnpK zYj#W~->BNudX)l^$f^RWGg*kvr9PlElg`rQ)cxBM=t;Dz3FjD=^yfi^jIWH3E-RVG znD@=wSuL!mhd)#$GIK`ekgS=_Ewf3#m@gG~$ro5|@J>n-OI+1OC9&S+WYJRDu?chN z8`%AUj~H&8scWw>4LR%0$5`_?oP)0`ZXtm~j+Lk29Zl&~W3Z>ZgwzgQgcxKwM5?T( zaG;ghFqH`&ir-2D!R>*CbPW7wt&V{Ku=z=*ko)7ng7OBD$v{~}r{GM(k;;C)NH(>q zk5>u?kot(^3OTtC56Eh#?8hAAc2KXQ%LBgA-ojtj=Ftnhmz7J%Q-vG0UZPm?S#gW0kwi~`h*pZ7U+YE3kY^T? z89M03o)@LB>nnT7<+E$_^^+>Bw9mx6%5~~k?!2l*#nG~UQn}1+>nd`cxI31hTo4)t ztfl_tL2DP$jj+cSMhp*RblvXQl572V*VodQ-K90HTJklHntF*x~+Vxqr@x<-7)`3$Xyue1oK>oAWo&yu`dvpQdv z(uOzc+R8+ILP14&SLYel#)^xr(@LT$|1>ycIFS5mLSt5uh3ZKE2+DPtpK~A0Oz3Qp zM&F9h-4#+Y@c`C2qjcH$?CKk3PNNe3V0qNQd}c!hwF@lXRoT*VD}A);mEIuw2-&wf z%zqI@swi;QP@jtw7Tf90`2Iab?2q{ly;>C(@v1*D-#Pz~&-sUO)>G@9MmaD&!E6cVI&8rlO7mG|)P)&0S>v<~F<$JYbf(`ab`_)331pvVj+(9KxUwGZA~R;v`#W11 z{tOe{4hEMY704K;ng6iznM;}Ml1-Aou?lo9-pt^F)6yLne}KDDUzmJgaQ#=- zQh?=T$EpKXo55@=?zNE*RDgfBZ5#D9@04agEsZ!%yr-SPk1!1A{@9(OZ2AuL_m*tN z2Glre3*#B$yI#SB;8>^0tff$lSsSYzTtA#aK^6bDJg3f(#jDe)d`Sa7NSh{lPoF{~ zgsFv<^x6EAo9pSlJfDpx7-@LtdROK|Z04H#%o-%!>=erZ(ha^NpRNgLR#Bp~*HyNZ zi|R70j+&yJOHDmzrrOruDcX2No%(VFbu{#gEyJksKV5R||M3dM_Zv-U{-Tq>!0c4`l8t!iUr zJbi+U;~PXjB5GO#FzCD^=F6DI=#9Qm(w5=6hLxnV{TZ_7MkI4YiR?;|p4-6A5L#C}U?=cTZ1Z7no zVbj@jc&FDju-D)_95`%$wAJ(g+aKn)9%rRBEY{Lkp>>%81D1!bk=?>_)?6z$WqGNL zv-h!r<$0SdSjCdg4JuZ>@X@*?)-nDHhi$BTc&h0g)+0pO(!hM*KBh@#-e>{&)0xK` zU0GesLv^RhLYb#@dD&B#*VTU#`K*5w*ajn(n{?v3>8xxa#UX@+65mWevlJ-1nP6)B zx2O}DoNfhgC9}A_pLva$B zO2^RMq=Q-8k;fF{gagP5DmiokoI*R}*#^}zY*y324@{=90t{w-Y??q=Q=L`zxIOg^ z;erLw>KVV#5_&+%DAGm$w3P?HW(*`Of_<1pA=QwQW$l>m2a;IWhN`x$x>L z;5b)qvJ`OVcGcfTuV5;92s#;?gUS$Jluqk`3FJ!AD0CMI&$t7*!^h)}f9e0Z$(ws;i&SI2}R zp)K0kS5*OfT0iC401l1( z%@euJb#tTZxNEiKz$ngX#ToZ)oUIZ^yZ_if`NJl^*j$WV{awz@a}(W?vI_u^C+;Zf zBs~)?EosUR5Xj5wH}B;ys%VV9L-bZD13uuJ$e3F!HkFFnd_>OB1%|I+9rLJ`DLqtr zQz#U_D<=WjqL7MrRd)netJdYE@GD4~w6DDRl!?)S_yOv+00G9Nopduty%`?1laTq$ zcB3HZ8QWVkRgy|^6*!4nscX2l!o{@Nm6!QDXa}~Fc-!e{ng_9xksLLEJ!D!1IG{t! z@2jHlj;#7W=xCIYx z>&F}5$dr9p0rYmG0!@Ype=@QOGIH&NqrqLaCQtyFVmuFY0RK@;6($Mx;}!h#{6EaS zygdGjvde@$Z(7b>>@P7RWfpn~U$}7^aspfAzW_dk&U3AVjv(`FSAnDOa^pat2C|jC z612-tVMTmfSux{0aZ>WGY!a>%2jy5}Wx}rH3N%`t+!nY z`XGbGC4dp^EWINzu0D;H@R~K(=+B4{)xlC%e4zr!CZV5Xkx93a88-7{P zBfiRYHu!)@v7H56#MT(gxx>f`$rb+ohMh<$&$r%(_7%TXqc7QtwQ0|1?L!Im#H2u^ zOkp3Pge#@N>;FPbQM}7(kjc-p`3_X#O5*`;8uD0tm7m!zg)!oB3qiBO;l?e+?byb; zKUv1;8l7y@K4h6@d4v_bLIJODgDfNuTx6i7aD&Y=z??W|e3CmK6^h>TC-y}`hX`d? zBbAN&wB0CPh)r&Ky0sp8R)1qt0(?%lGyE)cNljV56}%(2a>)Yji(cAX=RV@yFuupR ziY*u4sot9x2WvEL1q97TdAX>qm@4lq(QiE|m6kPb@)NTvdc%{2KvjqD|9ybm>U@b9 zqz+s0u-Ej92A!xg%SfcxE-OVKP&HJ(gzBOoRmh5}Wu=wxwoa3jlhPAwMOEbMVfO?= zYPhcjZ;*Dt`2c>G5p30inKLgM&O}PtpfFv%j|_pElw=BrVkwWJZY$g&O{CdphKRS* zrziXtGUy+}3i%z3n?4VTN6aJ6{kREh%<42+#vV4zgb#C$39M8qRtm62k<2j;N z9^7T}Ja`Uixikg3l>b`HfLQ5!g^iG3{BHgUX!Zs!Zv}YXCmCmgQfCys0j64gL)<}o z!`F};oI|`)9OK>QERnVI9I94JT8P4YBhhJ`pFT_Q8`~Ri&UZw=ZJ0%1sEyBb>=lyY zoQZCL#nuzxM(Bc(CHNIG!Cxs%q;$5UY^ubkGE?%e=v7{kXswXGr9x0FSP|F6>)`DP zZ6l@zc^ z#(yoTiZkIkiGa}cxJ-b0)6t(i%y|itic77hKm%x>5dcnrUtp8vu5}#dR_UUe!159C zeC_kxuR<^Nw#{q#OvQuPYT}SADdaqECEn$2hRTHto$kV)cvPz&P!#sXs2ONL8qlS( z)6K6Lgk-4Ew(PTLxIQd5T5zMrH?4`kN^2QwPUNa4g_K}tWc$`#LA}IfPF--Vz{%)*-v>%8^y%8T-PFE29q9ncTZdr;buQ_MiQ2|eXF3pj5w$?c22(dz&8DfM%O8Pn# z@b4ldQ`yH1 zqR|zcFW}0$Wy~#Jd6H3s_le1l}M&tKI_k6?LeGK{zW(xdu#1o+;}E12?{x*n*yc z&BDu|g=Yz03eIzatwTgjZP3MT;S+p*6e)TE^L|(~Hwdk($q<)rFp_ zG{Lv6%jI|Z2RHqcmh!4M&J|A}$N@hDBlt$o$-FAe+_4z9M<-jFAWz_rhUrif^o`BZ ztx!^{Kuw|ibOEY7FI$<(k;h54ZlX$Fh0t~ZpsGn!oG5=Z9v>Jp(f>$X`F&x!qGRU($iHK)e4NEjze+8gIHqjUb&?PMNH zi`Hpb4zXhzGOKq(mNJU%<@-Rkk$uFKE8fhBTMY{GIM2SkAekU@@wU9poyfmMPp923` z^#l0@T9B_b?Z&PZ`|Fdjr0gBFi_mkaF4YszbunjDuaU9PR{2#Vz&A_s7(U_}BK!k~ zuNLv=Ls!f#aWkmEzz>Or=9A|(%@xXuYU}$2HQA0erF?D5K5aS=jVV;c6HsW9JQzoP z?IcMU?rJNnKn1JCJQz`%2Vru!*MI@a@C+0_JQS9BMo0QCkx~2RO)}S z{?WxN4U@+;zVao}GUa;df{+fGzj(G!yEt9&-Q|ja&3mxAlu+Q;&9l%p^qIkR=rZC^ zHKl=6mr^iNXIQgnE2;XPb|g7SeN62Z?VvcV=nqMeUX@w;6o|fxL6;7}3c>Z&$%G3p z$UGm7z%Cj5gjh&lWrF@!)71j&+8z4;woa-BYJVj?Qs?R>N8M4Bs{e#6lX4XAecVOO z(gQ9C|D;H`Is|{pr<<3c|KMuFC6EWYv`jx>lh5BC*nPZEvgL2PrWjAS+B{HN7;!^? zw!9?Ju;xW2;bV9}UIB}GKm)zcUOW7X&BajOzX8_IftTF&lI0>cgz@W{DXa;cAbS*XsN%34JqlzXuMTlPTdu(3t6Nw_z8`u#n)LWo0!- z)b2_-uBYiH#;&h9p$XgYPV1%=`F&Kj$}V|)m#vaaaPksKgllY`@&59-rq3`E_QfC> zHbpMv&e^rHK(WPVm|NtO(AxL7_*rC1S7hmdpy<~2@+02LhToNsT`tycBhR+?)10HO zvs|cfp=TPoij~Z*%Xjg^*$Lb3?dUDrxMlIsn)1Q~xVNpMEpmP5;;LCeel2X0+FPN2 zKw0PVux11GgMF^Lmp*72FJHpUHByRrtdA=^c=4RdZHmzl(u2)c2QHJP32{9clr53V z+n-ZogRGk~XxqF6^~dP~m)AOX#z}ij)ykS@DUdB^M;N^j)^T!Iv=VeKdE1(iX^hg% zNPi<^SHk>mcjl^yCv7K~jX_hI*0X%QnRRWf7cTFst=P5pjmkbwlI32hCwH!~v*0{; z*UD-5ULZZ^-0&>!`OPkU_1ymWvt4Vstr0z~XSllqZ#Qn>KJw139Re1+e9-y=k@mY4 zmjKN2tt1aPWK0qK3;bT0iTwdRb67(*$j!7Dy?c?EctPhT_wX8}HVOQl!u-Nc=B+&iDfwn!m0FVES_3Dd@`?T|vN;{t7uDslG1^$OHoP0y)HVAfx zGrl$bS<%KSYo>PmU~8$H<)xgH^jrLMyeZ6Ijn4cc&ddT#u$E^T|4}qaVC$bFrU<_} z3MEg(-;Nt7#~BgZeP~AJ@nxqNq3p!=Lgog}CgKg-fj5iS&1vVe8W!H|100CL_-o(}jGcSztbmHBNDUXlKAREc4bd6?AHg1p#VLOzYG9?qp)Mffd+v>qfK zD`Au&9vl|S0-0G?$i5GM$P40*z$fG4_|0&aA5G{47dVbn_@5U_F^M`Ap!%s(s8Ybgy{F* ztiRIoW5c+nbd%+hXtL3eXK0})b<5y4G?8{1tC~Slb8D8f3YB+q-gDv=k+Bq>m#oci zu3#?y#PPcDJ2rJ+Xx)q6lj}^4_1(VxUrC!gR_RI2d)q>wC)5L`J4}dv&;V6`VD8f` z%4uZpQXh+*$K9f=^!=B=LiWY+r?3mJ-gB(ZeMG%BzG3N5Y~P8dF9V}>`OQ;$&V%o% zW}O=tYw3&IwAD#W9}_+MH9J(F5_5tZt1hvOC;aFMk zE~MtaZMRn2)Jr!7_Z(@wytYllAiY`fMH)$&u(X&SO0ykUQ)R~p@BWf)#wu<1j7jGJ z#sc3JyyY6W{2Pcxg@b1Hbu}!Tk`!lN1Za`zy%-Sz32B2u3s9Wmq zQy{)7J?W4Dn1f9_*3f4_pH^OG=%8=iPnln#KkAF@aCj`RjRV8eX&br6VDm~U-wIxo zWh($+kLW4FTd=E-qu3js?ock#Krgo4ptdX4uCS+v$lrC9GY-i8RbrO443lWt65gHq3g0B9N zcxpliseKpiV_TTQnn7!^5=ofvj1!yxWpi|I%l)|HHCHouydKq#$X^0?h0*)4aJ{V2 z;eyx$x86i2?;0AtbUZ~qVANLvZ0&JZ5~ru7&A-+{o5tk-@w#1}AS&uu47RXeY{(Td&V1`R=+f zIGOx+>od~{%Ek>pa0M-L%~XCa{o3*=q&OyL@N?;OwsY@^wC9{x9m>clyw#>?Z<>In z9qs5Va+F`%yh(hsK5c|9nb$P7{g))4+^UF{bWvW2K*=lm;^s?0EVH5PGO(T9ntntY z$=wt2QhJL2*eeRG5Wciq291)~Y&;{Zq}dIx5 z{E?Sb`bwhXUrV14gbC{-q`)iDYcDftha}zZ2ABn$UB8!K#@ju(Utq;w(XvEvMW7|p zg%Tl&|3PFeN+PWi9TIz#E)b)Vd1(?!j^uBIC13;G@%#=vmA2WBlWqhn){W=x1%s9> z;thc$lRIAow&D{7Vc>S&HNj8tdDA}OF37s1Ow?kShGRgamEzyagme2kl*@ zi=lIC;yA@JW51DGA)9G9%*!T}=n1|v{)2mn{}&fGUKL!&#}p3;PhpDGM$sv3N;pe= z6h%DuOSU3U>xaWeOB(NeWfCTsaVSL$qJM+p|S{h`4OOTCy9vvtm3G>R;NujJ2uPTIVNPV}w51}sMX<#%IV?~3M6=4X zNjz4WZvRp;k9ae3o&Kw z!I#LM&|kQhLa=>c7VTWU1Wsp~6*j{$?40COIG&4#lHd&fF84!lt?-_0CX7mampy{U zPz$qjeNnR+cmc-c z07pQ$zlTX9!LGzZ(k0-V5Fq~M6f-4O*hk4| z2?^8E9!R!fVb!;Q3FwDBJ-|Wx5|e>9XhKN3v>JKg-XcALz;@xFD>8pcl*n9T+oBh3 zQ^(6ri-T3gqKD!ZWghjZ_>-cldV(ZR&d7ZxIWH3?oB;|5AY?3X85g^w(m0G~N0qKX zDgC#E5iMs-xx$C01Y(njW>_zLDY~v7N1ZNC(2}b%#aq?qbMqvTD({3^$pwWv_y|xU zd*aRo&J(eAZPH+@udiQV>Y*6DgaKVK_$uL%j!A;QqM+8Dlo-)^lb~`~>}v4KIVs+w zeHQ;)Qm8fs%Oo$95$<&WS@zj(2XG5t-K!PM7v(jqaJibcN3DDxe}dd(`}aRfT##LGaIwPn9@mx44H%_A7tdy#!-pXCP9fJ2GMsl){IhbAkNBD2=?`*b6->HlHDh_Dw)G##&r0!$>a$yNOejnC3@>C9Sp65$7;o=ZwQ1u|49h zVU=7;;79Zkf0JuIDiD6M8IR79)b<=8K2i?r+X*Ud1Pj3*GiZD@p3nM+d=0z6-dz!m zWpg>%dFUO!LtG8Y6kH12jZP5}u9e7UiJMI+QU!eKUV!^^Fx@QdI(Id4A7k;3@tV;8 z_-9FX&~CxKayl9;{GPQLc`W`X_B+xdaSGHRNkD{a6Ea?!XfpyI0&6>$pt~fCHJeb5 zWEH#wbp-6WxyVUC(ewe~1Aog_BTiBv%NG71{S?~;9|Ic#YvC^NhASOzhGJ}-6tiKr23KxUu}P9%IB4Qv_%6X?v+r*Ig@M z*APEjduRXlJoof|%1wUeofNL>oOB#5qvqF9myx$H3Vc?ZkBa;tqGAZi2 zzz&15_$~01g6*64yMiSyo}Y3{1gkrUWo`piXuPEbW^m$p8zx z2N@$^K<9+IXP`|Rxi|%!YC4k61g9FNMXv&9X;T6c!C5M$Yb-cbe$V!p^b3(;jFCQE zRztj&ei~Ma5$U@nTKY%n`M%1!bm{JH+oDs_)$Lc(Cra0}(4&i_oAo~eW=gkfRIWbK zJxV{@`_c`vDTYjG``Ti{Q98KtvgnSqdzl}-S}GZ$)n1S`_p6HPrRCkNX`7{$?MU=I zX``vi|FM*&OL29S0;+u5f2Bg%h-syMblp*TkQQo`NZK_Pb107F-Ju(0_j6a zKJ!uSMFoxBQ{*5gajVm8WE{Rllm#Id-1MX2L!trax!8G0jrC$|j5J<9s7_~h<0_R8 z=dUPAxri4-TcU917uS4|M+hW^R9UWYWojoO6kUlti7%Io@yo?-0{+f!*aB&_wGb@^ z2X*<%C!(8Jmg1JUS7;@FAc>t6su?bqVv!(r9h~bIiaCKR zoug156luK=IRf3+j#I3K|DX%y+Ywj6IN3!cjIu#C3Rzs8LHHt$1vBv`#3iL2+lx3v zx?=W-x!-&gLFPKAAvclP)_)OC#9X~sJ}kcgzn7hsi+R6@U-EIyCx}2)3@gi2_fbK#RX#fAi1VTDSa%(jgOej&6{^nJmaN znwA){DRt#NIumVw&Th?3rbD7Y9m?i}c_~+Ok9a3390iLO9guAkwOXzqiU2p+-qwYb zQ9za{i8hM0!Jwi)X*{BP#avQ$N1M)W&aqUl=SC%tS2^>ihJIG86WsESmWPVAE_y}W zmb6<<#TC*Pf??9I-b!o@w>bsO5q%JMxZ#<0Iqz(loyJ-)DH~ID2(uEplrADu=q~v& z@lEd#83}N9nn9RJg;q7#W$+H3X7m;w5Kq>tMFz&O_PaQ}VZ25veqCCt9xv(5da2X` zB?(@NVCl3_O!is2-`kH^2a27%a5@xfwFdKtCt((bF_2vNMMsB@(AQ~RLm%pW)G$1* zWUXoe?3z`mSO*uyAC^;LacI0O1n%~>BgVi7oszJV@Mo)!XxsmM{h#iaY>eQG79$SP zPHW~7)H<4K3;v^Ig0dJlWuBJ*!F}ROWk<22p`(aytk`=zPC`F96=7azhqV{-9ZiA% z>K1D_f;pPq>Q%G}>SEQI+9Rsb%Cp6M#RkRo%zSx`{Bis!nV;-M$T4CD@y6>d_6Yy( z)PSzW=UUez94r=|p#@Es_@SElMg=uNwau`o)=F8Y>nnPxu+*AmJe1u~x5h0aHmb&j z$Z?Z`<#iTomc4LlMuP~RwGkPETS2~>?_KkGb!uHlH3d|8w#jQaid!wxqEdOck(xo1 zRp<-il8G>_b4V0!tNQFUg#J>Tc4|T{$o5%phllZ7V1Y(Bkj3p+FYGgKzNp;Wy}$at zqN&rT@V?xw&6F{j_-c9)`xU=ounhhW+ow(N5~F=8$f*_)%kNrWg9`|eRG}F)LgRc< zZ5rxqPE=M8tgLQQOzv$fl*lf1HKp$)hT2_Xx8QQqq2MzZL!aeUisq`nIaMM7igVWQ z;rYZb>Ha?V`q`ZO-P;>G$*($-$y2M&wmqQK7HnxDXvfly7`>T+F-+YLc1w_r<|6ll zhrepGpw?ldV!i08#ZuWJKn|?$p*5dk|LvMW-AHz8-%i(6*|bWSWd&BI2zF3fivBOx zCdNj4oA)R1ulj`Gp+}r@kLZ%aEBSHBS<7j}bLkz)P}f6N342_}FnbFrt&PeZSJ~JS z#*5F#jQ{XEQ_txh3cg35(_9r51m0C$7jO5-R@?_19Ia$OrLC4t#A0Z!cvYubaF{ix zy;x{!YHsxsl~xR!W{b`8?(4sZ-=wB%uS-rwi`5T-{=nVJKT@toxxy06b4-yXKw*~K za2WO!wRhBmo=p3;2$0#>-C_r>FaKbi1HQ>i){lciQ!Z=%g^bZo>KV|TK%+7ocJe5b zlVFh}jp&4LT8+Z4BeBAf_F}w{k=~ktTQ%G_C14NAa}3c~U+y7YB-WVHs0qgcqOPlI z(4T>Iigt9bN4D%3s&Z7|U(hNUqC7>s2@F$=CtN)eWuZ9JaR6_|j#)|3Wtcbrd+S|88SRqkj^3lb({NAw zwJcosM6)61mgcLPlDtYiRpk_wri@iw3!Ey)GeBU>}u zeP|0z8LcCAFANzi<4Tw7a*S~~RT_$3oSdvuYu7~nQJhd854b3wuDtCrn@E-ab=-*I zvT&o^ppO-{*0YfyVgqM*DY+hPrVK_mO|Eh4_a=*q zuJ^=Ij%IdrmeUs}sN00h&hQ}9X7*p-ulk=nlB=yYPH@j|gQ{IzWWG%?6S&JhKD4{} z26@lG2=!cbckg=o=Ayi=r%X6=amNC7RYE{(A~!R9ywSi9^L?v(BJ_5R)`W@O?Y=6P z01g(8au?8!^?A^PHG}k}KZ=c3z3ge=JT5%axq|1Ov8C-LUm1V5#aZw*?4kh`HTpi% zz7XGaEmvm)CHDS`W76{$xU33FW_b3V#*4cA%nD8G)_m#cSdL z(?UsSSchH)V7`~NW2G!to(cvV?3)!6p;C+M#CkZFnc2Tb>eeGh7apl_}+e4TJ5S=&PB8B56XtoBug5e zi>A;I_ug0ZHoA1XD(owu4ou#WzqR#~>`VF>Q;n=5POm>poC^IWclUPqlvLrWK58&&?R{i-H9Ke07Q?Uc5{xL-9hE=3=t_!D|g zb4vcmSE{O)9d~V${~)&8{~>hvPRn~(EOwKo=pkB`)c@|hZYnINwg(vA<(+R?rmsp% zGA`Dhi~XZptqBWl(9Rx0 zj}EptQ;u4tpiu;synXfKhOsr)D;741iZx4VlO2RkW)L# zp?Lmkao{~!9Iihotg^YKsS=+wd!!7NdXTMGg*N}KUbaj@{ZQ;a^o@QwYsEk-b08_N z*NII;C3J4)0zq@y3iyE66yskZzL=_8E>_vPsY?N|d4VDYtRcx)j4+>6FB~yr7ZJ6_!9WHH9{ounrHYdnXIl6kvtu?SAw+I2z9ioD*=k*o_e<5}tIV6NQoSt^eR}1A7e5an#F6dlENuo~K%kZMVymw_#-#AMl;njE2Es zk!Ep4&k`>+si39zv#KQn={lnvN?6*yM6ow=ehW>0HxMyo%D#KqY5in#ofoMrh)_GW zd>T&uADcngo(8X>qsFKTmjQ{vy1=D3O7|$kt!tqcOQ>r5rg4pUWV)=n5?HO@t)zR+ z(JWI;aCTR=$=2CvWhSD@G9NpIXVGwLNM$ZKMwnlwz z#1>PQwj(e`AF1BxHD2SXJn8JEbd-Oy8qPwYG?fFxEMxE~Lt2m*YX19sBBl~38fw>Z1Rn42v zH{2*9uiw=4B}=(l*KC(`ad|zpHoA1!o_;#Sum3tL&3AP7Fz1Tf=yn0W#<9_qCVXT) zUuPo;GqY6XO2t(Pn-)@(MbYc5X%1O6tLD?MByAY^%^ZnN96ZDB2=VDNar=GebT#s~ zyScVS3U4^BFj|RUS#z~hfs1CX$|A78^4A6t%ck(_nm%?+mhFo5954xAx|;hS+I@+d zUl!urTPb+qYttDaQn_Wc+Dif)9~ou=7p;$J7Jx}+zZC$qtWvsu8o#x$b9JI1H}m## zvd|?dW0)bbiJmx6C|(pYzsE}w=F3*@_zTdbs_MRWCzV7tw9bqv&NUL@ZGn<}TS zeI>bB7`w_I2+HhUmI5qKG8-z9dPP0%Pmvx9nb7S9R`|NMyFjDe5b;dfDo`bfyU;BQ@pNTRP#TL}WV zjToDdEsG>t1bJoCs@#m4ng5l=qA3+!s~;1m3(l_yB@#0|mx}SriTjrf;6T(!?+6|o z{Hn9>e{am7)@9gnxBZ44m}${+&2_BO=8SR%=3)^;3}d4!GFOjMX$o}9Ym|K%--cHy z4knrguFC&L5j`*DS;5yk-pN+`2DSW=jdi-$K~1b{9MI5S zH^%ADGa5;M;hD^j6a}-1jngMp4|5%uK=xzaY4*#QXn~lQ<})Dj5s2(xNydmS?77?| zXr8q;jjX0l?>kIE>7#VPv<${ma1&!bYb_&z`H;h`+Q{C@bI!Kn8u+)OH}dI1%%@10 zDxPTnM;t5}+O@3yJO^H#)fB{4_l_p>cs-ik6c&H8ltH5icGE)`B;mozODu|Le-?$q z7Vn7m;fW+Gd=?6X0N^lPgiDKetf*ZAa97G3f`HB4^rof2Pjvaz<_R_%ltk_4_JUizAMkgB*BvZ`Prwh`PFG(gDwbcZGve1fUo<-6C8`M| z5%x-A-h2c@sEM@cm{~BZ_oL!!z#_mExQyZB~^i$jdC3?{a^Rh8&GmZjFl zYA$z(>wl_siv3L_Rio$+`K&ULQb6@qIF^g)TKVXVA?6F>dekIN96s#5l-GvUIS2(W z(aD=zD?QtfE`3zv)ViZRyzYZ(mwdR9Z@4U)K>Dov(k!FUv~$a@(C(}KGhCP%%B;x! z?A`JjZzIovU^^@qD6xi39u;8&>BB?Sp}nnb)^#(wp2!9oMml1I_9Wld5%RI-eWr0` z5wsY6L;7CELCt|kgdL-r<&ALn$r~Kb3xe>TjbqFC%a0AIs(_`W)`hi2gVTvM_5b#5 z7o<0-yX(lan{7MBm2RMJY#B~3XT%r+Bhy)zHG90d+y-T|!$ZOzTZH<2hevpLZ?w*^aA=JQ*jpK&-4V0oMrHnHxk*tIx9$ucSoeI@Z2p)=y)mY|T#ksG^akS@aIe?ISg2$2u&xax@P-1sS zVlOROry%_m?_45lek}}U zFbgd3+$}r-_SpRpE5HY94mQPNIsMPbrPvI^A4(p24*gEELbcq-^p|K><1^+?bWZV7 zb{ldjwVEqJG~w0!5+uxXQ0NL@vv(5xfg4r_G@Mfp^|48FRV(z%n!S~qkYm(YibI^6 zw6F5(jT0CTWUq=ovMv+9Qtok16XU|?^7iB7Jq?0k^t*kfNQT^5d8B@Q%cEYWrqL#U z9YFRlDB-;nd)*WEXPS*Rp&@}`ryedUVmT}SOQCao6@_7!c)_xzo~XbJ|7foh*uWZ6f7$R71y_3)?2Kt*CXTt@S24&rnf#lBv~=Ntwi6p&kh9;OW=_#lh^cwvvMd0I)m$;({8o77REFF zGtEg}&34hf53A#5s}FdR`E-TR{-zKiN|%Mzve)=^-mSm5qDu`l%~<*koJF=7Ok)mF zg8N$P3TZ`MrwcAKh_-)|%UOF&Q^SHdpL7d6EBW>+2m3F=1X<7srRLifv(AO}h3k)~ zjy86zrb_9g)yrow=QW=g8mxUlecf+SAYj;cp~;r4`qpbaGh8H!Ou;3(HA0?60CRlu-=}L>p;6g%89ab5U})q=LONv>k}y zxwv1Kx(f)~1khRh&k8Tj8B$jF8Sdt0KpV~Lq_#sWzLaiatrnCr(fYB%U^cICg2<0s zoAg&4$xjarlcWm0-1h^yqF1({v{7<+nIlWcyw>@gJ;Zib8##wK062qtk$Z#*^KSAd z)lK0)5@Z*|3MU9Vlh~pV(fyED;%14Z`$~x(@Uz_j?3R`+r7_eZ_l_dw1JP-fD|@lH z3An*25&vfJxwxdQ)|0mp@X2rE{{T)WeiLR&YeR-bOQi4IJH!vc3fnutBJje{D%xYD ztnCz|8p%?eXP!bLBrDkq5eGV(Q;W>1$>**`#^$}`&w@WBN(3l;J)~Ut7T)Tv5XZxi z-AqY0oG`e6Dptm}R?zJg8o83OPJU6WV$GJ%q>0#ESxGg{xk)U|i{s_tuM)@cuj9@k z3xs)CmAh258&%n*N-U9e1N$jCM)MX2+ARG}8J)gKmoG9hT{O?BL#!dStm*>CTD2&5 z3wMoTe?lKWTAmwxS8$fN@6Hv)<5WAbcq96;U*Amcd~O;~^=p4jkZAW>ZwOa1>P-hJ zx0r7X+p1jH0^N#SZ|+=;DIt=#L&XhVCdgN0yEhAO%Y5vXiVN`>eK7gVl9m7CTG>AX zXVUz7NP<)JgPj{F=FIH2UzKXsqn7BL%^a117ypD8rtJx4^Pj4AyH^Pz`F*=%;wi+G zUYH!RBEc}X`TNLRtcSX6@RDFEJ+xoc%x9eIF{>QQs_R&tlfs$Xx;Va*d%<7`PUOoq zpWF+CKFV^t$D-53y`DbOhV?7;naz^bH_;DN-{oKUEZXVeZ{&}Rx`AgE?abdjN3uV& zH+RV6OSz(!z+iiRnC`KAhTyYm(C&w*OQsp10smE%n~qBt*3x97r2!4)qVdu~(tOHq zDc-!dYMOK>tv+WbIDzpsz67jcBS8t^5#9_}81nsJsTvEd5xe*87H2iBH2R27ke}g7 zNf33aV6CK`KCStj1DxhR|G5<-LT09-$*X? zJQ2=f9MZ$Wv#eljvWUxG%BPF|aQ>1HiWR()3Qx&={;upa$wr}BTqBS#;s>4weu&Sz zqS8KKs!aa#rDzDWV4wa@Kb75MUQK zRzd@=1`Ys$Qrr~-K7-aa=cF6J1D)%+TOo#Kn70-hfHA%SI>e0>6har89tq8%7iGi3 z`|!9d3(;P9L2RdZ1a=H;lE`3pR|F`6U2G>y?O~@5Z%(=FwK{zT=~_6 zpz&WpDE_JRws0O!&jdx|v4^oPqTg6%pquy&y4@9!oIO)}HuvnWcjoTz z+)%9Hoo;JMU&()BDv!P*9H*ZbP%pAopL4AchbX#i?@J;Hx$!Pz-)cxkV@+H!Tl|3? zvQ*C~;iN5jU$>E4-WO8r#-n#J)64jpHg$BDV1uzWAVzpaJM3B@`k_2+`&BYU=GoeX zt*eSw{J_F%lciqhr3P=7J<4f%(J&shZ|*1=i(IFrrgtKPjK|Rqh=48dAA=O~<~oNX z34#??myt+uqv!ZeTP>w))w2rI@aN|53q=HK58#a z<=ybR2R8_wI_JVP(Iab5SSRwlixl_EADY_gw{&_SWBUEQnvoRw2)tp@0IEW$s&?;kI;p7Q+h-A zqt;*gO?0Jj9cU)rntBh+mT02pfqJ0IZxB2q^>G$JW2N7%4?)4;37uSWNxBQ;0IuLH zVHCgxOQ|=2)u6Ga7?PddP&CO9fE}tHl9tnCfSdDu9g5(vHpT+pb$$>IR6gZ0?aH%)pIsLqOW~4^FWeH5Z`*%lu4sA7 zqe`yW%D6wTU2N31Ci5h-w0RLENsD@t??GUu;*c`{$Ylnb!@yfythg;;F6jqTgckiV zoMGXnot^+ zLgiltqm~y*O@j4H^EoqwDT6_z65+AFFBNi8YIj%ebD0WAhzg5jRvkRaI3sG^k9jrEym(QX8tsd^w9WyE0fd(tJ42jJQt|Cm9J( zrdjwnT*Kb%eI5JED|ecWH47(N?n2**Zz$f#|7|=B=E}Xv?i`s+L}8I=#1$G^kwf?~ zdU8wfR@UC6iTGH~m9XuYg!jh#IQmmK%_$I7h!AeHB5Dz#NAo~GFD+)rE?vgFQ>v?XH zM9OPv_$SmJi-EyF2KrrHIgr#<-|n(0moQv zhEIaO@muHzAV9nXMS)|?7}Qo8-LMonC+#ZzhDfD&La|cSbZ~hrX^q20uo3l!m}dQEk>`xDl;S@P=bh zuh2nw5%SfW1&=`vJDH#hNQZSW)QxaZHQcZ46Utz^(u`gMM=Qkj6X3b>?IrEdGue-< z3~0M7EdCTUNN_?cAtS!RJ0B8akDdCUOw7}o4q2fx1cFW&A_U#gu-=>20>QdTbp=qh zW_!tKC`#R!c?Ggo&55T$vlW{{t)OZ03~xX17xB?)7`%pVM5pd*|hKA?}J9Q z#Zb?Kk6H$6*MmomCyE8&2K}?l2Czr_Cw?y2rv4Lh8#F2Z^_~VQLTBmQuUg?!Ki#VUBc-LTKPLqi>a*pQs!s=MX3NS$di`~JJJ-gD$$l0J|Pt!3*zA` zCD%Q!VpoCpj&f`qIK^@&8UcAqN>%paE37BVg%TktLtzR0Qwhuc0B!y%S*mnl+9;w{ zx-w<~-U+$~#bCF=H6CX$3&`Jb8CnD#u^NqZ!KLC{#eKw&`BDB0DQ)7)EfGe=aalal zoIiu0BD7Q#Z$&uKyRh2`HE1&Cj?{YWMg>T<<33~uLbghP{~&-UUw%`LFz3rB%IzC> z$UQ*ratl5GYPZFY8v?g%3z$yM{2)f&;Sj^Uj1w^H`;r@2j5 zj1m^v*UGr!WfuO#Xz3VkaBB(mG9}5>NpGnQHQZq)7yqYsWWCEetfg{>6E~~3@#-V; zR8|5T|FMb|;e9tN`9I?2_MJp0z_8HbAz&mY#&n3|-&|^(%O%%T>1n*q;u!5Y{{Acn zjhEox#6Xon2mXw1p`;@kKxzB1s1n3B~;E1Fjk1k!QB6Er8I3V@d)%CuAkz(om7ie0ceTqv)DH~TG>nZq~S{O~i#M2Fd! z1c|kzqM-=RWa`Zbtm&P0JrP!wt%=9q7viexcu&R_B?V7Om?!@a`xYK0+ktia$p`?8 zaP!4O&{qy#=o@soN>0(=GgLa)@kXy4g5THW2| zThXJ6Z7~(tD()IDq_@f2^uOW*WkouRuy(>(GskZZ_D40^Z47!&G0veF8IrkKxxg5% zrtQ_l_9ip{>bc!c6<*4-9l!HWDw^63rf11rT4?d3h_A+}VO0E#PU!nDHmtts`WY1| zOB||@BKc&icsQ1rKy4j}toEp%+N-LYUB>Bp*YGg+UqbhX$(_>~GfDq|*BIQP-6#n3PEhMa)151o4DmDD>+&*Sv-tsn4vL#? zyWX&MH5WVDI4?_pwrpNt&iocfJ|p>%;k{sM^eWv>(b(Wx%@T2zcbKYO((f!$=ztG) z(`5!Q%3>zI1Co=YI$MNT&D{13QEl_d!f`Y#Tbw|sGFl-mv~m=uQQJdP?c%m zAf7^@I^cCzwnOpFc?14ho?v$q^B}fZQV|1Q)&RCtcK)ciZWMGl6gujaZIPL!T2o6> zV!L{;F*<6R@`K(hs952sdFyprR-{_$yaqQY#CFfndorn|5=qC;)c#o3R^3}RXE?f! zo9DJpzlus3E>vHFVhe5_bghX zIU=&Q{;GT@sW)3KFO{~{9347KEi4@~aE$Ji8{K<_@i$f6^&e|@?Cp;E990<7>cngE zA8*VQWV>(C!J?=|XVp6-&NdN>KfqV>$ubn&P~$%s!X8_~>(AgYa}M;dxEE4qcCO)D z$12*c2zX&hrmw=Qes2tZ;&Au9T8U)EqA#k`(wR15g$qbBFDH&c>#Na$=YpQ%=Y11} zT{)TE!6IeKrVdox5F6dPTapmA!1xaE@VluGmCkoRp)rADoGg?d!M8Ts{{6tmVsg(rDW3hd%M+ZCQr9j68L{JA&VlzsKN@F3`F>|~P0$JVE9&ELxKotU z3*Kb&UbYNzH2;B@AuUx^ed|!i;?doo(S+>o&O|gn#kOrVni_MdWi*-`deM-LruiMv zZa`Dr@2eN0$xf9D1)6SaBb$WgTZCdq(Avs3y?f+gMZMiKWgoNSJLt03b9(> z?Srao$;Q@M%1<$kMoc*~RHpl^@bv4}G{^(o?;1Hbt_$_bYG7mWqcvrXZ*#OOE|I>Z=8eQr z=EemNuBYXOH}<_}tPXhIZO>ldRoPDAwzy0(?H9~-n5(xIVOC9Qo#f!c{}gr7o5k`~ z7*&wtwcLq5E_L+qcE3xUo8hh}ib(G=}bkBUEYz(}wsBl>gFgH7D*c;%aqzt?P zp2rG$jZ%KtyRP}*^ng8WdT^DO#xxH~cQNXgL+>2ksk32~HKwpe7Md3ksYrK`*+>lh zJbUVpGkhz>y8j3KAhxh)H8LjbR%aCA6R@N87}Dg`ZOlV@TsCT7Bj+5gRek7a>pgM- z>S5lEuR}`yI8~dCTn_|axy;4jF8*1;9HwN^y zB+E{F4d`FV%w2A3T8IY6I%Ork(`K%$3ZG{&7Tbjx3a1RIb$C|bfKaO!h%(iySD&p|?DAAIM)ucHqPR^wv+*ZB;`c0Eu_}CG!REo!rbC%O z`p+6Yl5=`?=vT+=?Id*3VT`r{&7A;=$yP1)>egLRzHxc4)+$OI^$M2kp-m>yMPL>w z*nGTc%Zf&E89LHWO0B%qzP#D2cE0=sVJhTX(n8R5xY&)@EOf&WR^ZD$mvh&wjStGYu^9_+2G>$}_%4g07Lc>eg8-e?t3|_31Y`0f% zPx@(1dYLD5qd%n57dmPPsBwZ0qA~Sjpv&Bl#tYEH#w2nd^tRZHS`B?ndB?DW-h_{5 zJ%sLi7IE94J$7#eS&(kkPzj=7^=>X-DR0wVt2!XNh)k>9FZ1SjH>@Yr4HQy8{-}sX zfpGs6F1-wc!Va;5(F2}2+$qQxdmsK?#C)Yq(SL@!J*8zS`Yi28C8E6wkE$8ah}o(2 z>(!R^Yn%2ccNE@e-l51#nMzwLdl9B!E+zP$=^P_I#-7RtP+<9$!rfio-JYfP?Y}hb z6};9f&_C5HO@~;*x(kNY^`jgA)oBXznkQ;#$s1^MR4HL4OnZfuX9~xK_-x|gTM65B^6<})^OJKBprtW8k)lvS*>2Ci4G85z&e z)O=iWx|ZG$&?_l$BndiglHO4Ev}_Ii%NVPV^-N?Zt1dZ=;~_HPsx#E2vcTTQGDw@ieV?_O^iTa;j&Jj?!rk0+v|GspU(DPTsu6l|Q1{cKmwa2>Ajxjw z^A$@;H|m4C|7!*s*JzWd?qnN?N_$Vyvf3HzXqW5mvslbo1&=w&?8KxeJWsA5bg^I_ zf53gE@T;)fwqE=~ylENQIF>fAYi`pY`gV0U`3tiYoJ4uU`pcx!9&&WGuNb#^mIbz~ z=lrEf`JDfRE+J?6^F&MCRYD8#4_l4c9jIKoq^^xO)X~szflsLHNTUT5;AHb6VLqdZ znkEXUokr)2=jSt->%|`uFR?#Jj)X{go`Bw+E+~?Q*{&1Gq_2lw)abwkZP)64fH8`F zjYS|`(m@&m2k0fuAHj#nn?I|S}pk|9$no;&B0FOEux>ok`tb@63~OeKRJ6)U-v4$ z4bo}nA_U^c{ntGz%N|b_psckR|OQIXToA)64kfjA?pBa1raO#>TyzYf|j6 zyDx|&>Uy@9IjsfsSrva)?n9qfpBVYg7uKOe0pwqeG5rMM+nnu_Vg z=#w%ZW;!~Mxr?2N=ENp)i;$mz9{eJt-<2T@M}lpg#0%l`?Sh7X)azA!P424w;8t>i z@;rMzr9|@ONKn<$Lj|M6o5_R>Y z8IMRS2GZ(%o1gU@FCL-UclxCtX0Th4=vS=MhTQ=ouAS!V{}h^(v9@1@ZN$NLnow1G zUPTw)s|*J#M2R(Owu|Uw{pyCN;_{|VB|F65ns;P4N|w`>MiW2-Q|TWmb>py{OQnDK zF;?fn+oF)xT|7bEJjHE(aKjMrlK+R~z`QIt(`=~UE$pFwDn2NpGm6t`;&j%g=(!Sq z?j-+NfE~ZWnIxSfY_YZnr;4ANzOk=T=E(y%kExF(Ozu1SI>rF+UnZw+2mdSEzv!*t zC+ByXGo$1ZdtDawn*>lZ`03;l{mn3 zlgty%VG)u(S_k_UU|lkJGQDtJ8U;?zU@tI{P=V};@19KSwMH;6hb#Sg(J)^7k? zC`Cu6B_U5RXZlIxir_Ib5jjZJvvwmZYiu}9NK3&vt^om4{rD4*vdCcpjQIL7grAU! z&IWM?e8a|D(hINFT2tOCy^;TDdIiG2&2W{Ur>th~kuR*SV8_ZD3OqPRi47?`c-i>- z$ZY;y+}STlScBC%cZklRLpIG4cjUSHPxEC14gOA5>0Njq>7m+t%?}ulHJYkTEU7v) zf0#2@`7|YiyFr0Oj_0Sz=lR(Q?h|XAyG7M_woQ-tEc#bHj{LjB2+ySKZ9B)arHNa9 zHM=vsOmnI%nKulM`R;6~&NKM~*Fj?!ahP{XHPQEvfFl3k+#~$&f8F?qSc-j8*^*QG zd!QuByxw#!lX|D?CAp2>(?O{mU}m-6%R9;X&lI0L%vq<`MW}ccnq$6q1yfXG{->~B zo@w(`9F8AQ7LhiL2*Lhl#Sp=HL@gb_$rg0GURq@+<9=6ko|x6yJ~p|5lW7`>sNjv) z2l^i2?^d7tp8`Vx+Kv)WBAPXh(9F_n$b9f+Wgzb(c(q2{JObXSZ>dTEKQ|5L{e@;V zZ%j^sqG?OR)sUEJ@bQB7ad4+7cs8G5xgBPRK$RGXsqKb(0A52dw;$Npbc9R?el!PG z21=8u%k!+IJq)X)mC{cvS-3x#&3Wr%0dD0NIMqN-!qrv_pk9fY;-ctqvp;Al4yRgk zvc%izqe*2Ff5!ESOvz@}+T0qzkE2Sm2e$F5!(K|m1pz)&q(?=QoggqzeB7!Td<3-0 zrGn+GWx$93rNn1;n(#R{q)8&u@c8AeVlV!-oHODpf?tU{B!tL6Yz+`DCVT$^K1h0< zx~1K~L95MRl=Pj@sF~T!Vi+AInJWZKu%(mSO$Cu ztC3Vm72Xd3Z_xICLHPmPZ1qdJ97@4&a!a76Vvv^rPhrmId&4dbtpYPRs`Q)S8(f?% z5nh5>34264VIXXpcmzhgcS{to+-WyZ4C}3c{bNRjnl>{Bk9dMG{mi$nmd*WO-~TB4W$tdIMq({?6%~q#nERKf2@4 zi^vjIOe;mu#x6B|r{Nrtky}^CU828MV#nL906##$zw^i%%|EXJ;=2WpRGUK+gr5}m zy~{*@<+GhGN=6e!)|Vyku^sR!rmANi{}yXwmksp^`%cH4+PmCotbyJokdH^>3%NXBZUmEjyW72&XYgPBMfcZO#; zlEPOxvXEHeFH37AUIIh)FhRz71YAt%qbT7p+LD?IIEaB4*}{G-YQ_ZEhf@~Y4F~ZO zf`i~VftP0poF}q$?1V|;UzThb0iJ=A!A_=}TLS{@+0Ct>h$F97f!*BOg$!^PKOkKU z-VwCLhCi7K-WQc;016?AmwBM_l0b77w|`vU$t2p zEw(7wEd|BT(q2jTO18#a2B!nupmSio)XUQa+$w$Ncpdx>uCtl|1wm}db4d|s$4-?f zKox0Fau$44`2g^M>zN1kFN3@Eft_S zi^fPVqZ6$Zpc8UTbWk)=?aO3{np9}hRMAc4p$dh#LGdc@wfKo*dMaO1Eq9MTAbBAR z53&b1M54zV;1gc9Xr{CR!>o2mccXiSH-w=^m@y(;Vqi2@i_GE8w4+k+d<3xQT; zIU!nL8p*Q|Z8NM(xhl@rt&WZpzts?dCnSg}$73HbTj93I2I!aBSx=Ih;mLv;{{6mZ zbh3cdv#+5{@T*H)zDU^9F(dc9D6v(Y(j)q0{2o1DY|w`XE|V?F_De;Jk`uy<3S*FEZclsEW0 zmUrzlyo9~8WCiw|>zZASad<;XvDj#VUBoSPNNDoM(KPWGHxu$jBC`LE^aJlLZX#J= z6Xz`Ug74k@9V-?@)J{Sl3B!xupn8#W)?qYQY?gQ&c_jHKLXHedKKYj+WZ<$}E8;HQ z?O+W*2Ul7;!posf_9wI%K$|VmvC_#kp~!kEUL1+=r602VkwCCKu@L?Oo{9*DPeY6S zz2TJ*>ZXN3=!rul91mw((%`A^0oG5%4c$&of$yMOs}=Ady0T~m457x%op2t?PxuNi zLQBK{g=eDP{!`#F=r}h8^a6S4Pzvop&Red6>NgXW{FnMqKNZco!?$U^(P zDii#w`Bu0Je67Bp@fLin+L=%S-chQ#_s_5RQAq|4n81OI!M9uxYTM2xC3J` zOki7Ue^W5XXep{Z2NoFL6~==ZhLVgvut2vi!3wO_d=JkBDQa`S0g$cqa;pM)@*)QX z$RP%-JU|M*kp4~jzPqY%hxBeIT-hkS*sd!0Bt6^8&!~_-G$qHsmHswN3-%lD(HbPVJvJhFVi>5jdhjBD<0_&*L*Bkpo?u7m!7COLUM@f zQKwTfLLucRda+NlVkN8A`JB9w3)ya#c?wpWPbTJy@6#O(OKWE~Y}H%VZ?16GZfeTR zCu`{BJ82u$mQ;S6lkzyjGBiY?XKnH+me+IBoL|eL_#bRP6HcNwb1LoxgwsardPwa0 zb=v4=b$NpNJ9Qv$i|QnOb(*!Zop~sBv!b5;B;;Rt8uzbHf-G8K;WC~G5k=d%;o*`h z^TSxaR6_ZpSxethw^z+&=9Mv38LXGNzm-uOQ7W$R z2#v6p2z<=(8~}20!(gewPKB-qS6GxI@1Q-+kxHfbYpsVuD>0P*BVPiz=3J2-1CFG$ z5znO+F*0JJ^hZcA9uHzZV=*-})x{4z1NGQ#M#sZ}7R!)y_#&C6$c9hV!15;eWeFnF zAro_|iId2plpy>M5)~7Tdm+UkQ!o^%@qUlqN60Q=s4pV1yM}O(K8vUDLF6cDy*ycl zRNt4;WWL3}h(Y3R_80smfh0f1y$H*g(HI}!68yhx#e=6mBZqiH{MYEtfmFQ7(i$(Z#)!u9)?x=j7+>S|=lcP_dw-h$P+t5V$0`L9EHraTW zK*WX^XFmakaZAfY=p~lhBp^nNORA3GFATck$+(xkAv+ucbymp*=yT2f=uWg)T^QVg zoKYV1UWr61Y+bzI^|Ds`d9W?vY)OGSu{Vvc@oybts&et{w#uUQ*s_-OS>Mrb#!tz1 zDBWNl%|_nq0)hnyS!3?q4&PILc5#98%HWM{~p?+3dJIS{^ucf`YGGAldMn%&%8%EK4;-BflnfoKMH9YqF06=w; zXX9~9=_1H?0_0ke(#Ax5ldLhHiYul2>VjLg(QV6g#+!^AdG`$qS&DR99msKyr)zF- zuZ4e8`|#xf>B>Q&zsEs^h3K(UpR8NbVsnzPlZKcVV`sthwN0k^oIjnd0oKUF;-ycxb;HCsGAz)8_93Gvt`cLN%nb`krfEjEAgGH{>yGHfAqw`PZ7 zji{?MK|euE&poLXN`lhDHPa*?u+zL%IbS(9WdNw>IPNZB1r-!F0l3>06C)vO7F^@gO z3i!9vOS}vTwynUXBcO#Zat}FD&DSw-PDz;NIo_D_SuMiTQjIDP+%hgyaR+-5ZX;J< zoBeOf;xLNGc48c6>+~Hvf2;PPw`Gux5%fCr6=LqPUhCqbyYf z$Np7V$PHm%WOrnb{Pz>XvUwhBaS9RR^dA<81GYWrH0-oRJNyR=tdeN9>+TijsS|ZG za@>?Jv`#6%70Wahv8Uw%^{B9mvUKGg{}qIVLgO)vy^wn^9*6EDUfFI$mg5I4cEc;N zBbC3@pIYt|eNgqAknD%bJfm645yc$+VC z*xEw97#w4o%+UHo>U-Jgt~J^S-VBEisz-uTRyPzHalP3LnGm>Jmesqj=~upaw@b52 z`iG9K)WU>wZ8SO@d9Gy=b8GNSLofTQkB2Um7wyW?j1?FhZIwqvSFNq&2FZ6b644|5 zRl2JCDXlG!=;SiW(i!d6EUScume=eXk$`cC+Yxj_pU*G%S)er+I=e!uH==KjDT?Eg zz1AhNO;U>4HvAU&r{rf>K4)I;ulBE8Ui#S9Exa=c|Cl-i3nIe}O~RU>^*UeCI-jYU z>Egex2IWT}+mS1ODDAOsCmw^>%*W$4(616!$G^hjTus{=QEu9r7DyZwf66G3m`6_2 zmrK3|wQIwGt3H#}j?xXT%arp$mE(YXE>vTEnQ(%=%yTg&{I2*z`yQz{*QHenj!UaC zu|PClZveoz5l?hns4NK9G(e|(CaTI|AJ-j<61d&*u&f^bZ8HJKky`Us^fq$17;0OE zLOG{eFmyO=u2Fz)k1x<0&}|XBwcY5pAhNn2-R3h|IfO2AJtAL)8XfNwhfvJM2m68o z=BLqeR9bA`x>sJCLpQa`15*zf)Ux;SX1difS%g7zLS`0}sd`AP_Wr8)NLaa^l#j&~ zj{g#F*k7AGjEAA-Kao$EWzmk7%Np;TdB#2J?o_eg-#K-OPi=I zh)7o>nuS63%Dt+q-cRHYlqIegWMkx)7tO|FWh5H{-9lJfL?Q+F^t|~i9#)J=PaIKI zJxu5vimkmKHEUp2!<*nEJ!{A|zDGO5sSWPiTVFHQJKZ#{Vt=z z3aR8z?tx{ZT1EQ!;k5b>35`oUo4ApW``ntXgI9FDqTcsC*xtd|;C`m1hOJ*b!4Sq{ z+VyB1g~65#m9_ZfLcSc3F3yc#TGjMDO+QE`zeyO|&!UcwT-76@#|0}pbC@RI?QNFq zH}1EL|M5x|yXig)PTE~l{}kI)_Tm)ndGSR1$*ND1=a#<}0n%PG8{!J&oRc;DdOf$9r~7m(Gct)m|rE7wq5C31<1OHXH^& zd)R89L8irr)pKEY`;Cf5_<+?R;x&?NJ{miU9M0zT`NR8CJ-hqhtMOwy$HCttKDCh% z_h3iUCWP#}O8*gA;o+sVMXoP?s47PO+TWJ%M4hbuB?{0q^AIc!Wo9qz^(PjkJnL#F z#>Sm#|BK&^INM6cHv~^Jp2iiv1A1G$)+0bufm<&ArX0e~*#DK!#}I2P{2Uf$PDZa{ zBb_74$#FgH778q4bxWK4d(ao-SUJPDRY#FM^$1pPm3cZ(QcfhA9n57K ze2aAyUV%?G*P{RiXQ{h`wC7Ve9hWsneCT=(-YOxpeKeJ)hJ($_NLOzBTVff z|L#0rp_H9+@R3;&TdYg*vG`{5b*Mk~WaZD=%)$*lhwAmEa&2$p-pXi5O}bcff(14I zXfUfY(L6|11xkjLVoEZx?$P&z+~g*+Zn#(QcXGGe&KE@pb}ipt8BuM~wXbGW-8l7) zx@8SF!AXq{BrP+TG(fSgl~L?ztMWI{b}<(xzGT+0yF*BvDZKISUcA+Uc-s(Rk*H@x zS9*f%(Q&)t3nfk!TK%1t0<5Xq#Ry`|ZG>3UYud@F><4*osSezc#9YRBetpPT)-$1{ z`vmSb(Kg#6fm%{ItSEZQdfV<)md6QKoT+T*LK0z3FK-=vX8kb#LiK^B^@8_#QO$cr z;}TBO&WmRSuVUVln7KXT+ybWAviaAfqX&-_P{eJmZ6ymNHgaltyJSe5UUeB*NSjkP z1CUjHYRm>c<@S-)(!zvd>QU*IU^3$m_>bEyjy+gryM`YNjx6!XE62vSEGkMy56T=% z|DveKtFi%2r8?A{LZ?>wH25GVa;K5>2ps>N@*43Ej$$OjPuyOz4Y0}f5AOmT(tj|g zQypu3P_R*zNK7g*DRYFu6*h`GN?!E}Ijd4t?p)u9upbrQ)Jt>6dO+Dmm9a^Gm6U$3j`JA6Lo^-o~kvP%N0NB^3={biyGf5!T82z zOny0dJl$O8yURCDLo(TP&ywt84SWr<_`&E8-nN6#P{JrwJDXaph zHRvB?UucZd;_)Hmw`#kfKeRr@F8BGYBw2~wI_@p(SI_!P^Wo|GdAW=w;V4$9>nrDd zEv@XPkQtSWI%pMhYhJh3WUCw27_;N&lNq{zpdYkA^<4MG%pdY^cGtMW_{;8pGnlJ( z=~y`jmpdSz3LX!udF+w{10TtwD_VNv$`95wbjq^x8Uk7m#{DEuHhc>DN`0iYb@ylP zQWn~MzZO3byzkf5FRmht-Hmy*BD|NxZYUL~n?aIwGeXrh@2}{l zkI>4qdCa?vH*qDL#cY0{iO1#saP<^y6=d7ki2jNW^zy48kUaGV>e$Wo*!YI$RDvHy z@}*;Bax>0kly9XzV3%ecU=(sAVz07p^DP78xaEQ`u4eobqBS;|qCg3|d!%wAb6DqC z{f=#gEU8nBv*6pDmcz|f{@W4#yPJEwNnzN|q=3ud6H96%Dja70f~et*;7)42066G+3V^ z4XxchcdutWuCnQzTyIg^*j8LDY1nM)N$(|3 z(qD?cK&{vO4rpZTQ#rVnbEeAkY;W^}@m^D8-s5HOWGjl651*1uFAG`H!Dy(&`?Bh` z)?DlQTI|u_)viw`ky={JqPI}~({}{aFesXNt|azp#S+_}{K-UdhX?Imp4VN+TU zvY1ts^Vzdmy*1i~b?i6wPfHrOsid&gT^%54vnzD-_p^c&)uLJ0J8K;W6nfqDi(wfQZf?-tcEI}DAsUH+Z2tPK> z5zV9(lS@TsYSvN)#8{y{?Uf`fHItbsc^fHX?*V%KoOrg<6z5<;jr4`}QBe!1(8;Sk z!8e$9?Z1$_;9^4?R7tHSje#W9_nK)?dx4aC7ut|=g;5C|jSOWyhpzce;gX*Xv^l6Ghp0ftXV5My|k#{CAZ1*x!_9x&~uMeE*-H zANzjh97hYBYx#-Dd7DDvDkNQFU9nhu2ANeIq`AQRQD>z-*nGO-xT>Q{OJXWn`5cO+ zA|+)O?SkAa;xJQ5JoSCZ3B$KIb9q-Vy^T(og>u!7<@4Jn!d_JYEh?UGt();fvt9j5 zgGbevrePg9e{yrRW=Zl1nv3dGL>J?m;+5}p_5t}6XM)Ejf^7B)$6|a{Y*~1(GeoVd z?Kb18Yic`Ql3VJ%+O(DW#_ug|d7H?G4F{4n)Lva|gn%JcZ}UCRE>XHUxA5#`Yi*tg zj^f!$pj0z#1D>qdx}=gju6l2uoNQay(QT~sZKQVS^Qh$5RxG)U>SC;pC})`KynIix zC#c6d4{#sKU)qipv=U>rEbhcY0(s7TTw2C&l<!^ zF%MGyA+gy`G?$7*j*=0X8^Qg^DoT9Cr*i0FBZAL7!uyCwDCly^7JnACSmgnYl1@cK z^J{vjluEt9c*^F{hgs4lDKmooyrNp?E^Doah=46WyE#GiUs@-AXuo%RXtWAm(+ zi_W1@XkP8VrU}B?4XuXLv`eHZdTyP%IYs-W#E%MVxLIT9+f?u4TbOT@m7x(FNBL3j zTwbBf+v%JDz?WNJ6+u`aqN<(Md09|Xf3RaJEu<;2&9QDe+1N6>_#EYy;aBE%y1njh zd?k~lSsiN0UZq)WQihMYM&&z4eK;t)kMVsm1?@$B@ruY!Gjzw#SW@uowlwRX`YfuIFOu zbnbP>YUy)<%yK4pK%4*om=V`+?(1f7X11+sy2$Uc-af9)$wF zk#jJeB3Q;NjkOV;=D!JgCi)?idd`#Bi)T8H0O67@%PrDWse^P6V+%KhbB-0k6O(VU zSMocnE^^)ox(W{R77M%6?(l0x{V}@)>&0C`>qTQEt)5fGnSjCZm_#O3S&aeKfEWPM zK1=M`>lw=>`$@N1;XqpD5B3PKzu+J4XsK^nCa+AoJf?tu2%H}z5PE>P=O~d8{Nngj z{1j@k$^`78+mZrm9rBE|mL7q;Z2FJ!4Y^+##lnz-`5g8iWH|LQmxIWn|Koi^8iSGq z93;`>oA4dtwrG^N3^B9POV%RO#Cenj3KR1zZJJ_oQxyHaoK-Qv#AS!`KC;bZ^HS-Y zRYYU-c3uR&Dae|C3H#&mR#<~&Et)TSg08bVCP_ifM3UwOdNbxU>U^DjV;AjP)p}|5X-6gWO@ol)zv7MA>$aM}ntB^P0fv}Ylcc}LC9BgG;Q;ce-vN;5`+^j=MD!w~pSePY>DFsNx} zt_#>qzMb3&4pY}f?f_piMEF1y3w|VVZcGfFXX-5J3ASp*8KV zhb51j7nlAEBvLDKYJs)%j-;Q`h0L3gnNkDC%zr01lULJlpHfe;fVDh(uVfl0FG(yJ=8cc|0i^La`5S?s!fLk`=?d{| z`>$YzWWU8#@RhWg`+?ueeoMJ0sO8qwZWp@pHkD9?ulbjTey>E)#9cR& zxEeq2&?*sN=dI=eZ1fcqWLlfxrf)2Xv979)eb``CxRvu>*O&2;=d7KdP{OZQtHR}i zPUSPdE5ehCP&b|EtE|&uL}EisvRe70llj3(#5SUUTh?MZAlKh%6Y`a-mh zaSqR|9Mv=#A64T}8Gx;-cPdE0vKxP;7o)$)SK_+Sb<}O4T9nN&`m~{OY?jL`)QVST zHx?Zyj5KdTzDn%r8f0hv_J&u;>Zat1aKuF3lP^HX)NyGWkOX>O+yZ0~b4_R{GLJLf zhmZWjt9P+SrVCEk1tRmr_U3yLJ3v6ogJ4QT{VT{w%PDV$`WOj$2ce~`DQV`=8updg zrO-C+NXRGXBA@9~4t*6yy7<7B;@Ng}aE#=M#Uz*{T}RE560F_zg!qj~D15-Ql4{C^M2l&v+kd*&X@Y2Up+623~6iIKx zJi8}g41B`k3D}ERk++Cu@n&o=rC8#D)y5P^mSYYfHh>R$ z*Jmnl0PS?Ck|v|&_G6_7QFluV&;y-7o-7=ryi(&PT&rZ1go%itHtQ6A}12NV*I?Y)7oc+danMlng#HGX5; z^lC4Gcgyl(uHcc$KD%AWHE@#qL@v5r(HBL}H9vz-iu=?Hy&p<4l8tK)E|s|y?ND#5T$@Fx(ApVEX-ZOqBq~f%Li!kZQQkz&_XK2e z#!ja}Vl&6fCISD*Uu%|wr-&CdjaFM!Jgu6bim3is_(xe*_cQZ`g4=jEahF_AJ|1~i zww}5t&_q0CtoCFQuIwdFhj9_F-$stz7Iv6z!g3`IezpV6tnWb<5P zr}TB*UtG-WE~nv^Y_I$i*bdI7^#Ae8vq%U-AMoW78&JOBTfhg@MpW&Yja(L=T09R? z0-?5xk$CAE^8sWcG@~vFJ5lLn>E-wqcoN7eZO71HO* z{hmJHB!%r_3g{*?*?t7`33H1ZAP>7)`MGs_(T}1o(}%LIY=2`=m2L7ay`dI~Nz#67 zcpo}hQ%a`#>QwircijAxEM|^lhGH7$jMXLCRzbwVb%a9PS{Y@0SMj&-yP>|uE^Ddo zWxacHkQQs28+~6huX$3)0o4lHWM7&xhdIS9TrrU|+fgh#&NsI+S0#Tgnf0 zizE7lNsdSGA#ski4%-2wn5{)$gNw@cssYBv{0k}ui<5CxN#>X*9#k;6JyCn*Oul{a zHyKB;&UXd@i$dJe@ec8E$5;QG&9Od#zLZ`x`-S>J!DaK6r+E?i35w@@O-6%aoZvtr zS?(yj5CzJjMUR6o5ar@uzGH9%@;0sX;@HqHSunE&6?mq9(he*B~6Aebhi_(z} zWXPrp8IPPXKLlgQw-TDn3ICn@jA$lo(lhbR#KMFwd<=do@-_5n2X_<@?iQX?6xu|p%(K}tc*N{4$Hp< z*P%A@XrFsXi;UtXMJ5sIMO;{gZ?Wlz7h%sV=0m5jkYW^%(ml&{!}jRrrX9pwwTlx1 zQCzbyas@h3^*cBR=}_MAxq&QHXxtFEQy#Dgg%=ZVZMH&}@vRmCkR01sIIrh;abA|7 zE3fQx^4a#kRg&20tru(Wg*BM^8w>q^8|dV_o;+PXt=8F0lf-;!@2E=Pk}P3GuHeK% zYuTXqN5Rt0UzPK-rnaA`2~8%qZmds@*=E|`6dvYe*x4NEe@nNXmgULT>|m0d161cY zGW&AHCw{x-S-G1?x)3Cm00H^G+f{YvGMTO2jpC$drfuZeF~x>Q6n*GZ{V2MH{}!z! zbBkxQI+0W6oUR1;lkBzfBf?>;nX*Na*$Xe>`=kZ=C9OxC=bXmB0D1&J~JmA;W&VY=>BDl}1DYax+WpJ6Mvp%Cv-jA*0Oj zhPf$evOb%bg!e(#+uP@^4l#1@)d~ip!$;&H{O~_=Non;xIt7QsE@&S2Hpe z4wdIEG<@NXP5+>8;z5afwfFgVqB)vs;Xk1Xsym_t{|aT181rn9UyvMj?vUk3$2wTz zFTp^oGuSdH&ulxYg9~#9^-9t7^bXy8v1Ot}vs^MQI#wMaxfHrsc@gOI&sEe*X`Xc1 z2QbokGl4`K2In*QQDm|M9V3uRYd@5MtTOjOK;%QtCv76SKkd8vI_8-0RmH=~ zqMj<9u!4}c@@H6vf0%3)mf$HS$}tz`hxlAi|4YNDE-pi!JvU5@IN>r^vB4#-%_D1T?7LP7FGaZh=p%V=z@tk~f& z@|!5I?nFHBQuC#-7}I9V7)~m_nlxicWqCx*{64s9Wtd&}y1In{#T|zmhrDjKUT=|Ir9}<1Av7_k`ICI^`phlJsp$G?i6}XZo(xBu78%ajuUD{oAQ- ziU~+*JJnp~^{8bGjc^qjQkeS}g=>d6-)(c$3k0(*S`_O*&aiVp?iwOY2*PAYg`x$y(=iMgNiW-nCuJlph7;mX*X+(0t(|+y??vKX&RkqZ3H&3~qDOqt*o8`Osq1 zRDrwy5B*7@(d(&JF8b|yK^-WeFM6i<4BWO0m)!?_ESC{ep(-nxw(l`v$+ zMxP@=sj9ZqKv=?@mYcx4s6pcmX@lK)gJh;Pd zglIx6tjw@uh|+8o+K9YLEp1%`cgH_6Z9wKl2@D$$Ug&(?YGi}|W6gTxt=C`GcGT6) zQqhm*IaSJ9P`ce^`~V7DC1KGhY<3g*iQ=iVTQvB;@oS8O#O$aX{YGLz$Y1St{HOm7 z^?CfJ_bBCCe2bfh{5ei@0*Lqce7hgGKepS7hMvdr%|{_a*w~ZI{zs@Yls`roF#2I5>e ztUl=^8-y1mJ=1nBT`t|I9Llkh{woCvnn5pCNl7MH)nHi>4a$pu*Mx&>(l<2(fM@^z zdk^^5{|s$0G}EPnH35pSxz9ZYky;t4d}6DDnH5jO0sOq9_-Ur7=q8?4UtjhOJ6cSy zw#LHJGwY+!&Cyw;D%8XO02M^mx@=|2kXTz!ZWDaHB_a8cRwt)tY}JS*?YU*@GRF48 zPL)U9iPBq&-$lQw9OTE+$JI5+TBALhmJ{{+O^u{DlmFc(>TST{~b!L?5N9M#%BDd z?JCX{EY#SOnAN+9_>flLEfmLQ2X#8qHTfIb*3{lBacJ=^s;=lVY)IQ$J6Y!%?bs+) z5BPs+{;ZtqYR9ONwc6g`^x; z9FROa@QHvIuEdA=$JieU{w^@y*_%BEP9_YwDZ(sRDGUS^D!0ZP6iOc6LLAj2OC{R~NW zaYoSLX%;`AkD@{@UBxbAi7G!5st7K}2FVceZ~I=-c2Vb}eLNif*F6CwvGd9Go2KeHZ3UmBoinq9rPAfJvrxY= zHYp>pEXL}wUP2G^wtOo239COW)qaxE%{Oqq%5)&lyT>wz5rLrBEP3yFUo;Et$P9SH zYBODc2D3M7!;nYV&dLFp26q0jCxqkdHTkz>62~Fb&30OV=ACoeAh0LBc3lO!AsRLZgI{wm zI#7Z&NQYg*g92gqJ#3_CuUzk460$?2-(xY;)EL|?5@^f8(}khR0cesS<@h=LIezDU zF{y?3Bv{v~GTMj(vOgR3Eiup;7LfxpbvF#(;&s~VSSZ6m$8THkUDG|_?}7}qe}{dR zP;+P}i6!Cd7Clt8L+oP=YD*X>^-X$TgjcPuJ0BiK7^ZPQi=hK^+^`cNO& z@HOhpca%G#MYjG(S>^$FW@*R4^1fHCf4}L7x)ZH9y;YJr*o*hl>zQ*&wtn)(g90DM|5jC_oY%gkq`-_+#{QA70Q3qWGzKap+)|fz8n1$hf=!Xyojb&s^kkh%N z*uxSxg%Lu$2(f=1c|?%GO}6(*+e%Jzc1!L>M!6qO^z(y(%HtMXwS9GBz}C6}Gm-ZU zzk@Qv?KB=BPlPm_Q^AY`9Z^^yIEr)jA0np+9fg4y8+#3P~mEb_>=j7-8)xipp@h0hO1xVrmMdQtMA z2GkGeUY}JzAMC||?_4@@-H_j{EC{Y}1^pP(c9hbE7vv?Z_US%qC&A*#5qbn!TW*bM zPt)LDfz0|HBCElGfH6cRay`V)R~K~!Ht9TpDL`Jb48e)e75d*3M7V<&GD-1-_|xT- z9P-acbZMznF$5rgndSU9TH#{rRpiFDqKYQcG1Ji*Kol=b59 zyGR=@coGB1*G?yqbE)M=+^D^D`rZV3Khu!C-cJFiOt>7dfKP^{L5PIs-XvHL>4cL5 zax2-#!V3+fBfdSYGIfjVN*9S1$&q1$5<`Q5%0HDBYeHzE7}%l zSzsG&)TAfmdjCO zx=6q&dTY0q9%9y zk!kW3uHHT=O_htLr+HGuzhm!t4~QxtihlDVZ4f-LSlHlD4#f#o%?~3k3Tk!X=NQ?Ct<&Q`Xbo1uDqL=pILQ1zlC^#dJ#*PLJYS#Pp-*Nm;@h@`tIW0#9m! z+rFe4%r4K8gp9y^@6T}zPc1(n#=w3Eye(>*nFyvF{y_IPq*-XOS_j567<&2|9wI$; z)STokUMFuv-7frrVMU_YH{!k_gPiNYw<(9+6Fi?%+Py67SE*dz4`y;S=fH|ft8{yq z-T8S21i5n3lqtog95Q6p6V>+AvgawcXe8XMyDElGPyh)6BZ#&>tsZqGbN{P$3uJfj zV^ci}1-|)`7qtp?=zJXQ6ISP>A;X5?dx*%)C1d3FvYya*lsPorHyynhdpy86zyenR zo_Eh9tb=*lttYx5W=+CL^=NPH`;^nzhv!|X)db2(UAh|i`$HLwDymeD%G$~JmMlfk zpcBYvCwsrqdrUSFx8tj|C8R-O*7@TU5jpOpHtixc>`)*5 z2AwT8$n<1FNLJ7fm|KWD2vwY~9|dKAzv}i2W-IZWO*QrwDcCp+Ur2tStxgQ08l3-* zOrYhRG@{xwemt~7-^s-6m18uqMu-={_sMbaM=(2z*f$dqL4~_|pu%VuZ4P62^v%YH za3uOItv3WJqekU9iOY;Q=|bVMFo%!QkZkL{7{*zSBH?J@de&L^w~$O$kk2CgC)N#@ zE~E;3k97gsh7B_6$3ob-T5b3s_NvNFVmZg`B$zzH$vJF8y~+J%Z#}(*>y5wQj}nx@ zE`d)A*gl5PCV{?-E@B=3wY5I#62HudiDB@eT2Z)W{z;Wl!Ux`~lSHx#uj??8>dlMW zyFz#6VR1yilffIIaRF;V5bs7vlC;`+2KG`iYqg5Bk!&_HLRX44weYwfMJSa%f}b$s zB%f3(xOzC2@?NlI-%B=IX2o zwTtYr;==ERFB-l>cAJnWoBHnkhkrvIE) zj&``XnO=&0p=83SC&V9r&+I1a9Nfzqq0a89X7@1=Xbt=!$df=MfezR5%p^7<`4{*Kv*`U%sHP7Wa9 zjIjY8Gx!Gl&kl!(-xGx9Y?2FcO@BMNkWAI!Qh%hpQTmNWrqLCDr{7?#KS*UNGDGC- zSf1=n$X`)a#Lxao7$o_U#~$2I6mR<=yp(Eh{vF{n%~-FUM5OCz*pNRkw3Rkdg-kug zQ}j(N(}U#)>tr0%u8XiD|{f!ENDAJdxjFB#4*ewuCm~72CyQH}E3N z%yI2JhMqcs#)E5oOVZ@|p8G)l#Pd>grZ)0?4sE0d@B;T9VJz^luoBoNNu+NCLQ$gc zhD0fdr|mAHSHWWm# zkZ8{#eOi`q-ChpEK=3`34%rd2!zUT$8r9}niNHo0+t#4$!V69FF&<&tbVqR55P|v_ zfgW^E_8Az`i;6-DUYv5smF6zmus4J8gCG;ee0^BLQv(86^mZr;!0_E3y= z=krd|36LF(aGxfxdFDa?Xy zPpa);4iO#C7_m5Hp~8Lkd1}-Cd+Z1FM|(^-!K{q|kI3;T5okX}h=Dj6QGIYHtt@Cq z@V!QXv?Zdqb_>0VyiRqA5lqQGqr-&LEEE8i3H{xHUF%=LL2nHBcXz~xaa$x3K~hBy9xzCG=}#xk&)Y)tB>d#kgM&CFxw~J%u=}De_n4; zP!Ey2NEdj*eU;w{en*v^Oyyt0tv^!DFCl{D&+%g^CA&BArSv(kdwhEzQx`tp#{anO ze!fcJYtste8)&YcId2F7x_E$>k3OtC$cwAZaMs$<0M>KKdG^WF5tH-dozsqc_$~C zKk$Q(rZY$QsQu}zAinvY7wl8~b8c&-dC7YR7I{F@Yx#r{Awe2zQcsKT>F}tp#ct}K zX~Uu`${zH5k><(U44yFUXdTm40PJsLDGEH~cCl{rC*5+03t>MxoFP39HMJ}y_lIDN zf1@CRDLP=PNf1~41x-yFtn5ZVDq)>mWNZ~fjt($Bh#dCMFmDMj$z5Qj37lL#B91zq zwqt}nbKPa07Fyx)#Gol8&^uG>da$;?x7z6-1<0whUebf`x5rx~C(xGYm1_xM$zF;V%@yr7=4YoD?}hjwe%5dRjF=(H$K4t!#R7jK2KOkapX z;4k#;MBkv)HT#7uOo%E&@Cmncc9(!lv^zd8_>tUxcq2cLc4!}r@5Dgt-ooF?3U)ds z^hRV`-xPj>8Ze~`axg=BuLXvVDD&TiprQLK)?;ys~hA6DiSGmh*l z;IWyncY}ED>?}tK-xIgZ+LM1CKV-U#zk%qfSI+Apb!j^DLMdldb$Bk+?6cc=2k7#O zzjL26QV)Zld)mbmR~?Cvsd4X4WCIk%kbX|=>Hq@rO9I zJ;gO-RG!_%J;7{MJjLD4x_mgA`xARi{vdY`r+fDc?on>01B#=|5Lod!=1h)vIn}`|)m^RbcaYZxy}RIs9J_&$Gw*2jrQY z-}w9YxN^++N9>cC^CGh471l;khVe6&oG3~69_z5k;o=RJo9GACpIPa`jGJr=E_{wYBhaU=nU9b(!gLEl{hnztuoa_#2L8mGll{(Ie&I_`P<5X-567aKRx~uN5`~3LiAN9_)$Qt$#Mi z6{D*Km4a|eYPAw5;f#`jm`qYVd09lJm@3ePY?}K)vLKh?v^R$ThIM?`EI*JvVtGF( z5c9xx9L>H(QC+`ZKXfG8C1T;q6!5V%W>(JgC z{Il%f-N$)NoDoZgq@H-oZ}6j9Y4XOl(T4Hoh;)qfhJcg=>t$&7!J`{~qvUK-Eg*e>4hyo^I8+(O>XeN--<_hI)W*MPs_8^tpDTm}B;w z*TRp7A~?;mO|zX-EhyZxi&G-lWn!4-k_8$!Th5YTFA&EKdknBa9WULq? z6MVdf^t|H8e(hSuG5o-a3vy9hXqxhO5o|>IX_YW8y8L)R2opDRxFaZ-_;J67q?__u z?iaBNJ#*)zaEZ0i=tbrNyu=jKOKekmtC&$MM0x z5MvJClU|}++8-fKqjkxdi!L#MT|0z(Ss#r!(f#nBbu*&QAw4u3B0|woYMo(MvH40j zLXYD|PAdm<%WapBz=QqD=%>g9^sKH=1QI*0 znHsi;FI1}yH70_T=7QVE`%jw(U8F3@zTd^uI*!39KaH1cW7#Wi z5aqF*kJJctIo1b)1-rP4d+qo}-0QoK@#1+{!^%)Urnl~fkUcCPO`D(rwuV}m6wJP* z^gwc+!#FJx|H9p=cwE@VEj{u;K;@l1(8I^_67~vt?Yx=Y&b*WSUkv#nySU{#^FfO| zXH7L}9`CvuN8-p=RC*}Z;3H4RiB9ti6io$h`C~_a=a2F49C*dM&%e31f@j08+Rfxn z^P>%og6;{g>NH7j3O{Ndk~E37su9Ix(N3j@B9v(T>1-iIcwf<1;3CX9s>(MO+8mVQ z;RQ>3uW;W80(YlyBlw?Up>EDrX_5txe7naCnAdSA?6+1j_aoE-?u`F zqGg32vM_*d=LgvwhbxdDJIEnVBlKJjp^tcTJuI-lINbCO#l1D%?SGpvttEh7B$X>+ zkkOQgW8Y$XXlVJ}#D0cNXpBiOHh_1+@+aH?sl(Qtupe&jSV0W*s&_j<%5b;@Y9-H@ z6!38fKJuMhS6MNs?%OG zj=bTiV?P$YWLM~_6Z+2hJ}56_qn5V+4?({wZ-Bxi`;VVNRf=@>FX58}G|3LFy=f4sC|^JsXaz!c`n45&`11y_3{))E^|PPBz}#nAcp5e8+IL9*zM) zV2)Q1MBl^A_b%+E?ZrSlWUk>FbOmFn@c>zdTRrQ9^(CerB@mua&hGn}VnZ7cE83AD z7Z@&%S73Hns;edf9LVu#KoQ)D-Y5*gCfHvehc_fZR0${zF+zg`J9`MDOhF#S;os1p z`}D{XhQF}DS{`$Z{*&DmY#zqjDIC8mAll8HKzFMKc@wW#zw+ggj~V_L*hpb&Si;^@ zub$nBK25)HGzNcyk-jgAw8UC3@Uk!@w^LVbtSRwmw1YP_z`w(VMN@G5-lLOt&zj-0 zo1SLS9l&R}X`F|?V(vM62Ian3}_K;Vz(Y}D8f{f%?#tR6C(r*BQ$!NV zd5fc>y~sy4O~OJytRqNx+;xN7kAecLK~S&YsDZbih+m{}5MsesJ?oF$z#CCe$Au>)Vvh^d<)?{czBT8ifm2Kz>7MDO=-&~8R>vcmz6ti*!pB^&ET2g2J@Iqs&f zshvhloQt-zb(Fmo!~+rWi-DIX4rLDHOQe#x*<_e7T=M4DHr)j`yN-+;a@)(AX$frDRxkDk^e<)cRqms73q z$#RkOc`}KY<(=wGCC~Y`y4^!6_`e2O`BK34KK0Hs(D49yOJ77FBwVi&tp{JZZ~$kB zb~(L^Xozb$+(kJ|T$5X%-KFYt9(oviNl1R6XM_=Xs9c#^z}qO5nP&K+8|)j5GDcDz#bH?{4M)5h!bBC^zCRpx!LDUL1 z17GL#kj{sZ-0bMHKH8pL3>}xBd^8#LR;&I^Ol6~85N&3))^7MHOHaiF?ZdixLbffi znTLNPX>ktkEvM>n`f#%jk9o(TZ7zK7YwseD{oE1fM6W(>rB%8gQTA2%E?AKprL`V* zj~lCEhf3jQp4^7hv+xmAmuoOMA|QK^-$ zucPQ!!}dURAx(1)CMS5T0!F?Q_@BIlZRg)UOeT8r-S?fK#Pc3ti*2uktwBm13qpsz z`d!%}iB9i5y@LI$lzn`Iv<-6uu+jsXAD|S;Min}eD0*}<0P7?iJDfrMLC~L>4%u#JY1{v#p&n(rYiLG3Cb$j#DSCwbU! z#FWFGghAo#J{IMO0Ewq!PuY9}t;Jokf8l)+Z{qye=_SF?{k3H^k>T~pAeA)X|La8) ziaTVh(l**A#Gd1DdOPOC0Y4_4aBTMwdmrThwh8gU*#mL`MRdyr-9|t01RU$JzCL)1 zY}|YQ1^r$^9>hnZp2UUUI(LOaMEf2`(_pyA2a*|%B%eJOSaQ_Mn4{32Kox<*uq7W? z&s4-^|LqQWsPe$4=AD>q=%D^KTn?f{LyvG7opdgl{4Fl(IF5RO7fjR<4ZsB_SvO!_$nE`()u`~i{1K6tQ-V#R(X_n0=yX@_rf zALD%Qn+Uqke&cr1=QI0_?NGo$&M&57h$TlwR}80eeATh2EKbh3U~Dhvh2qbIYh3Mv zi{vq`bnht|k~;;1xmk+N`u^Yv7uLA8ddCU1ZMl9|1f!;oU_}8&7Y36E_NXI~H~Ew2 z(y>SQk&5RD&V0*5+sF|9`n~?NJ-i<1g3EHqd7lK2!@(C_eZ2yMbZw1%>!hZpX986u zFkMGzyEs-Ifm9duo~y)U312BX}p~;t9|R>qn%sJ~_r=WUqj|m*A8fNV?j7+7F0h zXV%k2=vD=P=6bx#ej^r>G`BmHJwvmFxS<_E9$syjdLIR6Q=GitN9%9!k%4nY6U1H6 ze(hOO8KOzGkK&1LK0QalK>5d zR$JL&&mn#`(!*~=A++&?dCY{WkTiwYJ>5qcBep8AY0VU^{e_GmTJ0V+mICv)z+KS& z@F>rh@b8f@$7$qxw4P-SkcN&TAJKY_y-ne(S`t*LFHYYe zh0&o3)0An(-2*3S0LyXD0^7O7;N>(2!!syFx}sJm zCXeyG>LvV9#)s37iP_9|$JSAPVZAv3rung-$(>~&I5+&teCt@>y1xt9$1-*>2B)%u zEh1rBtVx5{h()%dRt7qPEmggMQ)jQ81_(Df^kXN;aL$_pDb#r`LJrMX&%NdMo6kA^ zEq97vKEK8Oe&7Xul!YziDc{3j1m4L%uN90+;_p<|z@qq@&g>+p@jf22CoS?G9~hz% zcoT9t^b%gHZ>m?1G{$|4uczdreN@0^iL=FC@D*{UK^bg71ZXjk!y>4vHl|N_^~@=J zh0x#_kwh1i9C$(9EBH=sj2^(J`I>+z;Xk=``sjz=vA6O6J*3KfHSkd|%OD2&DJW12 zgFGU2SJlC2ODxW4h>jinl`n;L)vb#?td1x>(O@^}nh7p6v;Fb`r+fhWz=6E9W{^b>9HDm}tK%oQI)0`NUD9 zoC&T4wB2r(ZLiZZK&obE=|_E9^rGmu0(35(W)wq4l?#~>2YdSyzNGEu3xVyff5_op!-zT?^ zG0G2gKO8^_x#-{q&I|@wrb8!#*hWtgze$sIE})_$BkHZ#Lz2zP7w}bLy_2^{XGO%L zqm&?F#{S#1dO@SyB}Nqgwc9-ZrLCg9ke}fAvxO61&2_z@2XEZ-XKhzrnU9>Bm{%O2 zdN!Wd1$91tmG=}WJS63xz&7s9pW!-VV27%?gM_1dmwA@t%ex@FKDvQR3nSDs!*+%- z?Hy|No~h_3G}zCK3=GloWbJ~cs?M^?5iMu+*~aJ>$8WF~@hXR|aY9JgeF|J{YV58i z?oCFp^AwfrS7v*H`ZiG6j7*D!wCI=9P2gr)n;2V=bEZ~^c;fv- z@7Op>;yw?K6`{h2$@=(PrXNLe_&5tiYuT5=CNS>pw&ggn?l_$#IHJ|8Ul5Hj_e`Tn);OvD1~QqT zs2M{kBwkU4QRm3~v#01gsrrh08MgEv4hJxWjNyIvS=B81?i_X<=R3z5oDreRnuqr$ zJ~34#M3cAcbrT;_v^8O5BPw3iiIPjJJgY+cmhp|ECOwepemH^A#wwCO!1{&#aQ8C% z40p4m0fs?4W-W)Uq1`pPhu=s~(hDWf8P=L+q;<^SRL#gi%-d(Rsashsite-|cKYFd z#x@RF-iayTUfgq()xv$^(2rVSyIIv^wAhzT60w;aMLl2qF%Cvkg)qtKRy87tx%x`jHkNu-yYdX-^w4CFJV;jL-uf4Kk*$Mln^*6*Xk7VspPqd zBAPDo(mRBe6OU?c!><#Ysp=Eni$>1|lHQ2S70W0OgzZOEX$`_7^23Y(0d`L&bCf@8 zHx#6An_}T8^>Iu!d?OLK=3J^0mwQ&JL&Up$`jwqUX#tN;X^Kw3wktRYdr%e!#)TLh zO)f#GN|Nr37XCm3**+9;oSEhs!uReQ4Z%VhDE`s~;Wxgj>c0q@0%nvC3Pe!esZ#=L zq`m@Fupj&L!S#Y~2!nES{7)3Oosandz1(&a|D30<*+`qz2YSxe>-)6mxA$9p!0I@H3!e|nn|zs?&UqA{jf`ezm;*{<`hTC?~IuTXKTP? z0}^K!Bt;v|v4Cq{U~|HdOG*=*tC*ZqJGoo%XoXO&HA&~7GdF<(>~-L-(vxwTiO@d6GDIg`ux7Pmr<7XRnuHyv_OlB~Fokl?HcI=!P)-Pa z!`?XVR;I$P%UmgYyVV2w9@I`#e>xHKi+&e<3Hwy*IfH{Qzo5iCPNXX}FsH~ir&L*R zs;a^*7C@IjILc0Ctn8iRSg~?<%W>{=PFk_3zu;|5f1t(_#`PIARnkSRF4{|S*o9s6 zUdm&o8b%V${*)=xg+6+0BkNbD*`aS)6Rhfed)c|{54(LhE?jx5J!Cry*rbX4g38j@ zrWDe+TFF#C9eUwA8k6CnR7{BPA>QFQpnm3pZ`e9Kc&v<^Pz z7>mBl7avMy{>qo^t7NJ1eRr?0Px1{dzsEa@ZWu2U4vCuds)(CKVOln%ts*F|9gz(C#T$+MVdMt&G5uQ8L&L|c1?YqKU6sYa_owdyGGP@OV)%J;@b-1h3FPC~k zpSzvXPzlKd8LH$5OMM|{oP)%H@ru7msj#Ud>m+#eZ~L{y61@7JJW&Vv#LnX)dD?`T zT&TLU$e<@=le@+xzo2KJN9xa|uY6-vxYC1x#%HW0p0JIIhsD9j*(1kAZP=>)RMF2w z_?~A%9_8Lnw(xhxucjF3XV1L`M$+}(*h`xvC;h6`i^YP#+bYhY71*9LdLlRytaw&9 ziWxm(CR8J+?k^Fvkm+(~1P~g1=aAqiQ^llE{IhS7eznLvAW=JASOY<;gM_wl1(ljQ#eg6%9I29}h=A-BV42`f8*%7+8nc?`OxToF&ogzR$S#j}l# zyLsynYkB~;34K9(FEJ6Mc2Tc`J&&)}dd|K{1YLN+eo4Bm{DE_t0zG5EK~p~}hH*Ib z%p>nPAxzx^37k4s$KLbYEu5csJ>+_Fm5leXE|Mzr1T1yRUabL^B^7+(CW}QAE5BvU z(@W3Tv&|SYiWO`g>(`?v*;Q=)1C#8}9LK#V4xOvIdq3wc_r1{=qlfOGXU=G0aI|t5 zGfeh{A?99|f%1E17W>;X5S9{qQ1Kcoh7)nrm-Uoue()EzH+NxgHv0q5Vz&*4!OJ%i z(4p-6db{XIPL-C39?x~W&_aL4?NR>7h~ynPLucyq_=+ExmwB^CqgZDAg9r6lH~A)e z$JtSQt=(kKF}|9S0qu-HNB1esMi8cjq(ut)E>zOq3GOI=qSpu>oC#v^1dAtjFpmqS zkJdB$1eFJoESvzlca^OzSid`#y}&Qg8&3Gv?u7QP*auGD>fX`wZV@U8k#9gPXRbwP z`Mx^g92O7OIQlAN3Lbi}Gk6#J>b`bqFn)D+w?vsduwy{Hhpwf2FDAh`S}QXu&)r#F zHDcClhe|~FCEx33mO{G&b5C$X9APYl<3Xb+2OlJiuh@JP5P*y`Xt5lA29QGKH`V7i8_u_A{@|!N+>A% z3$EfQOpwZMQ6Db#%%n(x&~c($7)4rAXcTl%4;{M9e?hmB|HOA^8q4kG?_j;zrOLa* zLFgP4LolhDW}*~a&;?WBZGxA|4&iCi&NFj@M)I{2a{^mxvcdvChmJYCf%k@~x?h_o zWR1wV^8z>rc9D6OT!TxWg?!@gnr8%eNu?Jw1V)t8DqH!L)QB^W`M$JgCqD5HF|3bm z<)tuN4(sr?v3KrgbNe~Qa&g?t-1EE2x#L{m(pCN-)k||LUyn9;;Uuq<@q@}1+4nNJ zGaq=nSn?FP}-yi>ffB$CvhK=8T zx9R)MKm7R9&%gY-<+tCrZri?N=dRs*6dHrY;R!?%nL?$}8B7+N!{zY>LXlV^4GInk4GWKmjEatljf+o6OiE5kO-s+n z%*xKm&C4$+EGjN3Ei136tg5c5t*dWnY-(<4ZENr7?CS36?du;H9J)L_GCDRsabo;a^-nuo;uJD4W4|n>Ky_{bt!5e*EdDpJk)?b<39DWYgHXO*W4mJ7p8uy+<|^*-&Itk&Q(* z7ujI`n9QG}`PXdzKg0QRHnP!JTG`mzJ2<(xx_f&0_yvHWa1;hdB-5B|opJ)949PwXg{PU21oKkj7**Rqgm7P>}RM}YA1eHUSE~F|9#;nzFV=t?=WC#Svo+}PtJTEolU20&@k-XhXa#raa=Gx?V437q ze_6=;|F(Y&{}}!;{A2jX@Q>ji!#{?vHyHhC_#`uYk{Lc$`Ub65`z1fA@h@7e3#h+S z5AM0y03W^9fVnzdPrP}ho_c4Zfq8$Vj{Ug5O1RQiE_wUk_HTpczYLzlk5xX>)f(TV zr**ys4;uVx?>75)-fjyVy3qljnCZgIOtcZ^E;rE@`|CJQda6Y)>nnw?|J&B;j1H~U z%M7(LLzT=>?Jap#>z(kl!6*MwvrqN?4&T=KKEK}U{ov7wPW1K5t;G5MCdOhn*xp29bc9x*T4JTjm3dKS%(y4OyPfO?1f zpc8$axa-|*)Va=P*8Pq~{=@2e*5iU&=Cl8{kM+g}|1hl8*}1G$%MA7I{8ue*kg(@=Pjq(?u64B2Znd|t?>02C7E2rGkFx9OkN?{~)|(vs*zj*d zjT`=LqYHPX!#Q+$&?R<$$|mp1lzrpCuuoriA9B2-n>f?fL7#1DW6f2z(C+0oQ5Mr1 zD3AWzJ~aGkxVTnt>-@3K1^c?iiTSM8L41GQK5FKcVZr4|$HwkqzrOZ<)L3f|X}YD8 ze!ZrhdaJmVG@sc_yqDBOTKI4K&|rMvL!BdZ_cA>Aub)aV>J1{r@ z+uk=B?SI#7rtzW4%4wy`(&zq!neWtHZO*_0gM_wQR)q~$J!|VGpl#(Nh~E4m_)x|G zd?cw4HXhRpn~dmzPlt3Pul~2aZ8nsD+hVHzw$;LJ>9Voi%$z!SXjzBf{=hV$e$Fnh z>bh5D@sxjK*0_Ir(x`uT%&>od_>li#@L<5Ocpz{@*bf=~Z+p|KzwdRMvD&j*7vUW%2K@R*RZY@oC zWEB&-V3{JgW0}R8v(BU5vMD6pv@OQZ+LdB&IFzApIF%!>yZqNZ=~Le^J%3QX@5R}R zO&_%EssPh~+z+ON_*D~5$TO25{*p-)P4?a(+&4?b+%r!{-nGnx-?7ey&fDgI=k0R? z=N$j*fKtu9K!u4aP;PGxlz75`Qh(S}?^kRh3yhzq?p9+|M% z8=t(`k@)xfm%;QrP$4svfncA@eHkAr{DW631CyRsLGvF~A*$|IpsZ zo9@(Nx^CB!2WM*-W7n&B(^o4*H?HIb-R+EzTB=V@SguY^So*sG<^MKRI{eE};Z6Hk z{F!|^^g7kb**pgi+cae$4%hkhpn*cg)UUny+M52?aS2OnSRFD zXcudyy@@klSR`CZ$&G!Qp8ogy(@^z)7^*;&4>ew*H}yU-FPr?*pSA@QEOkT67cZl# z=O#!ES4Sv4qy3E0zHatRV;g%ey_Wqbwl4N@a$)@P-|b%pv-3dJ9|lk8TD2$neH}=) z|9eHQwECnx@Al7mGz2ZYGmS32K80@>AEkB=3@}DIyV+N3WV>%tBmH4~W9Y;9`ozB- zQ1O2lDm)--H6EmQ^&b4!&7R>eI=vDe5BjGqOhU77%s?x~uV7jRhDm*0{q(WcZr0VZ zHu~+vCh9_BlVl;WIr{$JO=ge-s?AjXG*r5SKi0Yt-Zr{%R@>c!pZ0;GAB+dY-J12v zyK*(4W^f$U-gTKU*xE-OZ|q{uA(mmzh&^n6j zYLpqO`^e*k-Gr+t9k?4&ZTQ;}ZH(KI?fhGRH=yd0+~-;g6`;n>YOU7M=WUBU{CTef zZehZiaDC1qWb~d*de05lvewCf#)eT;SIrQ9u&5t9meGTmij(dC;T_l;p&gXj&`#Ek zzZ+0}Y0sxR3+2x>wpJe+>^xUHYy%z*+d^*KGNz6%nn(2BvB_$=;a*-p71&rkhUzT5 zj2y@qK#U~xAtoYw5L3b3=&RCh!i=<=cJ=S}xkhKtTAjJ_r&=4!w=LGrPx>w0ZeKI@ zn^-ht_AQx5wcN4Gs=eV^Ry75wFBpfkr;UJn;)cM35d+}ipnk}hs1H6N=)=e&{O#6i zb$5SkFjxB6U}g5Q%iQwrq_O$reI023QzK66Bg^QTJC0f9v)(1SSAA+yuJ|^`jQe(k zj`;RShW+~aL;i!DA@C4;5Pq38i2mDsXwcvFq0#i*>ozl;2O|cW(|6Tv2cGI8T31cE zwM({9W%pduvu?WhaJj4|&{+Nf_AWi+sxG7A0My=yYq z`L5aI%#(h-vop7q)Q6sEIJLboK-I2Va>^b%hG#6=C&k{e%MQ8aP$<0NSjL`ls-j+w^b4Y*0~M(m{D-|kI|-u9QBdPiY z*E$n?$2KeAj(xWOykoZCyz}2~xnJdniTnG0?_ND~qT$m;oif1CJ_FG6i~gjC7QfY_ zF<10>#ODSQ)Dy!{=(15nfXw6f$TY_1p?R$LL(4eOL+g0Y2ez{86aH>MzVc3>K<6}& zZ*C0aIC%qkARJH>zny`fNMD3BR)WrhL}7AOg1zb}D? zt(G8@pB7>BmI{cK3)!@$yQ!?M+p#i3sCev#ICS#5AZGfSFlG9hIB$9^IDdLDJb$YH zZ}cyN?rEUV!st&!krxIi4PbpJgM_>)g(p5MLFXqK|yn&lBqS5Oi zA(Jzr=$RQ&>dcj(+?k>9ysKT2c{3f6xnCVnpt2Jv`nMrZW+?GO17&{9kL7_uugjtF z&&!e7%ca=T2gSs?dxiA2`D{+#&1B)o^{C*<8EN#jtK#(Q!=X9XyCZY1w?yS!Z~7a_ z3_Jcb6v+(vGDE31>W@2!j}-yZ*OidC7nShL#}(+}hvoR{g;GlMog!BEt!%;N8;LCR6t&7f@t%=UM`L+FTgR?hK=7s!R;X_-i@{_!&3XFMK4NHGo zjVxHI##Sy?6C3VTFxuxzc>Ob(;_=I|q1QUXVsAA?WZbTa&b(bNt1LS6*4G9U$_&N- zHWWB}$#!qVr%G?x{_iV#TN4nqQVU6aR*%SAZorg2Y$DVwG|`%GRUf`6*=lI{OKf_HU(5vvX0r031> ztS4>g!liCP`JGNu({ux^cc6?j)|@MvDNPEV%Z`n|ml>OSH!~*f&fn?ZhEsnUivBQo z!q=)ntfaKN-|XxWVt> z-V}C3&x+f#Z%7)yKA`yg_CF0}mWDv3v&+XiC*L4E?svGL+T_^s?L${djJD}{w8-e9jQ^>~rF;rLb5OOfQA2}}W z!AuH!s8ga|;iRN5>WZWsN4in{@J+xnoTj zd1No{e&C$YIOmyHbv>Y>XcE?#HU{mCz6>1*8i0-nWDZ^*VVu{`8sqm%M+E~RUmZ}Y zwhgE-JPA}<8-8f8v3%KSZTn!<+UEM4iSOtm3rhD>+u)`J=j6)Up!~w?ewFD{{*5u? z{_Vjd0lk9DfrFeu=pXz0Fl&%}nLWfEVh;(vI-p!;s4_b7xyD-eb*rV}@}RlFjaxca zV~>m=JufU6O;7B?Di>T*3U7Pnr`-UR$4q zrakM>)82Kc>3}-qG)xxat6Qtn{Ow(n@!_RGt-VusPap4pu5Qr$UeCSivpK5ZwKXI8 znWZ#h$ue5FV42LkYn4f!v&qHXwkts2vM)m1bSj3)W&@pdFNMr{m4aveWchz}?;0=t z`n+3f>&&eK+XkK~ooRW0(Wn|Qaw`DL;7RXHDB&w6e8E$b5XO>eG~t110&2lL1$NIe z4Sd%+BTzOQ|2y`Xes`R*eDAns`P}iy_L2P?{@Px(YX5ZW>Yi_h9v|D?_U`<-8sL&) z0if@k1n32Zt?A+TZ}jN26@5PLnSm7k#3&TJY#iaYWE$o3$UMgDk!39Cp>?e1L)$oy zhxT#q51r!OA3A?^i^B)M8F{pObH|%gduxFU=L!H#y(HkGZ5VLTiw|f*sUNj)n0MM# z=xZI8|EeC>`=!3X^M#?%0I)z$zx{==*zLKg*!8)&#O1k#)cKjUEL*A5GrOR#4ahk0 zJCLca0Av_m0#a<8fHW5{kmW`EobAthmj#PhO+zI=OTgtVN07@ONSSr_dHmM9^q{VJ zN@UMGC82kolHNB@&Fh_~m-gOdR`yPDt9!-;U)Mi|e+>T^{x3IV$_%M8LxxKrkmE%F zas#;Ub75htS*WCEDcIcQSW?-8Fh<>d5wGz!E+0A!?gk5vo(1BZw_~BcOtl?Q!$?$}r z?DC+r>~dF7>2TXuCNuo@ry={_hI|)4pu`&kl=?H)O2LvhrSO=S#hA3G1%!g7EONzS z607lUgrIXy6g)7?iW|Ak${wBMm5dIGOGdkbN=BQ5i$@zmzAhl^HP1gA|`hUQO~ zhUZTg$tnoXpZc1BY?&eV;?X}1xiG{VU1nFaq59fVdK+sA(Ec!_!I{85p zA?tPxx$H_Yqp2^8*VB|B9;t{3ohk}Vm?;R)oym>Joym^KyPEZt{f{A6X2`R#1Ik=M zvi%>rRs$luuk&HOX$TO%XoiL_x1rhY<@E%1H42j+FN7v*KUANz4HRIqRv5k5NtO&{q&m2@@}8fvPkT?Hkq%gH&ssn8Vh z4RKP;Epc+z&EUA~+0fYR8(-7^G8Ea^0F^FoA8TFx-!{4ahmdu7UD%GqX5wIQ z4RwN3!Jc7MhR@JzbFT`D^QHy4c~`$CAorBap!tVE3n;a<{8Z!U^sdnvw9@YC|9HR? ze1FP6@a7#a%9RE0;J!P)DGfIQ3X85lYEmyF+9P_=1N?UUIIWd2N$CikB==-rVK){{ za4HM0d`&=}%ut|t1Sl}p0xE3HKGr$dy>4-IecI#fxj63Oar3r2cyiH;I<)K?)VAQ4 zRCzm~AZG?r9XA1Ol?=oBm;s4gd^Y{#%06+ zZHPEXzswzA42SnKhtv9K!+HH*6Oe!USD;Ai2vBUSwN`7Z|GL%2`0;>^@!X8H$<%!- zuc0UQ_>Py(g4!kb=;FJejEq~}MKLoz)j^ZK&73j+PU;AxhdhGmC6Ca0D5Jt|>S$ya zZ7iwtYXS;ohGOl*K)I><`$lW6=iL@s_pX>$g;n4KHcwb-pri zt^a6_D1T$e$a!Wjjelep8*<+^l|OHvL%-!vM7-fthPm!qfxPBX1(&@xFxh(qHiM{w z&ETtG*Qk|W6HtEcXP{c|z{?K(y|<^8wvRqMf2M0y+qhxP(4+jbB{KVs6+QmBr8s2S zGLpAwnMk{5m5!gc$wtlD<-u+{7C>&f6b8y(pMaa*vI2?%Zoy@tzbc?g`NucS`r8&p zm3|ywRFvypQB!GH(=n|8Og*vz6L{P^V@mLfF^~JyB$z7O`LPeo;^7Mx$>94|ss8tD z)BWx`Wcb{5&hVDKSG@0nGQIBl$qLN)n%3&h|M0j^`MWE3<$mmadFDXlM-9~qK;JYA z&~u9ebiqL%_3)fG`V8`l0U!O$Pzrrw6zach65+FC7UlKGGRE_fb&SVDyIA*!4zX?z zUE#xpk{-*Ew;a{6SC?Bc>G*z>Ji$<}4hGP(L(T5Fa!AT#r@yNHA zXy8}6EZ-G<9_Xc^!2N}>$nAxx*yXvo#QC|UEbBk+9;A-X9A!CwRoAX;S~u`y`-YbH zCw{90ln-VBO3JZ-lCBg`v0?$|U5S92F9J}927J1R_WG!WcmHsS=<-gN?DS5b;`r8( z>hRW>X8+cdZuiEFZu`bkmNmoXjqO(j#2@+vNKiTe#9z7qM4MRwv38z7f-4M2@FIVX z^XI>dgodw5QAy8vr0mCZX7Lh1Q27uOQu6>6Q}+OsT>k)_RsR4}RQCW|QTG5>Uw4Pt zR69#)sl7^XtNGIYG5llrzupihGbG9kNisvcKmUES%n&Ry2#DE_8I0m3;va_K+6U-p z+4KKl$o|7n{{UNA{{YueH&1G+yH0Jbonm}>K!VJWC^IBnQUhYlEP+HjcOcaT0;GY6 zK#D*2Ln1WvRWvf;MG!vg36EB^MB`RIAV}*Lu~Cf+nB=AfYw{`jR9wZlp1#iJ0XNn8LdI#ITloxTLmw z_`LRegsQe1)cUq7tcKRh+=kX3UVU3TzpnjD1Css^L!y~EkZJ1-mp_8A*5ptG88Kn>Tg4(;Zkd|A-_>NgpPUj6uWycjpZO0I&wxfq%*U>7d z?Q9f&d4C#GWQJs!Az5a~wsisuTzr9IFC!PyH!}zT`#Kct`=4Id}%=PpN9Q^8dA*6fE-&# zpvc7=DD^@BWqzc!QZV;T2|V~k5hivyhmdwZm6m@qnp-(35jPKU!n*sIiG4k+yuMCu zWnZ(Ps<%#D)mtg9>MQ$-{>P9aGo+cB0(rI$K#6SsFZY6duJ9$iuLxwVmct}Z%g~Vz zi||SFIkcRsiR_BuaA8xID7d?Y8#B@7sqRC4w1-a9zIwu zOuk$yF1%bUDZ5+{R5p|=D?6zCivv>rZAg_FGR%yDLR(v)+|A=tm1p3GYH#$bT7SyZ zItb@sJyLR~787%|l#q2fmsZx1!fC9H7IqZ}2M^^*<3_TBvPZIlOGYwer3IG`r+!6$ z8q!q$FsK4qrba-qoox4Zb6czS^nYLLjdp)a-~c{iI7(Gyj;%)TN@X>%5{ zp*)G-nG-1=*1WN3zKUcZBe5m#C zdDGwpectScdDHn`&{zAaPw(YkAHVw}{)p>WKw*SXxapx~QOrP@7Ul zX$#M14Dd6#V~q5WNm^#g6-I_^_fIMs=f;0|K$^^up&}1t$P9&Mx}U2YP2bl$*}Q6T zaeUhC?)qTF*L7~j13r1poz*w)8`d}oPA%<56lS(ys$=U2t&(zbAETH#LMoDu5lfOr ziDe}tjJ(oeW=6@#mjpNFLb~ATepu=-+ zjP`4w(5eZ)l-$dZg2Y~URY*Ikh24njA=Xicu=V00Y-7S8rln+nTwT#mEh!)T(tvcC zA@jUEkR>yeS!jKzv)5Z~wKsg+=U{Yi(pB&J9T%Ii2kzjW1rJ*Nyk~IXtann%v|nDt zSU?4T2+~CALv*5hNxg`EVJ~7Zt_MC`)Q#<}?Zh`#cYkR>#*rU^ESVu!R|TlDQh(cM ztNFakMr&crPW}3vwf^`6N9Vq$uCSJ64_d`TkTmN)C?RGZlq0_3RYsfkt;bA&TM^^< zcEkjy4Jq5>QCHGhP*=*Eks}Q)UmB1pGvui50}A!deyp`tS#7gC|7ghK-0V%G^W%#a zX8q6XKrJgyn5yS4?7S!Lp$UtwNg?xYIow%~QqomW4SLGI0Xc3tsbcR+9yC$rHUyrJUUr(v{(tzBf zKL7=4dp}njA6{uUK6rop(yqyS8j1r?^>y3cm^#&bvVs)9wGT!rOQ1kcc z`O~`xpIkiG_D0{R=Ci45F<=EtduKt3TCw1ZpIC%4A6mu|7OYZ`cWpBv^A0%yb1r#) zbD%umIlp}0IjHOrBa52rJI~4a(tx64-vd<_w?6CA{OQ`weLoC6R@&eGMpL!+vw>+b zVCtR*7{j988-JOIAR%%M$F1`&4sm zqZ}J-`M%;Wa1sHUz6?MMf&ZvYfWOtD`M=U*d951o zJYE_JTwj<9onKgpot|5Z9iQ7t9G*MMa*^0S_mt)H#VvRJux@;2)4HzJ{ogfwI=8(D zP(GRhD5*vON(Mqe#fA>3x?_P0eo#OI=KDz#?fFp~@A_Vc^vC^!!&^hD{aX{7-CHx- zA9oKnZ>(k6(XHP&(XHONesLp%8`pI`*tD+x(}7JzfWo#E;Mk#X;P^QKa6+2~oHoG# zXKlfNva2_6-pdV8^K$|;0__1!s4bukvj%kGR)9Xj^0Oh*^0P70;=lui@DjyLe-07l zJPQcRdm0d*|1=;y|7l>Jtg`&4;M)9Wkk-5c{9X;FA4~g8NyG<0iiNOkf9+EX<-Y**m(jm zE>Iu}L41+)ENI?HP)f`ve+X_!t~p{1}`jE5GMI;4_ZEFgK=|GtfC!l(OlAl%FaTmKtbqhOcObz948()*K(rt0V+bVZ z4Idq|LMNv_!*g<#f~WrlE>A>2S8h%>hWlI`4p6qf)X*%J#S_%ha_z~Z-3WYj8`nDU&$%6W_y z7cavi%a21NSPt(#2z40W{B3;1(MCpfehO}eka8T$o52h z&h#a}O9k^*;}IcG!?5uWMYN2&3|`?aLU6@(Y+UtKY*x)QzN}`7&|EW2X{+gDv{iSo z+G?8FZ8i1m*4i)WPeb&-4YB$za`UI?l8RAMWbH69rGAK1P(MJat?!|?)VHx(>KZvM^)=j<`pPd1i2Ao7N@j@H zzXW8Mn*h0Xc0i$Q|1a_azbo>`zAS*yALk&1i)q;Kxp->g)ev^>2v1PaM-Qp*q{cV4 z)3Te|=oL-P%%;XVPE%tQuc@(&*VI(Z|FZrx#GKp%M9U0``r1I2xiL^+Zvzy|cJDH8 z|JP*!$Y-Tc^1~t|=WZTWdOd}lFdog!>67xx+qjbY24+-CEiUoEO?!%uQ%7~)OvNA>WZRuYa5WROZ5Gymp$P6j^nn13F z0Z`&-@u|YY@okkC=y|no;G%g+vcXLbC?MVHN$7kjj2(a8++mP<79j^l!s%AWr=Z zkZEuMD7Lz^R^@E?w$9c3d6T>C!wxTpJH6gsS9?IX%Pj%?j#_wBZ8JKWWA*#@dWskPRJ8YjKi zjn2kT+T6?*`@GC=jkAWmjTlo^sWP67o+N^8}&s&5+Y)Sq?QYdjcsR=ah>)?nhMty}N3Gpb?C zlT|Y48=BbzPKs@ZTmn z@X^4^fKg11-x#~bcOs(NcQUieXS${`aICWe+}lz0B>_n?L#oV>r+H|t#_aG)o9V&D zVZ%K$b2rzm-?$f4iZ;_eO8wmjop5+XSSa-U*aw?S0#5D!1IHxBdD}<*lO+ zb&mDCFwty!WoccpYUh*l(hd{%+?FYQW+P=ivW>yrw@-oIanAOe^UU+U4bJzzjm!6* zW9IqHNpgMWV{?4(WM}){DbMfoN0Pz ztXKKL!XfXym4CuJ3tY%+a~Aixg@h#Aw-FDl69Vqrr+VLY%>do?&h)$sm4(ajyvxY& zyeCQr-H%EG-A_sVl7I~P?|{OyTi!HX`f*|S^u~$%M}O*luC~AVovun1U~H5Jm^dc_ zMuDLpjc~j-#tg~}6Cvt}S!m#rMU?kLn>f!0jtTCI?ul-TzDcf&&_vfoY@+J}YJ%GX ze!Sbm;J7ad$dUi{bJdwmk9*IqpSrVcL*KKLzcs(pI8p`ZUC0CUO%efJmry`Afd5Gk zLw%=DMXwrgz%PtMKF>^pJf2vFx;?fHcUg9da9(zga9Z|}1&(lhjFd$RcYMqY`;veH z`Hd^B2iHwcf4{E(sr+{>@6K(n2DFal0h;OwfQCs3py9*=G<_(5799QY5)S-Mm+Jjm zpXt78#C2IQFKTYV+2DYW>!RX8qQlX7$#YX8G1#mN(7fZ2zdzh`KA&$^g|AC zY-c>6cr+MLRN(+8bx6P&GX!wX-XBnL^8{4AU1SyqKoe{WXhZ*X|6qWy0F065pUseF zpDmH5pKWB>qf9(@13`(|C)#~;4Q26kdp5_t2KB_f^cjeK>^~Iy06ZLX7d93%hnV=w{xSUD zWZ3Zoz&pGXV9N}29c_STYzhdh909(A55RUq0u&J|G4HCt@@`y-y z<(`!I$|GA=apEh_nuJ%NmV{Scz41@|2I3zD4#nSxj>O$YjK|I*uf+XT0AFU{%M2Wu zfqh8}5E+>OQcHV4V($eAUEu)Bn*@*{+>dB%&|5Gq>XnZmVHFgXwCb6dyy}^iyb3Co zRhPW#)t>a+uP^CQ;6UO%*yY6A$kBvr=!wLsF9;Cq*bE3{2CmG&yQB$7jsCccu?0fy zJb@q=C?Eh407d}&BLO9Si=afk^5-V5c!#8{fa23uKv`)kUL|QO-VLcMKHaIyfqg0W zVS_2Rkt501FyqM+*s+um+-T}w1qfvZq0GRO8HCyzK&YVs5Mf~rMB2Fn;Vywd5C{kG z{FrMrg!mnn82JjqPF(Q~N_*}doAJy$Bjc%0amEwB+VsZ(UFi$Z{Ntr$Hn$@MQ*xmO2n&pbx}YSOT$jEWi156V7oH+e9pjWUqi`~?Bx9p3}uBRc@0 z%n+)n3d9*+0+KCFfmC~YAk`K0J{bgEjrYSpjexKoi80c9Y)bSk5+`*AEzOxi#^g^R z)APsCMfqcx`uq`WZ+<_qKfjaGpWj05&#$NT71Vq|e;On*gGgow*E|m-7-<7(mc~G) zgUwo&tJ|9lP{8w4KlD;OgmymyEx0YAgkNQ`lE+BGoFQCTVLvvps27)8+(W1=>LRum zwUK*^8fm>nwe;Si3Pw+H*%t&zWCp3sAeI@TG*y6PBTXRF$^gi5uza8A=Dd>Yt>lF?mS%Iq#J zVs(`ju)0hCs{b)aWQG_mB_P#E1IV`01M(fs-WIysKQHq3SSs`nyq60>&!!=nS7Hgl zgQ2v3Nl9jOvOKW@kkqyR#xsRyL=zBI^qRq%uR$zYTF( z=YVwM3qYQ=&RUV9$*WR#>!)QtE)U8AyyuF+@T=Ky`baV^s3)2d-yF=$suJ*ui`hYy z1+3WWJXU5+4!f*6o6}mI!ELWjUKmA~uFazE&md?;-o10!iqB*oQ6(KAbeIK?>vQB^uOqArD(QlG>t ztV`rK)Wr*0>f-pVb+P=`+E{*D&0hrs?b!6EAw=mIkfePY$T2<-6x&>USK+MtyxQIP zVJ*n=PQ8!gOtm*;qy$Xq&P9ov(g`sY3Dk_dNM=!L5U(mu7}O9YjBAV#<}`+hsv1K@ zO^u<#=Eg8#OTDbRzv@pzh|CbCqyQvqp91oXm4Q;53$LqPw4c(cqx+u+8cGe4o?B>3%z#p$<2{_9h=fO%0e|RE~(qD8i=1 z<`VOQ(x?@z1Xd$4R@8=zjcLQi<+NcEYFqKKjm^Z!#%6MOW7A&+gvbnGGDEELAt39L z0#ItI__o&W)YBHbQwzNgCvT2fsE-fZSoQR|_%wEaaAi&Y+?+aSSYjnIDXavW%g-a0 zkuz!asC0faA|t99o|)AI&#G=jWi&TnlA0T^@qZl}Gh%b#>NP{Pp(|DvZ6l6eRsHUm{4O7MYHL79R3kJ&T!YM}mt#sWC8TO- zF}Ds<5>W>(&8P*JRaQev+p7?H?bXPvwwk{R2;2T05Fs-ptLy^`FYW(OV}9UytGWE* zpy}?}SzY<@+lJ@6Z&;YtPuY1EkGY^ShCG?EeLg`!UH);bHgE>630?@T$Cdlnvnu== z!^-`d(#m|B%S(M*x=X+{-KCK7uCl)h2$vb6WQKH=JwU0>o;QtVyOw(lx80uB`RU4C zL%D$kbETF$Rz?-KY}~T1JHQjBTxcQV?qco;D4ICvlM3q($o1_*6?*qG3cUtG3P3}t z`Jl_Cd7dNPxjsDuxqfZ^`F|Alo&2$5_2S<8HwI_Q-k9lR zzB09qSvB>RtePMgE2d=3iYYhXnYk47*e2X{$tlX|kyo_iBWSea5>XZ>%5ga)((!Sk zZ2!*>b9_?umjMYfL&4#1UpJjtKY!)tb;A$$Z0KA)x2680*1@t*1}d3r1_rTf`u5T_ zeQ(y9J_7$ip9pzv$n;(@;k!Mz6#wymCpbKH4Yq&k6KwYs7HsznA7uNCDN8K1eI6~b zeV!uztALap8$MU=UUz+9)4I_co7Q!$9Qm%{qw4lDK=WuOprsZIXcB9oIdK|>^>L~ZQh%atln9ZE#Em%EZ(_N%-?}1X7BvTX7Ax-)Ax9i$$RQwHdD23 z-EhzPbsbY1*42LAw!RoR{9`(xxH}p+c}xPFI?n`7>)?R1=1@S%-WxdY<_28wb_6c^ z+XC8PD?krw0T{u}0W-KMV1+ON>=4F)6T%2^M;HR$2m>GxZUDglvXRzx>pDl)udBWJ z&AI~M*Y#cSfft_OD@L>jUw+xO>nC%)RsgD=%HZ&PxYy^11}L%L4sn-F@GztD9c8uJFOSbt%C28zO)$ zn}xvktu$cQJ~SYAECASl&I354?gS`YvH=tgEPzwSCcrr}BS6K%08q2k12n9304?iF zfR2qepl_oE7};C|Ol>p(3tM%-)o#l z0fcJ+5a@>nybu(?g~a~sz~O(g3le^^jS+sbNs~S1%PJFova1(D0 zx?SNv^PJ`{dC%|`{APLg{BLsqQ~wzLZ6M1Gc$on$GoUZ30YrUWfNW*~5N%xmjBMY8 z`k(+`I0bMcvOhbr1)uDtqBXl{@tSR_c+DUqkW#Na_L8hX6c$kpX9B}h~%ZmxcITxq$9yK0J@_WK=6PAhyWtsk7j-Hpb0-Z z3xYm4gok`^NDg`Lm>crWsVwBJb7Sxum!9BN_tBsyUK2qN{HCOL0kDS#$3kYonD%s{)K1aL2D0zzXWKwxDHa2-4WnmYu*`QbmokjxK0WZ_$PUhr#| zkg!#kgs>Httgx4E#bGbp>q4Jq;(FMB zN@n;0Aj=E{nSrTx4iH|_0HnqSfYizw5IeX5T(`hAst@)Z7Dj&sAqZahutJ`BO2eOc z#6&*!Op9Cs6+}Gps)~5%(-!{FcR1{B;8fTw^jhc?{CfB(VkTk$H51u~y80gj=rRLU zek(wd891tE0IALeAkVR?a47NyWIA#ZF%vnAx*FAwo{s6nOvSci|8oFCW}wLoR7VwvG`R#sTbTk;4)*WD-9W2SFW6IdAn_3e&AyMONavv3$eRHnvDX9Q<7NW0 z;;w>A;-(?>ag)&AxC!`V>=1e~wg)>I*N(dq--N%C(D)YtOqqc$Gf+<*2E?i-fe0NH zAl5_^h_^QS81G>HD%Q>IS%g=>BS`?}9v4NwMJ0)5Fsz6xaB=(?G%|4nmXdTCo}V;? zs7e|@wkP$Y#*;d+6G<)j@uYgfcycvyEV+vGp95IiHUkWqfpPK>5TvRIMC&L4i6$CA zinZRm6i4%y$!?Cz@m}5wk^b=8K}gaJm%tyV&?5%1{DfXqNJ2;=~@zV@9 zn+K_0Zg&y`0!Pp|S_tB_MqFfO9X=(qmXM!WO{~tWB6Ve!lP_nM zP%mc|%F3f%&dmLb0JhA)l>Z&zo;U!6t0@2px~GA36O|9y)|xB1j{3{FZszxMyc}+& z`}<7A!?2gbG3;(JDWsXhNT{Ll(<{g!*`?(8++uQ8ZV{y{w~*SJlTRDW$)OMCWHJVG z(q*MF|8oFGW?;z-{1f|uNVTItvhGPB%T(!Yp7n+2g^rgV7P%SSDe|(sp6%l`mI6ih z#h_Vjp@iUC5iPEi!^tRMh;wsjQTbW))Pf8~Q9(MRz95a+Uy#h|FGynb=O_HxK;C}} z;B4Ituw@3}33(t|?J$t4dmP9yJ@dNI=KPaVCym8&cb(g1?q*X3UY?gT!KkhzB%?7J zFRcir#1@E{=^0#pUNS4BD3O&=9M8@zj%8OB$8frfqd2{PR20eSEBvbf?$+=BG>A{^ z17g(<0_nO6pYlylu9n!GTds6Ef3Mn2{YI6O>3FfHM_+CLqBR{(t4YL4ila#}Ss}Ev zL=h)1nkOy^=SG!yiGC***5wF5ww?vW2g zrpI4Y*qnS=<8p; zt>g=nD!IafN{*@vDkTuqV2 z)R2R+tBJu?vf8W2(vC`+xU-xt?)r}be3^kK{~Hi?VmFYYwin3Pm497sdSJQE=D@vH zn*-Oojn9s@*%)*;xHvUbdx6W!0!X<j)>|J0ubzRVDLVkeNUw)=CD?w*xuQ@MxD7Q5$q%yvx; z7@i*Nw$f{Bb8@I|^av=d@g<~JfVr_Hh|u7COaeEHkVQ-&3DV^i36Q-J# z!#37=15Vy4-R|hfb}xpw*-ye~07qkMV5#6LY_@MDBhR}kDA&6>DaWg(INPhXHOr@Z zIMc6WDBG{-KL?0qh9LQ0fYcMe0LABjUa8mqVWIcJx7TM6ZWy_J{yvPX&#*kDehf`$!^`vN$%Yf ziJ+$OWKjKB%6|%wZv74jm;VvSQv6}9Qu+JG?P?otP3>Gac1Q8so(0V<&G(HCR@^mH z&AM%F5liuCWn2{NJP{Y|JeeQmG}RdC zG(8#NGJG}Cb>M2$e+mfx{aYYz-zK0y;oH^v6YK9^-nnl4-qv-!56^txysW*WYS~yJ z|B<SnLxy+_^4txHT*OPXVDaL+YLlpUUOGS?>B}-Ne+Ub$!e7>sy|y{9OG~XK%qv zgVQO`4Yebm8CeLQ8o5!Q7zZMsm|%S$n^D~!TX7toI0|f^dI_zc!Gu=NDFVwEBEIE| zSf0hp9InMm4afY|Fw0_P>OTfV{JZs@nV0se3Gk?wB|2@Y>fsWxwH7?!VHm=>>nm}ajLOw%`H zhUptV-Q;Zq&E#z=)%aa0#rR##e+)?ZaovsbZ`O^qZ&=qmwsBqa+uzq!eLTK7|FhDL z6hQT8Byd4R1gPuM0S!wGaM3vc(De2Iw7`y^b&r~cL+`YP6yMlLwGf*R( zfF9upp%D%c6>bNK;kJ+&W{XAX-#D@Zp`FJOT5}np$(QV?9|YK2L4v;;j0qZc0ifed0eyEe7?VA~+?xp26c@1fbpmHU2XLd>1L^;L?%;0?45}4`QY|0~ z6Z^01I*8D^a|lgcN2vb|A~XXBM+NZk{U9l>96pSLcFfTON1}U?%dwb0ua&9*}nD0{K`jcwNl>;d?db3+;N&JNm8c zm%(?lpM>7ex*z^1>)yWrsknwXMM;RjHN;}qOL4GEi>*0YMNO77bzXsSucz1Ae7Auc7Ft zcX#m*pOND4l;y?Wd{-4M`fVxtO5IoZm3FG|Q{dHt*TFXmo`&AezaMcg|0e5U{$Ej# z3jdA&)R3Sc0a4hqQqA-r*Ukb8+?*ia+Y7R2bVv?iL3C^~grw(u4=gHNq}G;v@#`r4 zOdTx!6;MYM%#FE=Rn_xn*86!IlAGVViSQsx_0PT|YYvhrua4OLHq zyQ>~EhpQfjPFFq%TU~iSd~3zM$V26KS(nOhMBgpD7&4%5nH=4GkU2oo${_jAx7(b-R zi9xoeJX9I0LbI(7bhw)Q>?YfM>Y}>7X{Y-%Qc}t$S0hwr)?q*19?4YTNqEt8J^ZuC)Ifkb`ST z$2H_>%0aEMGPK!hLXWG#w?4AP`+lm!izRf=hh3rmw_0Mt|Eft&Ia8cfcr>T5_CQ)? z%bt{`j$J7|ojX!TI=7|Hc5Y2u-?=4yZ|A0r^PTInE_bfZzTCAk=W^Fyjpd=oRt1J!wLXrL4PK1Xm@KY#O+c)i*d3uA^u=fTJFxOoT^PF zMJ;RcD|_a1oBHQ+dIn~4M+cVY%?(WDZ5o)&KRmFk;M~Ai;kkhk%+kVh{r?8!iSqrY zhH?!lXf>9DK3k>lBd+T2CP+HZrhSd>Ef2J~HW}o4b~qyN=#u!@J?*L4TN<+})>IWV z&y|+-OcmA+ju*5q9W5Lj9x0q2URtzvc&KRa@IdkD;r`;&OP3U%S=w8CX6WC5d|X2o zuAx#x0y>OkV9-Wkaok1a%`{2l@tm*D?UezBmuCWxxPK4Y-M9! z(`0pV&v04g&_GGk=#rA&v7VCgvF?(EvCh&RV;!X@$J+nHsnNF5QzQSze`?5<6@?lN zap*FVf~7XHUnX4?Ue0=|JXoNp-&pOdcYZ~HYlM^*5<*aj8#49CCl4$8b%un zy8CL%hB_;1$6L!gCYsBaPBxa$PBv6*o~*ApHc?k`e4@Vm#IpMGlVkq|6yO?iWJRD( zT?~4RBw^G>`r~qE+2`|~^7q#IC|q4n(mB1#-~Qkn(|5;YRK)txgtQfdX~oNWv+4%h z^Ex{li-#I(E0@(&HBDDm^)0Wco?Kp5y>5AF&4KCC>Z8-;RmUbPDvwY68&HUA$i+1@ zsEb0MkvNQ7OT3?Rl60JhYFm^RwH#5bU#gHZpA0WL(PhXma7mP)2QU zZ%#*ZN5NoKQ|UxeeeFzsUFTeG{pf5?!@_JsQZ%sYxc+&~n$zTHLa>^3*e!<&3wDprsZ*cgUjRk=cZx@woS$j9G{5qJvNcp`R_mpuAy93 z0J_xpVN9R@<4SYhCmXG~Z|=3=ICt1g=jl^uJ@=IeI)yU%V7rjKq6k6p4hI;&+N zzN~sha$~{r^q$m-oZ-0flJV&A#${2<`p2UtX2w{PTSi$^r-q})PL0G4o*ex*pj4Cx zs%7|~SCt1Qb-CZJG3LCt!-(zjaRtJOlg0vjk2@%CI^thITih!Ii0 zFC?XGcX&be4pw!-w%C@)Eh$~0TMBwYw$^qtxAk^0w@q~hZ{OG+yyJLV@YbtsA?q%8 z{u@v!!VPUwoG>QO_Fwj|bt$kQ_)=(D;H9{VfXmqxv@4b6{#QH7{I89b_+MXBOuccS$nWN@ zLh6MFCI1FA3UR=&5W2R&j?Ql9K!=aAqn&?oqm570+2@~|3r;?_lOK5Itk?F`)wcSH z8>!&2J3Zy0CyVvaD>>+aZx-z#JZ?(84-kXRGyth(mdv9k{^WMRs z@SP($?VWRA^jp_(=3BQo+BwRzr=|fb8=f|{k_fN%XZl4-c-9GoF5Wg%> zCVttN6vo;?U5qVs z$JoGlv<+;C`Zq4mAar~aLVFGp(8hBFG<%C3je-RG5>V!E0WIk&&{Hb_L!&e>wuu2# z*AOr#)4O3Uvf(s67OQ+CgNf4J3tFK~9JTlrhbrDcBSS{*@DJ z5!$yKp-m?dn!Ak9$SY3N4I&&(Aj4k)N|O1Yu95;;dQqTb&IElse=v0M1``htupqmF zjgJ#JQXGKjYYQYlYw-26gg`$F2=z0A7(Y`;@im5AUn8iX7(wMfvVS{5TaF;K@;pML z*AeP^MugQk%M=$e>;p{XgDni+$onIYJk>w}ZIF1VTN z0NGp%e9bi>z+4?d{uKz57KK0+86fMc;J=~+bbB+PyE{UFFA02uX+Vl$0sw(Pe!nq2 z0-TGZz_C6W9J(+|F;mgtxDX9a8=}E^R}?rOjRKboQQ&%;1#XX7-$~CRKl{9heCPWr z;+6lKi08Do;r|4LON&6DvJ80P8vM<4APCnGmm-{38v~A= zn4uVOnv4PG`516nkJ%9ou7{(6crF^;ZbgB|u{Z7pynbSCKDhZz7)rzWqla zLP`V}%F^JCYoMEIL#VAOgkk3m@$mpUoeI8@OduuWv*pKtYjqsBw8eu}L3#{qFJ z4&2tpf%~>ta6b?W9;ai$^Los8^5d9Kl&8^esV|~m1iXrROn(z~pYb;OpMc2!rv{3i zG6WlI0?Wo2qFrqv(#st}0{tK`oC%af7Lan|z@s7o+?x}@tv3&s)Qe; z&GFyKd*i=*orqubz8d$%=TYoC>eJX40WV@6GhW5q4SExMEBH;^KLIQ$VF*%^27etT z2shGzIBP>laIuCsG7(rb3NXWhffmOCpUik5mnQunH6(v0btQizFHK(bno9cWJ)iW& zdt=gPpIwQce2*r6^t+t!p86pEWx%ue$BdV8cY|NW-w1h~cqR0ofhb8~U@A!g9XoHd zff^)R=|h^cC8Uy^A)e|DEG7e(F_GVCX$fC_3sXM()TDm$X;1w?8AyHayDasc-(1RD z>bjIS{@asZ(+(xS3b>H;BJh6FcbG2|uZ6x!z8L;0>945G887{NGoI5%(w_w^ zPk$P?I_(L4OWNb01F4UK&!s+K-c7j^`Xc2@_=~jj5iiqEvR-8#i+cHwK&*rig#P_Z zOkEbz^pzmrQVWV5jiK1X7V;@>Uo!&zJ|u>Ryk;fDJ`c%CeZnZsd_=F$e!%F=z8^G{ zbvJl2>ke~1^LEIlj9a1mGH!;Q&A1kRC*yL&^NcgB7g@)mUgR8%d7is3=Gi|2akz$X zTtkeiG-T^3K#7GqR5QjOX2HtFGTFhJs)`@_blsX?y2bKxrbw(=I@JpQm`}rN#VAC0pf8D z5ekx!pdtnNdU8-{p#pUdIzQ^&O+M9m+r6%&xj!vpQtxL+huus`NxTx9n{|Ozo_{W~ zq40EMSJ5ffP|*q2RMGLMg`%U;TZ)dv94a~#bGhh1+~cBM36F}mCO$0LnDnr8{l5SS z;(`#VAOWe$5>Tuw1GVOg(Bz=8*y3jJuEpE(S);$xgX&kH;4k z9*M0kJs8tcwm)`B`M%h(@;!00<-6n8m+y?CNd*vIG?^mo%xnHp=^wEkf|&N<+^|W9ELo!+pB!)Bx=9v@-lwZLAANv5=6XG%kn>4nhtxP}~MQK;6DfEF{EA6<5e@0SqOpY@UT?l18(yWSn-aG@o__e4!x#DUV( z)SY?R1)DRAD%Ph})vifxu3wef+c2Lt+ORThu3;{HW5aC5frgok%MDYRHyf5^-E0`k zzS%JPFF>-G0L00OLB109UL7%LHCBFn$*iH4iLB|C@$5A%W7)e~Msv=!4Ch>H8OpuZ zGLU<{r9bz2^FQ&Q8WOSl7byurgSH5CnTmfNu$6i_;v)B8+*A3+xVPqor2#g_mxPk{ zbwo3_H6Oo>$d6lH1(AGuU*5KkCHW^hdh)My zbYr^mue5jOUv2v*AO+WuEF%IXN`la=Ed;$Lq92#qh(BBABz1SnUH0k}N&UEbVD8ob72V+}P7vc(|vz z@FM0?cXQ$8uBO7vo&N-+;u_MVg`r$Y09v&Kq2E~O-I$fglPL$W+jFksmu5ZGPE1lQ z_Kz~%w+*uBYkT5j=Gs#-mo;UU4A$n>bypO(x0O`&HWjz@H5B*t*A-9p*Osj9uP)iw zUsZA*zg}2^>8&Zg*z-?7s;B^DNDD!wB0qF!@_!#P5_mIVDfn>KPVoAIgYdbP?kY!S z{LFSw1Q9olLl!L89~~+#pC2kJ z-#JuJaR$Gh9Vjk4-(OO8zVDxaG*N!YmKKB>MPBIAI>v2DwGvd0n)|lhM zMstB<>s=J~toAnCv@*bHVJ5_PYLXQ`JQknavotxcxi7u4sw=ytuq}T{MpM~va%1CY zV&jt0#HQ(ygyxOI@y$np&!>d>IBc~)HGY;0!5RANcqvef#N(X5V` zrA13vOY8a~hkKSpj7;=KjI8SpA3fX^K61G$a^O;T#h!H%BZlXb)Rn(-At;)gCgttTkkIZ3}bmU^8>>MpMYt^_I}_YpwqTpSX#HjLFWHmt6uZ`@x+-*~-}vF2`d(EOd+e*y{x zxuH#z?Hl(0t1CIs*-ae(=ijGzuz#ws&7U_BnmB8(IB?qCsN;mUW8G0dpVC7C%8g}g8Y-slpcC_&VH(IzRPnf!4$TxJ|Mz-s!vu?v>51X=!UYAs^*#XT3R z+`DdWNw+=yB5!$x1l{tBrrl!1``wC6q})zPq}(Y?@VQ$b=X0+w*605681Dz0qP!m- zXOSO0V0qqs6a7zo=_a7dlL-CCzjtE)J;sI>E^?sBXX0q-D|N2!SB9cZuPl@*UfJm9 zy|lMZe&I-Dy>O-kJtxwsFUX-jFZ?3OFN0a0ucBEVuhUrWuS+7`-ZX_1-wuQk-_3*) z-)#-LTKPACu;v8&Rz!!d}W|6kpnu) zNuaOG0wc2^Ftw$Eg|ipfxO;#j*%gT1jzIRY13!ul1W~MjZcasD-g+TL;yYCw>)7$o^JL0&8Yl;tBpU4sGI`hK8i zN(Lh<3F(* z&tLEd>x~G_dh8fm_%g_{GT}B0~fTc?XbIvIYfJb5Kz;!M!mAZ4G_U*VF|Q zO)ap{R0mrvRdCi)1`jPo@X?Y7nx-t4I2nliN5EG`9Ng99z`;-jTus!#(*_@fh+9i> z0@ols@@OBh%kTr65`VC+$8=$a{K00zA8c1()>6T4D;4bbQ^DbsA2?j`1IGux;Pl!T zoIg_*iC-z7+`sv}CH?Su^ACU@uE7J>;H-~JH&O#HD?RXWu>fx$NAO^Hf-8#xj;a1& zUql1D+5oWYzzhU{{dfR4%wks4z;QDToc8#G^Kr~2e{i`^{o(qG`i=P6?~}(@-*=>M zzAwGL`#t{$fGRBpo~p7y)Kvnqp(^-c=k<3s2R|=I@Cx(*j|d95CgY6!Kya+4gJUbE zj}A_wbZ}lC2+j+E;Ic6gTz3Tk@kqcA;sx3_x4X2j?l1j6dwlYLNB&BE<^7HN#OE9B z5#`SS4c9=zHF)SK0R{IW&_Wv+PNon@vIlB_2Y7|~f=2>={~QLmRs?}d6Q(EVr|WRg z58@Q#yW2{}H@EeSZ|*zjiyjB*Up>zSekR=x{78Ng@Q(b6_R8lg?FnTu;GW+i{Vw&- zKme|RtRf3uS_(kJy$CVagfQ&gA)dCtpt=DygaTf%f#8`L{KLJ3`OUpPWYN7dh75dV5Q^*Uyz0Bv-lgww-8^MqLp9MdleGI-8@HylP{d3rP z#+UGOL4O7qQlj9aECYdf9ueBIkYK6;DR#P$>}C#eK8}l#bn>U*h=6yrq>$HsIT0^? z%OjurHbp-5>yCUvT^jM&e=_0`ZDshwfDPdf0(OVp4?Gcimwr9;7UNmSb^6Efi$R|v z&oDo;j)i=VJ{tOGAPCpsi)&yiOGBKNG^Cp-Lbk0IWVsrDOZT$tHH-umxHgdE`~g1onwB8 zJ|6lp_E6ZzxV;e{;`jUm5G*AER3&MMP?CgXO-aZxmV-hYwI4+;dY|%17Oyj@&QBAW z-VdUq8MnhyBd-VN$6gJpin|=#9DgymH~s>1IQ|@SI{s|Ps`%5PTjEcJ9*jR3b|L;) z_`~?a;qMdnMZQbg$$FQ(HR^53mgqkNOk6{tf+WN!ibJM`7!(;vL%Frm*9s@iw`HEj z&x(9)ALInN-%MrsUx`Z!J0F=HcRH*j>10@4%JH!Fl%wJODTl+yQw~MUr5uc0pRzx4 zcgjB2sgylYw^MdTy-wW{^E!P)?CbQkaj!Dg`~wgwDFVTA5|F4U3c2bcP;MvzHI{N8 z>l{^I*1GFHtfH9TDrGoc$&c_pn-(8(JRv>qP;`Fk{-}zKy-|&syQ8`@cSbGE+#WrZ zxh-Z@=GK_4nVVyeWNnJQnzcUedDiOq7uoX(FLLG*pXbc}0}v)D3}Lcjkg6aIh3Z03 ztuOkm(L(BNi-W?`7B}^~P2L9A>gd+z%ECy;^J9Y!WTeFIO3F^#7GILRIj$ymV_a+A z`nbNlb@5|)YvSkfRwr!8TS(ZKH=lSRe?`)x{F&sZ`BTYH3znt)GY~Ez43RRTkf|U9 zrE1u>^n|~(nv1>au#8g0M!%O30bAZLk+EDj{Wzm7V@)M&rXJ(|XOU=(&m0Vsh zpVUyaBB`@@HhHLcCV8rOI%Re7RLaiciPTfY%Tn(akET5;8O98yKPvtw{!>GYvK16OP8g!mXD<^DIZNAFCR`{S-v!VOZi~N(ei*c@n6B9jNKZzEabkeYd&|)0%y^sx|xG zAAv|*L!yKr6v^>HoeIzQ4lSP7{f4{`hRyk|kJ$*G8+KPXI^buxrzgm9b9=bY>ZX{G z*_xz;W##EvL&dqpOY)1Wx^k;)+jCm$+j9ErTXHArn{rn-H0JJZXvjU^P@j9NzCQPM zU0v?&+Pd63e*{?KLXaXM0Hty~(5TF{*saO+a!8-+?zl1cl}StfQ{zOrgToa49Rm#e z4LxCAE8C-krI6p5@<9Irv&2ei=kNx6ubG~C!E;4(^ zeRQ@A2imOZ4<*g^L@~xY;-d$eQ_?%@G76h2bE~RLiyO;}tJ_M7+uDnY2ipsZXWH|N zH?`-M9K~F1%PYRtQc!fgxuEDq)1QE7aY4uu$KET$1?>tPANrNq9*wK9U7uAYoSie} zJv8GiwR6f#Yr}Ye)%xkX-umt?ntby z?T)YQ>W-@$>yE8k-4#>6w03;($21 zH_3}G&U2v?>&4N&jk+9LHrj}+Uhk%~e2tIM$U=bQk`+wvw&fAQb(7JtrQ`7#Im0PM zNrM^HQT_Ri;eA!jVSVk*Vf`bGp#uvIp#!_?Lk2I^hVilE6|<&4RTWsGGH%7cdQRR%Bp zGmy>84fO(SAD8f=E6do?nR#|}cq1FywUZld+^b5M-)G71!hrVpqpxhA$))1kYy|Gv>=n=nE~y^i@NJfvZ*&1gzSTAF%p-E^XD5 zynxv!1pzZp3jYKY@o+#Z54tgg(7ELVbaX8N?b(LV#sdVja8wRWAJgX^K58S;bJ$g_ z`5?)(dLPBPXb;UNV;4O*eg`u;d|O0v(AK!jfUOx>w5=ss{@a=|{kIKdP`A&f`EB2p z>bK)uitqNvDZZOtr~7XFGf>6F_PiUROXJx8v48K|g#CXHLJP;((bQQHG;%?cv-iB2 zNb5O!rJ6HDgW^*pyUY_lp7F=1w1^{tp^U@KXxibZc)!D`3BE^);weWP;wVS^VttM+ zkM=pfCCdB68J73)$C0F?pQ6c!KE?cr?@b6@9mM{R{rkW=gtlYk=8KfH<=%ky+0z7Ztqq$#uPj|caiSZ|H;~t!wK(3A`Rp{Gv&VWj8#)6A6g)5?kn z_O@7z9qfVRXajyuRuJT50W3#zNO3fULI-20vp0fnJ0lpgHH6ie^)`QE{~Cn0ZbxX< zA%vElLa6s5LJc<%Dtp65$O8e+R1oKj0a=j{P?Qb;RYf1rQuhEo9TzY%um^Kv8?ZIC z1Sc~ya5pmnA9EuJFgJiOGd+km(}65gEhsb5ghmr}SYoUW1Ak=u7QBP|5t=-K(311` z{8tewxr0#l2gH^H9GooR;|m56VJb*SkU>V42nq_0psH*GnrarHt8NNL8b)BQX#h4_ zy5OXx4IWyWK+#eMx|S+LXevX3rXs#!mxmHex%!`2hj(E4F@y&244VH!sPq;>nGX<( z|Ag4W0ddj+@lk+N$OCxAoIp_02E=46KuXR8&T|E?_b40+zFwRnB0w3A4)?tdBT>^?4_-x#a}5&m4c)eQ@}0 z_uXO99_+t3fc*ytaQGA8Dk}*#xJ@>Cir`?N3{K|i;Oe9g&R!PaK(_<(ehIRCW2>HOW{snepvd#5js-yAgUdJPcP`-k+67#m z6T$UQfSarY*s05bv!(*L<2uNus^D#}3tpb);OTD<#4uNIPIL#yTu*SQz%+UOaP0Q{ z?l|P}&1u48(RtS6tMeN7FD_f$zqsyo`|Ntc?IZCj@x9w4;v4t3uCLq|U0=8X@u@qw zKkx*PKLPGC5@3&OaKm_MD*)A48ECfJKy^0-ik}^jn7GbZ&mXRtPol@_gfY%;Pobvd0V3L-(iTw{DNgiyjY2K)Oo? z@(pkB`V-)RYj9GP1(K@Fe;(rn87V-BjV1*D{o`FeHb49ru3x=aq)(oy-tRpMC~rNg zDQ`Sld|r9>`n)6!d%qx0dOs(x^m^vC-s`FN4)PP9!{o=5OQZ*s2cCB+Z%DT(i{3YV zz~?Vt@ICJbet!Z;GUDK-ECaquQV^^m4H1TN5N)LjENA`iVPwnCi~y&1{^6uolmyCi z?;O9U-sRNC-VJ__d^-IePzHSO`;PnG^PQ#K^;_d}hq}$@w*MjToBkKQuhAZOU!lFB zT=HL}p7RIV$p8pA8VG@Z0?5+hKvIx`KzRv>RF{BweQ8LtQ2d$XsP#F{)8tJg)$VyP z)BRCE4COvG-Tw}?DBu>gCg6sD8|^x6iT_pFsQ(q(a{tQ#tNbqoZ1%qpxZnSL;5q-Z z^t-fEjMo9j>5KHkjGsaKgMJ3@4*tpf6W}c^20qyRL-5B%oEr9TJ#ol1ll_`yulhFK zP48JE#qvRPkjw2bmiM)wWZGqV9{nP{BIrE5G3YG4Gw3v9Fz6IxSw=C3 z?+iW?d_4FN^G5LgkQdCo%rBukL%xS?4gD6rDeTXH53a!<&x0i|0x7D(kgX%~v%pmH zW1+3Wi+op&hgn|6w^HeLSK=Z(&PB%4PK9PNk28zHjxejk4>4Q94}|oD?++Oc-y1p= zz9)1cVprIfh@D{vBesWMir5M2|=a` zzR%YdTr4vdeN$mA{iNJk=}s|O`)YoG`MLB^;_-wS>cQxgkiC()k-H+wqIX2p$83ve zkJ%d0AG0}fEM`;WT+9a6`k3{sJuz#e&c?2ex*xj`^)7Bj^vC#_m=E#Ov3~~qq(mV^ zQW%nC1t3ou-{))bf2uYRd{JvDcE8q9=6VfD4H6X#>55?92oN}7w^o-`YKJZX8{&7`TgSINub-zJYGyiFeY z2Y`xe2*=KuCiC~d6T=Ht8a(go_4uANn+e`-u@k%8=&o?O#?RnTS&+l-f=KTzS#d$@ zQd6TA5_1z*B$TGi#@D7Uk8ewxO6W_QOc+mFmarmiJaJR{XyU>2k;E(MOOu|b4<@}% z@5l801K^Kqh{CRwCBqA)irhbH)wtd?>u^78H|D+GX)SQR%}wrDqp#k+8iwt*vT)M+ z!WjB|b`onQJu`7KwIFRgxgv8UxiM=vxhs1pd1>}Q^78Edly%vCDSNYfQ!eE6q&&{) zN_~;tiRnmvk@Y8lCMk-2j~{ZSd7wgpbFopC<7K-h$K7sy&MUnZe5blxWe&CZXzy$c zwAxq`>b|NxiZ)Y}5V0&bEpa$2H)9~ZBxgxlON2;K)MOqjsm{DzQl0gdR(&m_;p1OpX*2>hhy3)+Nio$}@ zlKhIw!u+P{{QM==x%tbgbMjYLXBF(N&Mdf$U+-0B=ijf$$$L=tCm>uz05XNRp+cM; znk5OZdc@J~rGn`ExGXw4VaU0AnZ3xSQBS2+LsY}%{S5ojo-lHMM-;uIC7#t-pPW)z zot|4%o>P`nQe2%;Tw9k~+*zMeGE$dRGGCWiva>d!t(e4#GY@6n+1y;=vWtUI+Xpc+;SoMuE ziS0uX)cXGD(2Ab;`25b~%(T|@qPV8q%E-p@+VIBa+VG}d@vbm7&e2Dngp> zSA^EzuL!UGGmyx`110=y-m}W=&R|=qQt278}S6T4Q%{xmiTS3+s zn4y|=O);FCmWBFMjk1D^md3_p4kV@}EJ@9e?9M3-?JBDX>24}#b`O*>duB?5d$tq@ z^_(nX^xQ8B>U>lj-1eyCPe2+M7gX>NUbL~J%L4>-dV&odnj@ecYq-#c^~z{|y$R3c zItTHkYdlnYR#A*wRt7lK%m$N7mWK!COh!c}kH;lNjV5P>4rk{F50@4)hMNi)BmMb| zk>$Dck1_s_BU^1mmTV>}wr%v%uUqeDQ?@41J$Dt8nlc|A60;&IHgq;2g)x(n5jazv5ir}3 z9x&UNMw^>X^`G06>_2xri8^;L$#>>$ir?g$)IR}5?1ZPy2wmz&=)@#K`{uFxVgFpU z4Wa4XVrX=q7JJ`b3&Hk1jKqdKQ<3G|NL6ig4>5FXB09}`1cpB7JD zUl{MVzAnyhLvM`l#>r^kjT=~$jYlIX8}CMVuYb$(TJt&jPyDPx=z14IXGRe^IET=V zwb=i+V*lTR(C`r+)OTEo(0<&Ix8azLM8#2O)%?RAMrjAVY-9KPx`*ux@TKn!rc?K@ zn3O%qp+0-_LcI6ZFunJ61$*yb#_-y|j!r&sIFP*mc7W%;w}I|^z6bq@drb&k7{D`_ z#xq!rXMp{41Ycle7Gisc`;9TlusL&f2l(+|0wyk{#)1C?0-i z0=>P@g!z)s#QT!YX8V%PRZ=|9wR?M zI5GZzGuW~T@4zmECa{C|oh0CVPE>P843*tg<;=UMFO+)MOeW@zwR-3s2gAVIu2z)W zo(|;OzAhejf{5;Sqlj*IQ(cMoid=~I8=PJ5_dB{im~n7H5mk#_5%xt;6deJNq|LwsvpRY;E5b+t|Eow6=cVZ)yF0*23z;W^=0# z$ILB1-Zc9Yhw%({;vHDO9q+&agochI)P4@3>MIBpKITAKpG7&6zR2=MeNh%+e$|ko zebrU;{%WM|zG$xFyl7)!|INwB=9`C!)pv@C#Seyw*^fvQ)1N8E#y<;ZsED8Wqk`JOKcp&+YfVrX+=;_LVp`JXL z7%GB^g$kHDYk-N54wwWRfN`ub7-gD(VW}w?)SH4~2d3W?jK(n2CSW{|S!V(!+l;|< zKjx${m|Zmjvxi1M%-+Ny9OOOFwv0*bA3gyFjoOf zM-8y>(gkw{ey?a#FikfDlVWo)t~CdfHp~(;FdZ=ivnk99GcaFk3g%l(!D6ooSR6O` zVfmNIH_HdcU#(sneYXB$^wAm&-&=vvJ1a2x6JUv5(?DAe%(djfT1NrwOqIdjK?7__ zx?mGv3|5imV3}e876q1IUX5w71dAREuv}{K({jS%r`4?a53AMY->o;9f3x0gwrF$I z?5pi1)6cf|Oh4MaGI?kJ+2oD=Pm|YnVEW1y%wPTiu);N%Xvl(%x*RxY%7crM61du` zgNwT!I8sf(KFk7a6Rp4|*ZQYTh4puvM(b}joz{!C16E({#;m^BEw}n?KX3WTeuL#l zhaDCl91dB0a6E7R*6EJW5RT?V@9*-519ayHAdFb{`zuY~MRAv3=(}Z1dK6(&mlJ z3Y*t1Ypq|oZnJ(#JYe;Lc-Hcn+ilCo?k_AJxP7v^NBn7Xmk4%uT*3Y}@qYnZIZ1p; zNdpn@g}1siQ1#`&-$DueoV38l%XpC#X!XfG(*8X$#qo`6f#WM;mE#Lyv%_<@Zii>? zgZ59|$L$|`%-TKjTy6W%bBpZ*(mtE}#bO>T|m7J?ePNd)o1)&w|4ZpG^+eeD*qArJQoOOu6ZB(f7I2Im#!O(>_0m zr+mQu7zI3z{sC~1l>|3@Ia6iDAVftJSUTbmWg@-EvQ>H?PSk!8L@|3r3$nZC8|`w7 zlIC`UQs{Qgx0-mxw}p7ww}*JqZ-{uoZ-RKuZb%=Su-e9_MH|q%*Wq@+n#!`2?+vd@Nvz*U^9xufu`UUWWn~ybcC#_S#S1@3oJ9 z-fK7Gf%gu^JIXft58thH@Y~1$>V}~I1)OmWei9-OE+YsDN&=9kDeyH@U-(Uyx%lG@ z2l?A6B+V;vG?R0Yp^hg*Vm*%rrBMzs3jFpnD*W~aHB$Ekby9Z)4N!Lmk5jh?&r-Jq zucK~Z?xJpHp7h@sa@&7h$Sc~Kkj21NArQDS6zD7d0JuquL4cSLL`(BSsvQ4Vz-D30q*S3g60D2tN|EGW=@LT*UL>nTRjU>4+c9iO3%z%l-h6uy+Sx*GiD$ zg)DjQpM|R2Z%ehgAC(*O-7L2jzF6WWcQW5s_h2T&dRKCU`<7UIyBL+mSj);|u8J%R zosX;wT^ZRPI>+h@on?)MEoaSzO-F4An~d5QHW76(d_4Mb_-ORUh~enPh@pP~yzv}D zh4>*wf*bN=Ilq-EbG)q5;JjC($91*Vg6~X~tMrjlAFVz4ffie{LS5ITM*A)#Br)dV zvci_f7DZ0QRIw&vnpoqp-BDw)OQS|&r=x~r*F+7)?us6aJrms@cR#u>?p<_m+~?>X zO!prEUol~b6yk++aV{v7;rLvs!1k<8h3!_OCi}%kGoIu1&Jz2pz0|jt(M&fKFr5~% zS>7}0@$`x0wD8fy+^FG%(%7Md+PHy)wz$58{`e&c%i?SM%{vv`9Bgg|;VjNH+#rB~_mhh-io^Y*I8J%r4;Xd5#B(}Srtg^Y< z-)MDNu)}Oo1bHGiHgGsIIeZ{3Gp0AWFrhoSGO07EDY-qVJGnJ!B)KJdHl-zJ1*b;<9NYm?t4{Rs#Z5`cICZpam7hjIzRn|eufuSEh~?vO_(JB>K^w>yYz zZ}C)G-#|53S;MfMDi8M4Jo_aa6JneZ#dD`pr^3*qJnAG2aAOU_z;^%?_VYZ)DqUdF#FuK*wht79n z_wO~}*xhX}w7J7Wesznl?rbC7db~E&ZLosn*HaP~(w3hb(~y&yT$5RlQJGPhRi4q5 zQ<~A6Q=BoLQWr?ySUNmB~s{MzdrkpK3l={J?^seofPe<)c4t9W_HaRF&WeKcoNWcEIj1lW^3!sj=VoNT$iZa)4utXWLIxiP zl=2f^*7KmN?HuTQFDE)SAddD9>9B1XwB}#aPn4eR_0bsb3NRaNXF7E^M|ic=N7HMo z<5^|pDM|UonOT{I1qG=El|{+b zLH6w(VWfuEsDR4GxbVW-q=d|>w9Lfv+=AHB(&DJn#u8TPl9I@>sp5#T^+n<3hYQ2X zZxw`>KFyCTe)czczXLHGT#(O2cvH=euC^j{wwDbZT}nWE#`w_Y2{p8O!i;-n+(~SF zl%zZ`Of~2lVAwP*33adTj--}!#DwIuB*Z2+rldvJW#xs}78i!r))$4;_7sNHO%yQe z*5w7)AIc4?yO|SI`#hIfg{k~sAd#H|irLZadW0@^V(-K5d0-5oZBv|R-Et+gV#b(r za=E?8(kTyxo(YO>>sWwg-7wR&Y%ts>zb`5%ttT!jt}{6~ygf6M*;bSj)K-@h)ZUZL zXkV7aXkVK_?>Lwq*l{B*pzT$9VDqbtz^4BN(g^II$`QJT{r^laLWf5X+BJ#LhFR<# zD`nC2ygtXsyp3Sr3ZiWLte0lPa;j;?B*U?ASqM2}G%_GzI3_G|Ffoofkde&jFG>yU zuS*Ra=uQb3Se6tpur`r4crczea3hY||1yEv`#zD{^FHZ!AO{id*Wey>Aar~XyYB>c zU!1?NfZcPg7#dx##n!*hg0FL}lVsy+Pt~dgieb@8nr+q`!!2nh)HiB6GALv+E`mOh z7DJmTi1nYSiJ?w*MN=ooS$>miBK@ZJhx<-l52H-HjPM@+%JLcgU%nS3biEPxUZ)X>@2b2I%Bm_RWmQLz&+1Wz&+1iy-mCWpc(1-n^IG*Hz;k|)?m7R1@jDMI z|E~wfuz&Bt{<{gEe;(&A!w%ZJn}FK)Nu$R7IviE|Ed-1AIml%1A*v_uCK*NTq}YV) z@OKT^9z^on7D4gZmf+{LE!&U0y@EpC-s(fzvDBNiW1j4}V>iij=U<*4+n;;7ZT;#+ z-1@`&cmD3dsXm1E;~8w5$NrD=r?(+Ah#j!)5CPSk;6oLslnF(r40y6mS&Ai{bWn^s z;i}C%=4l#m%*Tdul;%V}8sh4CG=}JLEW_3PSc!}K@g`@tuB&q- zUNaP6U9*&8UbR!EU3J#+zT#ozd4*!`c9m{PycTKcdM(+)<$8g+^Nl()=Nr8yPB*8F zoo;P1a=dlY(Bakt1G^jVjcu=gHu;^uXRsUZz~;4h2Dty@IKLO?H=aPK^gKe@*Emq> zBXL69VSdpf<;&$-7O%EwTD(54Y5w}YhWYEK|HD4K16x-kw0a9dlQ_Q*=QrW}vU529 z3PMTu*-^}U5%#e6GCcGT%0j*$G{ikW=*qZ!G*-0#XsKfJ$zIL!6H(p#v$wkGmq2xs zuMuj-Uz5}f7YkGk7VA{>zx68XeVbI${k~37_xl0NvHxK^z6RE9Mrb*n{~*q9J&sVt zS%h*fBb0a(p~#nr!2H3>K?6}9Z;%#r2L(|lP?fX+Eg1{Ym%~D=UyfV_kus7UI8rj!=wNvng2vaUEVdYMQ#tz^eJcdxs8HDnF$q#spkoQN#<_3t< z0T8zp5co`iOV9xLgmpkzL<1y5RY68f8I;83K}}o+w8bUB5NBG534ntbFL;P@0ab(@ zn8E~z5kioL$^0KcOH~R~b!9+PR~EDlQKTjqrfPvdyYaNvJ~j6N`tA2G+5v|Yz*bW#zq;e+|a-Q=|XZwnhJqZI9k-yCJ<-cH_D)?Pqjf*ss!g?yyPcnZs`Fr;f+9pEzC7 zdf@a(>#ox~?c0vu^lmwV!3_s6y6ynRzXJw1-%?Hz9I*Skt4M&Cjx>0g;>*iHU9!dHs9D4SIKo zJN0h69o4<%ent1X`y;(8Ztn~)5x<#SAcE<6S1>>83KqWu#tM>PFD;JUR}?79qCnFU z2b!_;cdCuzM{hTc*CapvXYL^;kKE$T9=K(h-E}K5z3pCWdds8LyPebufOiP(pfzB$A{k(MV`7lgwdPP}WBd1zk@hY&qImhG)gj+I*86>5+wP$(+V7%(!%iP? z+~EUGzXP^X;^2XuGeA-R!WH--T3uioM#6!R>dz3HQKTND!D3d=MkY1Bt4KyW8aGu$N4f`Khl-B-ehTTJay()!>E^4j1A^6KCY@~YrI@;q~lyplQV zwSu|MYc^z$*G$M+@9B{H-jgBke3pg$pp1tAWi<4E0S^%&VDR%oEdFRulj8WABhUUk zUxocnffmQ*0yExIInI)YGQ8AxCk2>ni4ApF&x&?m9iHqpAC^s75mxLw8&>VNJgnJo zI;`7oGJMEyB7DkkJbV>(EPOk4B;q)AIO3N7P{eE6K*Tp%e+1C_{s4Fh3PK1!?tusg zWJ$1nERZHVE|w=;FI6F&D>dOhTI?vcH;=5mHPhd4eM+$HLPDh5Y)rh*R8%^387q%A z#wrUOVbui=v)TfOSbg+C);PVNwSwNq+RW%>9cJ{ft}(izUIcYUeGTe}0!I5E017`p zMDTGziXc1of5Mw$F?6pCyMLtuI$34Jd7#2UWJigo;>LVGy;a!^>zTB0*NNm9?~#OL z+E8p3V<4s|xG$!P*&EZu?2hRU>53T+>4=#LX^&YS+8VPjv?b(ex ze*mbwd=SOU3F!iC-wFiLi!uRpqmmb$ufgtLXTY(i#!hHUrMujkQeW-4!a$43oKWYH z%qXvclmuE&Vp?!#LT+e#d}(-Vd|gCye0xMw{6J(w{A6T({OZWs_+6};_;al4_(!a& z_>YlQ@rx0E0s^@4F7V(v@Dkn?^P(FSoak~57dq8|-M>kXeMf_hz=m2knfWRojpbzl zrej4+$AP>^QcqT_e|uVTaC35IctcVlt2VJRx+bwHrYf;FrXq1HwmfM*wlr~DY)Rs& zxZJo}lIui?0mL}$< z%qHfhY);BfIhK@_ayv0A^=(3S>c_b3luxn01HtUvkj%;UIiCaf0Q*iI8#>j@jt;en zqMe;ugpC~*JPU0u;?vD!<`4CS@E-P0YBFl9cf}IXUBfVoLglgx`TMHhfL86J8Y|bhR40 ze@MPEuUj>ZjY=NVjaO3vsEhitw&1i=h`4Cq(2F zq{XM@=B6a&l%^--G-Sl(^kl^5EX#<_S(6@>voD>Mb0v+H^CC4m=WTLK_PeCt0TzJ+ zG70ETDMFX(uyeH{bP#*b&R$-$pyeO^)la4Ubv#Eg5x{Y#;Vg zX&9s$RQ1!Xi+V#`v%4aEk~^a5(XH_jq0MOkgg|@0u|Z9FiS(wb#K5NZguv$E_<-h> zv9#u0F|_6j(f&wqgP)}+^Ku=y2t*0`|zo#wI zzh^jt+PgB0+PgE zWCb7UpI1R$^TwRbEA518RuE-NXT8+(mirl{O$FM-O#~Ao#>2gX$6{y!BgsM3k=$Uv zk;-7-(Kd$f=u$dmbVUGVbO+66^gPvj2Ws zm_=yW0zymHu%V81GN@_2E_=;7Oa9WeP7--*Je1Q{d+Ww8P|YLf108}_Fx_Z#kzT%Y z2^62%Y+vuWGK%+Hvya!@ptskGIWl?0HWF#YSr5|OV-Js+4`lb{KfHeDW+m=H8$t*0 z4s4%5Xzd(AGuT0wuE*|&J+ywC5USdtMkv{C%$>L0RwQkkvuylU5A}#G-iAS&{4D)9 z(j6!pLtVT!#u7;zGl-rWOI$rSHoACh>T`DAwA|5s(-sG}O{eYMHa@a*-SEM|W!(>_ z-?@mdg(LVn*foyOMtuI2*ulp)VE^BW{U3W^>3()pa7YGaAJ*nbJ!HxscgR*E;-Ir) z&;fT%>V7Xn?|oD=&wW8w?)zER#QiB&#Qg=9t_SKYTn_Y@yBwS}bw0S!#OdG(W2XZT zj2!p9H?iOQ-RyTx;yv7lcVG*i|7x5+y%C{-ZP>rDhgV_`%{#`1QqJF2E_ea|^6lFzxRyPfmab~zWI>vTR$&+&YMuET{K9fu2*+V&SawCpa8Y1my_ zr*3=sh??!CJF3kG{f* z!tRI>g6=AD`rp;!^S)~!>VDT;%K5IHy!~BQC7XL*%GUP-m8~8`C|f>AQnGxQuW0eG zR>AyHue{mgX*shen`KR(oRTqla!=ai(cAxF*A$)sp8ramKZf(W_u?Hmgi!Gbgwk<- z%wGsGZxK-7DCxo$mc6JyT>;XF6Zx3e74`^1ued-ikSS+5;Oc^Ag=e*TtfS&t%L@+ zN~nRigbL8bl^{w?0Ww78pj=oMT7_g`sgMlJ3QEI9f!|q+_iq~K58(V}oL_blq0GPY zul!%W-#vs#FA>4@8)CNyPA*H}=QROQeglva)B$;6O;8b011%9H&=-*hGZ7iE6_Es@ zuozH;gdkXuAL0agAxD54D*3sg72mM+{SUL-@pXvv+i-pb&d)xNP~6}7w{ZS_gxsGX zfOxclgHIiJ`ISLPKmo)BWkE(z3KRv!Kuu5xbOiapSda^B1lWMc zkH8nhH$1q(E(j)KB#_l0Ve9NPgGYEBRgXgv6re6^YMU55+%fy%v9`^+oKBCWyb*0LfPx zAoV+-fNM}ylLQS_DbUc61|1_A(6N;REf0CnqRE41q#S6b$bx1*rc(B&W~1y6tqz%Q zT75F#w1;IDwI^i0>dZ=i(OD(^S$C84C*56ApY)DOebB!w`BwkFWOFq*B z>8E-i^HdjPF>=2GO6roJsU!)yijrV}>oC!m0TU}ZFd`~|fuADihbsKkPmuqnpRMp! zzf}ISL7n_3gI4*EhCOm03bD)@WY#jq!S!*Csn;UYQ=2d1-n<`kCon z>BnX-r5>7omc4HR^7l+Y;jS?#{SK%pOM;%91Q^SRgQc#vg%WtT-C?6Qx@twJG1T?^V8QKcsZWVVTlx zhgrp&j%yTeIBr$A?s!1qn&UaezntzUUUYh?a?bIK`e{edJmmmdCmcW>YZ+U$h*MgfOmz-KA(D%y*_OwyM201c2R~+c2Fiwwo~R!w^25k zZlUZm-Q;`DY=iH8vvt1jEY|q`uv$d{>xKWr=2yT$825mW4;Uic5Fy3+BSwMqO{^N% z!)QI8>nuyb3t_I(CxU&{4+k;~_xVSf?WQJL?x1E_ZKD=jZJ}0KZK5_>ZS?Q3Uhm&; zz0QBkdX4{#^=jH$>jm0Qn|azvn-u}KZDwh&?UvIP?WbtqFd6W_fQx`2`0?WN3voiM zIQy4G8MbH1ifp%&G&n9Ln(>^BbCNj7BCG5Ur5S7s4z<|Ch_PKyPqkkYnCq~LUh1$w zuW?vOZ*g2f?{=J}4>`^-CLO043yxEatxgk+BTnOtYtExV&s|0sUtE_mz;);kfEzE~ z0d6i}39v(=FyURAIC_vSg|22Oqca)CT!&K~M0Y28DsG9P>aLFrvRD-sX}=;Q!Fh(6 z;X2JMAWkvMi4)9v;yAONI2O|9HWD)CHXJhNHWaeKeK2Iddw<9!_r8!P9=*&@o;^(P z?EV8l;^u>3F5ClNw#8I_^fHql-Ods~7jop$v0MX=eK~eQ+cMnc)+bZ67UJnCp7AElQ^-=ddAzX>dh{uWpo4FSIcG{gnbY;5n+uybPXyiiO)r^>MVSBRmV zRhop2RoMN@oyC@ykd(#?{B#F%85TX6p-%0oEYIeocuIYI8m%TSmtGZD8dMQm7hD$C z5nLKK#4L_m&Mb`Ez$}P87?KxzEhI1QB{MH>F(@w%7{3E_#0hbT@H7LvKlaYEW!QHr z320xn5ZYRY-M`L^dquUQ$Yh15{BWtSc3)ATS!W*8p*btUy*53DQkjwzP@0q(T$ETC zT98l`mY2{Ho|D)Yo}D-uo|(8NB0XVmL|Ve-h_uA#VQGn9Lemp}grq0@VEzgOBaWYm z2;Iiccc~bmlh}C<)nfOr=SLeGvHLfga4v7K7aFT|mmR30Xmpp;j9ZI?ZR_*Hh?O}} zKE;{wfq7}EAz7)p5g93Etkjf-sFalMsHBv!sDzY-sQ8p!QL!l(qT*7Xu;NlaMZ~9k z3&({03WOo{&nb8gc?g~Vy9e06_hI+j+Qg04wko0(t%e+vEw%!~jc!s)>b+IlYy1rw zD;U<*rJ*jRMUh^4`LO{RIY}YOS(&W(jG~y>jGEZ!jE-1V#&B$8#){a8%-9)k0QoX{74b*3m7>tC>y(6%nM&(rEvrq6B74K^iMEFE2JMuOcoauQiUDHy9h7 zHyab2w>3H_|5Ows?*ZmLD=6n{Wbki53?kgi!gIj>f1(ce0OxP(Kxhs2uh||cv}}nE zVQH@=Pj9!gXj>;qp`qPZtFk4)w74nQKBqp+J*9@_8(SI2h$v49XO`wfGfK;1=%vlk z^s<4dz_OXhfU?aIw6c@ow6go*{-y82{foc-4?hzSx`pR(4)4K{Cfoy@zp)294|dRr z0Z}wOsDb(h&A2)S9EF?uJY=eSebh_4{SEUv7}n`+AujPP5nhpvF*Ig<5|dt+9Trem z8cwTg3iGe)5B0BK&ZO3F4)&`*!SJoS$Dq`{3-+n`5$sd_lld#}QW3g_ckvYN!G7%D z+j_Bk4`AoO4mdo*hx*2pQRkQuNAswyK1aVZbpBgdE$~_hp3)#_mHk= z3cVwd=HH%0_iHbu`*k!1`gZgM_;yVDQ#v+LDILdsecJE&dbPc!l3RcHlUsoHEBEmn zE><9Pv>Bn@`23p&5t<*x?u|XXZ;~B#Ov|F?XloWBx|b zBMj@%;ZSG#5X;klFu~h*Ad^BFDE09fZ1naX?DO&-oF;hu!9a`4{x7Cs9~ijs$Nhhl+BxP70lZSX0CLV zN}407M9)%mLuY8F^yNXe)TwYMpQ$)kuc>q*d8*izG*$0Hn(B4-oSJm>nA+grF?H15 zW9p8b+r%3O;`nzb*YThK#pSN zp0Uw_H*tf5X!LrbTkDsn;5&rRVA>Yme0_HtwqntliesSP|EBSrFGO zGk0CH&eUbiVH1}%w~U=vy*71R_-5`n|KqNNb{lfCc3TQCcR5G|>?F!lc9PUcJAAd>chL1*cSIPt>_{|l-kGEC zw6jvrac8@Z+)mv6xQndIagw6rajLTY zai)shi5O+u6X{AeCrcEqPc|!9pBj|6I<->H^3)y~i_=$REKa_VF+2WQ&g|G%`Cr+C zcW^VF|7x5+h0i{K&)$O1Ua=dYoC63Y97QPnGyw%%7GMoD~9d4IvCj9o- ztc7i^JBwLfCrMb`@Ru;Z5h`JJGhW>6R*snIttwHI+g&2YcP505?ran?yn8~(;O;#^ zy<6{u^lp6+{*`T$2(82Uvp9bkpS=U0y?QU6!6Af_k0TUu2BE-92zg&;Lmp2A2rf^g z+3lYyaa%prQ_raRk$a^L*>EN9^ZPZc$jlB?8+qyZ(z+IDZ1?FTuTUz`ZZRy-z!Z^Uve_D>(lq z&cBC{&0~bjKOr__VCT>SUM?*V;Z_4l9%Yc@RR9$}8PMXB1VcVCu;dd0Ctf}v^Kb#3 zhaFj#Y6$8lmWm2r;hV{M!h*+(*dz2|~uN z5J7Jdv1tP0PzA)P2<%*Pz|AcM0zBd%#v=mKJp7=@!wu>ui^uVjl3YSllQ0OVcs8-7kC$??(%$*e9rSp@*~fC$?x3nB!Ks= z1n~V1h-ry~w7NLRsELD=rUXbCVeBM9iX;J&bX;4MC`hDzOQnJ_`b-W$?&p7}c8348>J9!EYESu| zslMlXqWWFnu__2XQU&3MsvzxE38<3DCBX0!ha=V)w9GtsTYfU)Tj}8uhA_0PP0?^t!AI_8?9lX*IE-oue4`{UTUuvdZDvf@VU-D z!DqTB1)k_$7kHriMBtw8d!aiz-$icefY?nP5Wn#opoH@^q(ng*`?ryTD462en3zg} zk%ROP1G4lNeTMXV{b30*gRB7DWWM4jnqdAH<{OF{xZ+a!et(tB}zRs&yl=uUMg|dqDJDjMYH%V z%P#Somi=PatwzPJSxt#uwVD^ZVzoi+vh^;pi`K`*E?8d`KV$Pm;-vKl>0{PEWRF^d z{1GcqIBW%qzXG~{=VSM_7ZU)YEI+ub2>fu<75?C2F8;#7N&1nkx9nY;V7XhiF|ya~ z(q*pL7fN5Yuav%M-ynV7p-uXnL$CB%has8M4&ySX9A{-tIIfX7?zmOvsN+G|BTg4& z4>~=N+voI7agXD7waEVYn>yoH=$~9Z*gln}j0^2R7I>)78Q{IzwC-Flxvf^I90F51#aGkA`c)iU& z8TuP3`TFZA<@)O=b^2>4E&8h|-3AN3Lk9D{69y}MR~pRuZZe$lJ!rVx_ma`1-xK3y zejiQ7{J?a~7tBU~0~|T|z=x9)f_d0}MDP>dMhT<)Q4;71O9`E38F3wouou}K;vv74 z;is`7AXtA5jb*&bKgndJf0pSA|3cGQ|4Osvv<9He)^(u+DrW zV2{Ocz*&o-fCrWXwD(s1v>(=eH25FDm7ND@>>Swt3Gbr0(EV60bS;(#or{-4M-%ip z_Qcr;ZjE-6Sr_i3z7P_qKNlQkI?af+oMfb0Eo0^%gt5b}hjG%bn{mg!lkwKRgZ|yVoeuv4cwp~l5ZJ!5*wFnr>|04}=t2@F zI*}rU_NVEvZ%?)2U!UkAxe)86G80A9n}}eVjfSzTmxd(R4Kgzv`kDC-OPFPjz05kt zZf2Wf7qic)gE{Wh&Rpr-%G~1I5`5ITDfosP zOv3m1X#{jSogE#{6i2(VwFsNC%z0L)JBiIElN2Ws{B%ZQ8KwiQaGTzU7>DlgWao~s zEZ6qXBG=Z?Dq?eJ6R|0@+pQsV*sVTv#=SOlgL_TrL654?s~(l1FEC%-D?;IK+xtzHuxEyML|-+Lo_QSeI|gy)wr^WGd4`ZZwUeIgk`++!GgK-4Vlb zY+=Q_Hb$no*GJ@f)<%?)Y9i`LRT1sv%7_7SdBl`gS;Shel8C+D#Sxdhiz1$S6-Io< z02xF274S#w-y*U5WBTQ)n+Vp64brlxM<;n!L}hxFMHTv#L{(9Wqnas&QA>RDqsD#nq89veqIUXavCdJm zq8|HYMSY}XMS;)nKpa}Dt%r<0hx>Rz)T4I zl}}N47w{a;6d`mFpMM9=UXLAo7Bk)|f`;1FP;a{lM|-QCKtnT8vZ~QbsifXdC$Bcp zG`%X=E}O(2JB7U*1R>HE@EXJ zB>93iibiG&%_ylU$U3Gz)H$q{<;kdyr_id>{i#)jG{34^f8VNZs&Cb}FQs}7g;IUM z$EWJLw|C`BAFqn96mmKI7x$A9x`3~RBX|b8@Yy$F|6JLF&x{2vfqu|a*ar8dgb0~c7*=2YR(+G9WAXKvgyXOKzS*yfR+G=%_xZ0RAW|cL6_=1yI(1N?H|Gc+~ z&q}HmX+@Bp`-%ud;)+B=*A+PiE-NeaomaN$Ij>x*mKeRv19;@Pjo`LlD_|8aIF&aTDT1)H&dZ^!<>2m9xK zendMUkNgg3v3VUZ=Jq&XCE#+vQN-bZyM*llij?&Mx|G$yNGZ#M$x;>v3na}C)ry-R z>J>9PG%ad+Xp4x+q0_>~2OkO>?SC(7xNlMHSN{J0u{KN~G>`kfYz^K6oZX1COSWPE z-GxxhK7@h}BSbktKyGJwk;{2$C`81Pm_*2^e0A z<~O*M&ZmF5j92fkRvz6eqdYoS)^clIJ;J4V< zGr%5Rz7wHreD=752!$L)h2VsD;*(NNg{N&C@=wP&WS^~LmwA4aUHbV=cB$vj*nVX# z&Y#8k!}#nSxbIcF5z5_;yvoXA$zeh>*iogv@UtWcZW~>AmG6XulI@SAQ?Z zq4HjpQ}Kf~m)r+qE}4%uT#_GMxx_zFIE6nkIru*(aPWO8VCVhX$jiQ}N;a;= z9R#k$WBjG*%3stA;`p35fF4@Mldt~#RSe@ zg7X{pB2;t;@8I9hpzzsgmvH`d-2dA+|2{&xj}cORhLGY1M3DV~*dzh5i34I622Kus z;N##15e{~c!nukVO^h+lx5Ieid^#o$=jCE5F^&HP@Mwwxzq%;!sfhxIrUkJAT)9TTRSJP^>PCH5C?FKVW!!Eb0zyv&b916IJdBU z=iJNojq4=aSFUSppSd2fec*b__Ks_j@D~5gH(bE}`v2hge*poUFQOs}Ldv4Rt0n^c zh8SBB;PVgyo&Z7Mj^qdK6h7e2;{l#>Zs4is0^U}xAAH@M-}weOzwwW7Eb>osd=;2u z|01xO{j=aE_D_O)*gpy$XMZnvh5fDI1GZN}Z`fW4er10y1RT$Vfb(}i6z5A|=NFe3 z0SOfmkkrG!wh{qxqA-Y2g+Me+07Me`e+XyueiJR>`6^n&{Y9*q`?Gi_*C+8l&W{pH zIp0ex<9shU!|_&ff#Z$j29DQKyEtA+9p!i_b&36%)P45HQm@$`N`K{iAPrpirGfjd z4DkF4NaB1MX%Uc>5(Y&@5m43^0VOk0P;e3fIUnKgvcZC1Wn%?C$!74qmo4OdCs)by zM!tdPwR{`*ONAb;7Yc)1&lShGo+(aqJylxC`9x_w=VPTEoDY=`b3RbM$Z=QsKF2NP z*IYMLzVcjC0p2Srz;{^%_Xo&Zc z@i^}V;~Bp5Cad_)nrz`aW3r#`l*w7X6Q+0gkC?s^I%N7)tb6h3UdLinJ~df@{$yF~WcoDkV#b3@5Ya*tva=X)V$!$)nCAT^D^p-k6WXSF%vgCFVljL>~v*fqA70GXLtB~L9RxiKNtyO-5TaWxY_aXVU z?#tv?yRT4K<-Sp2-hH3qO80Y$a~=S*thzw1 zQe8=IP+dW8SDp1*qBi3-qBiZdTy4s0jrxSwPW5G8CpE^rZ)=Qrz1CXl^-X)o3$zEx zpz|wWhq$qOv;Uy6p%)A`bd$l3uF`qX*Vo3LEo*q{k})_`h2hJ z_xipx=<)q((CrI`U6lU@oUr>-5aAsIp<5vc{S{6?=fXMBu?Q)&m!-|NHNt{#U8uA8 zd@xyIhVHL18Nk#T4~Wtqr6m~*(=rX0(h3X*Y2}6kv^t|cTC33#+7hE4+Ng0iZO*up zw$Y@6cF?5F|B7j=|1;BO|1W0E{$SSh8{mfBpN8F^iO@9`_TCum8Zm6>K&%+r5wAhm z5NF1-5bY>B6X_whEYw$hgvrnw3<@{uXT+NH(o@WO=-Fmn^dj>PdX;%Qz0tgt-eu83 zAF^noPg^$9*IG6N?zO55ykJ!u_}IE8@RN0QAXxnlkP!PjXgeKzLWQL=CRQn?WbbG>>#+@N7^EPIJRZDQXbyHBDO=D20O?^8b;>@+^KE<*{e%rNAbO0y9dO?H(WNbpkXiJ@w@vlzzB5n&b$VKFwfp-Fbt zA(;+UA%%_=A(f70Ax%!DAw5pTA*0SkAuF8=Lbkc&g`9NB4Y`MT=bRhz!zm{O{tNI! zghzM}uHqh?#`%Y^^X$sPu93x!R^?##&(UXJmTkp1l;JGin@UpXNb=Qejtexbi)LC> zu_A5DBjOxO!c(1#!gE~T;Y-~!!)M(y!Z*36g&*}u4ZH1;8ve#D zHT)YfH5^=j59^)AXwng3L?f!fXp;qMdT15{X%?Opgp!p=TPanv}|FB`326$ce0Jay)B2IgWM6 zD>m{5IhOUB6w6xlh+~2KuYCV|7qEL@z&$vM-FFZ6uFcp#S7DYHOQP`-Ey7^28COrC zgHT(Zn{-2tw@P&;RktjSZd#BWVw;^9>6{iH=bjv!N=}H)^^S`v_lb#Vq(sN`Qdlt) zl*pJhl<=7Sl(3kqKH)Jhy~AU^k|Sb(^eZ2N5W0!ya0dJTp?vKA#rR&o6rmL**!jxD z&~Sx1>MJ+l>@2ktXf7s7)E1Hz%kzA-igE&sb25Xi)6&A75>lc)Vv>@)BNMZH!xM}B zLKEx!LK3_Dn2BS4!HKJU8Hsy*=?Rx9jD+VtjD#=VK?&gXE6?yQT*GrXiF>dg=WoUC zx26*JpaP-MDj_sbqk_6?4B1<&Z20OcT*NBNJmrf^DC)UIG=ubfhDBm-s6%uX%Pl-3 z-iw)@?#oCkpwiQ7sDWu6egSDCzO?jtihufUA8PtVZ)(~zZ))miFKR0M7Y`%xHHoi- zV|WI;asH-i?0j|DcWSYF*Yl#D1_jjCpvTrwZ^=_#=OkQO;~|q@<*kxgLDfwzqnpN* zFm1yNBV2;>V@ZK|sows%c@%1Hm5*OuySH!Nu$OP%N-`yHC&?%8f~QaJQ%~=lPoCb{ zK>C%tvG|(I`oCvkJ8=H`288CCuy0^`n>kQht2AnC(<0QgnsJr2*b5Xi5hb!3$%-lU zzM65h0Y;J4L6*$QFo%HhXd<;N*@IG+>*-Tg>ETn>=I&j#)Xl4GrK?xjP8V|7d1q4T z6Bo~tkFFlYK>U>($@p^#@4-IY|1CIwbt`tRc7*yc?Vb3Zze@~NcdMbYZe#YsE*rk= zP8ZSC4o}(mHXl`1tG{kYGs85nG1S_xA(Hpz>+()-%&8W&rOoG#7iNh*H44q9jNcu#WeNqWLc6rldL>DbF4f%%PrkITP)l= zhs@nN=S%z%$s^g54Wu&-5d-bO3uFcHznq z>^-AwC}&&}WsGZ}|=i*U}(e&!I>I_n|~X;!w7s z>rlCY>rk_v%g~^%^U$oe^UyXer=hc&jsuT09r{0L+x7j_{gvZ?KM%yS--PoQaPH(V zp2H|Y&Ep7_O(K-J9J}8vKZ=`EKv8qLY+-X|TtTyT0<;+yG0Kdm3~4z<(QP_V#br8F z-Dx^j-ElfY-C?>!)nU3(#eR98vfcD@MZ4)O3bxayTwV7 z+}Gm#Ih;F+bGxPys+++*z&@O^fKcQbgqUl^5M!MR3RtJl?z_&M+iRVjfcsikQJ1wO zNr$z5(spZuWNp^6WUbex$XKr}khWS|D`mO1N77>Lq`3LojbdhNkBgeExhHD6>W#SZ z!Z(Ru*@bs+Bkuje-#?Fq&pd#0Tj%i{RwI^%m0x@N;{TT|IDZY!pPfZ$1fRJJpSgBDLIoRf4{&zGc7y_UWB=Wc z{r3nvvOF$?EKbNH(-WEm;}eGL1}CjJ^-el*>YgNVX`iBTX`Kq=)I6QUsc|}=L;Xx0 zyV{vPc9k=8Y)WT#vnigv!lrQgIh*{+Pwc<49_P=`;m@R1*uU|)8*z5YR)o@VcJ%JQ zp8+A{eHbBU?BkZF5i+>IhBU5lBh?!sNco05Qo5l*P`GJCkiTg|kh?`B$lmrPNZ$@2 zNZm;!NZc(z;&&U7=)EB%bZ-?BxPJ)o-M@)=@4iL6cm98@!uiv zLb3Z03Oaa`)mL z`1=_U&i2LG#B&H)UqZ;}8qU9k^Y0-f{SYCEw+M+YvLV6myac}Qq6F^m(ggPJ$^`U7 z2V;hDLg)tt6NX7g=sW%f^bIfnH+<18F8mi`n-J>WhIas;Js-P6 z8YO&0Q#f}8&RvUhx8l45`2Ek~^xNnK{_itf-BX1wU}R@BybU4{(HV|74Hj{Kl5a@s+)Z{WC`;`$w*Nw)fnvZ11?c32(Xk32(TE z39q>(2(P$i(Mzt?=mpmn^o(mCddhVgJ?6fJ9&o=v_jo^}JA6R6%@1rh1%d6xFMx=& z5Qs_$f{?f%NXiR)Hu6WfIDitR;r#7?1G;y2MXiRXkXlAqWv zNdx-@8Q?fC4IJmBf%E?bBqfAET37(&MEF5jmLF8q@T&p;cLf{%PjVi7Z)9maFJvOP zp2{S0K9p&wXiL4^y1PQXMdrUIfnI+1`<_0l<7aI- zve)6fZ=~k(0;!FLKx%6!cxY`c{MAAv_k)>4_?2l4|1;AJ-p8iJoDa-u+3%XSvj1b= z!+P6di1n7mD%Km8Ygn&au4lh$HP3#wWB(tdFs8Szln^w7J24!R9}lYqno= zpSAssf7$kt@S=@W?gDV$Mk@aVQX>KQS$wIJkS7(XaHVcK+}~VGdEYrY2tKnD3qG(7 zl=b+Tt63{cD*Nm()EGjaTlr5F&C-w(~w%Q1yUy_SL(%MOMMks zfBUL4fAH34ed=z>c~>Ojz2O!pc-cKx?xshE{B@5a`KzAQ^3QrU$zS&BRJiEXuW-R@ zrNTL{35938)+(G8Z&WxfUQjqC-lup%d_wWK__E?r@hggl#h)l06#uNUU;K~SUa?et zk65blG^BRW{+`gi5;pUnU>@BIlBdrl>h!Lk5#v>VNA68OU%9J(5lWZ+l2p$7<)}X6 zU#fcAzgG2>e~an~|1Q;I{sXE<{YO=gNLH&IlB`!dDA}yGU$R?mpX7-8qU5~#9?32B zT>NfE&EEi zr`);FAeB=gu^PvN)3lBR=W8DdF4sN~Qm?%)q*Z%w$O`Q}A%ohxL&mgshD_<~2-%>s zJ#;~5Tj&AZEup7%H-|p2w<+|F-iDBG_2)wVFkBxZHCz`WHCh+^Uo6ESm>54sf$acdm zkv)dFS8z%qAlqnN37U z&7X$U7cqeUpMn3KROl^e@LQ=2x|*s&=Q7L~C(@mH2UC2M7866XcErc(Z;eYe-W;22 zx-quIY(q@7*=$Uc`TCen^R+R3<})#)=2J0K7HeWQT1>|5w48`JV!0~jqSaW;D^?>h zpIfht`PF(j=ArdajMRE4`oE9{5aVt%VgTLwCYHDtp?R+55M9hxpi{ZVbST%6vzRSb zSjY&{*qj=vzacr%bX{VG#Y|$p)l@>6_3DILo5}bVoALN=+g0&HwxjVAwj&Aa?S>P! z+YQAZupfwj#-Ts{MTg$_PaJ#V?*R`SR>VvH52PW`{)oYQ(0s2z`@R6pbGZn*w?IHg zi}Yzhd(C$iwGYTJOOBm$1BE zEhjn;oG9hcfifN1U2e_XTIR;zQ0%8XQxK{%nHz09mX%~RoRMKan4ag=HyP2K3xoVweiG4+IJL+Ulpy3}{Q>QaBi~q{S*tTBx>UY^rkQt*h`+TvHmXIaU;DIGi7E*_WGYzal%! zr8Bd@tu3S6qa~x>t0|*h+>p^PuFn|vuFaVBuFlxuQ<-tpry}E7-?EH5!1q378Gm_~ zWk|(<*Av{0MPEQac(s)1d2nBV?m7t^K{pS!!oMtg#J@CqMpB%;O;VVBNK%k}DIhQF z&4B#uZ~XJK|M1JtlKKKZPw;KR@_yXQh{08GKhuOd8(4%6-qxf{8=H-3ZL*s0r0wQ59{{UY=mnSeoiwQGgo4+O~JAZRf zR{nvY%)IkK>3OdKUk7I7{VvJKd*q*)C;b;+VLaSH9&SPZUjg@-HfRlCC(5q*HaS|~ zZa{0=?U-Y&?);%-u z(HE*PC&>1~z`Asy>COo-b=3PtbaVrw-r*gy;;_!$USS=lJwiKP zbPs9&%ssg67tf&9`(8mU(tjb_6TE@kUxeQ$z`1V(nh#h5tb`u#8y8a7gdVj{*f1I< zMBM6eANkT%L8=9#;ksEPF(#?QiB<_iX^zo@xvmidrEXyZb?%`9U2Y)*BchOj^)A5! zyPSguPB{e)yyzI%|EWVj-#sTu&wUsF9_hb$t?uz&7<@kp&Ryfsy%W$}li)}B-!aXi zrWp;YTWd~LYn@o7GhY1sX^B$SRH#PknkfDF)$yj$lc`qW6WMkl6D9V+6Lt1M6P@;f z6Dw^4Cf3;mOzg6fjGwghAHQYcKmMt?@7O&npV5D;y+8 zb<@zDGen)U(0$Ovl^YePbdw3@torXLwU!Sl$$ zImG=KxEI%9Jg!F`z&*GT+Iutjw-FUAuqk_|24(Ctqtu-a%!HlpyqF!na^X9Im4g=| zH6+{PwSBjz>w0g`*A;KC()HTjs^hhNP}_6+w5G@Q?HcaekEy$Dzpm!C?L$@3mY>yK zH~+2SGXGHX2`)p9o`(O2AW3(CcXpm=)fS>&=<%kV(4LFXp3ub!2Lu#*P=}%pSy1>P zM^^Ab53b~(pU~%Eh=SLFXeEyW$trFKvQ{WC=IH}-taErXt!NYP6 z2c8q!A9zn_x9T&FW3e1|hJeEYMhe7my+eA~0tJe#u}T@-n+rO0X|QFw-3C{;4M3W z7(kQ9o`wF0WcRoX{d<*5w%63i`gudLeBO%8pLb@MUH4*|Tn}U#Uyo)QzL3T+c%hJ? z|3W=O_eL-2+*m_eHx@|a#wk*}ahuexe@SZ3|4ORY{$f1AQSk2r_tt}$la3$;$CvkD zD$fw*LXRh2BnrJk!|R_b(1CF5eSp_SoY+82DTR?tE}3 zKZ_h(Bl5jLaefcM-T#pC^jEN#yr3k?U*V z2emQoT+O1Vral{2K&2z1gz>IdBj{Y8`X2hGs$GzT*_(=W6@_h^ys(jnj^{Y)3> zC%T0&y#ss=+@l}x%OAk_J@DOA05|w`WPlBZu)!KOxbvhG#F0`wY{-HQrHqGE$M}cZ z!QBhqVepQl)hTeTNBf)5_BLQQ+CPAHkJGnwfxe*|V1JvwqA!5E^d3!tc7t~iyrbY-4X(A|*#M3$ zXn!Z#-$$R*F|>V-KB4QtoAfbWeS}|q2pir5=R5xcsQ~6Rs%6BNYS{4p0Czx$zf$qw-ct-_|DX`h`dTrI@r7au<5R_2`dG1*K2%&m?<)?{ zdx~T9j>2lXqqvsdR@_K$DQ%-SmG{u=%7^JSm9zAU>NUEp`UbtI{yDv%b&v79_5;Q> zZ7K6A@T|6!^#oFN@T)WVQbPexYNEoGn&@)>GP2uGc}Y>i5zs`or|H!8pBSFh#cvXX&QlW_rPJCtWu>z_?~~l5y4e3gcPh zR~VN~K4x4n{fTwX^dI(FQz_>RaN0!5eFCWtQy?{h_O|A*rFQbH`?l(=pREj8Uz*vl zKQ#7W-7yJazHXMle8nQ0`J!bB^QKh|>$+77>v`)g)>Z3%*0VMvtSdGXtjjhttcx}q zSQl)!vCi2pvYxR$#yVqrfqmNU7W<^#`|M+O-*b=H{mDCIC*>cslL`(z1@QBvHqhSA zOy+$Nm+^~>Jbme)$#~z!gz<)*GwWpsf6fbzQQWJ}soX2h`P_>x<=pcwb=-3t=6Od%J9&pihj<4?XZZ(2*ZKQJcle8+(GdQxdY-sxqad>`Mu&P`9<$J`Q6^zo`Te#SW+3kFZ5ObmXJWA*L^v3%U_e84YXvQ z3vlC~lt|={`bQ}q^iNjaFUe8fD=AUlBdJ#2C23UIDQQ<(ko2l-mkg_Hl}xB?30SK# zA26@FDPXti#(<-$a{-ssW&>VPTPOKceMWLmb6WC1b4nuBTI2s;NL`8fJNQ2h27e^9 zH}vPNa0WdWrb_1`O&KR5owRClBcmHq*QZ0q(*a7NVDdK zkWS6HkUq`zAtPGrLe^-l4VlxL4q4Ei3OT5~I^>+rWXOv;;~^jEj)nZJHyV6jZzNdy ze}EV;zJ>oEM8p3?=w4{>=b-=2$H~))1S2|_V9(hT=P9=k6R5H!DpGS}WRlKYM5gZg zhyuN}5#@T*5p{Y~5iRJR_XxG(%~Kx*9k6doZ4UqJu=2mCKXe_w;{x`@Y9DSSGdrbmluHmrqIH^F?8zw%r{ znC9BJSiPy(RD;QwY@_k$BI8xjmBypd4JISe?Iy#~y(UA^Bc=nOjVo6LHncboM@ zpD^!^zG~hT{U3|Y=GhB&EBL#)*L34RPhUqlREMY-`j zme&i=T_^B(AP-t2U!ArVnlm=!J8@=m#qyKc0cxWe;krXV-5|8>m2G5w>j1(9&)Tsyy#Sw_?lB?;#W=;iN8BmBtCMe zNR-+?!MDi6dnhwrhX2o%LhGR1IEu$bXz}gEDzvH8gw~ZfuvZs(3daikRfcjywR^Lo zjk+=t&D+z`tXooZ>>5*w9qLo6oN7~=oNH3LU8+)6x>Tf0xt6DFb}dcWFDgzsCn`$0 z?N*rbg{Uy)SJ%Rnht7q`(tq(4`r;k*fm^bDDCoY^)zCVX(EiZko68kww!)C6Dr{M+ z%G~(FCB901MZua~`H==~xp8KV*(o-)nVAk%8Trl?8Rep~^m@0F^bYr;^Z}28^huBW z^i7_*>5HB@>1RB%(q9BV^~g&9#XT$ifm?Q(RP+R&$D=PG|1W^^B1*p#(0=>yxD8r- zL$!crYIJF$#+orw?aJ-1^j7FD4^(d}3D;{ZiZQJzNVKlVOLr{E&2cTvDfYz-#y)_sqZEUEhwe3C-+8uEV) zoadmwk2a#tZ-CyaC0bk0p~(g<8f~y(4Awhydg{F7+G`{#O;w@VwH49E6=eyQ#U-f@ zc|}>Gtil4%^!y6%)ci)D3HdvH;`2{<$K}7^9h?7=I5zLDS6tpd zo^iQSk0C7&O+RMnkQp)Z5~~>TLGlH#hnz)is1@ zR@Oxt6xYO==T#-!WmaUkq?YA*B$k$X$CuXo#FljW#FVb|i7s919bLLZ994SUE3)*u zXGG}-o)INKdqx!h?GaHV{TJ^d54Vv2OW-`!jywQcfSFckK0FR}C{k~yA$4}zGFv*_ zxb^M6@>Oj?Y9%eT|;W#cMYlfNfcc9Hz55NZ=wHRM-0w`^LRJ%0Br0cngoWShkJSi)X}R; zEqzvu`d$}yRj*iBx*|Y1zdKYbt1HSNwIkj_bt5fYtQ>t9)$SPUs!OI`^Q^*<&R!bd-&`IczHHzs=Hjn7dv<~elvsf7ZHO?i1|ry z?j6K<93q+mhE{@ql&E19QPqS3l}#E@(WDI{Z_<^MIpHlx84plOSQVxbJr=DSKALD4 zJepw=I8tCH8L2e$A89f58yPV19a&@SJF?Z#XXLPf_sDbl-YehL^BVraz;p0VL(hRn zMo;iO`rtYEeryDD0yyV@i7}#nNTTL7(4EuJU2D0NyH1m`)|*k1Lo$+iQAK%X50OrpNRl4fm-l>h4qTsJX5F zUR^Z#ho1ix)R&v%k=PbEu-v<``wK`D9g(`5aaE`BGK4`34oye2=p0{J4_K{3b=0`2z~h zn=Z*aZhBkJal?1=4s*XN*v~#xe1h|c`!VqDfxjDp)oY0cXOV}EMAe(2eYX>(?1c8* z&7_b$DipYANRmZs@?CUcc`bTz+!rN0(Vj4Y^PV`N)1GvpZMH zU7Y1v?^)zp?K#J>-2FPoV%OIk^Buo(%@*$Sosfn=;tmi6L!NpaWs&PK6>>hNPfo`z$>F#Y!}hob)B3nS%kp?Q%i?$f%lvp2%k+3D z%j9?y)A)El)9CmV!{GQ1hTid04BcZdkX zavO`#?KS|N{5Cq(%SQk-@X{UN%YU(N5Bef}o`KK9;BG&;ya$u>3{k=bqL9nT!E;0o z&l8#5B+`AENcB}B;p;@Kx1jgmW@F)1Kq00@^o|J%0Xw4iQ6zs5f+8J-;YV1IKgI<3 zF$UZxu;XJm`7s*)_@#fb;~>#2;yniLt~3ALgGqwVVb_Sn@Y(Se_-_;Gy+Ne*Hu&Eq zV!sFe4}p(?Pl3;1%jdA=OKqaB&4|8rBKjUN`7w^@XA~!QF%jOCok>CR?;-H_4*iRb z@O=U??}gtDvOO4Zr+_;GKKsB-C-`jsCj5T~{(nFu04MV^aDEOTln~wEd%Pd=1Mm|Q zT=GP}=n(yGMf4Y9azBFTK^D$98lvB5jDCgo|Al7g9?j8R+6;BSKtItU{YZy_(=h2- znDz>NgJ6AyPrico{|c@BFTf8QG+=`oY|!IL$r3h*U_$_Gh+#aUbo{aiyw%`q23Hrj z`oXah9OLvoO@U`ULa_;4+YpxBX!jsObdtWHOY|ANOrOvPu;P3A2(5fX4*@CC_+Lm# z9X6=I1{K(#4I9j0gA;7@C<=x3_O!a%M7~29JscC zYbQANgY`JQPZ#K2xbLl*<=LSxlZ(DBwyJR5?-w1NK9{73(*)i18ycfWBtLz`r#5 zfKfp2F)HaDW&^#=Y^OI_J@f`^kX~br(yOdVdWAJZFS9q$OYCiQi@k?#vX9UUoM-4d z_XWDfyF*t6U(*%2-|3RPlrAbr>B3Wx$}{;=MdC^|Ic%x6JWHyj#rjpvg!!$a1LHF} zF?}EmqdRhm^oD#ky{1?~x0Pz>CFN$irP4_^RQu=!)nU4>wu-K)P0>}gS$bA|3tds) zMVB-V(M653bYAm$I;Z(Iozec9PU-x{IHB{1aa>2rIHn_IK7mvf{JO-J8Znp;O?Zso z4V4++>gqB+*07*E>aO&fb^yJk7ehDn)9HDG0(#D{g02|V(`BPpx@g=@7mNq!obd=f zV?0S`P1e$BlTCEWWPwhY?x$m>rx-^~pJN;`d!2F6>~rRRvtL+y%^tA!m`m9*?0yWX z7Whqx`45Kj55N~@9QxQmk=`;ipqEV@7}qU)7|&XTGcQ^vG0)j#Gtb%-Gf&%AF;Chy zGLPG~GmqJ=U>>y_WFEE~V;!L-UbNo$ixA+^~KIG53{U}`T_K(~;kyLK2NGksXQY&Ko0^U!(FzrKwzY5&+V$yRS zs&rm##yBZVuL$)Cc^f z{|A4`w)(NOyp1XSMJzARLHnJ@(t9$TPlqCPX-}jzYav3!pAYj>*bo|~ye=e8btX7f zZ7MiNeRXiL`ebmW`gm}I`l{eI_0ixSjgjD$8pFY>HHLyWXbuGL)a(yFqSY6CS-U6r z4eb@dU+HuO|E|*&^hl>ONUHq=Kf0qIgc7|D?iZl@E~P^2BoZBtWzk~1CM_gbFy`Z( zxwEli`RS-2mDQ0^>f;fKTBG3^+9Tn4+QZ?cI)h==Is;)%I{jgty1n58x;^3Jdfnmc z^}52h>vx17)Nc#BV9*-&ia|@*=Z4K;zZx`!Jp`oxLbez79<=vu@Lz@geg@0i(KOUn zSo(LQsM6+C6UJa2UHg1aAV$u+`-=r?;8PnRRmrSc8KQ*h4yk}Y!`M{(qQYwS73||E< zp9Q)F{>yoY0dOE2wH3;sEg6b5muW~dnRcv+bT`3Bs;|;uar7wY_VxmY?WC}rdu*iDudv5S^vv8Sy{V{clO#C&8`9CO#Q zIOe`Zag5ab2|h<3d=oKv0lM=dbl)*(@I{my+hNDX93idE)uYK=YvyQlGD-=Zp^%&H=x&bmCI&89S=-=-vC+_orT&bA<7mtB6s z3A@~c>vlQu9{@ku=EVPFlM^qs2CQWG1bKK3+WT4ov<~$5;S$6EwrqwS>k4?Zx=@?O z3N08z1x}pad@s4q9EnP6R;X4(MwEU{TD(a`YN|zPO15=za*=Iea+Q64a*C& zJ4(?Fuw$x(MXO5HX}Hvs`br(xUBw=P)f8vu^6XfX;;dxL{EQ6SoQ!;j ztn_lHjPwSVwDc~Q)by1u$>}pLN$J~N64Q^kB&0p-5})=C@Pku)+Fy{?MmcDpDpdr%acJ>?pcz11~3`;bdi_7#`N?6;jGv%UlV zbc)K9IzGW2aNqH_Bty@Q>_c9wni+hsFo-f zSB7fkl}8z5mc^T;mZaDu7G*ia6&ATf7goDQ6}GxY7WTVF6s~p&FWl@LR(Q}UwD6K+ zXyIE9AqC$$gyjF>5R&%@kS^g3*d z9a$Akp8S$VKgIm|VD+rJ2;J10SmT81B+Hn}OxwuH0*CO5N~h3@X2+0B{WCt$229HL^P&bhBo9|2RBsM1U57Q zy;cDY6PA*OO%{@d{pS7+7tQ<{-Zb^C`^Lq)W5UQ#ILi**tc`s$ft9Yp-<;N1MiLt`r?i^^u+Do=y|sOX5iWK(9omh(Gs3V z{-2SZM*`orZuCW947@9Pi5mNfDxk}YhIy1bqDfgJW|Thaz)T)-=fth_6-EsQDTWP) zs|5|kYDxxEbbJSMbbSU(b-f20bj5=!bi4*vX?YHA(DWGCtKl(lUfq4*bv3uXuhm7p zziEnk9%#AtJX*pP#QYRE_x2HO0@i?ccz~!A+%=GA#gHRelh8e@6)ACzKE+R2QS=&T zR`?n(Zt!YebNW$|Q^s^?^un#V-3n)^hZs@p`DifCd~*>z%0$z@_u(PiQp z1?TZs<(*c2DepM?tD?im10{!%hf6pQ|Br!h2QUjMHog+NcZ8@F+?A_|@}|KLITSs| zrSJ_J6tcmDf;QMPBpX~=K67G@*IWSKeJ)%mnv0innM;>*o-LGfnyr>|oNX66%&rvJ z&#vR!&FwC^@(zXbt#E@+Ya4iggXuqBrru1u!|Z{y+2#xVEVG3vrpdx~rt$XU48!d=7zW!uVHj-rnW?||ZuO%EpoVNk% zfYCYhMac6;_*@EUoVAB2em`QcviFvjMi@+KH&YZ@NPeH_=f_Od&k$m#UB`j_tntyyxoWbox z?Yq$z;co$WQ;#k0!T8DcV9pR(o+C22K%{<&NDlg(^&B5Xhbo|lMb83o1jIlHCO#Ad z&!Z4{zJB>;NYAeY;M6q;{A&>OS7FE1PnNI~=FRTFyoir`4-hpU{qG)3%vmA{ctsb9 ztS=K8K1ZbSJdykjA~xJ1G)1?e^LwN2t}$L(U&OJzX>P$4vW%vn2f)}p#KgX{X2B9??Cw7$tBDlK@8w` z_i3WqXO{P15}!pMxJKj&UOSj-d>j714*ok&?Y}&|2lK!CAwLL+e%2)V#f<1T#Ni?inx{t;9ekXtdcpshb{-z~JNfVk|4VqsKdRvbzB`c4}VfM z{XtFi8+Ag#_tG!W{`a8$??U_k4DJ6DwEvH^nZAea{ua9XYdQj@eGaC*Kwm(2e@@>3 ze*phId-3UGEbo0N!UhG{pbZ<$VS_Vl@PkT^#II7pnGe1SaMgpSjeejN;2NOsXas!Y zXnhSh*MV;%IJTkPJqXbu`iRcZ2XvL*N8;XxMem`dcj@8(_Y4Lp!v?v>HfX^HW7uHN zctB$K90uM*aAt$61Uxn1X@*~&@S_)8L-Yxaf@>0~nE}rnIJUs+o#-kD=q)-)Z_pKb zonFI#pV6y`+AH)I-3IH+PeDoo*udsWNeCO%SyD2D4c6dyho6D4J{G>EgR1~s74WMb z{fQnnKKbr^q<8Di}O%YETr1UQqymjkX6a8-k=39Yt+X9ai$z%v4#3GmE- zV*@z0(X+IO2pok47w96ri2uKj-tiqh0~^jT9?=;voqh}{3;aA{Nfj7Ose*vnaiSoN5wXR?nsj>cw z(+RB+I<7TIN43_{5$$<8q`i|4>Kvl|I_GGg&P`g>eV=yg{XjeQ|6=UWmogUg{tKxJ zF{PMlzsD5!sUdWq9)sRiAX=eoiUE1lP2kO+$4{VnwHXG(;7Nt z+C&G;+G)R85A8D>qP=FTXph+x?Ka;)JIxnphxq}hHYwjsXb%}A;6#O=r@*FVTVtRYgf<@O%)ajz7Ii0q4WgNHhXCAhVU>>kbV(zoc zWG>nlGI!gTGk4n8GI!WFGq>A!GPgPOGPgRcWNvntV9h(MV{LTU!rI`l$eMLH!CLR| z9DAL^o9r2fuQ^i=zjN0(NV%(lNe3xUhKDAY-elX{(BH3Nxw(Pq^;r>WeFp_P>0(5O zUG16sT)o)4MZugMq8QFLQ3_{^D2KCIRK(dNs^D%E)p6%UE!%F5aZuQQm~xCH^Y6*Z8AuUkFCreig2Cdng=slM07L%eZGr^cncy!V+@} zQ|c9H;Ai}>qA(0M%k78Yd==XF`6y`42-MhEdJhJ$XiuO9Z4WkQ%m+DfW&_0h8A*`b8cCG=q<@ma zxPOM?n18F~d$ z+V206YODWU)mFdzsx5xffAKY9@D4a%#4>vYOa93?)Y!0P4{X{Vu0oq4jcI*^9eXOw zoj(!kFFzU_rnE9RR(U8WMP(o;OSLbkK(#lhTy;fIty*_bi&|&U3bl@)mFjIlYt&nV zHfb~mEow9doziRwdO@o$=zXo)z@LD>HERN;|KbZ@!#PPaOAmu_X~alMMrYkFm&@9LL^{-9SH`j>8Li1c54g8aV*->;>i z+`=+{Fddo`%j{;vWHymcQ%O2Bo@BvTndrnBNbnM_h?6LF#)PW1M#X40M;WUc?>XJEOdaKMnID zqy|s$A!2?TF?co$dB{c#@VE`OY=9lpsT`U})1Z-bQ^r7=1A9e^yPzYt0c=?ZJ0>$3G?JxC1KCE@lV!{5 z$Q1FK)4k>EQv+10lEXC1lA?8s6A}#z64Fib;`7XM;>*ml;_ECj<2x+V;|DF%;@4QE z#Ba7rjz3_P6o0`gG46G%gt)IQ6XSk2PmFtLmKY~p!X4!P27JE&?RyAVC_oJIiKbx3 z80;C$Q>31Jed^4&X13(HaO!isgjHGo%4HcL8inbRx_PN_hFK{ors>Jq7OBZaR>{fL z)=9~&HVMi7Hu1@mHgU-08j2j*)rB7XvI1YlqP!rr+?;To%K#9_>2OZ*z^k9==3JLsPtaj$nQ(3;Td~v!qT6y4o!ar_`)hQ?N{J|WoW9@ zLI&BjanFJC6iU54z&tQrN;Cpn`taCU#--+R4XUp&rRs8fW_h_Auc*{VF1I8=C9^n8 zE446MKOsNCBsMS2A}TM>Iy|?`CM>tnCNy`2O-SyTb#U&SRZ#AtWnk`Ei@@BMEdp{r zw+P7o6}WE^kR>&j;U$#bm%(*Rb`}Vj115pNa-uFgwp25zu11BbY7MEZ)`n43Ma6Fx`9!1Ny)64f5{#bzmhY+ z%f`ONpBwuW{bJ%%c;CdQK)Qq*i1+y_^aa^jAlW$_JdOb?fYv&qx(4X~MtLf3(xrlC z3(9GBWMwpY@KPFmUN8H+> z?bW(c%d=&jrbo*z4Ud*n>h3Kss<}0PswQf@r{UW0kEUz=qa|FaCOXlKJOH!c90&Sa z5rcN3DoBCC70{i%(7ydjl-RFN@dH*AGvLIG==bD?^!o_{`+^nxdLxy+dlOW>dNb5K zdJ5Itd#Y94dfHV)J;TbbJ!_R*dv++gtT?IQyyB*UbN46mPF;5u9XtP4a_D%ZEW`OG z%JX$H|G}%qSTRs#=(GMonIqUAk8*KQ_>Yde$8wV5g7Sj{wXENA-I7SpR)=F?kPrqf55CR5j# z#%tbZ8m<13WibFOSYTM$$GOrS#5S>SZwxXm~9SWm~4(^7;jEv7;P?O7;LU(=x^>K-OXd9J-?B( zHXR_1O_xb+;~i4p@Exho{Z8t$|1f0Ok2ue-T)rM_cog%&IQk;Ei)Wy{Ax~pB5(RG| z^4d=12z_q8n?VM9#i?n-lXmiqYeq02bn7(Et{lW3q_{9sC%aJi1}| z#-~Rh<_|-(AA(Rm^z9P1Al5VRc_rfAg|F3bCMsD#40fX*>{~tu<9U?G{y32-q`Efr zx$;>eE;Krw=K_jYY_tJmqKhbuFQOQ|h{Es^ijqs1gfC<8U+!4G8S*6r^ddC>1&I0! zZ{fEeEny>gCn3QHwi30$=c>KX{|7M^!5eXc$OoKG;50u+qLzUs}>NxeorD;C&Hz8F&SF4S4;@o(KQc{KHR)pqOfacbQ0yW2bE`UGOaTMLBRH*elDAjUk@jChyn)@Dg zLB;pc&(Quq(irsdBz+6L`wg`J*U*MqZwExG@ z{vSd6e+cdWKJA5GKSu9Bb>D$Pe+!?yiB{f#S8ssfX-G)`8#rv(0UOj|g8{x}1B*TJ zi(vYJ;=q{!z5?)7fUh20E#T<{PcPCj1fEgwOw!wk#hZx58?+Uk??!hyOt+!-U!ogy z3l`l(Yc~+p7ykDQ1~Fj+v^VjP2Nl?$1AYto4*B>B`S^??!I?rIP!9M?z*7yLMs&kA zdX>7t(}(Uk44zf!s%yZr9vt&@9r?IM2Qhq3BOBM~GOWCW=v_o)FTl$SV19z7{SP9< zfCYYe`kT~{Q$ys?9=u}s7z)mK_>}>!0`QcBrxrZT^gMN-^%dY5pl4|WTod4#LAx92 zJZ(n=_R$$S2`ipk+7&v19&#K#=@?j!p-v&hLAoeNRzDs+!|Iltke;02VQU)=lm}2e;F;p?UKVmQuH6_H^kZv;U=qg)Gm$@Nyo)<@F z`RR08kVhwlrF2|aO~>RK=!je!9hU2+L-PG}P=18=D@@Wph4r+kxP|s8F48Wg#d?~dNZ^|Zxe0S z-$k4BkI+W_i!`VI3e6gPO6v^n(OQECj2Q#zzqqfCDa8;|jU}c#O!qhN_$;QDi#kel z+Q5j88avQIQ*YX98bZ6xVri#YDlM4j&^GfT+G<`wo6YNJ-lCZ{S#;6{i$0pO7@=8< zHMGuRj@DW(Fs3aJGS*n0W30A(kuhocF>~DVE_2NCK5NWU${Kx)pY@jaVBT`YbdRa^ zG9J%j2|Q^bpu^U>wAap>cG|fyw%bdXTkIp4o9q*q8|>4Wv-Ww+^$sP>wGNfc8Hal2 zv_mU%jYBtcwZkBD!eN{>?zoOM=D3wL>bQ?J;&_HV?0ADc2l$mf!;}EZXCuLEGKT7@OUkm>Wdi?De8x&WtFUGbKvm ztQKW*CPew1aZxE}OjOMo6*Y23MD5&Rw?6KW+bDOyZHn9PHqYyI+r#T|JIPz&_B_AK z?OlGS+Yf?vx4#7KBB`M5F}}ofeh2(Fv9z2Ajs-z)VS3*MTegXnX_Jo;t@p8GPJ6p^ zCdK}|RpK!Is8<|+rB{kz$SX@Q=v5%-_bLH7-h#jS@Lp z7pO;T0GQSggc=`FM#_j%8dQMHt6sGe`>iMK3ArzHV}ubO~?3-)pk7Kq&oC4%23oUTa~? z1ngLuggQ4_j=EBGsV&8V(Uk1Su1#|1S0?x>l*9$96vl?D=f=cpWk)CLW=3b}r$-kW zq(xU6rbIUzB}exdB}T6@N{F5_j*H%H92XzOZ5kavY8n~8-ZUb9r%8DHNt3X+8z!M~9~+0o z-8Bk}{l_pYR=R|j;p=7S|HHXN+ksg;pU5T}f*mVhQ(HEh8gtaBHrI$Mb8MI;IWC-n zEH6P$roUoFMzC5+T7*_YYMg#-N{UfbO14Qva*1hpa-CUNa;I5n%1YCal(nY8DLYJp zQcf5LCcj`Dko=KRK+?~^--ZE+(k0wP{LklOOafbg8DK0AIe;x4cx=S$nnEQiFVv@! zB1=X=p%Xi&z=NNj?<=327pM}S6RsJP9itnOm2422nPnWDS!5EFSz{8I*=`b$IczM+ znlbXvS}^p>I&R>bdELM#^Fw`~jGqjA(*HK_Ns}(&I($A;w0u3*CSVOP40IKs&MpQ& z%FwbhAr+NrQ(n0lWtZDC)5}EMbWcTI4m;`2l zabN&tcncnDD!^YwR8Y;O>>72-s5PS0S{p`UtqVJ@#)}tK?JpNr6|59g8L1|zjMwz7 zNZ0nRD9{#HRB3xvv}$=)3}|{*Olf#jY*TlyII8AWeofV_{C!nX>5pozC4Z^A6iYQ^ zxFkCh1+J}?$OA9}^nkaany9=MdZz)Js}Y)~S&n%jKOqo8%lj`-BdilLGsWEquFX;PmYCN0Q*(t&Iz-5J)CeoV{B5T^NLEYoZCdOkfrV5u7Tf$;7%JM zih(Q(o+J`aLHn+S_FT^+(^)k#p4BJAISVqFb0GaWcha5nBb~W0(wd7WjkzpRpDQKR zxh7Jc9Uz6-X_8yNg9PhN5pV5_#GmbVy;rl;jp{Nw^>){(>*@7Q%?LkVveB9AYe> zgKvj}+Y!WVo0f03u^FO$9)fiq!gT(pC2Smm_Lp6cHH3;nyFjfqVG&;pE!4nk)ibOBHd9Kb?&5DU)1yyY8F9e|Su(CB_N zvJawu5yE{Bgz}#6maq;cu0p(f5$|TiyL>%juo3+L{)XWvKD&vW_aO(+=lX|;)S%IY z#~?@`+vy}k$tgJih4E>9z#J1E3bQj_0E)7+CR;cp48Q53+MGr-`D$>jyub;G@}dL|Tu}z%XT8 zx1ZX7dE==)kth2hOJ_s45KU?jE)Xi;+7tbV0{JeA#9xq?Uojc{hQahaKi>JY!Jc*HCo<(umi6b zRC+LYO{J=7OsPK2?LG z0WG#71zq6jr8l9u-=I-&O@eDJI5wh-Y=`&z&}B}b>pY7t^afo;OIPU+Xm=^PvK0D# z8O!@0G8;IsK?r^gaGT=Wj_}h5{)K@vf!?M}v{C?$a&Xkbk0$W6(=FuW2K9k!7~ZY| z#}qvW?SGlJp#41(j|@Dzim5}wt8rx`r$U|2!tk&|bTle37$X~g0rZ9@Ay=@=bCuXqOkzeNY& z(SG!%{mAq_^tgRs-?wbT68~S1FY)?>c*vy&xXth@XT;GLeuaTA9zLa`wLJJ!0-h@H z)Ptu5Je}~i7hFT&T7_OP1)dGGmlkLd%)9Z6o$z1>A}Tw%v>iQd8+zR~uy0$o0qO;EST;7$ZlJlS7OGI>;!a{fuhb$84az%vRdN?4sSQ ze%i$vp&jhiw4FUm+c?{33wJ+l=ANca-0QTF_YQ5~e@nB1KWM$+5v>L{bn>I$RB z>P^N9tFM{eR==~ltRAsCt)xr%0=~b6CHHwx`0s)G7E8?{Uhl*dyUkjeHrW}{dV5>O zjJ-Q!je~?a=@8CbsV<8RzXhlhZ42_HLP`WGVxSXzz&d$Ig4VCmfq zTQ;}|X|1a+trl4_#zoG|5s^20SQNw_6h(6SMG2f<*ECL#YYwN|wUE>0TEXcM)p6QI zZQNE-FSkWB%54(Oa2wsW^6K3V@ajb8`8A^3{A$tXf-2E3f=bZ?L8Ys73GadHMJ%!B zf>3e*I|IS*53K=PX1q8wDb}D-Z&Ml)+q3$`?wlSkKW?{ID6hjan&0l3$Zz#b=Qn%i z@|!$M1Pz|mf_l#;L9JJ}pvG%hSmm`wSm8As$`^UwlP~nV z4@j5rHkP#OVdw|IUSKOqpgGtw4Z9}%88qUrLW2@R>XleCyZl`^ZGK{2i*JCS(KlRJ z?-MIm>ys>3?UN~Af5eR;ya*NTnUaJj`2I5)z z7Tl~&)vw>+~6eV##?C6AT%?V7ZOH`(+Bz-DNvSbt`I325~m&1^h&#|>6!YrhDXYGnjXo2XnG_))bdD@YFz=xp)6?5Y~%qL0eXNY zyjPV2e#n%(d^Tkjs8U*?0VNk&G7<_MSuq9f+{k<%VQ5~ULQr0qiX=By-8VNy!#gKe z(<`S;(=)eG!!x&6-6MBG%{_Ns%`NAEs$0$_6;aMxDy~`Is=8$UuI7^QP~9a%s(wBf z^8&C5T$8{cO5aY|{tr-61pX4Dj8fG5W%86zu0yfqrW93f#|STXWe1muc>$#opsq$%*{ksaG{edxX_5!WNL>1sIC`YXi$(U446kE%qh+1_Dt23nFIx7mO zb7K0{d9b}}eR-a>!2aiq;UI()4b!XW0`ZBG0Ls*u*F)Z`mRF+w9KGU?P zifP=_&M@j3W*Dqk$IxG~oAkQRkWSZa(&_wybUS`w=(PXC0NFq$ztm}e$lM9Ob&$rR zzzX=>4DL$!od@m|$oA-NqTpWWz5!@o=yU6pLb4dqAhQueG99%f<55R48ucK9QGe1O z4JX~v1kxGJBCXL<(im+b^^ty39hoBKl?$XWe1hbMZj#*KMC32;9Ct0 z0-f-?9^57HI}6H^=SiAo3tcj*!BMnSq8h2S0(Bzs`T9@$~k^yLF^d)j1w z3>@D>BRdZf?SPP8Kn1_>1=03zX&fdFAlGffMAZmc0k~6Vh@#-H|2&Z!q_GV+jdl@f zK(5Q}gD~3<0dNpNb95Mb|1gU2Bifj7Q4k-q23(1bqbNHLJ5FE{Jb})B0-gFe8b5}{ zj-JBzZ{m0F03XpP%v-Sv;}Ll-gB;I7oa1HJLgA}kdx#vtX$C%>!$gY5h&ZzS7c>Ep zLy#_5@PKC+D8vwx^QuG_5R*&h%LVck@8#m;Dkj})==|3Z=&K;Px*PAKk>{=gH)v=I z>oekAgDz7DpVN@C=)D+=@KFR#>yyX+y)dzIy~XNqtCB3vyh!`>8z`m?(yScHlI; zNTdor-qpuEHy`84H9=3#q&zu~B0C@Q9vh-fiRd#3hc6)%zHx_;L_zd3?6?a%?jrej z(b?`I;CHt}>+zv^xzLiD!!FUY}uK>3nLrQGs zvhHQ$xgxmr=x^xE-=Q;qfzJFHn)`c7rLQR$JSE_$21f&ZOsz}jFg~Cja1DZM1Y8qf znqE4G@jBG(t5CeRp@?6CVtx_t+(IkYp}DVu=?ShaYhLCP?JXq%xV7jmH1`kC+}}WR ze@@}xOaxaZcnZN$4qs~iJ%{lcb-|}za1DWL3_Ppp24ZoY=F$ExX!gVCI_J=ZUZ(T( zDRlcUfb{?1u?3ESm zxOM0avV?E0@XH^+4u?+(;K=|-9ym(CQ3W6Bz|#z#4rF}=xCZDrje>7Ac-CY3*a{04 zX)m3?|DU5h=n=colXlS`fOH8vAMZchf6V{s(l#F#{;Gl37{9WIZ(fLD5V)ejlZ@7~ zz)=8>Qut5>o_ab!E#T^;eaOio`sZ%MVi(QO4&-AyUTs4JWIIEfk-2&Fs!izO8`0x8 zf?bA(kN00beLS>YTpIFnbP=(5hAhDA0#0A>g@P*gB?NJISI6tn?{>?IW*5JqK&+A+Q6%!IbI{p^4e(~uZPz1 zhiRHWNmGJ3S}jl+7ha%M!rL?|_Zf}I-=mcZ_i0!`x&+xC%=?&1ZW&_wGr%;A z=SS4B6v**tuRx1-DwxxDWoO!~;!T@WgK17Jn%1i&(K@vZno-N8X|-Znqh3L))$3?d zy@kfryJ(fhAdPB_(}>1;8rIxKLz)L^K=VBHYu%<^tgGrFHu5G_CJXYYf6@(jb<`4U%chAd^N7@@d4N zgoX{PXvnaE1`OM&->8rJj7F))Xogl8ZJ{pXebi}umO6}Iq&DMEsMX{yqs90>AZ0Wg zOPL>Hd3h1b%Xw!kVZd%Y--ac4-V)2biICQs>d+c<3!1QSrZEdKjaUTHuw^6-TEc?a0j;nsqi)Mu>a=WObXcumv{?-^TCLVFnyof5nyeNX4c4cb_0~6;b=Ds; zYpj1}Ra^Z7NM&HZV^8!vmi$vFKlTFKFtu;Q(!0(Hb*?RkCT!Jd)Xs#4?Clu+_U?>c zdq3t1`w(WAeKfPvK9SjOpU!Nv&tbOM7c-mfE18WB4Xg%-4pyDR0ISAff>rIffnDji zn_b~}l3nI_om1-gKBvUtM{cph-+*)pZ-}r2im{~oApX86d9d8B^+MSNTUNOct#nbQ z0atzMakXM}xjHl3UA&tNmU1dxYdPhvt=ux# zK5mI<6}MQlo>wT^!7C6Q$EmAjon3OOWj<6=b_e1+Refygzg|N}p{3 zD6{am2DXgh{UI#7eV%gE?WIHQUS^CIFMDQ#ryIM@)0bQA5yY+Zh~$-f#PiBLQu!qw z+5BRUB7UJqm7u_*Ns#BcLXhh@BFy$&E6noTE|=kXL@wR)S@~3tJHYqApYo~hkK|I_ zrE)KV^Gp!(5KOcgm;uIN%P`*WgDqXYJZkgPpe8?Ks`Im9R{6TH%YD4KB|Z{zyu_?VTr|NBj6;xnz7Bm#viKU#yhqU!$Dh-=-YrKcEsTS*;Q+ z*{l-fe?T?T|DtMy|C_4ee&47>`2DUD;rkGfDqjQVQIt6gD7n@H6TlE`SpmD+fCiu@ zOo7V7bf_fUj8PC~$I1zH@l%8S<&uJe6%vA?l;Q#tRbm4(RHK6mRHK3_)gptM z)xv}N)WU)$)I)n#tue?0 zFb4GFbtmjQ^<7$oqg)?HO?HNkCsnL>`h*=L4O1UXS-H@K}@#?VG}+j8r8`N!6vqR5OZ8 zwPQx7x^lu(y!au>{&ImyA&UM-uWQ5E;3S!K7R zJ<6h_vr4Xsx0PHHzEEaV1O+yk5gRcu{ zl)nhb$q-0U3}a8(>$BJmwDE?pYyD9?g^~2{}EbcN#zcJ zYZFTDNuWO)+8?~NKmmBO3Q+48L2r~o_mwdyphAKCDzwR`!i2mkY{;X+nJKF9WVuxM zbDSzdxegUEJiCfio^3@w&!(b^YhBUCv8ov2SeCD4Ta@o)o0pwpnU%fBGA;d-Wm>ET3+Xio@bwd!#vLT9P(U8P4Ysg`lHk30>8d{jf4Fe3r`YDD%{Q^V3?gZ)8 z-Xy)6Pe`x&EDbLL)JF%O#wsjw*$O&CD6U#&Z=161B!wq32K1mX(n=Mh5m1s zBdZQgvgj}(^A1Zg?QkTM4i7Tw@F&BLFw*agC%w)L(&;QF?T!Z0?C2%+j!9B$-$E*F zM@hN$c~WfofRvkmB9*2;Nu}`tZG3zds8@Cts2sW%+=cKv{mC9s3z2U-bYCZQ7qq!) zADi_06-Z}5i?j!fNOQo7GzOeVZNQUM2PC9C5J`#y$s|9JN5X+B;tzBXw||s4eH)0? zyN?(>mx!_A4PthG0sKU)uHR`bB=Jgcc0F|#C>MSwgFCW=D4?6jqnF45^2{9CTyF&W ze-(@5#ubP^u0_0YBjSu(5qsQ;nB!i=7!QO~m|Vuu(Z>u(j@%tugAO$)Z*(!;LZSd9DEMOPsKw-&d}yo(B_7a?iy=|S4@j3tH0qj)CT!Utf-7TB>B zc5FrQwarO(2o{AP7QXG6v*^I|K`%$OoXY_d@UQLm|8mMd*Gr6eB3k z4x;!tgm@gnBzPDd{tz5Jh=3kMEDj(R2cE@uUjsg%zCQHDL5xS_Id1|nfY0IZ*9W{V zTZt@ppbzX`J_Eyjvj2i6AaV%8gCMMkmd>ScQ4m5LoYo>bi;j5_iknR6m}v!0UGOP@i+Sm(eHR&?f3o-T)PBhA$LB+2g6$oMr4KZSK7mm9 z9DU?#jF)e*Fnosr_^v;sXJqD95Lqop~ z6Tg9$ybqJ5|Ki1`boVlZP@>vU#pd93p&!W)S~vo~OaxyhxC+5j4xSqDG=isX=^Vz} zOXn~KpE`%J4t(1f=44!s6Pb=VU zKf3G)xF*r|It-c3(9L@=jE-SAU4d?Y8y0;B{Ppkoi+xYo@YCZ-89>&EV+(PY-wo!7+xmr!akNq}|Z|yO56^7(@&3 zX8Y3JTV!W29{ry)7(YM0)y;pFx;Go~RDpj6@XH1<6oJnVd|}{<15YYAvS}~uScDyW zV8?FQu?u~42m0s&`o?zj&uxgs7Fv&9v5ht@oeDXF?A)YT`Uvm-j41s>vbzMY1%7*c zi=8`Prtu9~L{_84Nq9Gbp1cbA7^B~T2k6Dpr9GezFvYznz*K|jU>2xjd#7P56%~_9Pw;V%lHCl)H<|r3Ho>ZDt$O2Cf~g z=eg5bzCTS1!f1^kh9-qcG$G8ORl-~v6Bg5`u!2V9>S$Q5m4@V3(183f^~!Zqqte3#mlf1ozyKY>Spls?eGREO#PET*%Avb_)4@+bQz3D~nyQHbSP zho)35Xj09I#?{3%rV&UZ8WA+C5l2HBDKwy&N&TAn)T>!SJ(|_DLbH*&v^uF%Yk=Cd zCa6_=j#{*LQnU6kYSg|;4Lbj!dY$j7PWLaW)s<4Mj+EZUGWRT&{$p5Tb^}}Rd=At6 z4D6ZGW7DLrI*sWW)3ClR4H~#nzo9Sn8V1t}!zk)DOrTD~RBAWOrZ&SuYBegSW}`Z4 zGHRm+<36f49-~_0byQ=rKvgD3sM6$FDmQtX%1pjxl$!hjJYtp_OPRNA(FYx|lwwNX z?hJlBpTg2R0eePa%dn{;^_%HYkGUmvSvXOLg%`D1NT|gkjG8TCsL>*c>Mhc#&N7!# zV_Cwewyb7US~fE(tX43}tVS56Rx^xZ>ut;;>qE=}>r2dh>o=Ks)?c%7t$qg{0#f!( zaGw&P9KbR=56s~CIF`DVcz*!4^x6uj%T|lp?M$iJ&W_P&Ct}pw`7mnjf|%8I5zI=v zIA(=i3bV{Ei&g>lVb`D_|I!Cb!oD~-rIwrF(#B199pI+APV!P*H}R5P z_wf>4&+!vnUg5{Pd5~1PLC! zf;f+HVXVgnVYJ7hFv{bsT%`MLxd`{qe3q|;lKpesQ~+WC^ud-6 z*wT#8>R?Z$kB~}zw5Z6(nDTtAnc3dX>AgZe+C+5ZaNd(b;p>mOa zG4kPl$qHe9*@_{4C5plRb&5g$U5WwzBT5qg^-BK!yA=KWPbvEP-BR@N`$W;l_nxA! z?>~yZK2pV#vhzqNf!Bv34`GM_(1F*Dc)toLflc`#EXod1ru0xJ%AoK;a1%jF5PHW?;OC;~yvH`NT;CUa_Ha9^7W886}L+lFz``C{J_R&Af*+u;&Zx<<5*axnS;F*YBK8Mp5 zj~D*>dEYtx4h>Bl66#BKI6ehHH)+%Q@SJ?U)_J zvCod;+GQtkZE|wB);VQdtDGi|WllfGB6|(nJbN3*4^WWpOymyf}enR-DN)EiPf26gM!9i+dS{#ghz!qAd*lqQeZm!mFfL z@E+;q{lL)6{gbJi`;avc&Ixe#!QU3}R%Jr_gF8JJIe=7*C?pDmd=^6{xj>@WRmqWc zl?GW>8IpOm1({VlkV&;08CUy~VRZ-@RL7EDbsFhb7m{{$EooJElV;T_Qm@)XYLy2` zwc-k?l)po&rQefU=^vz4@{lnL&Jl2SLn1f8=dxVcIUw`{a7ULQ2W3RQkj`#3(4Nrf zW{qqzXi_A-W^K}KHYV+6E7EFqB8_GbQg4=!YI6jsG$)Z_a}FsqSCCwD8wr|L60d1J zaT^zj({PU1b*~bq_H*La{7k%>zi0|^9st^8XMqs!VsK}HJE8o)dq5ryM2=0+p3vq7 zkc{eGJW}jdCi!k15_X%Apxc`G-Oj}A_99Mq5V5*rh}kW>&<L5;`(YOoXx3ojnL=luLU5;KH@_JG*5P{)(-RQP;}E8+J|i0YiF%Od7VuUh z*9G8C19voh4(vq^z-td)Gq|7wZLSQt%!fWlA&UVG%)*XYIV}2!#|B;5KR#iyu_oFC zJ2v?)AI6+VXP<|o^GM=6jNh~s-+_?d0MR@LH8J-kbs^7x@fwXSF5+_t`aS3uyHVpJ*EQfSM7-065d-)vfxm7Dn+-S(!Kn_@1+x8@oxpBj zFR%|d@YI={9%p0+B$1Od&3KJuo<^gm@xxQH>vC>V zGq}saodfPfblp(ISd6bY!cS9hYQtpt{Sd~79`C&zeZ2Q_^6{CJC+AUQdm^%PA{SxH zW%QHhP?%pcCc5qb@#MRF1OJzcmj7PP%OHDkGtn(Laq|q-;bk$nGi3Lp0e1lWbpx+8 z%rpR>>IwA0(~tLFF8u$TMS1S&vnY@Mv3hAQgtPpQ$M4GSPhv;(3GDbBW92IhzOT_Y zz6S9(Nbon?>A!mqGRVvRMhldnCH+aRP-A}dD}^uJ5A=Iz-EW|&zM^ty<68O*y8lyZ zTl%{sA3;}rNJI2KRMmS>S?{3J-a*HC3(0!}iFySAy0!FINxp)1U%n5<6Wn-8cQ2nm z;DK9%?m}n&2+jQ+H22rgcb`)%xYFnY$^}O;I4Z$W2aaZNwA1U*n6E+ize29Ygl=>ySa}m~FfLBl71LML|Hau85gTVr?3VjL9{RuSp`{WKj3B64b z;7SCC>|Pl8;3$PYu0r_hk%nfZqXRrEz%u}z5qLd`?y(NtWHY+U9(0>ybOMPxzO*y+ zBf8YXfA4{D^eG#DeXPGfB02gG>CmfW4nAkZ&>Jxe23HJtQoxag_6yK{8QQOghxOoS zMi=b>PY*Z-(e4q>HN~^m_5kHZbW-GSfAkEYd{`fV)YvGaf8$m zLu0y3w)my&8W4Z*gu{6C`c88$X$7u&*v4F{B z8$Q{B7B-{h`K7zJ+yfqx><+y${PFnqzVAFf>U5Qu$dMv^)CH#n9VRDmiNOxgFHDnw`P4KP}+XBv*r0@l9w% zU`s-sP``W-^~y(3k3t-EE2L1DLMC-6W(SH7Tv2M&*@MuRKk4 z%3G*L6Yx$PfY83vBYcv)}ahojn}L2{wS8gm8yy~ zpr%K?>K3#@!;v~QJ*ZvNpV~A-s6{J^nza(BQ7e@iw6dvAtB`87E2vt#fvU7SsX}Lv z%5+v!sm?qV>+Yi>-Djv!_hl;3{fzSUegPg(p01Rxg7=sumR^(}b6EOU1EW}a2hCCH zz?L3;K6UA9QoFt}wHVk^qoFI+8;YsUFo0?d!>HOYhANGcsN5)n%8c@;#Hf^tjccjU zxQz;o`zg<4f^tnZQntw=Wtp6zOp_NG877}H(oOCG_nGM?Qszb3Ww`c;0hZYrU<}LL zAYS*_qWps`?PhFhHdCPnGkvNxx1=g_N2;)Jr!os)DzylvVv9&Bw1{IASfnuWEV3E7 zmPL$g%PK~eWeX$2s+W;&wThW)HOEY`-px$5I>k)1y2(ti`k0kqb(fW3`421JQp$b? zoQuxOXJA$X!$2=ycQ~QG!e@=JrPfBCDs8o?%+{2OZEdO0)`gL8>&3{ml`ykyLz!8& z(aa3nL}t2O1~b(zpOs=)&PuXxWF^{nv*PVX*>Mi**|82g+0hOsI8pXDIFa@raU$)0 z2L9nj+Df^nWY2E;FI|jb(o+uH;&>27v(B=iL0b8nJR~bGpa^p~*n+j#Q>ruM9 z8Kt<{GLzg~Sn(oHcC5&c6Dc&pG;d_?FWzAAJVzbkb2`a$U7`6uv5xF1}bz&q)WJV?+7W&1BcC0-Z7 zu3UVU4kY^vDBfS4VkHI?2mf670nC4R+^n9CV|a-hu}ke``~AJcESJQ*#&(sunYJ@XczEMD7!9g z9XM7(8g++a8~~L-A&>zig`v)bT#1NaQb?o%1x9L-B+7_CJJC z4CFaSM(~{?6Zj61S$zA*624tj1J5?92bkd6M9p)pBM)+{BCl{PBkpi4!@uKNg#E#{ z2z|ic2JWfQBd&4W=E`^O8&J6?^v67YUAhy)Cf$Q!mF~y1NDpC|r^m8P)64i+=^jfA-dKbemeT-p{wvnNq zwx6MwdWm#X-Xgu^Zy0(>zcY0cAF$@YJqpfla5li#GVtbsH#HHu7jiKy6`BWf%`210 z1rpXiS4h^m>SUR#Pv&{%WR_<~CV8%8oaar3c|l~57e#t`DWsd1M>=^`q?OlBnt3Cn zkvmK3xqC@1=RB!qzd>r5Uz1wKZ={}apD_d8A#k>XvnFZz98eZ~PD)+g0}9F_@_|$n z<$=GD$h??CMx}~mP^v|GrADMvYDwCqj-*-YP8y|tq*fM2s$~hJT$V+OrDY^v+DyXI zK@ybA5Wi$6@rq9qx9}z66?{tk{GUmX|L4+qq+W0~fwLkF+8;irgF6n~p}EKbB$@~0 zkz)ywC8Vn%w7F&tk5p?_NV!&r6l#r0zSf$Awaz4{^&(zvAaQG>iCvpY%vu;-E4#r7 z#Cr|IYc)h;^)Yn%7eMwtCLmOiW%p<$I6J{vyL2rWG#}!f4DP6cG7?ZLZwRBwnkKm~GJ8Z74cgvEa91VQIr+(}qc<6`i~lNo_@Atrg2Rnr#^YAYhxJ z@0w6GHbQeZe1pm8=cThiEr@j`cncBl3~u*p&bjJiX9!y;$sfq3QZW%NyRkk;?(@Lo9k5mjCc_4>WfVL~}QUW7n&29+hP0 zPfPdYsmIsKik8m;C4)N(+yU^}qlw4?yyoE51Fvc?kr48oF$5cip>0>9=o>)+ID%ql z6n2ckjxpG=O11!Ef*V6eUxnbVLLgT`+>gor05Qb$2t@Nrh|^(I)5G6TDpeUR{Ue+Qn>ur}8 z;#o|7v*_@12=H7zo)6+P=-hP>@@p^R`>)}*pHd_8TnXgiE6L5v=WzUbh+GF`*Fiyh zLmsPxQwUDR%;Wu+Ibb8O=`rS^u{XnqJ4_X_ewcrghJVN`DS&p1DeN?ljG=I$C1qAX!O`3a0a+WRp8DCcM7;8 z$IuVqugf~*0DkJq&cMKA*3QQ~GU2iR$+bX__d||7Ig9etp2#z>Wf)vj@V5 z`qH4k$&`L4M<`Qos3F2oTkkEs&+unroz85+F}6al_O@MNI~J z=jc6Ha~J87F5&EBJbeb^M`FNN1*mg9eA@yF*%^L$!=GUA#L#t0M*CR^c>zLSiuS9} zem&Z6L0US%(SsBXqTMm1YznE{0QLo>@esPs1$3d;@$6gZ>HC26Up%=7#`jD2z>wX8 zLV!4G!aoyOZU-)Ra7oZYI5^^9e=6F}Mi(qV`=#iTRcQae=P(XI-5!ME-4DgR4|;bm zVzCGR--Tc8geMF1DeybVdcpR`_-D!g$!9XOho&S7ka(%y!?u@yPlj9AR$lZ|L$Zs~3%?>s((@!;Px z7hANcs${eKR7~Re>7T71V;Alh7>_H?};=d^xf~A9KbpQ~4H^80t}9@g#Zt2y%icV&RvpVCUa!LYqZ}@+ zWT=8upZXYr+- zSf!Z?RePvFb(Hed)>E$94$4+LPFZTtQ>NPcl%f73@E7oi&Vq9hOYKJ4{)-v-fj$$I zIav1EWo4Qci<;GysX;@JYBkNNTGO5?HQlIO%bQBI0;xnRjEb~ls8BnJ^0hN4S0|rx zbjm4Pr-3qcyC_2!Jw|UWrRptEvffcj(z{BDdYEvI-NuM9J;I1Kd5#ff@(v@?OGt6oWGt}x3GsNl&GuZMDE6DOY;7?YN z#Us{!lo^}AJ1IN=;*1g#Xas5;QF_CcVtk%&!=xN*Mas0%rZgK9O0lt~L>nhYyp1~} z&c=rsV-v)TvWZ|u+Qu^@Y|~j`w)w13yGmBDT{A1lzK&Aho&}^i3Mtu9gAyDKDAv(}q8;rR zk&Z6RFh?&|sG~nC*fEqHcc%-+12{)ef_9_aX_D=~03~>x4?D7eRD7N&;!&(fg`z~d z6d^LDP?0qwNaV-O1SRs^;|di6s%+%*T8Q)XV(Y3?Pz}*oI_qj9b(k^Ksiu=*V%YK6-Yn{6z#>L z2rmT+_0pmsFC&t8Su%XR?3vzPt}HJvFSdu5gyZfN&J}sZ^IXLlJQr~h&ski@bM)@w zI(Ux(8@Tq~d%1Sv^Bi08YaCmzuei3JzwvB6?(?>QV>LMYW%9@u{QxKda)C6wmjFcL zc^G6%ke`qw{_5oGuTNrsGxGGeWw`r0GhO{X*e?El94G%!uA_e}*WN#kYbPn>+DdA; zHj++`wPciIC7EMeNfz0bl5=be|JPXNeqXZ9eShVe``qVl0{=KTdce{2_zX@VkO?FK zQIIO3fzW-B3ckTy@(NKVj}RSl3o$0w5G!&Dab!4zxH0WQd|0+2!EEc0Xtq^oD%&zN zpKTFZ%{CA1V3~!kWSNG}GEGAFFik?9VH$_L$}|f8l4%t53)?90AI>cJN5Ituu6l5l zf-4tD3zqHwfFIH^APm|YWwA#jlUyU^$tg;c9HI=#F4}@@qV32k+Ld7uEoPcW2Qp2g zqnIYq$xP$uT&7WUCBrbLjbRWy%+QZs$Iy%3O?pvhNjLH~=|+6P&<+2EsT=kWYX;nd z;B12wsRmyWkQKJP2NV^K_(L}Oq8#>sY;%r-{!ieOb)qU+ChC%Tq6wKMT9a{-6B#9W zk^uszpA=4dNr|MBlug=6<)oF=LYhf~q>(s7>WMo^E#Wk&#=lIeai5V|>^)MC{hP5m zWcfT&6Zp#EYaTe$fcPk)@E9Tqc*T%wu1VmBTry8%lTo??8DwaZUWNhbW|)(9hCOLz zh)5&ThtxAeNHsH-lru9(F|(KyG8#xOqnCskYej5&CUQ?Da!e<($|N#^M%T*cky?QYsT63FQh_lk6j+gb zffES}JV{U>AzncwaSD=&U64=Adi)@RCOiQ5spv~2w&4o44e|6B?_0V(mSp4g;=r=(3H(=3ea04*N8W7+H zG}a*7T!5gihk&n}BC6d1K&;i=CaU@z_=(!VSDglP5bI1J5%G=yw*=ho@Yx=2m{&so zgI66*$u|B3tT4_pH56Vofu@D2yiE2(OH4dA#6Lw z@m+}6b_ms02*TD6h+4j*Mtr3VvCae1z#R+jVA(k!`0RvKT7uW03EC6kly3)rmuwFP z=!MSiMG@F1j|mRN&Hyz3AQt*TEX2dGV;B?95C+*0f;(IY!1$pdd_IToqH-O8NbP?c zzyEUSo;<}sHbRyN?r@mw2cKOV&k>^4n4PS`?cOcC5 zXoL2Kza~hb7Ie8hI9W2z@yGiwPtK#PdvYcPw#*?W8&HI9L_s=_0&ENV={DI#(&!u8 zVwP`?y>wj;oY)54zZK(S%jKo(a>|kGoX6*I!ocl~I6KL%g95KMhLgf-@J~PHd$Rws z`G3x%$o52b$o550r0+&yzDI>Zfwd3)=%i>e}AqSqiM(4@C$Z_=7lZr%VQ5c^? zfqDT2z(w?pOUTLPI-)Bex`F^+L1UMXQZ7=Igtx-M?G5uB*Dqg(q$Rr#%#;0>Cud)t za6H*}IsL!qP#*7xJo|VrG44V4`=)3oztKOkt zdJEd_bxHJ$Z5;&?ncS$nJsh3-Ha-9)u8_TF~Jp^fL6_i{t@53H%5LM;uy8McY{jdjZ-m zMH(uRjykmeLaipE`bb zX%B!4K2@aD09;n^!v#FvXdwvgN5b}aw4I8!v(R=v+AcwttVH{DkI!LrqRaN7>yAJ_ zuR%B7fMK%}L+BW+xrXlj5r);T(A3g@@!R8TP~Lic4agX4B+K)!t3FvjHXg>?>=g|xm zgQF5{)}u$ZLa+BA8!KVO8XALDqiAs@vNeqC%I;`0gx)syq);WH03bi zlLGj(!DRv-TX49-2QgXJ~6KN{0!0yt99eikC14~`PFUxjuXF+w_^{0ESgaac2p zC1xje!^1A*qjTx*Ha`Oo0O``Lel9-d-}!h7oLicTdEiq8mp*vR!Q%iPH*olXBM_~J zfg>6m3Fw8X;K>3<0XWLgZVfDGp*FnRieELugC_KdM)aNrjF@^vzMj5E=KcbtOPAdp zmrb#3Xg*ADGkBboEk(q@ujRm}0X`#eS)oNI@OXg77aT#t zekIy&ge6^64XY~=!3ua+j!{vDK2eHMUW)Nig1%Wyf71m_W&34Y?y~KFlq9QwVJtoU zC{g;DY{XCzEop<#1U}h-%LT1_!XH2I1XC^MuNsO)29m**0iJyDl%f4PwBHVk2C0Ct zn(`U*l*`yhIgInbtCY?BoU)idQx@wFI;n&ls4t&C8OJg+2&};KPT4;b!LC*wkD6Jk z)WFiGTDCb=bL^>-BcgJyn98^kD&>VxF)xaW_z6_NPosQ64&@3;C`V93S;98T6b?|j z+-gdbo2OK{{gfhifs*821HPan`FoTo|2G{5-&S2L>-z8?OMeg0hSIDF@6}_;sYO{( zBQHml@|skpU_>Q~R#c?uNCk@Sl&9oFxypf*qa03IDzTKQl1%BUS(K_;NGT}#lGKnT z^?r(1pQJeTO%$uKpQ1G`P?Y-Xz*oR;!2PAmUpInx9LsD!mbebH<-Ly@EHf3br3|)| zXmY4XLxu7+bty;FjIuOsDMQPd(zQG(Rm+c3w1X*0JCYK$6DVFMo#J%zDMq(~qIH`n zQm>aH^u{S%AER1-FNNrzqhP&PDM;^2;5Q1^eZY_%JzWpZ5tKeFtWe$owLm#u7vp`D z?v!i5pe%iP%Fx%ORDB~#Hn5~b0|$yX5K)|=m|_ei6m1wrk%qApVU$8)5CEaZWfWr4 zKtU!eD9~h#B&Kr=f73;VpUE=}Uz1lDJ|(%a@sM7M}yZu-wh>v$lYLHTe3$+lErK z7UfqdkdNnCcrOjMCBc?BYc@q&DN>}B7KK?GQHZrA1zOva#M+hNXYIxCwU#h_Y{Hq| zHt|d^+jOR4i*TE9mtz@~{tz)^^?P59Eon|@Oy~J{~{fy;kbC2z0^ACFy z_{U}EfWX^~va1TEMiG#W=V>TQlkizA5b406PzNCeIjB>BgFg8=n3A`H4a3XciQ(bk z&UAP1Wx6?rutbhAELW#gma|hn+sV0#?daUbc5ohM**mXg**WiI**c$M**Lw(vUd8E zW#f34ZR79{dk*c7f~y<64I=adARjUX@{y8Ig2lp?2z(ZT=K-!f@^w`qv8xVwx*C(a zt0lR*+A~~4BBqnbo8>49VmY`)vF+TF*|u)EY#a9qmbH5;%gTL_W$8Y{vT)zQGIu}8 zG;_NJe8Myn-DR7({>_%%lSg(QsRO*V?id4*CpnMzU*doWycdi|e^1nUo-Fe4QXr9+ zCb@VSkdv1=Ie6JJ?8Gh%8?hJDS{%T#5=XEs#fdC)?`)QtcRAD4yP0X?Gr%kT8L3c0 zMkpL1BjqoWQF4#TXxVqnGg02~>40{cGHO5)Lp2~dKpeg|!tYvnLiixrmOw7eQ-%Il zA3?Y@CXmUR)5t{4xn#WNVlq~fkBre2Afq%llM$LSWVog}8K!AOI5h1Dn+61o26B0I zWCiLF3Tns}RH6M4cd0=4s6qQ_K>tI| zPtj#3V+=-<5e8ETr@>6ZVZcM!4KT?KFo_HhSObZni>eqxULV>@AEH^GaZ?2dCp~CQ zU5FB$0dzXDNUdkYmvKKJ_%oNo%kZfN$fL~?@GT7AYa!8=!|y^JLS{iGaYLVvHDM#1 zX4u@#vFVy))3dt+89wCbjp#LFRxuMO+L7NY^M&e_O#KR7H+YXz& zJ#@bVHXa8ox(-R&} z@x&BecTf{w7bWx>5^AWSH>sf`y@M3dA6oWV%4Y%u}F7dMa zy^dRCKJE@zrmLxU1t{N#o&stn#-|JRN%u=77dfBl3H#?*!$EX`e7j3{OD55H(h{dA zfCOe1HNhF7$ea~6ES5Pb;0zz;Q!(rpW9%Xg^5uDyu~BG++rSg?@3jon?}f;*)lOWR zxhc9{qpq{kTm3GMl<$GwR-nBX8p=xhLzoh7{HGTnG1o?Zd zEgIrrOt-9Rw49?mVyr(RR+ee#NSvPfD}x1mmtgoIwDj=Rr8$5j(S#zBT{9#=+~e=2yYgAJ@YSp}#aCYZea!26yU1DHl!&Ha;haS<~sq$f@iIIYpCD(ue?9YV9*A zFQfGVbKG@oG!H^td5EN9S$&06uft`^3RRQ?l%@gxdhl)+Chu@;yez=(#-cLVwuMV5 z*Ux^gx66GtsxUk07Tw!7xS}v^^a*Pt!u83L!0;6!gi+fl18@0j?5PUQK4N&p6*6=K z;24s$^D1y3LFi3fy1$iO>L_#N^z;VXNkLEqWZ;>|{_CI*(-Z93zLS-BQ=P;#L#!od zZG__!nu~ZPqV@pbr#e_6SmwWJuD#+IqpR@1aGP+p(%*U-L%eGSCiY`7a@h8(JOR~` zj5T){Rh=9V_#-pkLpWYIrSrE5`3<}z`CT}c!5yEJ z0!xFYHC#t+DV~nXASX&*DwLNpoyc#%Qs62beDqIBrVuNONQx81Y{y8pyex7^1m$ro)+JB^sHa{NFbdvd^irfsj6| zH3#Vf&`o5~q~;&ksmdp1-5riZeC__p(ZF}c;ppbAHan&8?2}p$sE*8{Oetl9_K;fz z4Ylxna!odaof5%~{hfTln}eM!!JY$^BKmK96k-q>^f^)oW5B1!<~`~F+{(=5Fl@MR z4*_v7JYYmO?>=8G?9Z`ly4E3tzGsK;CK6 zrR!#Z%9LWde;NH1oOARfGy0=p8>whiiWMXpm2AZvO`l=~B3RMzyfY#^Rrxzq6yt2m z)mcn8y)BKsD)eAef?OVRKCohSmh|fDmR~{5YxSZPI9XG4yBKJ+zvL?)+l00)8lHQEN&mu9JwWN+q`nZ<8=k@nxXs)qJuf8#J9FRr&mFfSV{4Giz%%7pis$GJ&4i4>athxX(C2`@0e z<;L%{+-1juF<|_jlY)Cu7_^~to2E0~5g(&>O{G3fi{zJjFciLOjhNIeDQ2&-!C5Mb zF-jJKd%=xqf0#{b4XzajX7Wgu)*-Qf<)mx1Jo2C7w4~nqHer_`{I#lcMWdM+Qf({O z(hjZHaw)a{Gelk?tUErA#O37G4-b1Ly zv(Jc(*msOfiI;Nofe+IzVHeHgYhg}UImbmi9$6c%)G=1`J8gQo6}67_PuxKA%CZvu z+h#-El32O>te*!e?6tyN!Qell62z!XY-lfyVP0=wgzzb&_~GuV_)r*N5m-!W1ys&g zr1A*g(0Brr{r#0Y?ftBP`K{lvwW<$IY>SzE&~|ImUjpWu z9$fy!T#NWoVspI&)PHi%JaHty=_iZyss80r!AiT%Px`#UvHO>kE>W+QtuIQCb2Gyp zzG1c$VZGI@eof^PKJeGoZ8MQ6`IHRWuF>QtQd8Cvlj>=~OC=^+yF^)`m_kqu!=k zqvyKXCcL>vweH&MfBCBUZ(*%TS-Ra7D&FqmCDndX*)p;Aa7vWz;=E;twaO(&2A#uD zn#d)VF+wFMEuz`;w2gB>*-LW{V&iiTl0BPidBdB0xv85jISjNxW3d2uXACV@a0J7n zg*E2iEfahivhDOug=|0Ud|F^OpQ78} zcd|$Y`GR7c*0f~|ByZ4Sg2A3w{jYJ9&ge3S?`Sf|4dgk&9r>NWfSe@wAv?)}uAh(iP2%zHjM&}>NTMCU#@`zz3WHzJ8@F&7P7e|wI9bKXJU}g7q|wL2v!YP zmb@`U*_f1?JM5-i1&&)?!gqLUEO0jj`N&O5K)y2r2Qn~6-@PR6TKoc9-5y9Yai1oNkujh z!(kriDqJ2|MiMDC7AoKeV;{&hBb2s`N3+M3VA${Z-NMq!BW?3!#s1X1m97LQQ0}3P zA}Aku;hz#|G%(C`w6z;_)*I4!(;^?HFLDlU>;)s6KFGnY#lQq!>Zh<@uXJ1}C<1By zbT%{jkAQjf69ZI}GsDYE7P$fk#8P~mPz_fTAvu_%B08pSS>hF~Ez&q-dlosHXpXsU z>`5a|xk+c!!oC*+SX~Sroqv|Izf$wbDi9|XT)JS_(XtQ(ulYD2QI|T_l$!M^*+~gB zcMbZc+MHX$fm^~df0v;VWcz!xc=k;T#mlU&ic6btmPon+RdXqTJO|j&NRWGhAve?3 z6t77jfu|0sV`qSYPPK;lEWG!CDY;k&_J@i7{o)5IzY;L!=}Q&kbgi4{$qArhaKTdtRCg|# z%$aFN%<(CPM`&9qDuURqSSD2k1lIW3gzMHO!dM`K8%BK+)Ag}738`a$v0^U6tb~E7QPk@yV)OF6MmTDwIIP^&rUh&X4 ztcftbbg0HSU7$|7U(36Am+b;4h~utfq^owf7G~L{;dCUEOB09K^keaZ{Jw*n8I4fJ z9;n_Y&Q@|N{y4Sk8>7?a1ZB^e5W|CGnYuJ|)pw)P_O>|Oewp91$KGN`;Ezj_?= z7SB)Z)*O5OjzW7*1^C2LX092~#@1C_cBm90ccUn9NRm$`1{z(?1nY#^< zOvBo6<@NIrEEXZqhY%)>*X&+J?Q9%hQd_&Zq1LI@j!ABge`MaE&DKMuNDmESn~lrY zYkF^xFT=>PRqvWpr7mI+Aoj)0S`%$_^e|Z0WiQx!+W^8wR zMw^2)lQ>Zg;I1BHt_6yGLB%XG`*K*A3&bg9-D5+rxTCeEOdiS(s93=o<9;>iO=bW4 zuy*m1@7iCcS2>o2iI>xh4L4gXV46|6VV4qucn(?WXN0OnEIh>gvydP>e~^ zKWAAI&#sXcHE}gaoa<%a2xAaj7M_uMQUh@?F)KH3_>pb%K=}O%M8<~mKUZxHds)3^ zIzX@$$pie9Z;e;X%9^{|Rg5D?r){?RurZ z5Ap^bwrvAuGomIj!%yB3dw>YYq84Dgl*Nc`39}m~l}v6I2+2u~Bizq>s`lv`L-eC0 zEBR=i6f1Bvd&MAmkj(5CFKYwT(_p%QxDFvDt_iG)zByupAK*EA;1vMf{f}`voMsWO zW9WTyXeEVQVRwG}V-j8uhwYeDZAqjR z>-|fVu&d*H!-zr{+G^vAliQ*$HRKYr4W=jQi#!Gq&EJUf955v6~4GbcI zlDz3^4ElNfk}UdMH4k3-ne8MeKOf>c*ZIudn2_iQtX%Do^{a*E!I$wxO`nW0B0PgeQ<5>9YZ=%;{WogObT+=<4Tc#c$4hR|+(c}i0NFo5 zS>4ASU_tUYq;mEaS&gyxJp;5Io*=%ZGIFn<6S_IGQbsZpeo>GVXR+X#5*M`h12dt)5OxqMZ}CDP68Cq#G76uwOT}r^NCKM{c%&d zF(a#tREupwamJf_GT+n!dy-oKoI&IkT28iFy0-)@TJr&+1d^n=a$AJ%K+gBzcYmGo zU$decOgHI%6vwqNjo%jTECbbB8ZM+8=%70T0&r|hFxKr7b|ZD4D8t28`goUtDGv%b zxyqg_2Q+FU*U=jZwlq#5YlrnkmeT@Ev3izyf|jKU{;jP3Z&|ysygTyo@lx*8e3f5U zbvnI%ge}wptWNJ_tT*9DxHeOD|I*t6`uzLnX`|iJkD8LJqOj+Tltp&$JhC*W(R0cZ zx_>f0$SXY4o_ib4x;RyLqJqFdj|Ksy;UaPC0Hd+e!xuX&F2ZK&vC+?Pk*L`zpsue) z*heqiW7olO8+3-X=<}Yh;peH0*Ydy5F5J9YfZ8EtJD$%LX|x!P+?A^mZG#=y164_h z;ag@>I^WVLWMc^}{j6YtN(U`Y6{#|vve5?klTn$h%jT#RhR>-=TCDMB4dUkuw?kUC z%a)%2L^oBh`Trk4AI?Z(e`C|kV}>GYb;3n+q20x!nKw+3mb=`)oHo-|pW2%vI;6lt zb;jl+fjJYt9AgcwTISK^mp|($W0|Qg@6C}NY1);HG<+9d+nudjZTGeeNYXaTf_j*h z%-NB!qvv5(%nSG%H6`Dfp;0adRufKx4XuVBE@2;S@hbD z`2IS7PRu?qzkA;yzdK?lKPKWwj@;09{=Rb3yfBvq=QFfmb>ff5fL4pqR`Q}{j}^#m zTs^sIO~8>7-H^wtA2E8ZG8I)6pzGe2SfzNgC0Efy&Vf()nwWk@$LOg=1M)k<3Ue0psq=l8rOv|@UkZGp9lJ2t%(9wxbdB(tfAxMMeM?$V z4hLSZr;pLC84v~{EC)mRh;gVN&Da0Fh z?EDp9%YH1pD|x-hitEqMx6JcC4c$DVw{9-+XPKq{{)BWpg)d*A(IxL!BmHQHbJ^(ZCm8DC zE5VYs#T>hvAy;I?ohn*nl5yS@wuG0H(!MUA^3`HxN8S3qAiusZk_z3OKJ+PUdBODT zDeI`X2tSi~;$d_Tqg$WgB9to&1J#u^k}c`JCtT8(Rc7a>6thioh8;$1-iVns9I{bs8fRDuQVaBPRZ7##*E1= zIV0=I4`8Nlk3v~5<-i9PQCEi95@eCVqn^yC*TDweM85yv;sE7zIPks+b;?WHf+ zgbiU(9itQgOOuQj^wB+4P7W@64OnEmRv5%BB=FjgUO-waiJia97M(UBz6I$C#x0jX z48=NcZAgf!txh9AIK(s$BHqkfPT|enjd6A@D8ox1yn&3T09T0<##G3eo{G+E@s>U! zc%~mcIYIlmg;R@m%-YB;bCwP0vn7<5U|9w`-#vFlu{OxpHb_rfV2bLsivY*7fto}P`!IGr&NmJMY{jfH-3l^o3W%D4K#*ZQZN)QMwP&=gFWHx#3IoNi zTuU}~N~Gi%W%nOr7y658$kVTUh=L$7q8?@lqoraQu{N-y;lAO>K*2nMGR8T~wtf!s z8T6e)w2*=%`SfrWe67}uJrD9PuX?49}a0f{d;fNR%TWL+I-Oq_sy{*QGO`WN)p?$|vw=ks> z+!edgQX-ElQJ@9Q%77lpK)4BzBEqOg=I`Cl*IUA>AT<@#q%KZtTVRES2h)#B(`%_4 zlO^QK?reX#<1sZsxsZODIv|~!@xEs=hBw+R1)~(bkc2V#I|Sffj31oNOxQB{nzhS7 z1Qm3G^0gpETE#*xBjgiLbAB}!01^=9!V$>3*yBd$OB4SDzaz&U0z^Anau7)wISCTo|0CWZpO@7*lh^9l}g8C1pnF9A?+5TS}_({p1stOV} zXZ`@aC?p_p#+>%OC9wFOq@O(F+gn*IU;RzeOQa)C$e{j|xgA=0ow*7nx z*q9a`k`QVgHCKe)#?r=S3>@oGZnFMp?_n0mUK$r2xb4f{IGIn$Z-&nQJasaVx)_Nw zvozL6;AX46Z@Y5FC3$Hwx+xJXL6~ZdE7@uw+fj00;ScCM?OB&f z2;<588GJuM?;*9AU=|;Xv8UTq90d>6^QZl_A?qZyhSBE7(QrVAN;MOs_E#$t8k1su z=8P@#_(xZuCLg~__pE9i5S0RnjicXGB(57};QsQ!{w8>3BUmi%GEHm{dsG6M7$>Ih zw-XXgVYiZ#gK1{;^sigpN&YSyI9{{q_})zu3!Sg&L4IS~2ObRZZV=U{zosC;0%EcC z(8ZTU!AW{~GFHXM^v;;{d2vjQmSBG!K>s(sj*EFF78t9>~#6e5nY~OTrL?96z}K7=EvlvWtsi zT%q3#Z+PJU8i>iZX)$6u;!pZ#O96?+Oh@UO(+)ZUj|$-K6;Vd)R4F^v{t~+g(?Zms z>Ylj#M!u9?t@)4ypvu8GsI$(MyLyLOTrFd zcw*)7eF~i#AqQx2|8(htH{9(CzR7bC_bcf)R)=PR6h-!`VgA8~k*&R}RQc%7%|Qjy#BO z(L(^-+xL8QR>iL0pXI)$@jL3j=W^>SCS>$A-R6|k!cS6wPE%$|+?@_;YC9>3^X9=R zbrxTSd#h-?Imrqa$R$8MQeO7vLm>4L*6bU2V)keq=BJv`s_JjQlKbCuGwvHP7^?Y# zGG9zWs{@p)LzJs{ zoq`b~_Z|g0^tHewslR5zz3+8wq|j>O>1wSEjX(XHVm(I$f?TPGHM#u!0*)4?9ABj=no^Sv*;>B*&I7)5w}Hvr(LFuHw;AAQO~1Iq;eGT` zjnNp&G`z177mq)=(;`DBp-*jhdq2B z!IggW5MRV`Du~FKr{MwIqT$NIiivR3LIFJiB3(@-dbp-#(JLiEv2!6CsUdD=mn^4eUXNt+YK0ZGMVlL5jO(zyNnl?;*l)b+0&iyCGlV$!C1dF-JRidF% zW>@ZMFGJjxURl2(%N<}OdmdP~|FtHl8WIrth+l#c&u6*KkS)GBCMas^vV8a$FOe8v zC|hzlL9t|F(87O@DD^QWdbES#%GfMJ5cBZ>2P&wBzNGDHnw>}e6&d9=sTKb2+}4bg z(PE1)V;dF%$k_o_Sh$I7XbEmPhN#c|6W_(iW~j->@hMS?23$Y5xtkB2dO=@E%a#-q zedh>q59T{22P?SGwX|H}AhSOynO~?Z&Rw{d8#X?d-#TtSR_wQjJb)>|!b{`@TEC`+ zDj&-Z7LMe?$B)2SkEKx+$INi=@T5@17~>w&55{v2AJ2mOPZ_0HgQ*!cy9z!6Es)~u zb$@Y-N=A8Yzn{#oq`Ue8^QQOreMi%jjJKtpe+r zSUQU`+D0;~|56rX+6o<4biU3|yUq$)5R{2{Ni&oOF;9ndTohW;$AWG^L6<0VsnFq9 zRPh^bOyib0GQJxjUdPDr?xWVgJLUua(h+%drUR`|1&@}FzY-%`g|JMweqGDk;xH#6 zM(u-&9-V4frA zF@eBBk>sD*I1~N|Qw4Z?a!By=^o8I85F2lBc`1$guo&(MQh6VdV_Vp(P_8>UK^>e z<+Q-4QT^&wOY3i+8ykol8;&9hT|!ENdie7jDBh5JDV6iv(`<4 zXrE@ypb|t1|Bu{JB{$9*MF;eYlH*&g-svP`#_Ma0P+e2dH{kBedY|lXZ-~mjjBaOx zIS1faWU($*a;zi!=HRnSsjq_p^s6nR)f4(T8y}~?x01)<#OMD`b(nmo^s<)+^zxU_ zBkbu{W|>&hpwaY+R;qk|eGY6udRokxtjJh-4MS4)Ir+=f-@eKf^U5$F6V+RGtPn-$ zjaFp@t%Q-s&+Go|udoxdJw~&GBF>*Yu;!_|nOHpJ+b31){eP`AU!TR~d(!0Btk#l5 zPJ(29_OKrKo89Uo%*$aa^|=Dx{EXeF@5%g@7PYo!btX-g_0D~FnSXDkv>du_T0H;4 zr(D?Bv^X`alueXLZ6;!R%sn(Oji^h9(&wI5_-xsAKd)9VIT9k^8jB_s^UUN8PXU^v|xPtYZi9l_m#oppD z6@=oix>NU%O#fGEzf@k1orJxct7^`D=5q#kn-s-Y&+WUalUHr1h&8}ks0e<;xE<6b zjoiC%Nua!c!?(&Hz!+ti`xR5z#o!f17qicS94adLks)!#K{7xTFSTv;=Q}3tLx#G3d=XpTXhpfpUixIWHU$x-H=fF1&jC%QDRv%cyS$K?8cl!HvFu6>tEx$RTqtnMV zhRBLR9kz*yE@+@pq%+hV=+y(H;vnA*k4Jn@(+95#W|EvZMPHGe=tP}KPDyFkvP?YR z_wY&ceZOxy?pOElIjI@?&LCjU5OUw_^T>0P9={4eH{lJiK0}~ysh-87R@CD)u=S~h z;_Yg7g&INCWH%}m5KqO9h%36CxHW~VC2=D9M+s8z5#Mk1bABUq{qvLfOm`P|o9JLJ zU+|SMRkLWtwP^@B9(~uB@hbOI!7xhXbVS1Cqt8RbU=@Zrd><(IE;_`ehdnZz2PKe|4Vdf%M$i$ zMW2WU{_!I207_WivZ?VF(w&l&>A#ezSx8yyYd8x(a#if`V&9C1fvRg$N;WeX^<8`Y8(8Om76b?DsNczxd5 zWM+Bw=EbxDYSP3WD87@9>ISCqQ|``fQtB`GS=Oql-g$+NP!*(V6*(%`LG>QNwOVKl zqjL#OC}@1W#^#b0{jW?&>=^zf*8@wTOM-QJzS-`pHbZK85Lf3k-*~JqV|ty@(C8J? zSDtA7yZSykL^xy#m95rtO8s>GwRGXNCibP2s#n-VP;5wY z2+Kl&)qk^U583;PrNQP2!FYD}?2}f2FM`gp2IL|szDGmBf8~o^nrC^I!%!F%N2nU3 z;jM3ET}b|^1NkK>bc#!?3M1ngjMPa1%BPB`s>kFW);?+%p5+36s+WKSc7s{9(V`Ih z=#op3u~<^fNX4h(y2eo_k{~%5)&EX5c2S%GMks7H5IqM_HMrCluENb}$v+C=!emX> zJ{deW)yri5cCCM&ivEG#jZ0TR@erI8SVa2Z5%8v(?6|5-AtGxJLD)wyxFu^wsNE}& zUZo|Y=+%|8(JGfl>Er5+ZeP#wroCo8Z?Wq}FTc-7cF$IF3#FF@lZ5T(!tJC^g|Cm@ zKKhL0W#V)nYehAY+-wRtJg*c2zgS1>4v#G_r6XsUL)t=70`95lG z*_=|>M`S^NcK@*)cX179b{2$Y>Y8;~{*X3o3E?y%e5K+EhWaF~h2PqM&E0<<`mb4I zT}X$1q_N8-6^fNQ<%;Dxg=9OD#J&tsDnfQrwq15F&pqEIza&3(lpULU%X;)l_${!q zvO26}yu@z#NS3>MWi0w-98%GhML_*=Caw}E@_;K+dutJo0h~TlI}hd8i=7@1u%s6IWJh8TiwF!a76s3s7N)7l2e-#5R3O=xV9^er`0#&FHWNxtK%hBzibqYUbw=;JX3~K z6Sk&Td5xd2sxoqYS7Z*6X3msl?pI{qR>4zDc>^z^tQY6um>U?oH0Ya$9Lp`gfofj* zkt(8}{igL=RG6CvcE%HjuUt5%l%|6mlYglNE{Bdj&;lqfZ?-0~s@+!O#_(~2*_-T{ z7i26=Sk79hOTg3twTnSw`Qckcp%u*JP_X%)3Oz9S7ztv2$@egbj1Z7#_ON+T zLwAN4wHrdvAlVVlZuEHgK3y#bbT3D=wn=bWkjgx=i)i-A(Tt_)7NEcU@fb51c>ch; zKorE7wKa!8kjY5BA)4_<0#So=lT&A{z-4TcP5cfpT=YG(1e88ZG6s9CTZ0B+{Rd+B zu&)CKn#jGAB$MWhju`PEYJHq(?@;fA?GBZ0o z4FMe32}OIKKnGr zpfvQ0;z#pXoa&}WOQzX;ozfSSp>f$0ghwV_TyTQft174_#K0xlkEoZw=V^e7+qfxz zL|Q_%E)8^v3&@mT(wk2WGYizf&(Nny%qcu1oH?l~ho~8aOoGys%m(iptO$c*Rm{r* zswY-vZaQ$xos>ZhO9Fh{4*5M@42E*qzsdd_In=ErwT2Lp7zN#=`d(fd#h%$1NYSdL4aBBd z=yR!RaZStaGT#$MfHTnMD=AK+5|XVhsoJpd;?1Rp3|u28SWSN93A4J(w~^iZhy3r1 zo~90+M>?#md-UHNTBTXJBHS-2#BIn;r%1=~HJccxf~$vLEM7M^pZ=ps?uGO{shg*)1 z+03=gMg7OY6w#f5+jsGfQ8|uqtm@Qm9XX!2wkcnhXNAN4akh4bKmq^eZHRCSV) z^BY*X8))_4_t){*TI2RsJ0k+;n&gkve zDnSDGkOj|Plzf>9T@YdlrE5=QXqm_e-0wg4AQBJB;2=wxTu@o~B0epBvm91t}TzvEm zPUrwO5fW@Wn9UU%n4Agr&*rdvDO<@gDCf}6{CPZtC9(pB$u>?cKX9XJe{M?P z&KD9z`4KJXn$K0EV9Cq~1fS70a-mT*l?%8nWhPHiw{BbKri_-$dmLF7Q|GDZEKl`h!7_bQuLa zseu7sSqh_~g4J-o;~ywq!c!se$2k&6NGy)_VwbGW5Z_SuGlJv`*dh;nw_W&&$>xB_ zBcg|}IeP9{=WgiSw>y_aP;Xc1!$bw8GBO4LNmrrq*9v?+IcQq`uk}7$^K0;AEI4&**R3pg2!U1 zGZ-K-`z?QozVSj)>Y*&rCOx^Vi&>C2M^+(QSI<&&pR>^=M-#Ij1@f9XBu(ut2_pqY zLfan2u`l_RF?)YSg4ec8-8^WT_h2`wM1$M#$ zwlX+tnH9`>&ThFTQr`+%g1=YRg?}fo!VWr>7h~WFDA$G0-h^<4zrXs;SM3^1G_;h- zuzjRG-`!Vt45ubJb}+LtI_q?u`S|HCRM3Gw%Qgr1laa3jP@ z9}7!|1zSryX6eBZ+5DxIaOU*|L0B+RZ9w<8V3_&8Oj%$BU0$mBXZDyDQ8x}nCcYJ2 zQF2Mfd_dCp!Ppk^cRd^xv>Xb%H6RCzKaGanS^f`pZ&?`T|3L!wV9yqIyG=|$*N;s= z&7v}tirIn65d)LkwhLWqbX_?h`=syXIFaycob+3o2<@>{fbP-^`xfiRT(bQOlv*h14WUQIp1+fK$uV|~>Pg^O`N|gW zO;2R1`Wzj?*kxBiuxzmVDVE;=l=OWPmY4g{3N%^b%RJI#g9_pMuED0e61>r<3rdd= zd$eZ!g_vqxO!v)z=`vn;qfB@7$+{T0oB^nw(`xr_vd1rp&rn%AV&ku@Nj<)Cjr~&s zA5BDmfK1&Ho$}X@pU3J2wvb=#fUw(hssp+K|3~=%&4lHvHR()HQqoIznit(Pr3i7e z7N1w1iOvatp?=yeW_`Dkn3gNMiGw{i$=wciB=5MnX?H2O_1Y^utB+daxw?>l0O{}< z9_gcBDP&NT89KQx7R;vlj1Ru7++V#sT)o8b`LRA8Mx%Rht?ABq%cAn&?{PM#4tfNV z1%>Adb)yAl{Kao-sTFHR8VJ?_rBT_h_>$ zgDCVyG&79PCNYXJkVUdQXD4F!)Q<9#FqIa4hlrqHB7M!&$85D0{ALj?_!kxl%+*Hp z0{N^-o}7}K0@|;VLiv-i+yj%ZMF(tXO8PyvJ_O~ql8fj__=KvbD#C9>?Tel1JhEgI z3BIDmB`Na_OUGl;@rtKFEA4i87rdXa3ZMtGi4U1VS{G1m!El~pFx$+D879MgSH@{e zrxr9>3*jz<%*%>j|IA#|*2=?8f{+vC`ui5zsAg)M;PkcFNN{Bt6A{02oqXzMxM4)` z^QELdk|pY~2dQ&2aE6g{hPra#JYUpCe}dS$EzI~IjMW&eLcA&LYO26PWa(XWb_ZxSaNkQh5cO`p*&YkH> zGe$nrt1`}1NX8#s8n%^-PmoD<=LB$i;W+3H($x4wuCw2}J~Z%X*TSca<^YpBGu?YT zszyDk#o?A2`)x1(@0`{kw?Q2yda~+EvoBaRY<4Ed_r$NmIrsmj5~&WivBG}G0JGwC z4ONE_9rq{@In<=8iwyh*T4YIzz%zy9D!H4Pdm?Ul_{5iTg5ZQ)<&OKBe`C~Qr%cOa zm$xPT+~YsRukUBy7B`wiceVc(GsI$y)@*404prUVXc#qQuGDUGc03rFLrOVb<$Y;2 zYB}UVTF#+Ua_<0IXV7^lDha~HyS?&orrMPWFhqGJy$jS-I_Iz;BxWJarW6(PDw#P6c^1X zkmG@*yLTc#hF*5T^}27Lb_4h7Lf)R&1NTB5PNwpBnVLMG8j3Py^&RB*Y&p!pt zz2tUN>44XbHcWU94N2G6`yqew@)S7#_en$JRY%m}0Y@gzo=8+ud=V17Eh1cTH7J_-lNzX_ zQup(cfc?7F7Y2b$e*cb}JQGF84sRgfD#F~j0!%A1gii$1U$^9G0x@2;6fPG?T1dB! zRySSBcB5BM2KQqv6$e@?z}Y;O#z$fj{~+RHh#@IX6M3ZhV|Ms6#L(kPaIwF6Lj|~0 z*)sSqs5~FHQ4U9~ODsnefU7;R(*~AUQFX)tt;vHy><25$;=Z^ilUkLhxcGGl8im_F zPFYHbCSvFB0{$r>j8eCLAdW8B7cW9)&)2KZIMx0optg>||Ge<=Lm4ftt?d!2W~#A6 z*jz~~adw=J7>HZOp&aF=nxYmZIH2Y$Lkr^pqv+L4u0ovPz{fQ$r*~A<>XNJF(@IhcGAmNr8{a;8eb@MEVDx{%v50H$UmE=S2SoZqiGz`FV&U`K8abc)esHAK zFv6G^eE+M?4U{fTyH{Hi_^bCHM1&Js)9qMU+dt*q6P>2@E`EPasr2l85R(lxs@eAL zi$6Qs{%5qE5Q99!22@ByR32gP#D9l!6&F5TjT>fO-L=*3~9)0x&o^_^q3yFCxD%~I~Xb34uaK4BkM z;4t-YJmtsXf2SE{^A|%)2>{2pbD@S?+~r|AtClsF>B{WxRDFFEy-h){_1Uf$8So~N zp}T!-!f(zq2QQSfM+_QucA(zcXOr?ZhuV&JRo{hqsQ&t3bKcqKu`m0Lw}0o&d&woE zHR`_VzViJIPbbfNz(@XaqV*N9BvPiEIGxKym7;&j)2qgTEsrQU$`+NU@TfS(uqSc~yRaH^6_Er?NYu9e8_MSnEs+OXt z-P*NhQhP+~y$OOK_KGA{#7u6#|9wBWAAHV(&x7k+=e*9i&NbfeH4+0*XVkvU&#$BQ zjtN6_Hmr3jV0rY=axqOjxh`jX*I}nxW_l9qTUE%t9H^ay%bM(UB>==+Kpy`>kogtT zIck4=L*hlyWb9WBjUje?7d`wUc3DkLZ=II0UIc70+3iY+H{Q%+7IEVRg+{O+mhXD?q{krTiAD|f=91j@WgATis! z|73aP;f_sQDju>$qQDZar%zW*@k&z7+pU|}D~W0EL?LGewHyQ(AfJz1mT>U!NAj*Q zKyDr}jNL3Z9=j>i-n7xy)7LAOiA(P(YI9DoBDJdMk(Bd|mxq}1_sr>yUF|hnAjhe1 z+IDz5m`$1c$WE}KD{$IN3H18^e^-%|Se@3;Nxcg|1Zw00N#D9is&1seQ5}j8Sqo;`oKp}WRKfkz>bQ=M z)&3ni99oWh0{2H&BNQD^x&!E1s{f$_LO$c}U*5;Q3=da48PV{jjAYRQ6lwuT@$Y@E zguMN`mdAUSa{++!If?S&_`9k8sQ)5?p&ctnp+hTj;mZ8s;RVY`aVg5kFKPI@06Vtu z!lj05U7(t#Ri`=5_egS)U3UTIMKDKuukm1H1tlPG`2#f|d->kL@_s(U5s{<>5|M1V z8HvColDQ*oBPB(@DAx^4bW~Sfi{WYy(+mHwf7-Tktsv>2gsXW`t6SQ=|0$J64QQT| zD2t5;q(YZ=1!zK%<_tHl*zm++>F&1LC0cXR_Zbjkc==zzE}DxDZN-r=5dbfv+ppH+ zxloPO+xqZ*Ep|y?mFCH%C9SBngb#yeC<(HwO&N(;-jDA1tE{@^n-NVKdWPA{@I7a< zFB5>^Qz>AWFzlWxYi_WD&sFbAXnY@%AtVlg$!N6p`vD1_=B&JGwwxnvd>q+BYMZ&* zv-k?)Q!iRD;9KEDV%yq&QA*C*^mVN^qgv0YwV#ILHSG5`p<0Cty>!1YqDF09$j>AI zhAq1lNsP1GcHhR%=F}2Mam0|t-m!yf<=^Ol;_dV;%f$4tc)nA4+`FYvSg3a}Nv}>M zi$;((&N!l#ef8c&Bx~Fe!tdczpdi5?hV^(fyDPR{VQyh109-mk@G^=a;8*P+83Eea4K*xs zSayfwmIlZKnz%%na{*$x!d(^n&kXdPlmHjMU0f**VF5p$XSUUM<`e!dkIt0SeW$Va zL8EnNS;L45#?)6iR988k-Dg2&P-H(gM8a;7d+~GPkd}S$RQn+!rbpiQJ5k z{W5k?%S=ALbo=BSNzF8E;uFn3YBsf*Q|%x%?jGP{l4FaDvl?3STr}p%gSt{af$r(3 z_(+inw$G3r5#q);B`6txHu*$F;!g8Zm|fk!TkcwGMjFZKYxA}iX8rLsD)t~yEDm;y zoa6P1@1`s3GS^dNzm!@H?X2jcZ3((?y+PH!q0k!(e=yK9WbiE0|KE?ct3~OQh_O6l zqnw8=F;-=&cCv=*>aCSQkI$Q(toCi|KIOzP(`Rqhl`o9#OgCnWRrpFdQ@_6<{$(xn z=h2p0VuuX8QF;md9)7CwwmDs6mtIdQlAPmnaFW%as)~G~_6d|ftreg8sR&M!67GkX zK5_v&a#Xh#0sD8$?tcjE-%aQKK;Q^Z9kVBy@e6Ng!WPOPzI=n$<;RxtDdsMr#;d%6wR5=Pq zd~kjJ|9=*Nkax+Ha%K9MAfc)@2e6)5+uo zGzaEMuC7!i{zfcvk4us^Nhm3wE2`WS(&);ar0}_u;=&UOphjjoB-#Iqa(f+d^+%r^ zcNOkEYlunY>DU#i_ixD2`dIApcy7UQp=#fT0e5(~Wk;5NUssyuf^N3pNn1#ZoX($BIGzp2o9CGfFBrMt8{N4mNp?qt#+J@X#j;hhO7f86&|M z4lktpLr2#x?nSESFxwi35dSDQX?J9KA-mFsGOvX%`sG8OUQ%2i@}wp};y%Y3Xj+$* znLb4x;RFpT6V?tg{usRN_FWsE;uZOzSQFOHxyM~Y*3-?RP40Yy)|tY zKyVt~h0LU%WR-d~&YNr!K5fhXx8}b83I`4GIF-0c-{-i=Ix8<8t#dj1bYy+M)GBFU zMJ0Bi;{xAXhhU}wjf(xYmbKa;Run(ELF9@&CbW&-2s(EU2(tA&^?1YzsF9p{#NApU zF&r{pVC`F@eX)HejyVeU^^1q{Dg74v!g+PI=8hu4utYPF9E|dVq^`sG$PIdVaRDh5Wg<>`aJ5cDa3-3R%*tkX2#2^;??u^qLS%!MKjKN#UT{q2 zWn`C=4g_ha%+7A0)9B@?tVsHzgr0DNCt)z)wE6U4_gXOuRHgeZ|98e)gp%ADg1TEJ z3Z6NC;GQq( zJfruHAN|}rl*a=Pnr+1cCaOY?YXt9SgLuACP~j>jcY~@t(JNc}ufzz3lYy$#;7}H!dHY{Hi|lpV^H8$dBX ztzZbpaLRaiZ>+g)hFBA=*-bxfY;hJdNst}rnFQ)f^U7|M_6{67qF0Jka5aPw1zim; z)hGCmQj|_dd8nhR2=pi47L5D%VSh8xoE406e&M@(Dp%$-spLee#9TcNltwJdi`&N{zpaK!Urwvg9Xy4 zB+VLVek1CBa2MIZEo{G^+or}_cyiNjlX46kspuW^3E+Mm_-x0Mjl>8N`DE7 zUQ)JcmsPYy383|0xNa8HM!4YXzN8i`=FHXU}E(;y>%3q_igQ4fPSP z*}wkZHz^;LCW$s+`PUtQ6njd8NU%8=N4wY5!gIX-ed4am2Y6b%#PU`fifD7j!LsE*I5ur0sKIrtwe346pgdC2u=ET0d0w~hvT{}M zV9ckjaN3v!K6l2zIxB&@+tBxq0ykaUx;Hw0_Ggegz9Q&gwfy}**$?JFfD&YP)lo

-rg4 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 LNkvXXu0mjf>rYI2 literal 0 HcmV?d00001 diff --git a/ExtLibs/AdsApi/Powershell/TcXaeMgmt/TcXaeMgmt.psd1 b/ExtLibs/AdsApi/Powershell/TcXaeMgmt/TcXaeMgmt.psd1 new file mode 100644 index 0000000000000000000000000000000000000000..cc714f2aa5a5b9b82cdec579015af7161d25ea30 GIT binary patch literal 12334 zcmeI2eNP<85yt!PNcj#UAq5fzFb2*hQj*&PV_N~o0(^JUDZ0S&a@@f}b{AtSy04z( z`E_m4-Se`rTpZ=12raua(_LNl)Js=Y&p-b$7k(Lj5#~Y_cEeRT4maTiIA}$;ZuygU}COYxIdIoN3-T%ui@K<(GOk&}XPoV|^cs%2D_jey8s* zblnd>gzrTCRDU*S+RQ7_V&-~S4o}1L`2UH1J;~-W|MT$oc*kk&Yn`Dax{lIZ7Sftz zM|wICk3;bW0=b;0dS=KR3XhSV^>ru7bE~Vdq^RQmbB$)7&eKD)Iik#QM_B}-f4}GB#H5muU)5QoUDc=VY(Dn!n4}i`&#Q- ze_-a?d>i(|3vmht#?xq`jVf$vEZa}}cr5vAmQOZ<(pDB|9iGz)U4(Kh>%!=4|?KJg1|^jeZ% zh4;F~Ry_`uF{8B9t~E{8x1x3{N<;DWoxX__?r|2ui5@3fop|IC{6KSvbeq!Vf$sO@ zVf)!U^R0fNVRi%f?V7u*(ZtR(t(NqNW=D$dqZ*RCas6|RByLqg#AIkk^s6`;i@uF= zB&qi^sj;22I1()kMUm)m9)CRq={Bm}v9WF&$#Y6;co^@*2-{_6=X*}lw(l_{6rJSS-BN)1hp5R+}OM9>_jz2g38Q zakonLZgx-hEqwF6RwGVesqUvlKSs1^x025ijeZanB4MSgeE%g27>MFW$;9rmrR%Yz zBNjAeYe#iWbL)0Ko4xe4>ZSf{m$;CO_~?zki4!17tRYg`uCt(+v=jD}0sOqtHYpyC z>RTZ}Mu|qTM)GX((0;TZ?1cT~Mt4AML3#wylki(zeH}9pe)WXnv9gi1N8sm~Ws{R$ zCm-$cB<)|=H8#xdPBu&q$1n0!?4GO;Sv`wnPqOUJE&ogwe5LXD1{OYudnZ^8qQzLY zfN!yLfSS$EX+!laK5<{nGkceNPt^1MBF~VK16iB7X)o%F9gn>BTr{T3j5LSRk?s9I zmG3&w?cA7_npIkRWl>g1UiBc=f}+8-mGp|8CSOLcR3xrJvIw#gV&8m3=Tm6W zV%(h8&G{cG{$441=DyXX$pb~o>nKON%pauVi;3jaA7;a)K5t{ZM*7+8&)4qex4kkX zr-bLxoo0;7ayQ(Lo?-bqdyCbvrA9xcbou(TN@zQw@$S~wCS%=On^Ayxip)e!qL6uD z9tn6_=5F~@>J+f1>IXxcZ??XtdG(5Zxv1}(cIa`39ohM*OVJ*4w&R|e>I?Wbc~8Oz z@n{hhO=I_D*Z5+y4ra&jOap7S*o=(B$$hIJ*p(Pd{tbRe>h*XPD~Ss|!_SBMh8wRH z${9pGt3`+w9v`gYqvOIFR^=N7;ypWrRZdVRBeP21`x}-~*7$2UGRx_`x zkw{F3Xi+i0uU!Cp_WoEJWjzC@vptE0{+vGLxN{Xewwn4kuYN~PVPDj&vr%6G9=GDN zL-A`-ylqUo9KMQ4`cX(9NqTyO_|PnTLg7Gs3}Ze%R!?jYeZP&DGMn`g#IM__sFS6T z^O$D7)b9&v&vo|@ZlORdey?xWUDF1@Drv8Y{ehkn4?E6y%bx+(MfCjxSUdwc9`i1?D)({>);CabSjCmkKGlZ*QC|um-U#~)7tPb`UxET z@9s-j{&aLKCYC5Z6nlDjo3aF=Ff}CAqE(cS%MaYLwnVM3m|LgX&R4TW!V4_7und zk}oOWpuTY5CoY#~YD-y8Hg4qm4~_e6bi1nvsJ2%gekRpD;#x88Y=#}l?&Uhcup^}BsMS)AJV&Il@InPU~*ty|cfibqLvXp3nk{+n8s($swDy6xI*VF4ln-8u zf3NFIYwdND<4Qb4*KQd(HlyMKlXy3?kmm>C;x?4X_U7nnMEl2yN)3_{~C4a$> zhq~HPzO|`(@QpmuLFz z=}53HtBmAtbc(3;^EWOMIvx?MCSO*k?}<*jSB1h@GgcKD@#K-d!TH;G_k-?{o!grq z%Nn(zv+$?-Th;vM`fO-Tw8Q@PN6CGxUg~p=;rWXGbAG;|l~&>$yXODK%xGij^xjMk z%Y;DFJe61n7TvwzcC24d=(VG4*2eo6XIck+b>mA{(6Srst<*x9bI|Lu{d1bVu?Ldt zTfWVi09MN`lloZAzE7KHbyMn&F#qXuX6r4r#WP|J7;w&PIz&c%#QHt@J`2jfdWvL~KIIveoiorkB9FCqRi>XC+Bur>)OKFKb{AE)qc;7d$2nb$ zTv!#o98#rdRi9PUDYw{>_O0uV9Uu?dWk<5yWIx6MeqTmg;cW!=et!#KL6I)?6!0c8 zu04&p)we|+t1Cu|jc(DLN7^25h`_Ve;GFL)#@}{MNvDSB>^%CqoM*y|*DMQKYe%t{ z)pMSypNDrNIVtphBl|JCfP49-RwDNCu8F_jW_yt%WN!}neC)+>LR-iH4LiR`{lq$= z?8n|gDS55#s`X(+%HIjWzUuZ@_E!>$Ux>Dy8iANqQeeQEoDV|F#_)E8%kHSspBYPY zSORC*wj0n%h0={ExV5Dfdy3KIEEX%5HOnms{n%ZnpXUaS8Qi7r8^||v5V&?4<#;UF zHDZyR>?ol>n)n>rY0Awm=lw8j$t6a9Y&B^h^~dX)$n|OOu^}1t9q-xD{l>CSCfNqh z_*lOtSzmc}X}H(9VBTNjAAS4!n>;)vtNnvkwB2Pf%Qnf$tqGG7oO%oA+~x|0S-fyNcOj_-y>8OdWeBm#O#p;F;3{Jig?O z_b2*#;_o))mgLsTOrjm@5O-~F9?E0PYg`lG#J4fJs5MdY*k$kL{v~o&&v)Ivu>YS| zmIo@|C>FRivzvn;^;x|O^52KVTFhaeD4+dI`72rLN=v@G7VkgR|22(S*O>K~`ErN% z4A*1+>-K?X4q`TA*wm{Qya2Bt0$D!UZWFhPD7RBG(q=XDqfnpI=Y`g%180$;tgLyT zqwESe-(9ow-iT)jZQTW@0|&1p9i6e);)LqO>dM!5Jf(Umk19mf zIF(Fz7qQ(c2C{|^y7Kz0jBV^u`Dv@22B#gRojW=Qe~zaZoMqZOpvl@fAMNIYzKKN< ja*Fik%wloQO#HIE*Z8+=xG7~BRr485jDC#q24w#QxcS;x literal 0 HcmV?d00001 diff --git a/ExtLibs/AdsApi/Powershell/TcXaeMgmt/TcXaeMgmt.types.ps1xml b/ExtLibs/AdsApi/Powershell/TcXaeMgmt/TcXaeMgmt.types.ps1xml new file mode 100644 index 00000000..5bf9162a --- /dev/null +++ b/ExtLibs/AdsApi/Powershell/TcXaeMgmt/TcXaeMgmt.types.ps1xml @@ -0,0 +1,16 @@ + + + + + TwinCAT.RouteTarget + + TwinCAT.Management.Automation.PSRouteTypeConverter + + + + TwinCAT.Ads.AmsPort + + TwinCAT.Management.Automation.PSPortTypeConverter + + + \ No newline at end of file diff --git a/ExtLibs/AdsApi/Powershell/TcXaeMgmt/about_TcXaeMgmt.help.txt b/ExtLibs/AdsApi/Powershell/TcXaeMgmt/about_TcXaeMgmt.help.txt new file mode 100644 index 00000000..fece212e --- /dev/null +++ b/ExtLibs/AdsApi/Powershell/TcXaeMgmt/about_TcXaeMgmt.help.txt @@ -0,0 +1,326 @@ +TOPIC + PowerShell TwinCAT XAE Management Console (TcXaeMgmt) + +SHORT DESCRIPTION + Describes the Powershell TwinCAT Management Console (TcXaeMgmt) module and + how to use the contained cmdlets and functions. + +LONG DESCRIPTION + Powershell TwinCAT Management Console is a PowerShell module that provides a + number of useful cmdlets for TwinCAT System Management and for communicating + with ADS devices with the ADS protocol. + This includes TwinCAT Route Management as finding routes (find targets, broadcast search), + establishing and removing route connections (Add-AdsRoute, Remove-AdsRoute) and the + test of registered routes (Test-AdsRoute) or communication (Get-AdsState). + Furthermore Ads Sessions can be established for further use (New-TcSession), Symbol information + can be browsed (Get-TcSymbol, Get-TcDataType) and data read/write from/to to ADS Devices + (Read-TcValue, Write-TcValue). + Uploading and Downloading files to or from the TwinCAT Target systems is an additional feature + (Copy-AdsFile). + +POWERSHELL COMPATIBILITY + Actually, the TwinCAT Management Console is written for and works with Powershell + 4.0. + +PREFERENCE VARIABLES + +CMDLETS + To see what cmdlets are provided by the TcXaeMgmt Module, execute the command: + Get-Command -Module TcXaeMgmt -CommandType Cmdlet + The current TcXaeMgmt cmdlets are listed below: + + Add-AdsRoute + Cmdlet for adding TwinCAT Routes. + + Close-TcSession + Closes the specified session object. + + Copy-AdsFile + Uploads / Downloads files from/to TwinCAT target. + + Get-AdsRoute + List routes on a TwinCAT System / Broadcast search. + + Get-AdsState + Gets the Ads State of a TwinCAT Target. + + Get-TcDataType + Get the DataTypes from a TwinCAT target system / Device. + + Get-TcSession + List the currently established Sessions. + + Get-TcSymbol + Get the symbols from a TwinCAT target system / Device. + + Get-TcTargetInfo + Get TwinCAT Device Target information. + + Get-TcVersion + Get the TwinCAT Version of a target system. + + New-TcSession + Create a new session to a TwinCAT Target. + + Read-TcValue + Reads values from TwinCAT devices. + + Remove-AdsRoute + Remove an ADS Route. + + Set-AdsState + Set the ADS State of a TwinCAT Target. + + Test-AdsRoute + Test the specified route connection. + + Write-TcValue + Write values to TwinCAT devices. + + +FIRSTSTEPS + # Getting Route + >PS $route = get-adsroute TC3TEST* + >PS $route + + Name NetId Address Sub Version RTSystem + ---- ----- ------- --- ------- -------- + TC3TESTA1-CP67X 172.17.62.105.1.1 172.17.62.105 0.0 Unknown + + #Create Session + PS> $session = New-TcSession -Route $route -Port 851 + PS> $session + + ID Address IsConnected EstablishedAt + -- ------- ----------- ------------- + 1 172.17.62.105.1.1:851 True 12/12/2016 12:22:02 PM + + # Read Ads Value (Struct) + > $v1 = Read-TcValue -SessionId 1 -Path "GVL.vgStruct" + > $v1 + + vBool : True + vByte : 123 + vWord : 12345 + vDWord : 12345678 + vSInt : -121 + vUSInt : 212 + vInt : -12121 + vUInt : 21212 + vDInt : -1212121 + vUDInt : 2121212 + vReal : 123,456 + vLReal : 1234567890,12346 + vString : QWERTZUIOPÜASDFGHJKLÖÄYXCVBNM;:_ + vTime : 01:02:03.0040000 + vTod : 23:45:06.7890000 + vDate : 17.11.2005 00:00:00 + vDT : 17.11.2005 12:34:56 + vAlias : 8 + vEnum : 8 + vRange : 7 + PSValue : ... + + # Read Ads Value (Boolean) + > $v2 = Read-TcValue -SessionId 1 -Path "Main.bChange" + > $v2 + False + + # Read Ads Value (Array of Strings) + > $v3 = Read-TcValue -SessionId 1 -path "GVL.vgaString" + + Dimensions Elements PSValue + ---------- -------- ------- + {TwinCAT.TypeSystem.Dimension} {QWERTZUIOPÜASDFGHJKLÖÄYXCVBNM;:_, _:;MNBVCXYÄÖLKJHGFDSAÜPOIUZTREWQ} ... + + # Read Array Of Structs + > $v4 = Read-TcValue -SessionId 1 -path "GVL.vgastruct" + + + Dimensions Elements + ---------- -------- + {TwinCAT.TypeSystem.Dimension} {@{vBool=True; vByte=123; vWord=12345; vDWord=12345678; vSInt=-121; vUSInt=212; vInt=-12121; vUInt=21212; vDInt=-1212121; vUD... + + #Dump Array Elements + > $v4.Dimensions.ElementCount + 2 + + > $v4.Elements + + vBool : True + vByte : 123 + vWord : 12345 + vDWord : 12345678 + vSInt : -121 + vUSInt : 212 + vInt : -12121 + vUInt : 21212 + vDInt : -1212121 + vUDInt : 2121212 + vReal : 123,456 + vLReal : 1234567890,12346 + vString : QWERTZUIOPÜASDFGHJKLÖÄYXCVBNM;:_ + vTime : 01:02:03.0040000 + vTod : 23:45:06.7890000 + vDate : 17.11.2005 00:00:00 + vDT : 17.11.2005 12:34:56 + vAlias : 8 + vEnum : 8 + vRange : 7 + PSValue : ... + + vBool : False + vByte : 234 + vWord : 23456 + vDWord : 23456789 + vSInt : 121 + vUSInt : 131 + vInt : 12121 + vUInt : 13131 + vDInt : 1212121 + vUDInt : 1313131 + vReal : 456,321 + vLReal : 987654321,123457 + vString : _:;MNBVCXYÄÖLKJHGFDSAÜPOIUZTREWQ + vTime : 11:22:33.0440000 + vTod : 11:22:33.4440000 + vDate : 22.01.1999 00:00:00 + vDT : 22.01.1999 11:22:33 + vAlias : 9 + vEnum : 9 + vRange : -5 + PSValue : ... + + # Browse Data Types (Query by Category) + > $session | Get-TcDataType | where Category -eq "Array" } + + Name Size Category Comment ElementType Dimensions Members + ---- ---- -------- ------- ----------- ---------- ------- + ARRAY [-1..1] OF INT 6 Array INT {TwinCAT.Type... + ARRAY [-10..-8] OF BOOL 3 Array BOOL {TwinCAT.Type... + ARRAY [0..1] OF A_Alias 4 Array A_Alias {TwinCAT.Type... + .... + + # Browse DataTypes by name + > $session | Get-TcDataType -name "Array*" + + # Browse all Symbols recursively + > $session | Get-TcSymbol -recurse + ... returns all symbols + + # Browse Symbols recursivly by Symbol Path (Here specific array index 'TaskInfo[1]'( + > $session | Get-TcSymbol -recurse -path "*TaskInfo``[1``]*","*.ProjectName" + + InstanceName DataType Size InstancePath Comment + ------------ -------- ---- ------------ ------- + ProjectName STRING(63) 64 TwinCAT_SystemInfoVarList._AppInfo.ProjectName + _TaskInfo[1] PLC.PlcTaskSystemInfo 128 TwinCAT_SystemInfoVarList._TaskInfo[1] + ObjId OTCID 4 TwinCAT_SystemInfoVarList._TaskInfo[1].ObjId + CycleTime UDINT 4 TwinCAT_SystemInfoVarList._TaskInfo[1].CycleTime + Priority UINT 2 TwinCAT_SystemInfoVarList._TaskInfo[1].Priority + AdsPort UINT 2 TwinCAT_SystemInfoVarList._TaskInfo[1].AdsPort + CycleCount UDINT 4 TwinCAT_SystemInfoVarList._TaskInfo[1].CycleCount + DcTaskTime LINT 8 TwinCAT_SystemInfoVarList._TaskInfo[1].DcTaskTime + LastExecTime UDINT 4 TwinCAT_SystemInfoVarList._TaskInfo[1].LastExecTime + FirstCycle BOOL 1 TwinCAT_SystemInfoVarList._TaskInfo[1].FirstCycle + CycleTimeExceeded BOOL 1 TwinCAT_SystemInfoVarList._TaskInfo[1].CycleTimeExceeded + InCallAfterOutputUpdate BOOL 1 TwinCAT_SystemInfoVarList._TaskInfo[1].InCallAfterOutputUpdate + RTViolation BOOL 1 TwinCAT_SystemInfoVarList._TaskInfo[1].RTViolation + TaskName STRING(63) 64 TwinCAT_SystemInfoVarList._TaskInfo[1].TaskName + + # Browse only Symbols ending with path *.ProjectName + >$project = Get-TcSymbol -Session $session -recurse -path "*.ProjectName" + + InstanceName DataType Size InstancePath Comment + ------------ -------- ---- ------------ ------- + ProjectName STRING(63) 64 TwinCAT_SystemInfoVarList._AppInfo.ProjectName + + # Ads Read ProjectName + >$project | Read-TcValue -Session $session + ADS_DynSymbols + + # Ads Write ProjectName + >$project | Write-TcValue -Session $session -Value "NewProjectName" + >$project | Read-TcValue -Session $session + NewProjectName + + # ReadWrite by Symbol Path + >Read-TcValue -SessionId 1 -Path "Main.bChange" + false + >Write-TcValue -SessionId 1 -Symbol "Main.bChange" -Value True + >Read-TcValue -SessionId 1 -Path "GVL.vgBool" + >Write-TcValue -SessionId 1 -Path "GVL.vgBool" -value $true + + # ReadWrite by Piping + > $projectNameSymbol = $session | Get-TcSymbol -Recurse -path "*ProjectName" + > $projectNameSymbol | Read-TcValue -SessionId 1 + > $projectNameSymbol | Write-TcValue -SessionId 1 -Value "NewProjectName" + > $projectNameSymbol | Read-TcValue -SessionId 1 + + # Get Target Information + > get-adsroute | Get-TcTargetInfo + + Target Version Level OS Image Device CPUArch + ------ ------- ----- -- ----- ------ ------- + TC3TESTA1-CP67X 3.1.4021.131 CP Win7 IntelX86 + + > get-adsroute | Get-TcVersion + + Major Minor Build Revision + ----- ----- ----- -------- + 3 1 4021 131 + +PROVIDERS + The TcXaeMgmt module includes the AdsSymbolProvider, which binds the target + device symbolic information to a PSDrive. To register a symbol server as + PSDrive type (here the Target Route 'TC3TESTA1-CP67X' with AmsPort: 851) + + > New-PSDrive -Name AdsSymbols -PSProvider AdsSymbolProvider -Address TC3TESTA1-CP67X -Port 851 -Root '' + > cd AdsSymbols: + > dir + + get-help about_providers + +FUNCTIONS + To see what functions are provided by TcXaeMgmt, execute the command: + Get-Command -Module TcXaeMgmt -CommandType Function + The current TcXaeMgmt functions are listed below: + + (Add-Route + Adding a route to the specified TwinCAT System) + + +TCXAEMGMT ALIASES + To see what aliases get created by TcXaeMgmt, execute the command: + Get-Command -Module TcXaeMgmt -CommandType Alias + The current TcXaeMgmt defined aliases are listed below: + + (fhex : alias for Format-Hex cmdlet) + +MISCELLANOUS FEATURES + +FEEDBACK + Please submit any feedback, including defects and enhancement requests, + to + + support@beckhoff.com + + We are also interested in suggestions you may have for cmdlets. Over + time, we hope to be able to add some more features. + +SEE ALSO + For more information, most of the cmdlets have help associated with + them e.g.: + + PS> Get-Help Add-AdsRoute -full + + The definitive information on a cmdlet's parameters can be obtained + by executing: + + PS> Get-Command Add-AdsRoute -syntax + + or more tersely: + + PS> gcm Add-AdsRoute -syn + + about_providers diff --git a/ExtLibs/AdsApi/ReadMe.txt b/ExtLibs/AdsApi/ReadMe.txt new file mode 100644 index 00000000..49947b2a --- /dev/null +++ b/ExtLibs/AdsApi/ReadMe.txt @@ -0,0 +1,35 @@ +ADS API Versions +---------------------------------------------------- + +- TcAdsDll.dll Version 2.11.0.38 + +- TcAdsDllCe.dll Version 2.10.0.5 for x86 +- TcAdsDllCe.dll Version 2.9.0.35 for Mips, Sh4, StrongARM (PPC) and StrongARM (HPC) + +- TcAdsOcx Version 3.0.0.111 for x86 and x64 + +- TwinCAT.Ads.Dll Version 1.0.0.15 for .NET Framework v1.0.3705 +- TwinCAT.Ads.Dll Version 1.0.0.18 for .NET Framework v1.1.4322 +- TwinCAT.Ads.Dll Version 2.2.56.0 for .NET Framework v2.0.50727 +- TwinCAT.Ads.Dll Version 4.4.7 for .NET Framework v4.0.30319 + +- TwinCAT.Ads.Reactive.dll Version 4.4.7 for .NET Framework v4.6.1 + +- TwinCAT.Ads.Dll Version 1.0.0.18 for .NET Compact Framework v1.0.5000 +- TwinCAT.Ads.Dll Version 2.2.56.0 for .NET Compact Framework v2.0 + +- AdsToJava version 2.1.1.0 for PC(x86/x64) +- TcJavaToAds.jar 2.1.0 + +- TcAdsWebService.dll Version 2.0.0.5 for CE +- TcAdsWebService.dll Version 2.0.0.5 for PC + +- TcAdsWebService.js Version 1.0.3.0 + +- TcAdsWcf Version 1.0.1.0 + +- SSLCert Version 1.0.1.0 + +- TcScript version 2.11.0.9 + +- TcXaeMgmt version 3.2.17 for Powershell v5.1 and newer \ No newline at end of file diff --git a/ExtLibs/AdsApi/TcAdsDll/CE/Include/TcAdsAPI.h b/ExtLibs/AdsApi/TcAdsDll/CE/Include/TcAdsAPI.h new file mode 100644 index 00000000..2f646b03 --- /dev/null +++ b/ExtLibs/AdsApi/TcAdsDll/CE/Include/TcAdsAPI.h @@ -0,0 +1,244 @@ +//////////////////////////////////////////////////////////////////////////////// +// File: TcAdsAPI.h +// Description: Prototypes and Definitions for non C++ Applications +// Author: RamonB +// Created: Wed Nov 6 10:00:00 1996 +// +// +// BECKHOFF-Industrieelektronik-GmbH +// +// Modifications: +// KlausBue 11/1999 +// Register Callback for Router notifications +// +// ChristophC 16/07/2001 +// Double definition of router callback function removed +// +//////////////////////////////////////////////////////////////////////////////// +#ifndef __ADSAPI_H__ +#define __ADSAPI_H__ + +#define ADSAPIERR_NOERROR 0x0000 + +//////////////////////////////////////////////////////////////////////////////// +#ifdef __cplusplus +extern "C" +{ +#endif + +__declspec( dllexport ) +long __stdcall AdsGetDllVersion( void ); + +__declspec( dllexport ) +long __stdcall AdsPortOpen( void ); + +__declspec( dllexport ) +long __stdcall AdsPortClose( void ); + +__declspec( dllexport ) +long __stdcall AdsGetLocalAddress( AmsAddr* pAddr ); + +__declspec( dllexport ) +long __stdcall AdsSyncWriteReq( AmsAddr* pServerAddr, // Ams address of ADS server + unsigned long indexGroup, // index group in ADS server interface + unsigned long indexOffset, // index offset in ADS server interface + unsigned long length, // count of bytes to write + void* pData // pointer to the client buffer + ); + +__declspec( dllexport ) +long __stdcall AdsSyncReadReq( AmsAddr* pAddr, // Ams address of ADS server + unsigned long indexGroup, // index group in ADS server interface + unsigned long indexOffset, // index offset in ADS server interface + unsigned long length, // count of bytes to read + void* pData // pointer to the client buffer + ); + +__declspec( dllexport ) +long __stdcall AdsSyncReadReqEx( AmsAddr* pAddr, // Ams address of ADS server + unsigned long indexGroup, // index group in ADS server interface + unsigned long indexOffset, // index offset in ADS server interface + unsigned long length, // count of bytes to read + void* pData, // pointer to the client buffer + unsigned long* pcbReturn // count of bytes read + ); + +__declspec( dllexport ) +long __stdcall AdsSyncReadWriteReq( AmsAddr* pAddr, // Ams address of ADS server + unsigned long indexGroup, // index group in ADS server interface + unsigned long indexOffset, // index offset in ADS server interface + unsigned long cbReadLength, // count of bytes to read + void* pReadData, // pointer to the client buffer + unsigned long cbWriteLength, // count of bytes to write + void* pWriteData // pointer to the client buffer + ); + +__declspec( dllexport ) +long __stdcall AdsSyncReadWriteReqEx( AmsAddr* pAddr, // Ams address of ADS server + unsigned long indexGroup, // index group in ADS server interface + unsigned long indexOffset, // index offset in ADS server interface + unsigned long cbReadLength, // count of bytes to read + void* pReadData, // pointer to the client buffer + unsigned long cbWriteLength, // count of bytes to write + void* pWriteData, // pointer to the client buffer + unsigned long* pcbReturn // count of bytes read + ); + +__declspec( dllexport ) +long __stdcall AdsSyncReadDeviceInfoReq( AmsAddr* pAddr, // Ams address of ADS server + char* pDevName,// fixed length string (16 Byte) + AdsVersion* pVersion // client buffer to store server version + ); + +__declspec( dllexport ) +long __stdcall AdsSyncWriteControlReq( AmsAddr* pAddr, // Ams address of ADS server + unsigned short adsState, // index group in ADS server interface + unsigned short deviceState,// index offset in ADS server interface + unsigned long length, // count of bytes to write + void* pData // pointer to the client buffer + ); + +__declspec( dllexport ) +long __stdcall AdsSyncReadStateReq( AmsAddr* pAddr, // Ams address of ADS server + unsigned short* pAdsState, // pointer to client buffer + unsigned short* pDeviceState// pointer to the client buffer + ); + + +__declspec( dllexport ) +long __stdcall AdsSyncAddDeviceNotificationReq( AmsAddr* pAddr, // Ams address of ADS server + unsigned long indexGroup, // index group in ADS server interface + unsigned long indexOffset,// index offset in ADS server interface + AdsNotificationAttrib* pNoteAttrib, // attributes of notification request + PAdsNotificationFuncEx pNoteFunc, // address of notification callback + unsigned long hUser, // user handle + unsigned long *pNotification // pointer to notification handle (return value) + ); +__declspec( dllexport ) +long __stdcall AdsSyncDelDeviceNotificationReq( AmsAddr* pAddr,// Ams address of ADS server + unsigned long hNotification // notification handle + ); + +__declspec( dllexport ) +long __stdcall AdsSyncSetTimeout( long nMs ); // Set timeout in ms + + +__declspec( dllexport ) +long __stdcall AdsGetLastError( void ); + + +/// register callback +__declspec( dllexport ) +long __stdcall AdsAmsRegisterRouterNotification (PAmsRouterNotificationFuncEx pNoteFunc ); + +/// unregister callback +__declspec( dllexport ) +long __stdcall AdsAmsUnRegisterRouterNotification (); + + +__declspec( dllexport ) +long __stdcall AdsSyncGetTimeout(long *pnMs ); // client buffer to store timeout + +__declspec( dllexport ) +long __stdcall AdsAmsPortEnabled(BOOL *pbEnabled); + + +//////////////////////////////////////////////////////////////////////////////////////////////////// +// new Ads functions for multithreading applications +__declspec( dllexport ) +long __stdcall AdsPortOpenEx( ); + +__declspec( dllexport ) +long __stdcall AdsPortCloseEx( long port ); + +__declspec( dllexport ) +long __stdcall AdsGetLocalAddressEx(long port, AmsAddr* pAddr ); + +__declspec( dllexport ) +long __stdcall AdsSyncWriteReqEx( long port, // Ams port of ADS client + AmsAddr* pServerAddr, // Ams address of ADS server + unsigned long indexGroup, // index group in ADS server interface + unsigned long indexOffset, // index offset in ADS server interface + unsigned long length, // count of bytes to write + void* pData // pointer to the client buffer + ); + +__declspec( dllexport ) +long __stdcall AdsSyncReadReqEx2( long port, // Ams port of ADS client + AmsAddr* pServerAddr, // Ams address of ADS server + unsigned long indexGroup, // index group in ADS server interface + unsigned long indexOffset, // index offset in ADS server interface + unsigned long length, // count of bytes to read + void* pData, // pointer to the client buffer + unsigned long* pcbReturn // count of bytes read + ); + + +__declspec( dllexport ) +long __stdcall AdsSyncReadWriteReqEx2( long port, // Ams port of ADS client + AmsAddr* pServerAddr, // Ams address of ADS server + unsigned long indexGroup, // index group in ADS server interface + unsigned long indexOffset, // index offset in ADS server interface + unsigned long cbReadLength, // count of bytes to read + void* pReadData, // pointer to the client buffer + unsigned long cbWriteLength, // count of bytes to write + void* pWriteData, // pointer to the client buffer + unsigned long* pcbReturn // count of bytes read + ); + +__declspec( dllexport ) +long __stdcall AdsSyncReadDeviceInfoReqEx( long port, // Ams port of ADS client + AmsAddr* pServerAddr, // Ams address of ADS server + char* pDevName, // fixed length string (16 Byte) + AdsVersion* pVersion // client buffer to store server version + ); + +__declspec( dllexport ) +long __stdcall AdsSyncWriteControlReqEx( long port, // Ams port of ADS client + AmsAddr* pServerAddr, // Ams address of ADS server + unsigned short adsState, // index group in ADS server interface + unsigned short deviceState, // index offset in ADS server interface + unsigned long length, // count of bytes to write + void* pData // pointer to the client buffer + ); + +__declspec( dllexport ) +long __stdcall AdsSyncReadStateReqEx( long port, // Ams port of ADS client + AmsAddr* pServerAddr, // Ams address of ADS server + unsigned short* pAdsState, // pointer to client buffer + unsigned short* pDeviceState // pointer to the client buffer + ); + + +__declspec( dllexport ) +long __stdcall AdsSyncAddDeviceNotificationReqEx( long port, // Ams port of ADS client + AmsAddr* pServerAddr, // Ams address of ADS ser + unsigned long indexGroup, // index group in ADS server interface + unsigned long indexOffset, // index offset in ADS server interface + AdsNotificationAttrib* pNoteAttrib, // attributes of notification request + PAdsNotificationFuncEx pNoteFunc, // address of notification callback + unsigned long hUser, // user handle + unsigned long *pNotification // pointer to notification handle (return value) + ); +__declspec( dllexport ) +long __stdcall AdsSyncDelDeviceNotificationReqEx( long port, // Ams port of ADS client + AmsAddr* pServerAddr, // Ams address of ADS ser + unsigned long hNotification // notification handle + ); + +__declspec( dllexport ) +long __stdcall AdsSyncSetTimeoutEx(long port, // Ams port of ADS client + long nMs ); // Set timeout in ms + +__declspec( dllexport ) +long __stdcall AdsSyncGetTimeoutEx(long port, // Ams port of ADS client + long *pnMs ); // client buffer to store timeout + +__declspec( dllexport ) +long __stdcall AdsAmsPortEnabledEx(long nPort, BOOL *pbEnabled); + + +#ifdef __cplusplus +} // extern "C" +#endif +#endif \ No newline at end of file diff --git a/ExtLibs/AdsApi/TcAdsDll/CE/Include/TcAdsDef.h b/ExtLibs/AdsApi/TcAdsDll/CE/Include/TcAdsDef.h new file mode 100644 index 00000000..c37ff7da --- /dev/null +++ b/ExtLibs/AdsApi/TcAdsDll/CE/Include/TcAdsDef.h @@ -0,0 +1,416 @@ +/////////////////////////////////////////////////////////////////////////////// +// This is a part of the Beckhoff TwinCAT ADS API +// Copyright (C) Beckhoff Automation GmbH +// All rights reserved. +//////////////////////////////////////////////////////////////////////////////// + + +#ifndef __ADSDEF_H__ +#define __ADSDEF_H__ + +#ifndef ANYSIZE_ARRAY +#define ANYSIZE_ARRAY 1 +#endif + +#define ADS_FIXEDNAMESIZE 16 + +//////////////////////////////////////////////////////////////////////////////// +// AMS Ports +#define AMSPORT_LOGGER 100 +#define AMSPORT_R0_RTIME 200 +#define AMSPORT_R0_TRACE (AMSPORT_R0_RTIME+90) +#define AMSPORT_R0_IO 300 +#define AMSPORT_R0_SPS 400 +#define AMSPORT_R0_NC 500 +#define AMSPORT_R0_ISG 550 +#define AMSPORT_R0_PCS 600 +#define AMSPORT_R0_PLC 801 +#define AMSPORT_R0_PLC_RTS1 801 +#define AMSPORT_R0_PLC_RTS2 811 +#define AMSPORT_R0_PLC_RTS3 821 +#define AMSPORT_R0_PLC_RTS4 831 +#define AMSPORT_R0_PLC_TC3 851 + +//////////////////////////////////////////////////////////////////////////////// +// ADS Cmd Ids +#define ADSSRVID_INVALID 0x00 +#define ADSSRVID_READDEVICEINFO 0x01 +#define ADSSRVID_READ 0x02 +#define ADSSRVID_WRITE 0x03 +#define ADSSRVID_READSTATE 0x04 +#define ADSSRVID_WRITECTRL 0x05 +#define ADSSRVID_ADDDEVICENOTE 0x06 +#define ADSSRVID_DELDEVICENOTE 0x07 +#define ADSSRVID_DEVICENOTE 0x08 +#define ADSSRVID_READWRITE 0x09 + +//////////////////////////////////////////////////////////////////////////////// +// ADS reserved index groups +#define ADSIGRP_SYMTAB 0xF000 +#define ADSIGRP_SYMNAME 0xF001 +#define ADSIGRP_SYMVAL 0xF002 + +#define ADSIGRP_SYM_HNDBYNAME 0xF003 +#define ADSIGRP_SYM_VALBYNAME 0xF004 +#define ADSIGRP_SYM_VALBYHND 0xF005 +#define ADSIGRP_SYM_RELEASEHND 0xF006 +#define ADSIGRP_SYM_INFOBYNAME 0xF007 +#define ADSIGRP_SYM_VERSION 0xF008 +#define ADSIGRP_SYM_INFOBYNAMEEX 0xF009 + +#define ADSIGRP_SYM_DOWNLOAD 0xF00A +#define ADSIGRP_SYM_UPLOAD 0xF00B +#define ADSIGRP_SYM_UPLOADINFO 0xF00C +#define ADSIGRP_SYM_DOWNLOAD2 0xF00D +#define ADSIGRP_SYM_DT_UPLOAD 0xF00E +#define ADSIGRP_SYM_UPLOADINFO2 0xF00F + +#define ADSIGRP_SYMNOTE 0xF010 // notification of named handle + +#define ADSIGRP_SUMUP_READ 0xF080 // AdsRW IOffs list size or 0 (=0 -> list size == WLength/3*sizeof(ULONG)) + // W: {list of IGrp, IOffs, Length} + // if IOffs != 0 then R: {list of results} and {list of data} + // if IOffs == 0 then R: only data (sum result) +#define ADSIGRP_SUMUP_WRITE 0xF081 // AdsRW IOffs list size + // W: {list of IGrp, IOffs, Length} followed by {list of data} + // R: list of results +#define ADSIGRP_SUMUP_READWRITE 0xF082 // AdsRW IOffs list size + // W: {list of IGrp, IOffs, RLength, WLength} followed by {list of data} + // R: {list of results, RLength} followed by {list of data} +#define ADSIGRP_SUMUP_READEX 0xF083 // AdsRW IOffs list size + // W: {list of IGrp, IOffs, Length} +#define ADSIGRP_SUMUP_READEX2 0xF084 // AdsRW IOffs list size + // W: {list of IGrp, IOffs, Length} + // R: {list of results, Length} followed by {list of data (returned lengths)} +#define ADSIGRP_SUMUP_ADDDEVNOTE 0xF085 // AdsRW IOffs list size + // W: {list of IGrp, IOffs, Attrib} + // R: {list of results, handles} +#define ADSIGRP_SUMUP_DELDEVNOTE 0xF086 // AdsRW IOffs list size + // W: {list of handles} + // R: {list of results, Length} followed by {list of data} + +#define ADSIGRP_IOIMAGE_RWIB 0xF020 // read/write input byte(s) +#define ADSIGRP_IOIMAGE_RWIX 0xF021 // read/write input bit +#define ADSIGRP_IOIMAGE_RISIZE 0xF025 // read input size (in byte) +#define ADSIGRP_IOIMAGE_RWOB 0xF030 // read/write output byte(s) +#define ADSIGRP_IOIMAGE_RWOX 0xF031 // read/write output bit +#define ADSIGRP_IOIMAGE_CLEARI 0xF040 // write inputs to null +#define ADSIGRP_IOIMAGE_CLEARO 0xF050 // write outputs to null +#define ADSIGRP_IOIMAGE_RWIOB 0xF060 // read input and write output byte(s) + +#define ADSIGRP_DEVICE_DATA 0xF100 // state, name, etc... +#define ADSIOFFS_DEVDATA_ADSSTATE 0x0000 // ads state of device +#define ADSIOFFS_DEVDATA_DEVSTATE 0x0002 // device state + + + +//////////////////////////////////////////////////////////////////////////////// +// ADS Return codes +#define ADSERR_NOERR 0x00 +#define ERR_ADSERRS 0x0700 + +#define ADSERR_DEVICE_ERROR (0x00+ERR_ADSERRS) // Error class < device error > +#define ADSERR_DEVICE_SRVNOTSUPP (0x01+ERR_ADSERRS) // Service is not supported by server +#define ADSERR_DEVICE_INVALIDGRP (0x02+ERR_ADSERRS) // invalid indexGroup +#define ADSERR_DEVICE_INVALIDOFFSET (0x03+ERR_ADSERRS) // invalid indexOffset +#define ADSERR_DEVICE_INVALIDACCESS (0x04+ERR_ADSERRS) // reading/writing not permitted +#define ADSERR_DEVICE_INVALIDSIZE (0x05+ERR_ADSERRS) // parameter size not correct +#define ADSERR_DEVICE_INVALIDDATA (0x06+ERR_ADSERRS) // invalid parameter value(s) +#define ADSERR_DEVICE_NOTREADY (0x07+ERR_ADSERRS) // device is not in a ready state +#define ADSERR_DEVICE_BUSY (0x08+ERR_ADSERRS) // device is busy +#define ADSERR_DEVICE_INVALIDCONTEXT (0x09+ERR_ADSERRS) // invalid context (must be InWindows) +#define ADSERR_DEVICE_NOMEMORY (0x0A+ERR_ADSERRS) // out of memory +#define ADSERR_DEVICE_INVALIDPARM (0x0B+ERR_ADSERRS) // invalid parameter value(s) +#define ADSERR_DEVICE_NOTFOUND (0x0C+ERR_ADSERRS) // not found (files, ...) +#define ADSERR_DEVICE_SYNTAX (0x0D+ERR_ADSERRS) // syntax error in comand or file +#define ADSERR_DEVICE_INCOMPATIBLE (0x0E+ERR_ADSERRS) // objects do not match +#define ADSERR_DEVICE_EXISTS (0x0F+ERR_ADSERRS) // object already exists +#define ADSERR_DEVICE_SYMBOLNOTFOUND (0x10+ERR_ADSERRS) // symbol not found +#define ADSERR_DEVICE_SYMBOLVERSIONINVALID (0x11+ERR_ADSERRS) // symbol version invalid +#define ADSERR_DEVICE_INVALIDSTATE (0x12+ERR_ADSERRS) // server is in invalid state +#define ADSERR_DEVICE_TRANSMODENOTSUPP (0x13+ERR_ADSERRS) // AdsTransMode not supported +#define ADSERR_DEVICE_NOTIFYHNDINVALID (0x14+ERR_ADSERRS) // Notification handle is invalid +#define ADSERR_DEVICE_CLIENTUNKNOWN (0x15+ERR_ADSERRS) // Notification client not registered +#define ADSERR_DEVICE_NOMOREHDLS (0x16+ERR_ADSERRS) // no more notification handles +#define ADSERR_DEVICE_INVALIDWATCHSIZE (0x17+ERR_ADSERRS) // size for watch to big +#define ADSERR_DEVICE_NOTINIT (0x18+ERR_ADSERRS) // device not initialized +#define ADSERR_DEVICE_TIMEOUT (0x19+ERR_ADSERRS) // device has a timeout +#define ADSERR_DEVICE_NOINTERFACE (0x1A+ERR_ADSERRS) // query interface failed +#define ADSERR_DEVICE_INVALIDINTERFACE (0x1B+ERR_ADSERRS) // wrong interface required +#define ADSERR_DEVICE_INVALIDCLSID (0x1C+ERR_ADSERRS) // class ID is invalid +#define ADSERR_DEVICE_INVALIDOBJID (0x1D+ERR_ADSERRS) // object ID is invalid +#define ADSERR_DEVICE_PENDING (0x1E+ERR_ADSERRS) // request is pending +#define ADSERR_DEVICE_ABORTED (0x1F+ERR_ADSERRS) // request is aborted +#define ADSERR_DEVICE_WARNING (0x20+ERR_ADSERRS) // signal warning +#define ADSERR_DEVICE_INVALIDARRAYIDX (0x21+ERR_ADSERRS) // invalid array index +#define ADSERR_DEVICE_SYMBOLNOTACTIVE (0x22+ERR_ADSERRS) // symbol not active -> release handle and try again +#define ADSERR_DEVICE_ACCESSDENIED (0x23+ERR_ADSERRS) // access denied +#define ADSERR_DEVICE_LICENSENOTFOUND (0x24+ERR_ADSERRS) // no license found +#define ADSERR_DEVICE_LICENSEEXPIRED (0x25+ERR_ADSERRS) // license expired +#define ADSERR_DEVICE_LICENSEEXCEEDED (0x26+ERR_ADSERRS) // license exceeded +#define ADSERR_DEVICE_LICENSEINVALID (0x27+ERR_ADSERRS) // license invalid +#define ADSERR_DEVICE_LICENSESYSTEMID (0x28+ERR_ADSERRS) // license invalid system id +#define ADSERR_DEVICE_LICENSENOTIMELIMIT (0x29+ERR_ADSERRS) // license not time limited +#define ADSERR_DEVICE_LICENSEFUTUREISSUE (0x2A+ERR_ADSERRS) // license issue time in the future +#define ADSERR_DEVICE_LICENSETIMETOLONG (0x2B+ERR_ADSERRS) // license time period to long +#define ADSERR_DEVICE_EXCEPTION (0x2C+ERR_ADSERRS) // exception in device specific code +#define ADSERR_DEVICE_LICENSEDUPLICATED (0x2D+ERR_ADSERRS) // license file read twice +#define ADSERR_DEVICE_SIGNATUREINVALID (0x2E+ERR_ADSERRS) // invalid signature +#define ADSERR_DEVICE_CERTIFICATEINVALID (0x2F+ERR_ADSERRS) // public key certificate +// +#define ADSERR_CLIENT_ERROR (0x40+ERR_ADSERRS) // Error class < client error > +#define ADSERR_CLIENT_INVALIDPARM (0x41+ERR_ADSERRS) // invalid parameter at service call +#define ADSERR_CLIENT_LISTEMPTY (0x42+ERR_ADSERRS) // polling list is empty +#define ADSERR_CLIENT_VARUSED (0x43+ERR_ADSERRS) // var connection already in use +#define ADSERR_CLIENT_DUPLINVOKEID (0x44+ERR_ADSERRS) // invoke id in use +#define ADSERR_CLIENT_SYNCTIMEOUT (0x45+ERR_ADSERRS) // timeout elapsed +#define ADSERR_CLIENT_W32ERROR (0x46+ERR_ADSERRS) // error in win32 subsystem +#define ADSERR_CLIENT_TIMEOUTINVALID (0x47+ERR_ADSERRS) // ? +#define ADSERR_CLIENT_PORTNOTOPEN (0x48+ERR_ADSERRS) // ads dll +#define ADSERR_CLIENT_NOAMSADDR (0x49+ERR_ADSERRS) // ads dll +#define ADSERR_CLIENT_SYNCINTERNAL (0x50+ERR_ADSERRS) // internal error in ads sync +#define ADSERR_CLIENT_ADDHASH (0x51+ERR_ADSERRS) // hash table overflow +#define ADSERR_CLIENT_REMOVEHASH (0x52+ERR_ADSERRS) // key not found in hash table +#define ADSERR_CLIENT_NOMORESYM (0x53+ERR_ADSERRS) // no more symbols in cache +#define ADSERR_CLIENT_SYNCRESINVALID (0x54+ERR_ADSERRS) // invalid response received +#define ADSERR_CLIENT_SYNCPORTLOCKED (0x55+ERR_ADSERRS) // sync port is locked + +#pragma pack( push, 1) +typedef struct AmsNetId_ +{ + unsigned char b[6]; + +} AmsNetId, *PAmsNetId; + +typedef struct +{ + AmsNetId netId; + unsigned short port; +} AmsAddr, *PAmsAddr; + +typedef struct +{ + unsigned char version; + unsigned char revision; + unsigned short build; +} AdsVersion; + +typedef AdsVersion* PAdsVersion; + +//////////////////////////////////////////////////////////////////////////////// +typedef enum nAdsTransMode +{ + ADSTRANS_NOTRANS = 0, + ADSTRANS_CLIENTCYCLE = 1, + ADSTRANS_CLIENTONCHA = 2, + ADSTRANS_SERVERCYCLE = 3, + ADSTRANS_SERVERONCHA = 4, +}ADSTRANSMODE; + +typedef enum nAdsState +{ + ADSSTATE_INVALID = 0, + ADSSTATE_IDLE = 1, + ADSSTATE_RESET = 2, + ADSSTATE_INIT = 3, + ADSSTATE_START = 4, + ADSSTATE_RUN = 5, + ADSSTATE_STOP = 6, + ADSSTATE_SAVECFG = 7, + ADSSTATE_LOADCFG = 8, + ADSSTATE_POWERFAILURE = 9, + ADSSTATE_POWERGOOD = 10, + ADSSTATE_ERROR = 11, + ADSSTATE_SHUTDOWN = 12, + ADSSTATE_SUSPEND = 13, + ADSSTATE_RESUME = 14, + ADSSTATE_CONFIG = 15, + ADSSTATE_RECONFIG = 16, + ADSSTATE_STOPPING = 17, + ADSSTATE_MAXSTATES +} ADSSTATE; + +typedef struct +{ + unsigned long cbLength; + ADSTRANSMODE nTransMode; + unsigned long nMaxDelay; + union + { + unsigned long nCycleTime; + unsigned long dwChangeFilter; + }; +} AdsNotificationAttrib, *PAdsNotificationAttrib; + +//////////////////////////////////////////////////////////////////////////////// +typedef struct +{ + unsigned long hNotification; + __int64 nTimeStamp; + unsigned long cbSampleSize; + unsigned char data[ANYSIZE_ARRAY]; +} AdsNotificationHeader, *PAdsNotificationHeader; + +//////////////////////////////////////////////////////////////////////////////// + +#define ADSNOTIFICATION_PDATA( pAdsNotificationHeader ) \ + ( (unsigned char*) (((PAdsNotificationHeader)pAdsNotificationHeader->data ) + + +//////////////////////////////////////////////////////////////////////////////// +typedef void (__stdcall *PAdsNotificationFuncEx)( AmsAddr* pAddr, + AdsNotificationHeader* pNotification, + unsigned long hUser + ); + +//////////////////////////////////////////////////////////////////////////////// +#define ADSSYMBOLFLAG_PERSISTENT 0x00000001 +#define ADSSYMBOLFLAG_BITVALUE 0x00000002 +#define ADSSYMBOLFLAG_REFERENCETO 0x0004 +#define ADSSYMBOLFLAG_TYPEGUID 0x0008 +#define ADSSYMBOLFLAG_TCCOMIFACEPTR 0x0010 +#define ADSSYMBOLFLAG_READONLY 0x0020 +#define ADSSYMBOLFLAG_CONTEXTMASK 0x0F00 + +//////////////////////////////////////////////////////////////////////////////// +// ADS data types +typedef char ADS_INT8; +typedef unsigned char ADS_UINT8; +typedef short ADS_INT16; +typedef unsigned short ADS_UINT16; +typedef long ADS_INT32; +typedef unsigned long ADS_UINT32; +typedef __int64 ADS_INT64; +typedef unsigned __int64 ADS_UINT64; +typedef float ADS_REAL32; +typedef double ADS_REAL64; +typedef long double ADS_REAL80; + + +//////////////////////////////////////////////////////////////////////////////// +// ADS symbol information +typedef struct +{ + unsigned long entryLength; // length of complete symbol entry + unsigned long iGroup; // indexGroup of symbol: input, output etc. + unsigned long iOffs; // indexOffset of symbol + unsigned long size; // size of symbol ( in bytes, 0 = bit ) + unsigned long dataType; // adsDataType of symbol + unsigned long flags; // see above + unsigned short nameLength; // length of symbol name (excl. \0) + unsigned short typeLength; // length of type name (excl. \0) + unsigned short commentLength; // length of comment (excl. \0) +} AdsSymbolEntry, *PAdsSymbolEntry, **PPAdsSymbolEntry; + + +#define PADSSYMBOLNAME(p) ((char*)(((PAdsSymbolEntry)p)+1)) +#define PADSSYMBOLTYPE(p) (((char*)(((PAdsSymbolEntry)p)+1))+((PAdsSymbolEntry)p)->nameLength+1) +#define PADSSYMBOLCOMMENT(p) (((char*)(((PAdsSymbolEntry)p)+1))+((PAdsSymbolEntry)p)->nameLength+1+((PAdsSymbolEntry)p)->typeLength+1) + +#define PADSNEXTSYMBOLENTRY(pEntry) (*((unsigned long*)(((char*)pEntry)+((PAdsSymbolEntry)pEntry)->entryLength)) \ + ? ((PAdsSymbolEntry)(((char*)pEntry)+((PAdsSymbolEntry)pEntry)->entryLength)): NULL) + + + +//////////////////////////////////////////////////////////////////////////////// +#define ADSDATATYPEFLAG_DATATYPE 0x00000001 +#define ADSDATATYPEFLAG_DATAITEM 0x00000002 + +#define ADSDATATYPE_VERSION_NEWEST 0x00000001 + +typedef struct +{ + unsigned long lBound; + unsigned long elements; +} AdsDatatypeArrayInfo, *PAdsDatatypeArrayInfo; + +typedef struct +{ + ADS_UINT32 entryLength; // length of complete datatype entry + ADS_UINT32 version; // version of datatype structure + union { + ADS_UINT32 hashValue; // hashValue of datatype to compare datatypes + ADS_UINT32 offsGetCode; // code offset to getter method + }; + union { + ADS_UINT32 typeHashValue; // hashValue of base type + ADS_UINT32 offsSetCode; // code offset to setter method + }; + ADS_UINT32 size; // size of datatype ( in bytes ) + ADS_UINT32 offs; // offs of dataitem in parent datatype ( in bytes ) + ADS_UINT32 dataType; // adsDataType of symbol (if alias) + ADS_UINT32 flags; // + ADS_UINT16 nameLength; // length of datatype name (excl. \0) + ADS_UINT16 typeLength; // length of dataitem type name (excl. \0) + ADS_UINT16 commentLength; // length of comment (excl. \0) + ADS_UINT16 arrayDim; // + ADS_UINT16 subItems; // + // ADS_INT8 name[]; // name of datatype with terminating \0 + // ADS_INT8 type[]; // type name of dataitem with terminating \0 + // ADS_INT8 comment[]; // comment of datatype with terminating \0 + // AdsDatatypeArrayInfo array[]; + // AdsDatatypeEntry subItems[]; + // GUID typeGuid; // typeGuid of this type if ADSDATATYPEFLAG_TYPEGUID is set + // ADS_UINT8 copyMask[]; // "size" bytes containing 0xff or 0x00 - 0x00 means ignore byte (ADSIGRP_SYM_VALBYHND_WITHMASK) +} AdsDatatypeEntry, *PAdsDatatypeEntry, **PPAdsDatatypeEntry; + +#define PADSDATATYPENAME(p) ((PCHAR)(((PAdsDatatypeEntry)p)+1)) +#define PADSDATATYPETYPE(p) (((PCHAR)(((PAdsDatatypeEntry)p)+1))+((PAdsDatatypeEntry)p)->nameLength+1) +#define PADSDATATYPECOMMENT(p) (((PCHAR)(((PAdsDatatypeEntry)p)+1))+((PAdsDatatypeEntry)p)->nameLength+1+((PAdsDatatypeEntry)p)->typeLength+1) +#define PADSDATATYPEARRAYINFO(p) (PAdsDatatypeArrayInfo)(((PCHAR)(((PAdsDatatypeEntry)p)+1))+((PAdsDatatypeEntry)p)->nameLength+1+((PAdsDatatypeEntry)p)->typeLength+1+((PAdsDatatypeEntry)p)->commentLength+1) + +__inline PAdsDatatypeEntry AdsDatatypeStructItem(PAdsDatatypeEntry p, unsigned short iItem) +{ + unsigned short i; + PAdsDatatypeEntry pItem; + if ( iItem >= p->subItems ) + return NULL; + pItem = (PAdsDatatypeEntry)(((unsigned char*)(p+1))+p->nameLength+p->typeLength+p->commentLength+3+p->arrayDim*sizeof(AdsDatatypeArrayInfo)); + for ( i=0; i < iItem; i++ ) + pItem = (PAdsDatatypeEntry)(((unsigned char*)pItem)+pItem->entryLength); + return pItem; +} + +//////////////////////////////////////////////////////////////////////////////// +typedef struct +{ + unsigned long nSymbols; + unsigned long nSymSize; +} AdsSymbolUploadInfo, *PAdsSymbolUploadInfo; + +//////////////////////////////////////////////////////////////////////////////// +typedef struct +{ + unsigned long nSymbols; + unsigned long nSymSize; + unsigned long nDatatypes; + unsigned long nDatatypeSize; + unsigned long nMaxDynSymbols; + unsigned long nUsedDynSymbols; +} AdsSymbolUploadInfo2, *PAdsSymbolUploadInfo2; + +//////////////////////////////////////////////////////////////////////////////// +typedef struct +{ + unsigned long indexGroup; + unsigned long indexOffset; + unsigned long cbLength; +} AdsSymbolInfoByName, *PAdsSymbolInfoByName; + +//////////////////////////////////////////////////////////////////////////////// +// AMS events +typedef enum nAmsRouterEvent +{ + AMSEVENT_ROUTERSTOP = 0, + AMSEVENT_ROUTERSTART = 1, + AMSEVENT_ROUTERREMOVED = 2 +}AmsRouterEvent; + +typedef void (*PAmsRouterNotificationFunc)( long nEvent ); +typedef void ( __stdcall *PAmsRouterNotificationFuncEx)( long nEvent ); + +//////////////////////////////////////////////////////////////////////////////// + +#pragma pack( pop ) + +#endif // __ADSDEF_H__ diff --git a/ExtLibs/AdsApi/TcAdsDll/CE/lib/Mips/TcAdsDllCe.lib b/ExtLibs/AdsApi/TcAdsDll/CE/lib/Mips/TcAdsDllCe.lib new file mode 100644 index 0000000000000000000000000000000000000000..e3ca55ebce0ffb585f6140ee04d12232163c1b27 GIT binary patch literal 7352 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 literal 0 HcmV?d00001 diff --git a/ExtLibs/AdsApi/TcAdsDll/CE/lib/arm/TcAdsDllCe.lib b/ExtLibs/AdsApi/TcAdsDll/CE/lib/arm/TcAdsDllCe.lib new file mode 100644 index 0000000000000000000000000000000000000000..fe7732fc989228c8ce71376f05c899b2fa2ef0e4 GIT binary patch literal 85058 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�`knMR7fQb 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 literal 0 HcmV?d00001 diff --git a/ExtLibs/AdsApi/TcAdsDll/Include/TcAdsAPI.h b/ExtLibs/AdsApi/TcAdsDll/Include/TcAdsAPI.h new file mode 100644 index 00000000..2f646b03 --- /dev/null +++ b/ExtLibs/AdsApi/TcAdsDll/Include/TcAdsAPI.h @@ -0,0 +1,244 @@ +//////////////////////////////////////////////////////////////////////////////// +// File: TcAdsAPI.h +// Description: Prototypes and Definitions for non C++ Applications +// Author: RamonB +// Created: Wed Nov 6 10:00:00 1996 +// +// +// BECKHOFF-Industrieelektronik-GmbH +// +// Modifications: +// KlausBue 11/1999 +// Register Callback for Router notifications +// +// ChristophC 16/07/2001 +// Double definition of router callback function removed +// +//////////////////////////////////////////////////////////////////////////////// +#ifndef __ADSAPI_H__ +#define __ADSAPI_H__ + +#define ADSAPIERR_NOERROR 0x0000 + +//////////////////////////////////////////////////////////////////////////////// +#ifdef __cplusplus +extern "C" +{ +#endif + +__declspec( dllexport ) +long __stdcall AdsGetDllVersion( void ); + +__declspec( dllexport ) +long __stdcall AdsPortOpen( void ); + +__declspec( dllexport ) +long __stdcall AdsPortClose( void ); + +__declspec( dllexport ) +long __stdcall AdsGetLocalAddress( AmsAddr* pAddr ); + +__declspec( dllexport ) +long __stdcall AdsSyncWriteReq( AmsAddr* pServerAddr, // Ams address of ADS server + unsigned long indexGroup, // index group in ADS server interface + unsigned long indexOffset, // index offset in ADS server interface + unsigned long length, // count of bytes to write + void* pData // pointer to the client buffer + ); + +__declspec( dllexport ) +long __stdcall AdsSyncReadReq( AmsAddr* pAddr, // Ams address of ADS server + unsigned long indexGroup, // index group in ADS server interface + unsigned long indexOffset, // index offset in ADS server interface + unsigned long length, // count of bytes to read + void* pData // pointer to the client buffer + ); + +__declspec( dllexport ) +long __stdcall AdsSyncReadReqEx( AmsAddr* pAddr, // Ams address of ADS server + unsigned long indexGroup, // index group in ADS server interface + unsigned long indexOffset, // index offset in ADS server interface + unsigned long length, // count of bytes to read + void* pData, // pointer to the client buffer + unsigned long* pcbReturn // count of bytes read + ); + +__declspec( dllexport ) +long __stdcall AdsSyncReadWriteReq( AmsAddr* pAddr, // Ams address of ADS server + unsigned long indexGroup, // index group in ADS server interface + unsigned long indexOffset, // index offset in ADS server interface + unsigned long cbReadLength, // count of bytes to read + void* pReadData, // pointer to the client buffer + unsigned long cbWriteLength, // count of bytes to write + void* pWriteData // pointer to the client buffer + ); + +__declspec( dllexport ) +long __stdcall AdsSyncReadWriteReqEx( AmsAddr* pAddr, // Ams address of ADS server + unsigned long indexGroup, // index group in ADS server interface + unsigned long indexOffset, // index offset in ADS server interface + unsigned long cbReadLength, // count of bytes to read + void* pReadData, // pointer to the client buffer + unsigned long cbWriteLength, // count of bytes to write + void* pWriteData, // pointer to the client buffer + unsigned long* pcbReturn // count of bytes read + ); + +__declspec( dllexport ) +long __stdcall AdsSyncReadDeviceInfoReq( AmsAddr* pAddr, // Ams address of ADS server + char* pDevName,// fixed length string (16 Byte) + AdsVersion* pVersion // client buffer to store server version + ); + +__declspec( dllexport ) +long __stdcall AdsSyncWriteControlReq( AmsAddr* pAddr, // Ams address of ADS server + unsigned short adsState, // index group in ADS server interface + unsigned short deviceState,// index offset in ADS server interface + unsigned long length, // count of bytes to write + void* pData // pointer to the client buffer + ); + +__declspec( dllexport ) +long __stdcall AdsSyncReadStateReq( AmsAddr* pAddr, // Ams address of ADS server + unsigned short* pAdsState, // pointer to client buffer + unsigned short* pDeviceState// pointer to the client buffer + ); + + +__declspec( dllexport ) +long __stdcall AdsSyncAddDeviceNotificationReq( AmsAddr* pAddr, // Ams address of ADS server + unsigned long indexGroup, // index group in ADS server interface + unsigned long indexOffset,// index offset in ADS server interface + AdsNotificationAttrib* pNoteAttrib, // attributes of notification request + PAdsNotificationFuncEx pNoteFunc, // address of notification callback + unsigned long hUser, // user handle + unsigned long *pNotification // pointer to notification handle (return value) + ); +__declspec( dllexport ) +long __stdcall AdsSyncDelDeviceNotificationReq( AmsAddr* pAddr,// Ams address of ADS server + unsigned long hNotification // notification handle + ); + +__declspec( dllexport ) +long __stdcall AdsSyncSetTimeout( long nMs ); // Set timeout in ms + + +__declspec( dllexport ) +long __stdcall AdsGetLastError( void ); + + +/// register callback +__declspec( dllexport ) +long __stdcall AdsAmsRegisterRouterNotification (PAmsRouterNotificationFuncEx pNoteFunc ); + +/// unregister callback +__declspec( dllexport ) +long __stdcall AdsAmsUnRegisterRouterNotification (); + + +__declspec( dllexport ) +long __stdcall AdsSyncGetTimeout(long *pnMs ); // client buffer to store timeout + +__declspec( dllexport ) +long __stdcall AdsAmsPortEnabled(BOOL *pbEnabled); + + +//////////////////////////////////////////////////////////////////////////////////////////////////// +// new Ads functions for multithreading applications +__declspec( dllexport ) +long __stdcall AdsPortOpenEx( ); + +__declspec( dllexport ) +long __stdcall AdsPortCloseEx( long port ); + +__declspec( dllexport ) +long __stdcall AdsGetLocalAddressEx(long port, AmsAddr* pAddr ); + +__declspec( dllexport ) +long __stdcall AdsSyncWriteReqEx( long port, // Ams port of ADS client + AmsAddr* pServerAddr, // Ams address of ADS server + unsigned long indexGroup, // index group in ADS server interface + unsigned long indexOffset, // index offset in ADS server interface + unsigned long length, // count of bytes to write + void* pData // pointer to the client buffer + ); + +__declspec( dllexport ) +long __stdcall AdsSyncReadReqEx2( long port, // Ams port of ADS client + AmsAddr* pServerAddr, // Ams address of ADS server + unsigned long indexGroup, // index group in ADS server interface + unsigned long indexOffset, // index offset in ADS server interface + unsigned long length, // count of bytes to read + void* pData, // pointer to the client buffer + unsigned long* pcbReturn // count of bytes read + ); + + +__declspec( dllexport ) +long __stdcall AdsSyncReadWriteReqEx2( long port, // Ams port of ADS client + AmsAddr* pServerAddr, // Ams address of ADS server + unsigned long indexGroup, // index group in ADS server interface + unsigned long indexOffset, // index offset in ADS server interface + unsigned long cbReadLength, // count of bytes to read + void* pReadData, // pointer to the client buffer + unsigned long cbWriteLength, // count of bytes to write + void* pWriteData, // pointer to the client buffer + unsigned long* pcbReturn // count of bytes read + ); + +__declspec( dllexport ) +long __stdcall AdsSyncReadDeviceInfoReqEx( long port, // Ams port of ADS client + AmsAddr* pServerAddr, // Ams address of ADS server + char* pDevName, // fixed length string (16 Byte) + AdsVersion* pVersion // client buffer to store server version + ); + +__declspec( dllexport ) +long __stdcall AdsSyncWriteControlReqEx( long port, // Ams port of ADS client + AmsAddr* pServerAddr, // Ams address of ADS server + unsigned short adsState, // index group in ADS server interface + unsigned short deviceState, // index offset in ADS server interface + unsigned long length, // count of bytes to write + void* pData // pointer to the client buffer + ); + +__declspec( dllexport ) +long __stdcall AdsSyncReadStateReqEx( long port, // Ams port of ADS client + AmsAddr* pServerAddr, // Ams address of ADS server + unsigned short* pAdsState, // pointer to client buffer + unsigned short* pDeviceState // pointer to the client buffer + ); + + +__declspec( dllexport ) +long __stdcall AdsSyncAddDeviceNotificationReqEx( long port, // Ams port of ADS client + AmsAddr* pServerAddr, // Ams address of ADS ser + unsigned long indexGroup, // index group in ADS server interface + unsigned long indexOffset, // index offset in ADS server interface + AdsNotificationAttrib* pNoteAttrib, // attributes of notification request + PAdsNotificationFuncEx pNoteFunc, // address of notification callback + unsigned long hUser, // user handle + unsigned long *pNotification // pointer to notification handle (return value) + ); +__declspec( dllexport ) +long __stdcall AdsSyncDelDeviceNotificationReqEx( long port, // Ams port of ADS client + AmsAddr* pServerAddr, // Ams address of ADS ser + unsigned long hNotification // notification handle + ); + +__declspec( dllexport ) +long __stdcall AdsSyncSetTimeoutEx(long port, // Ams port of ADS client + long nMs ); // Set timeout in ms + +__declspec( dllexport ) +long __stdcall AdsSyncGetTimeoutEx(long port, // Ams port of ADS client + long *pnMs ); // client buffer to store timeout + +__declspec( dllexport ) +long __stdcall AdsAmsPortEnabledEx(long nPort, BOOL *pbEnabled); + + +#ifdef __cplusplus +} // extern "C" +#endif +#endif \ No newline at end of file diff --git a/ExtLibs/AdsApi/TcAdsDll/Include/TcAdsDef.h b/ExtLibs/AdsApi/TcAdsDll/Include/TcAdsDef.h new file mode 100644 index 00000000..c37ff7da --- /dev/null +++ b/ExtLibs/AdsApi/TcAdsDll/Include/TcAdsDef.h @@ -0,0 +1,416 @@ +/////////////////////////////////////////////////////////////////////////////// +// This is a part of the Beckhoff TwinCAT ADS API +// Copyright (C) Beckhoff Automation GmbH +// All rights reserved. +//////////////////////////////////////////////////////////////////////////////// + + +#ifndef __ADSDEF_H__ +#define __ADSDEF_H__ + +#ifndef ANYSIZE_ARRAY +#define ANYSIZE_ARRAY 1 +#endif + +#define ADS_FIXEDNAMESIZE 16 + +//////////////////////////////////////////////////////////////////////////////// +// AMS Ports +#define AMSPORT_LOGGER 100 +#define AMSPORT_R0_RTIME 200 +#define AMSPORT_R0_TRACE (AMSPORT_R0_RTIME+90) +#define AMSPORT_R0_IO 300 +#define AMSPORT_R0_SPS 400 +#define AMSPORT_R0_NC 500 +#define AMSPORT_R0_ISG 550 +#define AMSPORT_R0_PCS 600 +#define AMSPORT_R0_PLC 801 +#define AMSPORT_R0_PLC_RTS1 801 +#define AMSPORT_R0_PLC_RTS2 811 +#define AMSPORT_R0_PLC_RTS3 821 +#define AMSPORT_R0_PLC_RTS4 831 +#define AMSPORT_R0_PLC_TC3 851 + +//////////////////////////////////////////////////////////////////////////////// +// ADS Cmd Ids +#define ADSSRVID_INVALID 0x00 +#define ADSSRVID_READDEVICEINFO 0x01 +#define ADSSRVID_READ 0x02 +#define ADSSRVID_WRITE 0x03 +#define ADSSRVID_READSTATE 0x04 +#define ADSSRVID_WRITECTRL 0x05 +#define ADSSRVID_ADDDEVICENOTE 0x06 +#define ADSSRVID_DELDEVICENOTE 0x07 +#define ADSSRVID_DEVICENOTE 0x08 +#define ADSSRVID_READWRITE 0x09 + +//////////////////////////////////////////////////////////////////////////////// +// ADS reserved index groups +#define ADSIGRP_SYMTAB 0xF000 +#define ADSIGRP_SYMNAME 0xF001 +#define ADSIGRP_SYMVAL 0xF002 + +#define ADSIGRP_SYM_HNDBYNAME 0xF003 +#define ADSIGRP_SYM_VALBYNAME 0xF004 +#define ADSIGRP_SYM_VALBYHND 0xF005 +#define ADSIGRP_SYM_RELEASEHND 0xF006 +#define ADSIGRP_SYM_INFOBYNAME 0xF007 +#define ADSIGRP_SYM_VERSION 0xF008 +#define ADSIGRP_SYM_INFOBYNAMEEX 0xF009 + +#define ADSIGRP_SYM_DOWNLOAD 0xF00A +#define ADSIGRP_SYM_UPLOAD 0xF00B +#define ADSIGRP_SYM_UPLOADINFO 0xF00C +#define ADSIGRP_SYM_DOWNLOAD2 0xF00D +#define ADSIGRP_SYM_DT_UPLOAD 0xF00E +#define ADSIGRP_SYM_UPLOADINFO2 0xF00F + +#define ADSIGRP_SYMNOTE 0xF010 // notification of named handle + +#define ADSIGRP_SUMUP_READ 0xF080 // AdsRW IOffs list size or 0 (=0 -> list size == WLength/3*sizeof(ULONG)) + // W: {list of IGrp, IOffs, Length} + // if IOffs != 0 then R: {list of results} and {list of data} + // if IOffs == 0 then R: only data (sum result) +#define ADSIGRP_SUMUP_WRITE 0xF081 // AdsRW IOffs list size + // W: {list of IGrp, IOffs, Length} followed by {list of data} + // R: list of results +#define ADSIGRP_SUMUP_READWRITE 0xF082 // AdsRW IOffs list size + // W: {list of IGrp, IOffs, RLength, WLength} followed by {list of data} + // R: {list of results, RLength} followed by {list of data} +#define ADSIGRP_SUMUP_READEX 0xF083 // AdsRW IOffs list size + // W: {list of IGrp, IOffs, Length} +#define ADSIGRP_SUMUP_READEX2 0xF084 // AdsRW IOffs list size + // W: {list of IGrp, IOffs, Length} + // R: {list of results, Length} followed by {list of data (returned lengths)} +#define ADSIGRP_SUMUP_ADDDEVNOTE 0xF085 // AdsRW IOffs list size + // W: {list of IGrp, IOffs, Attrib} + // R: {list of results, handles} +#define ADSIGRP_SUMUP_DELDEVNOTE 0xF086 // AdsRW IOffs list size + // W: {list of handles} + // R: {list of results, Length} followed by {list of data} + +#define ADSIGRP_IOIMAGE_RWIB 0xF020 // read/write input byte(s) +#define ADSIGRP_IOIMAGE_RWIX 0xF021 // read/write input bit +#define ADSIGRP_IOIMAGE_RISIZE 0xF025 // read input size (in byte) +#define ADSIGRP_IOIMAGE_RWOB 0xF030 // read/write output byte(s) +#define ADSIGRP_IOIMAGE_RWOX 0xF031 // read/write output bit +#define ADSIGRP_IOIMAGE_CLEARI 0xF040 // write inputs to null +#define ADSIGRP_IOIMAGE_CLEARO 0xF050 // write outputs to null +#define ADSIGRP_IOIMAGE_RWIOB 0xF060 // read input and write output byte(s) + +#define ADSIGRP_DEVICE_DATA 0xF100 // state, name, etc... +#define ADSIOFFS_DEVDATA_ADSSTATE 0x0000 // ads state of device +#define ADSIOFFS_DEVDATA_DEVSTATE 0x0002 // device state + + + +//////////////////////////////////////////////////////////////////////////////// +// ADS Return codes +#define ADSERR_NOERR 0x00 +#define ERR_ADSERRS 0x0700 + +#define ADSERR_DEVICE_ERROR (0x00+ERR_ADSERRS) // Error class < device error > +#define ADSERR_DEVICE_SRVNOTSUPP (0x01+ERR_ADSERRS) // Service is not supported by server +#define ADSERR_DEVICE_INVALIDGRP (0x02+ERR_ADSERRS) // invalid indexGroup +#define ADSERR_DEVICE_INVALIDOFFSET (0x03+ERR_ADSERRS) // invalid indexOffset +#define ADSERR_DEVICE_INVALIDACCESS (0x04+ERR_ADSERRS) // reading/writing not permitted +#define ADSERR_DEVICE_INVALIDSIZE (0x05+ERR_ADSERRS) // parameter size not correct +#define ADSERR_DEVICE_INVALIDDATA (0x06+ERR_ADSERRS) // invalid parameter value(s) +#define ADSERR_DEVICE_NOTREADY (0x07+ERR_ADSERRS) // device is not in a ready state +#define ADSERR_DEVICE_BUSY (0x08+ERR_ADSERRS) // device is busy +#define ADSERR_DEVICE_INVALIDCONTEXT (0x09+ERR_ADSERRS) // invalid context (must be InWindows) +#define ADSERR_DEVICE_NOMEMORY (0x0A+ERR_ADSERRS) // out of memory +#define ADSERR_DEVICE_INVALIDPARM (0x0B+ERR_ADSERRS) // invalid parameter value(s) +#define ADSERR_DEVICE_NOTFOUND (0x0C+ERR_ADSERRS) // not found (files, ...) +#define ADSERR_DEVICE_SYNTAX (0x0D+ERR_ADSERRS) // syntax error in comand or file +#define ADSERR_DEVICE_INCOMPATIBLE (0x0E+ERR_ADSERRS) // objects do not match +#define ADSERR_DEVICE_EXISTS (0x0F+ERR_ADSERRS) // object already exists +#define ADSERR_DEVICE_SYMBOLNOTFOUND (0x10+ERR_ADSERRS) // symbol not found +#define ADSERR_DEVICE_SYMBOLVERSIONINVALID (0x11+ERR_ADSERRS) // symbol version invalid +#define ADSERR_DEVICE_INVALIDSTATE (0x12+ERR_ADSERRS) // server is in invalid state +#define ADSERR_DEVICE_TRANSMODENOTSUPP (0x13+ERR_ADSERRS) // AdsTransMode not supported +#define ADSERR_DEVICE_NOTIFYHNDINVALID (0x14+ERR_ADSERRS) // Notification handle is invalid +#define ADSERR_DEVICE_CLIENTUNKNOWN (0x15+ERR_ADSERRS) // Notification client not registered +#define ADSERR_DEVICE_NOMOREHDLS (0x16+ERR_ADSERRS) // no more notification handles +#define ADSERR_DEVICE_INVALIDWATCHSIZE (0x17+ERR_ADSERRS) // size for watch to big +#define ADSERR_DEVICE_NOTINIT (0x18+ERR_ADSERRS) // device not initialized +#define ADSERR_DEVICE_TIMEOUT (0x19+ERR_ADSERRS) // device has a timeout +#define ADSERR_DEVICE_NOINTERFACE (0x1A+ERR_ADSERRS) // query interface failed +#define ADSERR_DEVICE_INVALIDINTERFACE (0x1B+ERR_ADSERRS) // wrong interface required +#define ADSERR_DEVICE_INVALIDCLSID (0x1C+ERR_ADSERRS) // class ID is invalid +#define ADSERR_DEVICE_INVALIDOBJID (0x1D+ERR_ADSERRS) // object ID is invalid +#define ADSERR_DEVICE_PENDING (0x1E+ERR_ADSERRS) // request is pending +#define ADSERR_DEVICE_ABORTED (0x1F+ERR_ADSERRS) // request is aborted +#define ADSERR_DEVICE_WARNING (0x20+ERR_ADSERRS) // signal warning +#define ADSERR_DEVICE_INVALIDARRAYIDX (0x21+ERR_ADSERRS) // invalid array index +#define ADSERR_DEVICE_SYMBOLNOTACTIVE (0x22+ERR_ADSERRS) // symbol not active -> release handle and try again +#define ADSERR_DEVICE_ACCESSDENIED (0x23+ERR_ADSERRS) // access denied +#define ADSERR_DEVICE_LICENSENOTFOUND (0x24+ERR_ADSERRS) // no license found +#define ADSERR_DEVICE_LICENSEEXPIRED (0x25+ERR_ADSERRS) // license expired +#define ADSERR_DEVICE_LICENSEEXCEEDED (0x26+ERR_ADSERRS) // license exceeded +#define ADSERR_DEVICE_LICENSEINVALID (0x27+ERR_ADSERRS) // license invalid +#define ADSERR_DEVICE_LICENSESYSTEMID (0x28+ERR_ADSERRS) // license invalid system id +#define ADSERR_DEVICE_LICENSENOTIMELIMIT (0x29+ERR_ADSERRS) // license not time limited +#define ADSERR_DEVICE_LICENSEFUTUREISSUE (0x2A+ERR_ADSERRS) // license issue time in the future +#define ADSERR_DEVICE_LICENSETIMETOLONG (0x2B+ERR_ADSERRS) // license time period to long +#define ADSERR_DEVICE_EXCEPTION (0x2C+ERR_ADSERRS) // exception in device specific code +#define ADSERR_DEVICE_LICENSEDUPLICATED (0x2D+ERR_ADSERRS) // license file read twice +#define ADSERR_DEVICE_SIGNATUREINVALID (0x2E+ERR_ADSERRS) // invalid signature +#define ADSERR_DEVICE_CERTIFICATEINVALID (0x2F+ERR_ADSERRS) // public key certificate +// +#define ADSERR_CLIENT_ERROR (0x40+ERR_ADSERRS) // Error class < client error > +#define ADSERR_CLIENT_INVALIDPARM (0x41+ERR_ADSERRS) // invalid parameter at service call +#define ADSERR_CLIENT_LISTEMPTY (0x42+ERR_ADSERRS) // polling list is empty +#define ADSERR_CLIENT_VARUSED (0x43+ERR_ADSERRS) // var connection already in use +#define ADSERR_CLIENT_DUPLINVOKEID (0x44+ERR_ADSERRS) // invoke id in use +#define ADSERR_CLIENT_SYNCTIMEOUT (0x45+ERR_ADSERRS) // timeout elapsed +#define ADSERR_CLIENT_W32ERROR (0x46+ERR_ADSERRS) // error in win32 subsystem +#define ADSERR_CLIENT_TIMEOUTINVALID (0x47+ERR_ADSERRS) // ? +#define ADSERR_CLIENT_PORTNOTOPEN (0x48+ERR_ADSERRS) // ads dll +#define ADSERR_CLIENT_NOAMSADDR (0x49+ERR_ADSERRS) // ads dll +#define ADSERR_CLIENT_SYNCINTERNAL (0x50+ERR_ADSERRS) // internal error in ads sync +#define ADSERR_CLIENT_ADDHASH (0x51+ERR_ADSERRS) // hash table overflow +#define ADSERR_CLIENT_REMOVEHASH (0x52+ERR_ADSERRS) // key not found in hash table +#define ADSERR_CLIENT_NOMORESYM (0x53+ERR_ADSERRS) // no more symbols in cache +#define ADSERR_CLIENT_SYNCRESINVALID (0x54+ERR_ADSERRS) // invalid response received +#define ADSERR_CLIENT_SYNCPORTLOCKED (0x55+ERR_ADSERRS) // sync port is locked + +#pragma pack( push, 1) +typedef struct AmsNetId_ +{ + unsigned char b[6]; + +} AmsNetId, *PAmsNetId; + +typedef struct +{ + AmsNetId netId; + unsigned short port; +} AmsAddr, *PAmsAddr; + +typedef struct +{ + unsigned char version; + unsigned char revision; + unsigned short build; +} AdsVersion; + +typedef AdsVersion* PAdsVersion; + +//////////////////////////////////////////////////////////////////////////////// +typedef enum nAdsTransMode +{ + ADSTRANS_NOTRANS = 0, + ADSTRANS_CLIENTCYCLE = 1, + ADSTRANS_CLIENTONCHA = 2, + ADSTRANS_SERVERCYCLE = 3, + ADSTRANS_SERVERONCHA = 4, +}ADSTRANSMODE; + +typedef enum nAdsState +{ + ADSSTATE_INVALID = 0, + ADSSTATE_IDLE = 1, + ADSSTATE_RESET = 2, + ADSSTATE_INIT = 3, + ADSSTATE_START = 4, + ADSSTATE_RUN = 5, + ADSSTATE_STOP = 6, + ADSSTATE_SAVECFG = 7, + ADSSTATE_LOADCFG = 8, + ADSSTATE_POWERFAILURE = 9, + ADSSTATE_POWERGOOD = 10, + ADSSTATE_ERROR = 11, + ADSSTATE_SHUTDOWN = 12, + ADSSTATE_SUSPEND = 13, + ADSSTATE_RESUME = 14, + ADSSTATE_CONFIG = 15, + ADSSTATE_RECONFIG = 16, + ADSSTATE_STOPPING = 17, + ADSSTATE_MAXSTATES +} ADSSTATE; + +typedef struct +{ + unsigned long cbLength; + ADSTRANSMODE nTransMode; + unsigned long nMaxDelay; + union + { + unsigned long nCycleTime; + unsigned long dwChangeFilter; + }; +} AdsNotificationAttrib, *PAdsNotificationAttrib; + +//////////////////////////////////////////////////////////////////////////////// +typedef struct +{ + unsigned long hNotification; + __int64 nTimeStamp; + unsigned long cbSampleSize; + unsigned char data[ANYSIZE_ARRAY]; +} AdsNotificationHeader, *PAdsNotificationHeader; + +//////////////////////////////////////////////////////////////////////////////// + +#define ADSNOTIFICATION_PDATA( pAdsNotificationHeader ) \ + ( (unsigned char*) (((PAdsNotificationHeader)pAdsNotificationHeader->data ) + + +//////////////////////////////////////////////////////////////////////////////// +typedef void (__stdcall *PAdsNotificationFuncEx)( AmsAddr* pAddr, + AdsNotificationHeader* pNotification, + unsigned long hUser + ); + +//////////////////////////////////////////////////////////////////////////////// +#define ADSSYMBOLFLAG_PERSISTENT 0x00000001 +#define ADSSYMBOLFLAG_BITVALUE 0x00000002 +#define ADSSYMBOLFLAG_REFERENCETO 0x0004 +#define ADSSYMBOLFLAG_TYPEGUID 0x0008 +#define ADSSYMBOLFLAG_TCCOMIFACEPTR 0x0010 +#define ADSSYMBOLFLAG_READONLY 0x0020 +#define ADSSYMBOLFLAG_CONTEXTMASK 0x0F00 + +//////////////////////////////////////////////////////////////////////////////// +// ADS data types +typedef char ADS_INT8; +typedef unsigned char ADS_UINT8; +typedef short ADS_INT16; +typedef unsigned short ADS_UINT16; +typedef long ADS_INT32; +typedef unsigned long ADS_UINT32; +typedef __int64 ADS_INT64; +typedef unsigned __int64 ADS_UINT64; +typedef float ADS_REAL32; +typedef double ADS_REAL64; +typedef long double ADS_REAL80; + + +//////////////////////////////////////////////////////////////////////////////// +// ADS symbol information +typedef struct +{ + unsigned long entryLength; // length of complete symbol entry + unsigned long iGroup; // indexGroup of symbol: input, output etc. + unsigned long iOffs; // indexOffset of symbol + unsigned long size; // size of symbol ( in bytes, 0 = bit ) + unsigned long dataType; // adsDataType of symbol + unsigned long flags; // see above + unsigned short nameLength; // length of symbol name (excl. \0) + unsigned short typeLength; // length of type name (excl. \0) + unsigned short commentLength; // length of comment (excl. \0) +} AdsSymbolEntry, *PAdsSymbolEntry, **PPAdsSymbolEntry; + + +#define PADSSYMBOLNAME(p) ((char*)(((PAdsSymbolEntry)p)+1)) +#define PADSSYMBOLTYPE(p) (((char*)(((PAdsSymbolEntry)p)+1))+((PAdsSymbolEntry)p)->nameLength+1) +#define PADSSYMBOLCOMMENT(p) (((char*)(((PAdsSymbolEntry)p)+1))+((PAdsSymbolEntry)p)->nameLength+1+((PAdsSymbolEntry)p)->typeLength+1) + +#define PADSNEXTSYMBOLENTRY(pEntry) (*((unsigned long*)(((char*)pEntry)+((PAdsSymbolEntry)pEntry)->entryLength)) \ + ? ((PAdsSymbolEntry)(((char*)pEntry)+((PAdsSymbolEntry)pEntry)->entryLength)): NULL) + + + +//////////////////////////////////////////////////////////////////////////////// +#define ADSDATATYPEFLAG_DATATYPE 0x00000001 +#define ADSDATATYPEFLAG_DATAITEM 0x00000002 + +#define ADSDATATYPE_VERSION_NEWEST 0x00000001 + +typedef struct +{ + unsigned long lBound; + unsigned long elements; +} AdsDatatypeArrayInfo, *PAdsDatatypeArrayInfo; + +typedef struct +{ + ADS_UINT32 entryLength; // length of complete datatype entry + ADS_UINT32 version; // version of datatype structure + union { + ADS_UINT32 hashValue; // hashValue of datatype to compare datatypes + ADS_UINT32 offsGetCode; // code offset to getter method + }; + union { + ADS_UINT32 typeHashValue; // hashValue of base type + ADS_UINT32 offsSetCode; // code offset to setter method + }; + ADS_UINT32 size; // size of datatype ( in bytes ) + ADS_UINT32 offs; // offs of dataitem in parent datatype ( in bytes ) + ADS_UINT32 dataType; // adsDataType of symbol (if alias) + ADS_UINT32 flags; // + ADS_UINT16 nameLength; // length of datatype name (excl. \0) + ADS_UINT16 typeLength; // length of dataitem type name (excl. \0) + ADS_UINT16 commentLength; // length of comment (excl. \0) + ADS_UINT16 arrayDim; // + ADS_UINT16 subItems; // + // ADS_INT8 name[]; // name of datatype with terminating \0 + // ADS_INT8 type[]; // type name of dataitem with terminating \0 + // ADS_INT8 comment[]; // comment of datatype with terminating \0 + // AdsDatatypeArrayInfo array[]; + // AdsDatatypeEntry subItems[]; + // GUID typeGuid; // typeGuid of this type if ADSDATATYPEFLAG_TYPEGUID is set + // ADS_UINT8 copyMask[]; // "size" bytes containing 0xff or 0x00 - 0x00 means ignore byte (ADSIGRP_SYM_VALBYHND_WITHMASK) +} AdsDatatypeEntry, *PAdsDatatypeEntry, **PPAdsDatatypeEntry; + +#define PADSDATATYPENAME(p) ((PCHAR)(((PAdsDatatypeEntry)p)+1)) +#define PADSDATATYPETYPE(p) (((PCHAR)(((PAdsDatatypeEntry)p)+1))+((PAdsDatatypeEntry)p)->nameLength+1) +#define PADSDATATYPECOMMENT(p) (((PCHAR)(((PAdsDatatypeEntry)p)+1))+((PAdsDatatypeEntry)p)->nameLength+1+((PAdsDatatypeEntry)p)->typeLength+1) +#define PADSDATATYPEARRAYINFO(p) (PAdsDatatypeArrayInfo)(((PCHAR)(((PAdsDatatypeEntry)p)+1))+((PAdsDatatypeEntry)p)->nameLength+1+((PAdsDatatypeEntry)p)->typeLength+1+((PAdsDatatypeEntry)p)->commentLength+1) + +__inline PAdsDatatypeEntry AdsDatatypeStructItem(PAdsDatatypeEntry p, unsigned short iItem) +{ + unsigned short i; + PAdsDatatypeEntry pItem; + if ( iItem >= p->subItems ) + return NULL; + pItem = (PAdsDatatypeEntry)(((unsigned char*)(p+1))+p->nameLength+p->typeLength+p->commentLength+3+p->arrayDim*sizeof(AdsDatatypeArrayInfo)); + for ( i=0; i < iItem; i++ ) + pItem = (PAdsDatatypeEntry)(((unsigned char*)pItem)+pItem->entryLength); + return pItem; +} + +//////////////////////////////////////////////////////////////////////////////// +typedef struct +{ + unsigned long nSymbols; + unsigned long nSymSize; +} AdsSymbolUploadInfo, *PAdsSymbolUploadInfo; + +//////////////////////////////////////////////////////////////////////////////// +typedef struct +{ + unsigned long nSymbols; + unsigned long nSymSize; + unsigned long nDatatypes; + unsigned long nDatatypeSize; + unsigned long nMaxDynSymbols; + unsigned long nUsedDynSymbols; +} AdsSymbolUploadInfo2, *PAdsSymbolUploadInfo2; + +//////////////////////////////////////////////////////////////////////////////// +typedef struct +{ + unsigned long indexGroup; + unsigned long indexOffset; + unsigned long cbLength; +} AdsSymbolInfoByName, *PAdsSymbolInfoByName; + +//////////////////////////////////////////////////////////////////////////////// +// AMS events +typedef enum nAmsRouterEvent +{ + AMSEVENT_ROUTERSTOP = 0, + AMSEVENT_ROUTERSTART = 1, + AMSEVENT_ROUTERREMOVED = 2 +}AmsRouterEvent; + +typedef void (*PAmsRouterNotificationFunc)( long nEvent ); +typedef void ( __stdcall *PAmsRouterNotificationFuncEx)( long nEvent ); + +//////////////////////////////////////////////////////////////////////////////// + +#pragma pack( pop ) + +#endif // __ADSDEF_H__ diff --git a/ExtLibs/AdsApi/TcAdsDll/Lib/TcAdsDll.lib b/ExtLibs/AdsApi/TcAdsDll/Lib/TcAdsDll.lib new file mode 100644 index 0000000000000000000000000000000000000000..03aa78e1234ab8a0fd3867f9bd962994fc0a8a30 GIT binary patch literal 11712 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 literal 0 HcmV?d00001 diff --git a/ExtLibs/AdsApi/TcAdsDll/TcAdsDll.dll b/ExtLibs/AdsApi/TcAdsDll/TcAdsDll.dll new file mode 100644 index 0000000000000000000000000000000000000000..bf38337ced35fb7050901f179ad830fe3e4d5093 GIT binary patch literal 257024 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 Fpn1mFt%A?GaVKiE6P?e)@zC< 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 literal 0 HcmV?d00001 diff --git a/ExtLibs/AdsApi/TcAdsDll/TcAdsTest.exe b/ExtLibs/AdsApi/TcAdsDll/TcAdsTest.exe new file mode 100644 index 0000000000000000000000000000000000000000..dabdb67d5ba86a06f85d663cda3ccbc89817a01c GIT binary patch literal 24576 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 POn;{JPSEuCslFHh@HlE< literal 0 HcmV?d00001 diff --git a/ExtLibs/AdsApi/TcAdsWcf/PollingDuplex/v4.0/System.ServiceModel.PollingDuplex.dll b/ExtLibs/AdsApi/TcAdsWcf/PollingDuplex/v4.0/System.ServiceModel.PollingDuplex.dll new file mode 100644 index 0000000000000000000000000000000000000000..e64e14b06ac32234803d44677242cf922b494c51 GIT binary patch literal 186240 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 E7aTi&k^lez literal 0 HcmV?d00001 diff --git a/ExtLibs/AdsApi/TcAdsWcf/v3.5/ClientAccessPolicy.xml b/ExtLibs/AdsApi/TcAdsWcf/v3.5/ClientAccessPolicy.xml new file mode 100644 index 00000000..110e386f --- /dev/null +++ b/ExtLibs/AdsApi/TcAdsWcf/v3.5/ClientAccessPolicy.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ExtLibs/AdsApi/TcAdsWcf/v3.5/GacUtil/gacutil.exe b/ExtLibs/AdsApi/TcAdsWcf/v3.5/GacUtil/gacutil.exe new file mode 100644 index 0000000000000000000000000000000000000000..86357b1e126d76deca1c1174bd3fc6b1d65a35d2 GIT binary patch literal 103248 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 z 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

}?z|egWz57Bt>#1a?^hW8 z`po9Y$X#2(CZ=BL!D#riBDaFP_2F?6maY|o% ziv4S`mMs|k>Hid}|IQoqtChMWZpM1{WFfZmw!D0biQnt4ExXPst#&NEB#F9~mKbN! z_S?Xcs>F`oEw5EvM;#bY8EW^Mn-l2!`o%IU?G03CY_QlUUdo*LjHV(ftX{XgM^sOp|X#;kZXnLGp!>)QAxaEED^K0FP*2T!} zi?H&EkLDq69v`m6m_N2zW6t~NcS_-4a-LoV+H1YW#63_xf5n^RpPs6(SGqolS!+B` zIdpIJsKg0U$qXLpoTJbnx#4(fY>cw_Q^oY2bDc!ZteJV9SH+PHQ;T(zPhZ^u53ZWk zy6JL)#CEEik1~5nu2(Xd*RaB8CM*@k0mX^|%T`cw`hRfBCQ$iqBKd9kEHAl0R-OJ> zW>c1f)xKLi6M~hgZ;NZHum<$~RXv~@f4)!%gQ*W3Nhsy>4CfhrdTdsorK-4a ze=ZeUSnabGO|~|7GFZIn$}WTQd-wLRpOkh^*E&@o)*UwZikEKqj9+5jj?_JLKeMvP zUt(Et*(IUkf~7Fw$m$cu8Z|AtI9chn{_>Xg{ozKl^-HE-C|ewLHRNTL^NzILXHR`v zmu|gxOst2ei+9=0{KwB~sCT*IapMl1W**DWtZUIekuAEZruU?wI$mM#Sqwk7wCvfu z0|LLBFMF~ql8-(*6>#^(%;Z%UWYQF54PNL%^JKhz_iL%rbxP(XyjiyyIPX#(?t?ueg$>l^r{z!E@xV$DEX$8}8oJ{Pf{a#f0$voxc~{ z8&lbQL0}tb((O9k<8xB4w_i@Pb=8@u2Qm2IzCq2!k8(=G=lJ*Pb|xlu*V(i?dn^kq zEPlRTE$Z5-Pq!r3TdyB|Vp!sJDJl4;u98A=0~XYmrW5tZV^LrHx+%M(^=2(A(V6xV z*=BbCVw`(w?a^KG8tRXWI#y0IQe5%*Nm0^aCtaKP8NUu2!#n)*jki|Zsn0<}chxc7 z9nIHNbe`Kya&B*pon4){ZR$*oVcuqnf~onjBKF?zc+%;d6S + + + + + diff --git a/ExtLibs/AdsApi/TcAdsWcf/v3.5/README.TXT b/ExtLibs/AdsApi/TcAdsWcf/v3.5/README.TXT new file mode 100644 index 00000000..a5f726bb --- /dev/null +++ b/ExtLibs/AdsApi/TcAdsWcf/v3.5/README.TXT @@ -0,0 +1,69 @@ +================================================================================================================================================= + +Installation + +------------------------------------------------------------------------------------------------------------------------------------------------ + + 1. Libraries + + The following assemblies have to be installed to the "Global Assembly Cache": + + "\Ads Api\TcAdsWcf\PollingDuplex\v3.0\System.ServiceModel.PollingDuplex.dll" + "\Ads Api\TcAdsWcf\PollingDuplex\v4.0\System.ServiceModel.PollingDuplex.dll" + + +------------------------------------------------------------------------------------------------------------------------------------------------ + + 2. Install "TcAdsWcfHost.exe" as Windows Service + + Step 1: + + Open the command prompt as Administrator and use the InstallUtil.exe (part of the .NET Framework) to create the Windows service. + + Step 2: + + Switch to "Control Panel\Administrative Tools\Services" and start the "TcAdsWcfHost" Service. + +------------------------------------------------------------------------------------------------------------------------------------------------ + + 3. Test if Service is running. + + Open a browser and go to "http://localhost:8003/TwinCAT/Ads/Wcf/TcAdsService" to test the service. + +------------------------------------------------------------------------------------------------------------------------------------------------ +================================================================================================================================================= + +Logging + +------------------------------------------------------------------------------------------------------------------------------------------------ + + Enable logging: + + 1. Open "TcAdsWcfHost.exe.config" in TcAdsWcf directory. + + 2. Navigate to the "userSettings/TwinCAT.Ads.Wcf.Properties.Settings" node. + + + + + NONE + + + C:\TcAdsWcf_Log.txt + + + + + 3. Set the value of the "LogLevel" setting to "INFO" or "ERROR" + + 4. Define the path to the logfile as vaue of the "LogFilePath" setting. + +------------------------------------------------------------------------------------------------------------------------------------------------ + + LogLevel Description: + + NONE: Nothing is logged. + + INFO: Information about method calls with parameter values and errors are logged. + + ERROR: Erros are logged. diff --git a/ExtLibs/AdsApi/TcAdsWcf/v3.5/TcAdsWcfHost.exe b/ExtLibs/AdsApi/TcAdsWcf/v3.5/TcAdsWcfHost.exe new file mode 100644 index 0000000000000000000000000000000000000000..6a4868535ded9e60dc8f0333de16ef76e117ed41 GIT binary patch literal 6656 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 O${TC`U-CZ~fqw!ZRp>qd literal 0 HcmV?d00001 diff --git a/ExtLibs/AdsApi/TcAdsWcf/v3.5/TcAdsWcfHost.exe.config b/ExtLibs/AdsApi/TcAdsWcf/v3.5/TcAdsWcfHost.exe.config new file mode 100644 index 00000000..68814cf6 --- /dev/null +++ b/ExtLibs/AdsApi/TcAdsWcf/v3.5/TcAdsWcfHost.exe.config @@ -0,0 +1,180 @@ + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NONE + + + C:\TcAdsWcf_Log.txt + + + + diff --git a/ExtLibs/AdsApi/TcAdsWcf/v3.5/TwinCAT.Ads.Wcf.dll b/ExtLibs/AdsApi/TcAdsWcf/v3.5/TwinCAT.Ads.Wcf.dll new file mode 100644 index 0000000000000000000000000000000000000000..56d672ccca6cf7f7b8c33af98aef749e1a2aca48 GIT binary patch literal 46592 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 D*zMg{ literal 0 HcmV?d00001 diff --git a/ExtLibs/AdsApi/TcAdsWcf/v3.5/TwinCAT.Ads.dll b/ExtLibs/AdsApi/TcAdsWcf/v3.5/TwinCAT.Ads.dll new file mode 100644 index 0000000000000000000000000000000000000000..ceb83314ae02603f98956e8b44196f52ef2a93d6 GIT binary patch literal 233472 zcmeFa349yXwLdBJecfoGulv5xP`bRfkfw$1ugmLur91t7zvteO#~x?z#J&)7QPqunfbn@%Q(?8^%ZA^4|*io%v@6lC%8}W{nS~zP9iqZKr*0 z;hL*9RtC0|!z;@dUp;W?#hW*WTL&(=e4u>o=7Eiy2aZ4UoPn#u%Pt?uWW0kk>a$KT zjMLgI<7a|MKsXNJsoD+HAuz zR=ijO2sd2uDOmiz33$(B2zbw`BdI4F#@&|D9t+OeJ75?nLH%D6;gjnj!x-6m`3+kU z{_oYgTo)<6V<0TzMI+@(`BFp*Z{U$-Gq%8u{abJR^Z;B=C#`o{_*a5_m=e&q&}I3H(1Kf!&-};~(dyrjamydsmzB zo=4h@l*Agwt6tV-T;yZ^Ie;m$j+@CzeCU>+e#HCmYcF~IoBMxr#J$D2XM2z5&4+e= zY|A-sv2NUP*}9+Ies%t-FAm@KtzF&UDIT}_k>!7yzodKn!(&TdcKEZO^IPk&J6`nA z&&!K;|7_Ru?XNtz{PXjk`@>J&|Fh5bS=&E!?vuZ{_I0EG=^tzTV&%w_Kl{ncZrf#a z9Dna2Uwc;Jmp_rmUcMhhrHRP~T# zRnz#bJY*Vbp=?z<=~vVZBM)nM^gfYn>`gsw|30?H4B9 zuotKlliDv#YQJWZJiZh>LhPDH#g*r$Ehpm260Xvw<2JZzovK79S+wYsUx_Zpm8JYj zbjmMW9M7z>{=-k8!opJ%hT}*z`r&+((9wyXLgFJeR;*bi3vp=H zZXH?@6*TJ``KeAdRyF+Ovc{^0pK4WORl`p%YpiPc$z_dI?G*Eeng&?pnpaNI^-RT( z(p9BkP-rQEGzAug5#&Q6#DfU3Araz11bLAN@gRZ>NrZS1L9Qf1JctkhvcZXGyQylk zMy-$h6ozhJ=S9t;mS?10>moj&VNmdj2N9A$yy8*1{a%zCtme$&bQwCnrP7D$*k&Vy zTF@bLYX!>Xnc=N%hSPU`yA%Eg>ZyCIU~a`4qnSyCZ$^S;2MbZp>C#1J2qWk8dt-}( zeqgh$WHJA%1Hcz{kymkxHq{|4frd5U283k32`&atiFK*8)( z;CkEKB6+urw}W>`HCN}4WV^?F#a4S#u@!&-xVov%)tMIAZUfr~3F)X@6fh-uUs7eEy{5VJ0)m8($>J z>nA10xOOD@f=S6Su78S(Hg|8RC(nzx?g~dpgDKwlrvwUEb=i7QfW=5oyPJatEyKBm zN#6J_0Ylwru!06_Pi_uANiZgPrR&VyfHakuBA85S63p4=?$_60=4m`s^GQ%c=I%SD zLqXZ%Y(;9~h;Ez4d5{R~K@&ZBPF-uv@K6*Fs)OdarLqM6ZIe|eXWb`yG>Rl|JRw4E zXbw^(Fea%=#tp?msss*`)Gvw98hV3N38>U}OKL-PkSc-0CGV}0+R&V=b)N)|U}~vs z?rvxek|c1XBt6^Q-Ov~$Nnl)(jy88Uv;|2LSSm>i5zH~4_7@mN zuNW3PT!|;Jcs$bypiG_{o`K)tU+nSRA;%4|i{w34Y(v*=!eaI;WLCr2p!f^V zLaHihxEkK#+2))$3jr*=6h@1#w-5-{8BTc|X{PUR|wEHl^$cS#(=tdfIz zTX-9KRn-;)eUBNj8IULKsO8IM{|Xr*`;U1TfaKjBVgEBkf6* zfo&rK3)yTGKlQdnew0ddr4>K*B;lt`_!&CHbwcV2CIHm1;dxD9!>b9<5FbfL%~I;I z1m3cgAz3Y zqe9g|VujK|*2SI#;fj!5)xaZl5Tmt^wjP4PS+(_-t9sCFoq7;%!H=S)ntfdluR%i8 z7UD8|V4pG+v-d8_yA`Zr!_p=Z7E;uvVN@8DDldA4h=)MeV_jr%xkvUzsb6GY1kEJ- zG9?D)qs(GbhhZeRC7p{}2u!kQVcK>=33p(AOQG{Y*{my8wo>$iN;Cb2)0xBsUmVK zye90T9X>CDrA1=t?4U*;O1GWv5tzNP6;y6w=m66XcF+SrKX^WU00cb|1H_`lAd)2m zFCYZ;>VI%@&b#zo2)@2?e(;{Xn=RRLvRh^}r#h)$_QgD&$# zh5^hFUia7Nu!NbY!(#5J$5kYx5u&3cm~K2wsJ9pebq%7}-AkyU%mNwpkT(-X>=N}k zFZM;{rqZHJ(>PJ(aM(Kvrb+rdC8l03X@X!yN*RqjpncHuO`wbZQS9L(jkdh~C7>U? z6hA}SD4M~`5Na^xQ!Z^oyKZ zsxe1k44GRAYS0I1Ob( z-;Op66KsXAkiIQ=6#$3ls$k`4Oi0qE8|*}6$#u3uea$p%?sCKrb(+=N5pRXJAg2|+ zniQzPdT1f_2H6?Dv>_Q=9HiUy9fXbA*z|Ned<_9u=X!iH9VUG3zHq#*jzigo={W50 z^@JhQZ=k1KU&}Z|t!01(t`$Q2?BX}fU>ATeB!PkFLdTFw9HxVX#1U~5wZ-B(wL{@T z;#ES^B{*He(~Z)Zk74F3-d-oN1VIoPrIVtt~o z(MRZLaU0P`GWv`tbCtoG#DRdg4bbt)pbXX|4xr-RqeaAxoI_pnpXrC+fQIgI&ESm?_G8om)gCYhNpb1IFhF7@bDn1w1Q-YzHUsE3 zm4^L4W)DVz?RMw{vq}zzo)s)|Wa#lMhA^U_8@>~YjMX?ogd<4blXSu&+`-38&3RXi zfDJx!#==o`6zme%dDuEE54{OX)Ad8*5s(fPHa!!%8&50zeHxcFYsQ3*n)o}f`htp0}hZ?=Y#dZe1f zeBp<*bf#4~5ovbtBZihCcv2$>9qB#PF<@(qZs5O#45?KbV&G7%#xkKU;u$`zac2n(uSZZ}7e2X4Q87Z{_<8bd=me zutKi>E3I;hSE#xi_6AOdg$iEADwQ@=+}0{3JRLyA?X8ln@C>HI)QORNP{9o$OzpJ7 zy{gSfJN*It%9f&U5^#V~9gEYl{V100hs-8m$R=)UW`7LW;%%*%4Nn8F)z6UPJu}06 z8ZhBqG}EnVJux$_Cy}gBVEo4NcRk(aKi!6g(tBu|%uD9g+j4i>2@iutryFJ+11!~_ zB#l%~>0eM0hv&%_g$;#HPj3U{BS8owXC8Z5z%+HjxP50#?8LNUC2UG|MayuQ?{s}fbi()Na zml#e)2qp>m&twM6sJ2QC{-T&8ZZ^0)@| zenvVFDVi5E{&$p-{9%N$?|jVldzI_8)0IybgaiuV9|%^&st&D2yopD}Erfp&kULv~ zXimeY1g@n)q~yXs3k=GTKQwK?IJ9WD;rXdAvipeI!zft-Mck8;!ss0X?a2pbMI>p7`yOA*d19(#XeIv-f@Tj*VF#a|CSm6tSv#?ey zcG|7{5uCJRHu-$STHy=u>jr;-?Hl{<^z=CB>8(J|C+LPa=mD)j*Af&xN?Wml!=}zQ@Y)MK+79&? zXsSnci1K(?A*VX!+jH$usPSC8)~MG(|2_lB{|0zoia#W4m0E2X#!r!&$KP^5jCX+q zlKV!o_+5C^y+|MDc|m74Iv{nBXe3>Jf*Tau$yuaAk+S`j%9ga{;8~Ow{tb~+6j04e zMF09$+yyGm?sXA?v6L+bXELRM7}>F`!W!I*l4eSY$2TI^9%u0Ji{UmCWU3HugB%Cz z$~P`#sE_KflV{86oxELI7^gEw)430Hkd}CyXFEygj}THbLO4qo-Z+WU!+>;RXL>-1 zik(k1r}Q>bN`TU9k&l#aYefm8{p%-Dx=bjs9n{OjK;CIi>FuQCfYOkrbWkfwP9eN5 zMyY$npP?R3>@X6_#0Hgjn^SrRDY>BZY2;&>9)#OedTt@Sb`qsm2_?3_dYKr=C!14x zCn+UCX+l#vs}-eWA>10HR9G=6l-PXhlo-gTnp1igDWyQ^*Jwm6(@)?wEfaLFGKtd1 z0O`a|_Cb0y1$nPIC75>)X^F>QL`v4+o|~GI@d{x%PG)Svi5;i}4cd@=y42T9zu!X| z>5{qUKoY1g_{9xvE?o$(5dyI$50qQLmGMnuyuHnV{y>OFwJp0g^556C><5v5j=Ag< zQ^VY7F8e^_f5Ke0z|!%jTgzS&`5&;B{ikIqoW1suXWQbpu->JLs+hUq7vmy3XhS8Wky)3Sj43Yw zupnbwZUwEt2|vM7YoKEhKQtB#=p4E*7KX|~T@$a|O9T%QL3Bx@vGIB$3EH)j=p(%B#U^4YL!wOGpo!HegNJRE`K>9 z8^NLNt|*i%m9{B-0C-f4s8|Fza;S=o!hYnrZDaV6dX_j6v&!mmt2kvZtg@0DnOr|? z!&-f5(LTTm0=CC%HA(M7?K|IxA z?18gg!&uW*bhb+UG^gmKbIhV)z4m2h%p6-j*>_y)~j zr8HHFZulp~*J5Ay944Yu@!&^aUH6|G`Rj&@&{(6XLtvCw_hWRV{F9(D(6vLfLgL2Q z+73Ub{O3=DwxD0ACiw?o3{~r>VWR4On8v#QLi#_i5MC6Ezc}*OSvdk2FPRp51!6Ca zV&T6m^4Ify9Sv*Fw3P{x1Rs z2dw)$WHF`2IModl$?j%?=(-9cf1N0cxn)``YwemS7XC8*nq(#NPr|V^g09Ds_O($g z{MSYPIs|E7KP{H|Zir&xzcKRH^F^Iv(vv5Mc|GH5l{hin7=janblBdhRB5NJ(s>FaaN5&9k*3Q;>&B?Pv6#L#Y1lsAt) z0gkIgBR!UQ5J6lLAs$2sZ|u{=175ghwG{5bX!8&NGlpMQdcZtVnJQb_Z!gVple>5v z{dzEvEKIZ~-P<;f{<8Rjx=>z#Jdg&Ry-Gt~2rq06*V=9aoq)C_Dtj->{(NT9WtZ%d zd*JVX|NBixoMnj{eg%MRqfD2WwGx${P72*TDXPnXSe9l$;eZkHa0Epmk?b|$jn_Rk z)9Bd33gt+aL~P2Kza6zVk(4^zX4iHxVAbA8e4}QSX~EZ7w42Sj zwYvmTO(nwbW3p7cQ-Qyk;G!EVfbtOP21b*y1D)yexQTU?-N3ZXEMsYHOZW)|pTWC*|s3+GSYi4iY@OeVjav+3x!GRSrZqx~IYS4TuH5{r5rHB(h}OrD+yJeS2^GfC1TaG>)1`!CZulK4 z6wbyY>1|9}rZbt-wYww^V1@9dkMA@K2jsXcP z+d376uK$F}W>rstxBD@rLkR>JCXL*ta!55ENr{Uc*tI;{|X8xggC0g(ngLr9;hp-MTsRCU-f z*;v)n!OH+oq+R$(-(|IbRrwj&ec>bBPq)?H--sz(_(%aUm@Sb8VfqIye58K>ahOfj z<2n%6fjG>jqPRXFN6d#AQ?G|RO-?U^$JyB8YGKE;M%Nejx-g8Ce>^+FeJkvkVzY8D zawmp*%!H^)`FUvb*+lT2x@0=dDDK~*xCRGkpSJO{2=7!q0Cq71*`(5hgj6WZmMEMp z`i8SHJviJO{)*amH;ab=?>H+Rz#yC&ofsNy#h{s}QsyG~(!p70$TKm5mr8BMx-Wnc z)nAj47$Q*pEdyeNFyxnZhg))uR!|o^Wr?m-{-N2--DG!JU91R-a*}MOz;$(r1 z8<|FZOtU&VqAsq|p+NsI*-$1u+)e-8z>j#mzoDzr3co?W2-psPPQTKF@E7n~;el9^ z-!!3&klm=$hCn%a19NsRaYx!Iy zhKuPJQEQ`_42K!jO3Ip7Ozg~HDF7pZ*OePOn8(`Y3b;d*vsc2K13!fbwqA-no>P4% zN<55{u8bRgQiX?HYYomk9A7g4NFib_R4QOuA&g9wtAw zoKYMGKjm9cXT7(YoCiC;%7US}8Bo3Nak|ZbiX}JS?{Vgt0aZ(fddz@4-{S<|MLiQg zJ2!M@#E%(_F{1lyvQfD88jz4@6Z%KqoU_C4Ax|31G~b8Yp6nhy-c5F|-4*M~OSZ(U zP8QbQidjcn#!bN+JO+46ENCit9RAe>+z7O~R@+^xOOA3K4nXb)(c!dN!DP#+F;K)@ zLn3jK`ai+93PqQv!lw{LVTQk_2W3de+pmjRXW@4dH(V&=5r-{iK>Zc{HY?AA7l%)! zH@AFjo?e7H8eUMwpal;saH!zi@^z}l9&qZYCl-j?Hl79f9NNHbb`?2t5k#GBK(s+2 zx?=`JE<_Dnj_mg>0j@4@`wu_|BdYhIyhGQkN|d&fcGYtf{VL81p)xQLpr;OP1qljKxUB#M$)_J&IGoYYk5LLnO&{0;cH$`17#h zSYtSrfZ?LIwUL0c^k(p5BKRwQq#FK4567#PaXiY&fAxBJic*$_OuIE=&;F9){YL8{S6dlpziN0)b5fcx4RWDFUE%uvewa z@e5s!Q0Q{>LYJcxx*U^m{>?!}um_0DUg^8*aX)Ml_oG6# zVM59p{2&Iw^~lR0^HJ)kYB%R=eY%l$E7q`_a1LY?K7lIDlnzLRPqJ=n07`eY^Xd%} zAx$>DB(E@dDRpP<+k3p!kdvBpH@;+ytX22aR!wiDp3iaj1}&H*q#9#_w+%_c5)wsk zZV}*TYgiFt{~RU76A`JTGbu*I6UDq-W#mb0juztbi9j$Lei})t4VngQsj}}%RtK4Z z*cefpt!F?OX7FYR0hj&5n&O{n}Pf<1;>qCV!S)`31AJ*%;X z+2+*yfJccgjzQ&d9xo#7*B+!!ZHjcS@-?K_9zq4AaW4p!%6c`DNh41`_sGyzjbn)CKEX3Q z4Ns@FH+YMno|CuBJ76?&cI72?3T*)~#_`WH(gzuHVzhV=uZ{IV+pw6l?jS8^C}j;{ z0>+DFs=nsxbSrq92EhHA2moos(SUhP3m8Y<#97XIQ_}tp0A&!?TOqYkn{=--~S%#g)^A=%8buZjOy1|=~9d*F!S0b^U=YJk%gA)nzc>r)w zraqo?*c;qC9U52T@c-EgKCTmY>$1cO4qUVoJsKx5Qk|#JhXzd5uX|eHis|uNHAqa4 zVdL1up-<|Y9H5&sd7SkWz+y!gJ12$kWcoS(a*Y$f*Ri4l!<`uHWoV2as9 z?CeXre)a|90YJKsCMN2j?RyNZ6Aoo(9H($*0qOg|7_QLx+J_QJb(Y2}C6nqbjVJgV z!6$&}Jq85Qi}kRhfD7{;)I}orD-L{S%mE9^>i2-pge=e&COWO)KcT-qR=HP#N;~)V z{|wm2vI)^twLhLR7U_L!o)tpJ%d$iFht}bi(0M3n9vYZSM7*VP3C&zKxhN0i&p9e7 zT}tH~m89e#e7o+WSzK96Wj)~`Z$EwuC;WicmbUN{!q0nScD+3`Te z7ohff4>)@E)SV;Uo9oD!kGf(nYOWY_+JX>y;9LVIYm2ZGAqE1tfC?p{o^#G| z5^(4jQk@to=&TkNUfg)J5FUekgZ|#M^i9nBL*(T+uHac+!9^gk^by4P=~AavJpk6i z-8p1q%$#%!6KQw;=r5dQn7$e+&EMI7)7X*9U)VW3tbE-&hYwV~c{>YZ-OAeoZ$^20 z;WZ0I74Uc3LdM@YwqC^)bWCCA*eVs%tz)`(j*Y9Bc{*m^&apui)1za0c8+zam|h*z zyOY#(c^z4ANus>!PJdxSmN&fMcW6Hr?mrv^7xS?Hf-{I=GlTw{B$c;qJtz1*ewFRF zd-8350^Pj$tbdFJlz8Ib9 z`7tV39|lI<<8WOiXVpH!ApjomspmQESVPgdhf(nEb4=YSsV z@gIT1le0mN&`t|&r?V}hZRk1$ZO=^vf1*b0!Ds?uy+kRU^L#(} zD*+OM6U(?v&Lt)xX5y;hjXB#ZU8ayGy6>p`joHwdEXt>WH{HPNmfCY^ABdkO1V&$| z$DE@OqjQOI%*0j09XTvirpu{Bw6Ct)xRTkqvz6I~mNH|?{>kj`pKr#+3b&nMKZLl9~OF$t|c^vvK zZF8cf%$QP_S@*got@E?0b^cqUb-MeK8YY`lG_8AG)Asosw$CdX?K8Dcxnb#Nimn0m zY+ER88s&yUH??Wgx%JFW z->{xAb1UtbCbyp1>054}a_gKXH=y2MeOotMxvg(0H>T{b+_26wv)sD=QMt|Cr`-Ji z3Avp=Te$(Sg}yPRF1Nnf>04o6a_gQZx4zlw+q`|st!J9tfO>!R4azb*`-TSHLT*f{ z%WanJw0B=}!+Dq~{lYBU>4JUAt#6v#{(*K1qdq&ip+UEh8&m3Xo29<>?@Mk2)8sZw zeOtIsxg9V~Zu_BcoRho<;{ps;F~^bv5*`lPWbJi&LX^qkI4vebYK;hMn$bklSv7pM zn;h}8&cI6SQmny>?1fopl`L_V&h@dpaiWv6k?%n8m&4;T6YC}_2f+`YOr!2W@~-&D zFFFt*arz4w_wdUT9NT5>(GRNWm0p-~^c(2DaqC+fbF0^*92cS--0#M`$J0}+_9RM^ zNy!u|k7q(qoK&Z+=2-RFEI1!NGv!Vy&hmP34(IWtMGkUFVG_xxC^9DlySN=%KcEC| zzlCpf?8$WDCz-R=R4o_ryujFUt9s)Lrr07-maATd#1^VdRJlA`zgsqcJgPH? zd#bXAj?Gcln4SnHT%T_h5_4lZEGQ?b>$bg<7VA84(5(RIyT@rkWi;|DD)n&(_KWtGd2X)I&v87mIP>WsV?sWZl>rzu(QWBD$bW%;l! z*tC3{n6@h4p)-_^v(HxLTQXDmIJ<07zNPi)ccXll&a!;Rwrcu_u z>GgW_3}xj+rBT+tDfRlSnaawENTaNMv#QsPvn(t26q=Tmla5ANo9HlX95OaHz?@t( z$~sktu`P<6ExJ%n9vWqxoepoBWm&O5(zL9cC^X92q+VCdP*zR|8fBeYuNZc{$ptpyEWdN@4 z3CndyU>W@!2WMC^mZ3`C=AOjS0DMgCld5w>3yg)wsIi%eQ_vk3HpYE7fv4wE{(PdG zN5;b>L-^UjbO9>w z1c;f&&J7OBcycEp9DxrzxlZ{$qyj=`-~6hc_GvkGndOG-GVzd=#G>pOj%%Nqm*OMXqT{S7^S1)%8r4;<$B6RA!vH zU}13d)(TILvhygRlo)5}6(TtY0)xjha`^Uz=@+eQL)41+w$g`_oy?-1eI5aTLhJ~7 z*_|FjWC8CycLg|$Ze7{+GmAJ*+{Gdv6_o)aDpXQ&e=IoCi$t8FLv3U_g_5so_x{u&<>ES^mmKwgLf zYao6a*rAbM0@x5fdg@jlfN!;AP-i_c05Y}!)(npT?()H4Jv@@c?Q>+ zoG>PMI|_m;rstK9M2>+&OnmflDdKmKUAa{IArQhzyw5W%M|nRyHG-^6g80bPh>uQ< zcyMaOL$QeZc|T0=V(0yWZxKem!7#&lzjv8cvO3&jRzC;V-#gNwe3fM^E+?=!?I)#~ z@?8kQKjT?Ho{_*_qPmZ%(T^Q(_K8gkjspIg(DX{0x-+5FM~*c(JI|K$!t+Oeq&S-Y zD3YmukDQ|-Q0>w#ICYrPEnq~Y zAN@IeBCZn=SO#kPmqq+ce`%!iFUs%quN<*UF56_khaV*I>>$QhMn&^ObWptdAIdIg zXPdbZ+Q=;>fOjSEMh56iE7ZO!kX5-BEhwz&4Y*ud`?`wfwdlTeijGyihACfTO7JsQf<74E zw~l8K{op5z`<;n9pn}{|NOX>bB8B^r!Za>geu;?iG|D3lguJs&UF1J>DlCS^RV70a zS7br)VO3dxs1(E;@k;E9gjFR4A;Y^9BAf6r@(Ke^LDD5SU6B@CqGgz*(4|$0y6=Kv zT=N#+`RbZC{e&WOxUV6(<;IqZl3SEar(}x{mhW_Vo9CC5e86jyVs*`ccUEsX6(tUi zMr#{1gWr-l+|4Hw>efvZkQ+7|%$|{)**lUk`$kgc{E>vY0R2Frp5u?q-edO9L2Q)q z&pIw6Z~oJUbE!$|s$PKVN6bR}(RKP$Yvsgyq{5NfGF+0*2<4(+i+u&rN!ro=g}7gU z(V0>O+;!?-IjkbhAd?e9~n-tTEOFHA%&vhj?i()9BDBp!umTuasMrS>fpST|XSi6IyS_Qj`z zlJI{RGVYuIB={HXGZq3kSq|D>{;QXxe_A=Z*R?Fk3!0bY+mlMd5XK|>U5@l@%R$_i zpbXbiM=Dq;a%$fp2azK8MwUnP`QIf;>GOBt$Em^ttSa6-wVho!oM=}DK^GT|h$0z2 z3vFGxPOEx7Kt{hs<3tqd>@iy|0i#dUOq5H%uHDXRI6E!D}bSkmKPW zt2o71oJY`Ly}to2|LK0|F=ACcg55LHZ}*M#mfwWREx!#v>d7^^Vp>@a?Au_pv`A}` zG3tC0;rGz!dd50q9~Ty#FU?a)ePbQw?iwa)^4gzn4&S5_33k;Il%)V~zL(HpsO(fOf=C?$J>qXcPU^jM`FmGx5Kzk4p5BK29S3|AjvO02Lh9N3t_j9|>bt`K$EN zlDPuKtkq{P0p`}8prb`?_NSr>*Qp%ynPpa;S!GnrzSy-NF)?AUElemZy6sT!R)Y@z zHKV0R%n>cSwwHMH_+HzBghGzb8BN8m^!j+g-W0!uA-S>>x-gnROO$Nu#{r*e>puiD z!-qB6I+@e59a<1Ib^@V0p%dPU-a?JTCCm{p1w)szrTZjZjK%2U(ImwDm@#D&mr%co z>=^qo!nCVfI6M^a?a}>$brw7 ztJS+(w?kyLUlLbO)SJtQ^k)ja^z6TYU&C`vvd>BG%A_g>!!F@oM3tG{!rJ88oPCda zYi)E7$B!1@xRm>k1*~8;#DLLdF^WwLGImP8Ge;dY%0oal;2T>WnZ^owY}GMj*4wU&@Sy#KQ$r zoXW8vjp||1D#yXk!3hIOXly?$-%!1LW`J9fxOkB+b>S+hNMu)d2%@4Q2E4vJ`h;3P zDj;8vj7K;?HiJ>5osYhRtl$ch;KsO|-~7(u+m>8qRk9P2;LY|Iq4`y=MD#WcvW``0 zcvwW1edNNk8&bX#g|#T`9j-);I`Af!bjZEr@_UFu#vE!8){yw<`(%x4Lu>k2t^nD? z_KPg?Oe6I1Lh%4R2XPomugZKHXjV~Xy#HlMv?7tVM7nrAO+-;xn<*V=rtWZ4;qj;% zDcst;olM=4Phj~umsmI9r2v%j7k?K|On}0XLVNt;R6Nd%`NvY1FdpBM_oghB=49Ct)>s`_`m??;h)#(dL~uiS544;vsu zhSP{-5>#&k>VgRBbV6luxr(%+@?C}U!It3O&0B$d>ly$Lc6oMUS9_B0oCN2h4u)2A zWjb{}%R$*b3DBWZ>OLaM^8`|dg_ngBOEPB87KWr$SsW747=HSiB_O`w*N-e{|<2nB{&aH zx+$Lp9~J^MjM^zsHiBcm9pG{MQ^>E^imkb8^m6f$j#}D%63tPTcJY48+2Axh2S0yIsQd0teOnQ+|&zMfCs|I|Qa50Ke43FUxeU6>m*mxFc8I$}JEz{E>Zg_9}o2XDYckRnU^!^Mg%LkT#H3e+~rTjA}F(R zroEAcWf%LP?uowu@{o6o@aoDR(O%M~uO8AapTA}cDwxI zK%Q-O+MOnL1kWV+92t-#c9}*}MX&3e@6XRcpL<&yjIS?1`EXh)Yza*PODKj8BC5+fYwKQ4^}5xa*W+*JV}u1!fswIP~(D z91I@^WJ7)0BlDpEtAXB7ntU3P0mt2}3J1A^am`rH7iD?R*f!YSZkD=tDzMe4c6mz6 z>_0zTh#)q2NAYm2@5sr))s^$0UFp)vX8#4~Xu@YB)SmPY zY%pW|gU#DzF1COtsGQh~(|Lh?@dw>-En@v81uUr0Cy%+TcI~smbqKMsMf<(H@#n2K zaB9nF>)HNiHj?^V|G`x#FBa7{(Mbf)g~ML?F9hOFq<9eV*C;|fi1=F+As(@3b0CwK zKqi$fz=EeOtPo#7@`|f^2EK?Czj6hlcL;gTG1MFXNWfQ_u0)D0zaw}$i=lbEg*q4C zr`ae;{2f6L*9a}v>CcgL{xZE0Qt6F757I%seTf9|&)g1i*frb>incs(+6!Zo_29UM zb5!tNKrgPTz`KE79Ff9`*5#m7!}ShMs5&IZM}0$5IP{0%ulzpk>;zQhL5yZXEF)tG ztD|4V=+86yJB(KGA-XvY68;+A3bz7lxL3p(5FOcBtttLq4S<@>G`nWO!Kc5vYPh>) z!$~WLsjyFKJ^H28(cpT}#RC?29S>tvTlGI}{9ZNRKx?GqnJz+Bv6x7pRyZ(`sN>+8 z_aq#k5vB9Jjx&+|GSaA$$>9|y%0!_DH-L~ZzGn!F1^9$C_L&M1Fm2iUGt5hQ&633lV1j{mxC7PDHJ$I@G$z~$A$0mipCnO?H~7Xz{Vn??^RJYSYM_j zCrNJrX2i(EGHgz5T8!OX0uH2A`CTQ%@gh*erooW;dB@MYem?2v@j^gqVv{SK?Gij4 zaW@EU%q7<1OGQ>HpLD~wAYxHIgIl>7Jb=JUv^;X0Q7<6mb&c}zFGuKsA!A3*z9^T> zr60{DCieQBsqou4HIVoA;Mj3K{aDT$@^jumf;Hu&de&u1ZqAdF`#EpfW*BuqSa})s z!7x66zccXH2Eixb@*m^R!QW=YVMMQ#M8~gy`zplk#-Avaj$aBFGY{jjSUm3{K4=-n zEzm2O#ChcxbM&>c&|~g?4Rz>XAgOSnG+n;6p0aCFO1mi=$%9V$)qp6NjgK-_o<_!y z(>$mAMx=F{yHAgn;NxlcA#GlZwEK|;W}4>vDAIacq{ zh_wEW0*bhyUJS}c7x9-&&M~>cZ7lf@GbguYAfN(7G|>!qYR1&LNbT=r<_nr-?w>jN zkeQQ@MDjc;#Iu{>UdhaPCS#JUc2`7Sv`kK)Ie9ITdzg7`v&@$wwYPxUSl28yB1nX^$({yN6=f?q zLh+BoJ}3J6X?;&D^Jcfv>tt20lhVD;5@ep-<>2KRe5O04yBy_i%sFfE$vVr;r&3M2 zoc36kqq{-X<&YT4i7qE`Q7)Bhe>CT?%kfl~la?;0{jppcT~1neId0FoG`gI$>T=SJ zE(cQ%=@c>Fh&mS4=Ojy`IX9P_$h){fqm!`Cf(`_IkUOzBK&&dp;sqFpT*Q6~uU)Xy z!IO;A=}?eIKA3Yc6N^Wo({XgxHK^4+?KyjhQxFW~JoG=Y zr$_634mx7#b8v8PQlIlm#A6U`{0IIr@be%0qUYf6b%?`Y#%O0G{xSYi{QV2!I}nKa zBFr>61m>KC17N%w8Qc!G%qmAT;dRh3eoanv^b*K`AIXhtwItj@sPF9yirIZEl?gIG zycEG=S22xwN+%h_Kb2&K=;|E(i6gn=#k6eJu&#je|C-bP-=NLu#Q-(E#0c4ozAUe? z*x_a5H)Ub+bq-2|6E}P(Zy304L%XxW%aNSMmsjK!Mr<&IKS19x=&DCxf4*l@?+?Nq zl%Z?%9-u_W^}H7V7wQ1G-p4gWh!-c@hA%g(oHz_!U`b3GR~>Q3@wZ$$T*URtP2F2W{U=$9L?r_)^ygF`iq4XG}2d)5{iu z^WRa%R}m+~{-=i6W!3arSbCPYqnyj)h=3$ti9&5d;ju32FL^c|aRv>n!pQPC96m+f z?&{_1Od_TE!!=4hx0}vka?`}sekuVbZN+41d9?nWPe3LS3Oq*Dx{$d95jY9~-!wuo z6Y7o9q@1(snItzZRO7K8u`W0YI|Jr~gH4tXQFg$pP6I=3NdxOu28{Rq%Iz$X+p2xY z4R6u3s7?wiYo`*Lr_#xhE?~L(HavZUP5c{KSNG$mB6Zao7ZBl^ZB)8MR65Ro)H*Hp zyfN?O41SUNARIr0!k~pE?W>>&Lpb-!Sv}SsHnO$t$x^lOr9S*q5N{}OJ{^;&S>;*@)+e8XVr${L;d3QG$+}<{fx1NXJ?4{) zL$*Znw8ZYSuA=JEwKb)#j#N73gx%mm(RD&hX}GbdM33X83`mWJTNo&$_oSQE=N#kI zb&9^SO(wsKF7Hs=;oD)|2kr1}aIRG*6YC~+_yBeXgD>z-JhzJ-#BqTBo;z3tTu<+kGoX`L%fnseL%C>sZu1DKCi0mm{c|M2mxM#(2^mS4FA0TsLKa7zG->YXTJjx) zA;<*EFQ4uJYgXk6VeKLnL$0jKfr9IF6-9=uN=l-ZsVLzE%g7Rk#oR}LqMvM7l?4)q zzE9%Ffu^8zB4K=&m%K7!kqQ81Dj1Mc|`viz+x30Yq$h)4l zGO1yAz{lXXlo;rOvl(mEL+#1(&w)g)0HNdLQPkeC`S=v)CS|>p6q1!RnI6Yd03<}9 zp0RmxAPOW|StKR9K|w$slRzk#WThY==W3A5WDp7{S?LpyQ4Iq5#0Vu7SMoZ&^2!tb zl^-Z+-Cp0R#$7^w!xry@aHVwt9UL}a2$y?z3FDn83H#(IgF5FfxvVM-k*%^?>cGi- z=GW(xiOZ^P#jn4l(}b7X5#ig=jB9<8#Pgf}lBIyB?^evh%vwL=XU%_;OFCbDN=2(;L4mFPN@wb3r}1yYnMDl%MfE5A(l*s#3qfRd~ZPc0#v?NDZ`$4 z+YbUvyPqk|O{R9G9kw8vrdTmn1u0PD9;-~ zi}!>qY@f;Yn_K=Bbho3;#1nw}!>J@`h1Y_GA)NVEA&3(jIzve(pM3m1z=KCF^rw8) ziC|f3FMbY8k5XPPnj>flfOAG@*%48si*5hL*E=1>vH?X@obZ#txk0rYD z$vr3L65Fuz$bHMaQ^@H}H8hyL|JSJzQ|2 zdWVB23kt6>y48B}H;k^IsCe#a-ix`{n;@tDd7^mOX_9q1tenKwP3{C!P`a{S;fk$q zsg&-rUfhZ;ZK;%bWxcL7Ev2U{OIqEr1ud1Ow=An!(-Y>G)k0QxY#B>sSx{DMSkqJb z%4+#)dP;w)EK65Cv4tyzt=}uFWviY>pIp&N>9Sg~YLe7mmgTCR*kYB=lqt(nRbOnO zN~dJYA?7g6gxx=T8TtqFjFYewJ%)-*n~+WwqedBv*Htt6BZ| z>CEq-DZ=;OqjNO@m$UdY(7`vZFlkT^WsswsEU(; zUbqtte;|PdziG^OTwJ-r!6cRPYNT9!XDO*-{X3Drh8)8W?8$Z}p7tleq*`^+JZwjz zysz^inB>P`hx^ScOQTk$9NH8o^%_6?DrS3wVv*g^$HgAbXZt_FIQ@3Hl?MN~aqYh} z+Wa3eD7X`HzyQhd9cMq|gs(-w315R>*j+%Bj=-i5A=9Rf$GG3ir~|Pv!l({J zN!OJM-pBYjNi0ADhZ66|8F6vQqu=Rj={nsEjF9Mi3odIJrzIRVEY##Zs^F z=Ws?ek8Y%UF%}Y+9l!$(93%b-I&jxNuLG)5l@7$qHFA10#x2D-rtu;zR8Cq|PIqa+ zq=M*jpb)mMn?zD~jo4Hi|EAOt79Hx%Va7V@Ov*Y7_90XG_FTKJrS_| z(W$lMMYWVb0aI#?I95xEWjuDW@1~S!$j0EK$ArHcG z%SA=13om5vU zhA45}`g~Fo7TbCi_R~ve`FXE&B*uoCe-4&4Ct`7xSaL}%7rsyZB1*;sWBA<^A>Tau zP!2r@TSko8d&VC?C267}u(N&a$Un=^x0enA(I#R`=h_v8c3?vri&1zumqr|#dW^z{ zN)sBr2=i1wpDB&|`E045=v9&yX(pFdn6to=&1GYlAI)VDm&s*fn6dvsNzYsH`DT)K zyS2n$Oo`8FA@K+bqVLdbQuIq-2&wq_T*m$KOGUOeTWDcM-JYnY z@ivVNm-9JTK5fj@<0ta^T~j=hwQW7jUc=0-#PDwMBvneuJ1`0+)~3;_qvUl^F+crT{7{}zq0VlufmlBZP2nKar*(P(36j6Gy8P9s(? z)9v%_CieM(2)ESLDYVV#(b`M6O_ie|Zt$CO7uQoR-? zsrvtBHP(%z(>+-av;|jspwjk74pcfsvj+l{qC^rXjb8>THx^hph-j8WnZXSJERG*?No7lyi$1VmPZoYI7DphqJ zG4e5$nckZ`+@v@8P?O%|O%Yj9qs!QntY%Mwj@ZXs)5)oBqd`_{)ATOn(I#EUgH5`S zx3sq9N5Od9LtEZ8a0C>vtE-C(>mGJ1UJi$&P3#wrEGqAX!G%w%9Fa|{-ftiOG5Sfo z@Rdo$Z0vES3aNEWJpc6yVAfF_OQzIVQU;^83@G#XwDK-m(OUpHj)hr69OCXD5i0wvqU-k*mcA-@e56K@Kw@J}_l*a~!92bQxp} zIvkf|E-L+08LDDy9nfbVopv%?J;nMLML{Z<}Pffr``Vip+~sg>a&tq{pL#za?^G>T$iu@V0J_l2DU4CRY*PuKK@B~ z-2T3ijN8BPsJ9>>*BtPvvqbnO^bp>78wlf*X176bx2)sPWc)XPLd+`}vsPlb7=@T# z)RNdTZ~QAN<|4xIFrE6`3}CSD;N8MaJ#YN&3g%UW!GaNDu(?Y-I~jAj#Bi93nA;h% zfib168o+vkvDc?jhEw(^1cXv$*3Z@2ZJ?z z-dU49t0iU1X3{6YMn0Ix>b<%Ul>>)2b*27}oIu3T_=UZ>(=zfBWz*`)}O z`&dhSrUDo95Mm95uZcoj1`I!gI*>HhO!)aI#99eI7ll|O;b)@|Ya{$Z6k<(;uO&|V zKGwldDvKeGPWF|jWu;`v6)PnCJBm9-t#B`-J=tn61m~={STm5~%Ba67<%Zb9m%Whs zDSNJ!slAZvacVxL)_bs!C%3WWdeJGsfNMOflyjUf(h zvZ7&PZ;(-Vee%Oh;rdEKzNj9?dt_jj*@?~U+HNQ=iF3&L+gSO>ci zd~+i>55YSd!Qi`8E_J400(JTh(s?oHRPF*0F67A5dbkpKID$(L0|b^>;Wg#q%N5v~ zG7e-}_^-Y0%hY{&yWzz#uOpDP+%{L=P83Z3lHO_Y;{Xd_GqEtPvZPyNX~fsFWOSDN zlq~b7#n-c-k5*)QTjXiPH}WKsQnD4-pSp5gN)__7U#(a-k<%q!@k#~~6VJVRb5Xrq z7+qxLea4kaWCm)3wK!m`A526QIk4l`M;PlSbTtlK^b13USc?Ncvvi1+II$U32OV*Y ztKh=6;ja3o(S$j7^Ae}>765EBuNKtnJ?+`R8!19yeOh}|6sfGo!A&8jqDX3e22u1N z3gZjhkgMDSymg&@m+0)jDV-HL?beChI6RoA*OURZUW=xF{j&y3B8`u8sJ*Qbg*y z9~vI1YeSRSy!<7Rx;EnLRO;%wKPnzIzJ@AKrqhUT&~cQCZ+XKVk&279*Hv8UdqRm! z>AORH=U%}So$rT4v85z0yY)?RnKm_!I>f#jd*`|ScG*T-v>OjN*uh&N9uIBfUbty@ z;A+$^LiZsw@P1hTwd?Q^O&w8KJMcb6^{k&r>!_X!hO_X#4dC5N@MgwDy3k(AxDLMg zxA!%;v0C6|RSmFd^rv`K12lH5ZZp_8-%cVOS=|7kiXIf0?ev}Ss$5&@e8!KeqiK`F_3hfTfgPRjiPoz;64ih7dTeSr{YN8|6v3?*k)hZU z+R%>TMiRrFs-6wQRsnUHOdipjc zm>Td}c^4#$GjZxV|1o;=*56bM&?^_u)?wTl{VFVwirl6mEgC{AW(X~n9DN_%3ctV} z7OzMURqz!C@VIX93k2+J*FWJtVT`}#}i1eN#qM!iR0?c3g8Tl#R`5{&jdD^IrtIDP%4ci zNJa2&nl66$@xhJpbkHwi~duM2PetvH(wZ~j0c|u zcIQWLKE|b}27xqku|Z&6mUuf6z%*t$wFg03Gac+j@STldG(-e#7*p7)_st~xrH_HT zxcFCaPCC_U{m)m0#@Oh2>y?Xzl&OQrMq1R#H@ebBnhbYng>tUgp?|WHf2}L|w{+R4 z{u??Jya$5DAdX|3MGzD^7o6$kZ3a)ia?DrX7Xq%M&BAAn9eh6d0EBQzbCoIc{>_zN z0A2Vvan_^0&Zy5%BJ*C7c~~7Xvq$HE#QlizZC>;6icwIdOB`PM`Bx_4h26?8iSGya zxmwL(8Mm8pUu?vovA>`2Cz_VrUhu5~4uoh7cvnURa4xb)Q-z0FeG6N;8U#i~qA$Ts zoDrm3!JARat#{!JN{wMW3Kb>XIXNNf0xY|-5QjEuB|_ItTIGOx+_60B?qV8;6Pm*c z<)T)!qJ$~5c>eG_)X~4Pj;f?&KJ8?HvU0owVH^lrDmq+L_X1)LA;u6BE@5<`HiVpe z@>o}U7-eyA@Du4cZs%-+9`Nn}{~dd*k;fXQxm}fe$k*i$SAkSzIZ%d2;|J&SV?6nS zy3SgI@MxW%FsOScF@F%EXUh}k|L<}P6=KBW$lD+2{;@lOorJD@)(RIOI?Usz zX9eCSzGZebM8)aElAQqy_LPT-rv*qjB1D2y ziN|regEQ%I!KdQS>Dw0(+8ylkWW&Y#Vpocu!4u=+!9=aUOZo79=cclw6y&j!5b9GG zVm{dd9Q#>Iq^MQ4oT2lbiiIF|CDZ~7wk*ULVGyT1c=o0#VeBn+gk#7I=R+_Kk6&&> ziRR$8;2d>sP1k2Wr7JX_#(q?A4rNEX*h~?CGZ&7=$`MxvDhH7Dw=02o5E2f$?z?h5 z$o(+l)HJEdy(=*6nxx6t-HvJUE@*EKTDuv4PvUPSwD(>3t05O2>@kX+olnpGA{w>E zSpd%AwNZ)NJ3F18oxu%gi179947MrXe9@fXc?dausN%C&qD+KiN~6fN=Q6p@u!o$t z0ErRria=v=!z=0xMOBcRg|4E>Kw`bKqw9Am$T-=cPPPT#*p!?L!3JM^Kz#gUK2izHg!vh`x>752}Lj;{dY zgl1EUf!SdX1ul;KpHa4jvm**+6G+v!n#SMSPCDLfM^iO02D1x(S648Pm^cP=4LE!c zBUd>=Zg(VV=U^8L*Dz~XZ-<+xoeLNFx_x{(B9`w6#48I<*VMb!!)io2*?77aYx>QpO(Odw}>(*Z3|`a0{luVQyl4gm7nS zxXS>C*KE&5!^0hr+cwrNRT=x>cic#fBLC&c`%&h_f(E9EiQ44=rTniDH&MG%T&IQw zPs-DUJb{Js>`y@e5jLJnTmf7U0+;XMyQ@jOKzlHH9K5g<9FF=<^Z@IGZ&xsWI41muD}Zpx(_Vo9i+N-tQC7-{7y&(?XjC<^oH6ck(ua33e!S`BxN zqVY(rES^NIqB8b0GLkpq{{-`$uk%4zEJ1GrOzQdoz zngZbmi>5#fN|9eFPXP!dOwElGIz(cz>Oj83#Z+!gy*MA?QiMc~Fmjn$2$up@ zeHI7{O#;KC{#nG*M)HjV4Cdt@riuif@f$x_cH0G|#&y-jqz0kfON zXtVO1AvOVy2kPMk;GyD!})VbyB7(>ZH21k7$40o=%UQB*4PQ%>n9ZE664Va%| zuFQC(vu;0+bnICwh)z%@NZK9hGsCBWdk7UDJ_?WT1PfsRR+o|%ek{Dy$M+j;;8XZW$lk~o$fr=+dJ{^6Y2XMLQ8y{OV1!f&I?Y6QA>uQs zp?R9YcH8xn5pQ-9yy5;izYA*{e*u0BFL@_g3bPc3)KFJd3nPeo1m)^a;n^`o7me2p ze}RjSRseg0OWLlF(wvOa4359Lp0nRuaWevz?0~l?#WZCU2L0p#ca(6JaCA(}ngR^5 zmVpZ{Ia}5O_?k!#3mIr8o(WGxrnI=cv^%O+IhZN06R1kHwjPhIW(?2pELN1k8Cp<& zVLiumMZni7q->fqOPwwo#g%=n5sC03h_jf8UO|9fn6el5rPlQ^h!;HhKr);o;iS#* zcMzn@D>U9#^kimx(hg37*tp>7BT`l?mO!obGDaVU9yNwz33oDcBjM9}5w`LGjQ;;& z@5|$(tgim=JkRV|$YhyG0wlu{7_zV=ED1Zvt|*%bxIloQLCD}t5MdmQYi(UBE^W2$ z)@oa=wzX=lwJz1RZ>!b1RIMUfYhCMZ)hhnJ-*fLXGYJXszI}h6&+m_4;5l>8J?EZ# z@45SZ?sIM$`+xZCPvBnfN=Q!L4e$6b0B|8#BPF5XkRHDWei`JKMDUp=DR%tcT+*+) zk?te*eJe##^{!g%Nzi4bm`E$hh8q7dfD;*aUnWte-jzAaWeyWw4$cUi#6m?Q#zR8TF z>8&;0y%6ZX&)sZQYS1+Ott$76(eKfgVaV#d5g7}5Q&dZQeQvEpnOI^2Tk>u`gOhc8 zdI}@9wRm;qV-qnA)uPPk| z+YJZ<2(Jjd^m@iEwv@8Ews!86)Yo+JH{At*MsON_+}WhUaDy&|6G=AiO*!t(Id1HA zWO(8^?kzd)lXBb%?Us^C=D0g^+*@MpvMBNb zyt}s2X$lY4m00>3rm!uRj`ipFny>Ly2;le~L-O9M@(xFH$&p9Y$aBm33sW_j%SDl%u6%(w#wBSg)oH>U$}u(_ ztSi5GBl zk03%P1HC7C+Nn6pisYP+R582mY+F65E@YP;IoZ9Cz8U%3 zt(33{m-lMyMMpFFk{FoXe0bM(^TzoB$tWrZ4iCIpy52DMaqY>6gOp&q?>q4l2BuQ(*s1I> zFmrkRoZE6md9}#xcmYvl3o0uEL=VEDtug4eKa645&tb>&G+La9_H`z5-$(m z>(pCzAl3!J7_skxP+$M}@4#1I1V$K7bNgf4g;*;e>*U1N_y~-xNIG=enEE9en7jH| z#&i@Ua8h2@ggi&YjILp2e}@AdZl2?)t}hAXNPt(c`5O=t3O2Z_k1h$gv7_sc|DLk& z;ho5G^NSB!%+;31W8X(n@=HCurwCplSK>^l$i=k(j}YmK2}lZFXymZ2Z zT7?xu9@EByBJ%C^WE$GFY?I<~Z;< zaZ1Xhz7PRWNVd-;pkb&EWJ@4^KVDxP^5}40tb24gu>#0$)x7Jo)D>4M8{L?T?|_kZ z^(6Z4t->uyX>HdXw zb8?fG%H~ap`_XuPwf4;xI+2@ZZk(4yr5H`uA?xlZ2cZxps zHHJ6d68cSi+cP zt0~ae(^_9_pW0wKW39#hL5c$b7U?wI6Rh|7MGuH3mJXN;-scm zS^Y`Kk>!@NV~#9T8}$s*rCV4-abLX%2Kdr^*yeKXJqTz=Ufm9F{bc9TgC?&i6~>fc z{XdeYz0pG4b;U6C>DJ$)uEKdv`oVJ1s5j~+(Lm$xp^^F;%P(D*)W_10$8=Ufp-HMp;+owMEEA`{+9Wu!+tG&>J+%$8ksys{5cPDUr~Us zJ~(C5DMDIttxm|Ts}aZefYh$~N_t8?A|N6ai6GFj2Fb$4SMqKtZ#%_iAZ-CAj@S$W zVn1nxGzo7&8&+bIfICwi;pQACwh=O=}i%DG=e}n1%Xrt_#|q>!lu!BzP_Lw$-_b^=PgiPODI8Ha zMh-MSBTMmhHvAxaWB`uQa5U8*kIXLyMgEu^SFOs;bKQ|zb`(}o)%bZ@DL~Y;)z#(e zOFYH{9jjWM35oY%WVv7XLZ0gKwX4_AgaB^XSiQzkB}*>N-ol%B8oMyI3|Zb3ePlaM zdKIXa6L9HC;O4|zdJ?ZLTj@D)`#iks%Ry(UOAi8frswe1`de0E8KgUy@YKWMt`5p1 zL`>h-74Rd=J>jdJFDa{o6W;MlQR5x7>6ao`>%NEs342j33{4~t-(176E}zJX%R<3W zo@qf>XWilP{rHWgLplaxIWo~e$EXM08!?nz)-ibwYWDtWqSjj|AU(1-r#FQAKdF8Q zo>j3wt70v+mul(HR!hUfYB_R%PEz%t>3CfOWwWni&SvoBt*M~+mfESH5vPJ`A5_pL z5KRS*=n6Whj|wWPh~Nv>#krMpR?o_r-@S5{6y(;*{G3`@U}_~qCjO4PSW<}ZE}OfM z?hwwMhWhF0NC!)bUr=7warBDKCFRBCu?7qUVtI~+07CtoN-@%1U0;W*R?g@2E%pb_ zdJ54eus=aP&@xu#id(f=_b^bHL~v}8<$S8CWll??`9K>SX+wn)rEVX#G#JNAnp3T* zQPa<|Sq`il)kUjYP6qb>QvK4JF5<_f?V(UZ|4>ol4d_1Sj#91JBA9rmG^eH#q!P|0K->nMd$gW{Iw;R1^u)@bIS1rzt2(h{qO zx|0r-YKwlXO!y);XG8*$ZOA~f;}ei<&k5wMMQpPjCeCs*b|wB zU;df>1v`Bam~e`57k@nIi}{1Mu9wKKCw-~>defK5uP^;A`Sqv2jbCgErx>~ew~pGI zMG(Cx$#~Jpg)61L((5UEK92#_0txy`NKxbaQV=l!p~B zgJYA3Mda{Tu6_c$JPua1`iUxFQ?)E?IzCYy151wh*&dpynWLN~ zA^3WU+g6WaXnYoN>r8b2IP)UN%0pvWgXeTSnU6CEgK!9*A2Bizn!gSy{_3hpR|(gk zNuBaLW6~QWZsO=GnG&Oddga`*9KKoOf>`o1*J4{xGc;iTUc6{j(1d|aRh2a^=!Btd z!5(2~RnUa_Cz6o0JLrU=bwLwmgo%e{1$&60JwYSpCW<+hW6p3aG#xRtDrgw6gi%@Z zf(`?X3-%C7qk<;P5{5aZr%;*}Gz??Nu(BtESQwQ3hn6BTtm?@?LxV=byC|Zpbw?*z z|H5d{KmJFIo-NpXbV|opLElH|%XtP(HtP}qw?68Cl@iWFpl&`!rb{S$Nzce>%Ftwa zm=VC6WQ-T~S4AeTuFzifd0E4OPWt%eaSs{1bEbz3S`f_07@A2(Y3)v@7ts6TKSa%P z-bQfyf=!ct{1rS{Rr^yXNcvXcPW>7`=^xW=rTAmVPh&5K{U&$qIfl8^Fl#OT{A6Z z%zJ}3`6pD99q5-lyhm0&&weI$J5p!3L?_sckszXrniR#=V7@PMeR0{sscXpP(d<%8 zh8;FfgxxPngmEAr(k03Brf-KlojATo-6wId8Yvt)A0}7mXH7Cm!^>*DX}$9frY*9f zi@#~?=<=lu>j}mg?)N|zUO>8QFU-^>L%g3vPd6UumcF&Tw{ALg!#_(Zoopltu^tz1 zi3Gu{6yv}ym{b&pV*I2&t<4o60mGX4Te$=#k+#f}H=!UT!B$F=eVoIEn+tWkQsp`J zaShu+$DQIp;_rfk?T4d2e>r>RFNbsf-fMn;#b4xY-*+I~#nA6S3PArW>V|$d!p#ub z+K@09t;~2viJA8zz0%A(4h*r}1jr7!#LR$eXxZVEwCr$7EHj)=)pDFMw05S(vm+?7 z$>lM#%jpS!IW^(!wyYtw%QN-hC7`Gsuh5se(07==z&2j*GX#Epgsfv{EQ(9e!P&qU zR4>DkyqP6MFHOL#XO$HZ?qR60dq_zBmFhf02WZGMWL=ji!;bGD!wwS*dS?38V;hgZ z(sSWTMuq;zr*>mG^I|4#r1K;We<$9~l}=cqG#Bk*_l~)f`}iP@?&xS75R;o`O3@#P z5AWZ@j_t=-t`75=OKE&^H;}%9uVD8y?ucct;A=u1l#sl1ulJDp-n{~I?_MA^6;W$j z%$_K^HhdVY{W@Ts4_7K^alFGW3{zK5n2{gP>jG_Cvo(0zZS`wHm3ztO!Z zb8SO6d$Ut$4NT-!JQ*sc?ju_F<)ZtF7eeLGeR)samuuaZchh~bNir=1XPT$@LcbFv~kR|<=)^U@S8v} zdGO0W`dL2*YLwx15wTzNKLUP%gh>d zKiP=5cgwut1!T`k{f#W6&@nPVIL;n3O+O>jFmU{rh(vxZyDy1=3dr-d;1C%GTP7i& zhG>vn$yX76tMJsdXfg47AU#-DXRu!iHV|<$!uT&TQEOb7y$uVr;DUe=%oqPu8h`7G zOfu_yR;8#wGvi8-9HI3MR{TW>M-Rv(vR}+eWWdOShzb#*XFHNxqY9nrZ}g&63^k%G zT@0M&WVKq0b+lWVD#2X!sfjpXB4{JJN6ExUmc4 zwxS=Q=#saS56eJIqxX7WN3N3Jz)8mR2k?*vwTxnNU&tX>BVqZDTZ-QT%{;H z{xgUgmN{O9)8R~AB+YQn+;xB|tkq|&_>K|lBJ~nwXXH>c@2TDE{RfkRgWD>o4#dzCUr$e85ELRKX|G=6|XSP)Vd4GvhwC>m>XbUT#=|*9xk1S=5YutlSNIv!N3&#(k%KfR2L9WLF zmKxI-Zlw-GLC`GMZD%6>zh&a*F5}b40^`@40?WDjbD~&H+~a!$&@(O z*H3~b>C}-A^XqlnlevM zv# z8XKb2DEMZZ3yx1jaMPUd#UFs2P6oVQPD*$i{|=!(E!0XKPGw=^XAyr3HSUj}kE8DB z?)Wj5%jz4M$5R3mAvNU5 zsue~tv9y09N_sDZta;Yu}b zMh_|-d+Zr%#a--<{RNKndtjd+%S@teHKy)qu=airg!sUGIHvZ5-3zN^yw5 z>Lrqva^|iXCYfSeK&msd2#W==92HAL^!&hs3u(Lp1 zhwwJtmA!P{IV$^F?ojDM7Xf8q`otfc7IAw}1(Qoris>&Qrxv%+XWT4P^aSc3l1>@_ zW@W}day#Re7MLCSQY7L&1^Ja;pvP$Fj7tMlphmZO9K2?r_(Ikvtb&QyalEfZ?c%t9 zBGSP>(`B#K9Mz4&q7jUmpMYPVaX%C;oD5Gs$I7x7!ZOHLM3Q*z5=^7Ca9&&wpNudP zU&LUMG}XjD)2|LefxV9W7X~>NbsH{xQbUg}@)i238%MjV8;g8a>|YRovpn8zBOWxt zSiMrB8p`=Ioo<{>GtGhNEHon`$Ax@qFt#kA# za4VG~$1f3S_JZWw2+uCYoBkY(A@`}D;m1yYm_^)aOp6?fFZBTwk^WeGFqHmV9NJet z$Vh(ypFoPSVsZRe=oEuHwd!DKHXi3XATt+Pr=DricI&9$Ht6>asb2>_&g*$Wx3bW^ z#nDCh64I0fzA<81pndvthiOb?S<*FTJTSU4WkQ`(Jq-&)>vZ0>CBY~U(;76lU0N6HQv1AJXCvc<$yxmH` zVAZ zFCed-m~>ewRxP^;GiFu9LQ9-$IUT8J-%QLzPgoFQY+!rNnXZ|+l$q){Yl{Lka*{KD%2VsT7;i+ruI|;Q zi($`S?|E?^$Wm{E(x>F<0W(@0jbR%v$cxq@SW++v0V!Esvt&x7y>$uxHMax@$rXE{ zLD@o-;W{%_Eb(CQ&Xg%_i`Asqe_;sY53Ynsv1?n2U*g9M%lLGJJR2LQ(@c7QgwmB= z*EpRn$L6`A>9jqK>qexn#D`)M0a7OAyGobuAepF^3=R!O`3^Q#BXqU#ya?+isL31# zT1v6}_KH7ty8PO;cL0`V)+$yG{b3r-mDIJt#6-3o;6N+(-G*TAXNcMRDZt*(5VQA# zgS}6N@}4w;R_qDor`Q*tPPwwzQ}6;d!t$k$NU;N^p?7n6g-%1`u8?0xj)^E20+`=8 zDGeiRVVGNN;o^SrC0HKN9C-akd^?wEJUkJR6|W_sy-<=vka58xGRor?TJzoX36bfkaO~MjHH;;+WigwDIACht{&nZ{jvXND!u3vazB=yS>q<$H< zu3tGJuti;rOUPKi280IGZwn2OOOl$7-)}XDg<|1QMK9GLrd2T7QNf7Nh~61Thz4*Q z(g3N?;gW$NSRl@p{CJ4hC0`F3YHej`;4b({u@7Xi4@9vK3=Pc9e&ci9ak-qU4%@sY zm3rH zT8a(~MEubqoV678BgJqe_Gg25!)V8_lPMn9`-H(YuBpc$CBMN~>wKqQtgM>IlPikU zTy2FXi;5{8WzE-Cc=Udk%@Z&3y;nFG-ovl2EbJ!?!@7sEi*jkWJ3MA(~S}&g+l}HU zg*Nx&Og7Bm#thw?LiNp8L zKKUq(^+L;gH^Wyh@s>OBTJyT`z1Jt-{BC?mqsd35$g9lAThNW~{XY2)&G4~b{-NRX z+EvTK8=;u0jKIUl$b3|R?*qdZuq&4h2Cl%Gjr;J7Owv9yyakYnU0D6sP4p3l->qh% zIeY|u78`jY<4VTel8Gf--sG0||#e^?~bpaHg+smzU_W~!Cz(KnJ%&t5it}Dhg zJcwzyC%h-Wj??0Al9KO#(sD0|4L}VU27<2^LF~w-s|vKp07M3ILi?Y-4{`xAOGk2WZUgspQQXx_4(C- z^ogm#|CT;o6t!P{TI4tweSY$v>y!O)@A@R=f2vQLIoMzQbpP+^({n(5dJjgQ^H4wW z{-Brkz8r1+7i{lCbbBvfwci%caj$oclG2w(%MaM*eFxI1{~&Z)ez2`Ra6qkMzOcVq z%J~O%`sx3MPC1VEu2WL}=Q__6gr?ziw{nx7*Y?S?H@p=oQ3wTQ&RrtIxRVnPO-!~;P`aV zIxRb(PQwSM(|;e7POJ7`PdVT3U8kh54xUW{(S(QRvny9F~vOyogSc`uIf{#r1YiJ z1J~2)1L-t+5IQ~RdOGNUIvsoIUY`9|o#*5SIao?i8GN2$(hU*3W!~(`CEf=f`v*#| z9A-I`cZcQG@k=nAtQdyW>gx$6GX1j8I3Ke4XUk;*Td{R()eqN*7~;(Fk7FvTFDFRO zNBAO_CE4NeC&^ZPHl^at4pV8zXGk1O|60h$k`3=kCH>Puzy>ef-4Znk{@(gYm2!y* z%0KZH@&h|pIa$2kSDu(qN#6>+iFmy)_Bt|Lp)+juW{MFX7J!J)k2u5(h#eoxEhKzB zL3MEtSX4s~DK&bCV~$DWAxKOdr_RKJpw|f_4wfSYn=14Gs}ONiA%`I4m?b!s&-q3A z*d{8eccgRYK!gTuI+BPxKCq#X#3@m17D|5HY7Y3Y+6!4h8zz&-SJajGxHp~WB@E78 z0#hGFmb>B2TCZ2kZkeM7n&v$mmsXZlLyt= zNZuuz>{6{6Q^djXeu{XxgX6;j;uQ{#*KWis9UMpCi1&AJeKU`pcnEPi@&7gxf4;v* z{C+emhIiuk_lV!$BYuC6`29WN_dD_T@1Kpo8g8Bcf13lso^oT#uBmO{-_yaxS z59s(4NknOj`Pd{5=sIo4qsmbS@xCdfD;K&SWw@O(OR>c$<2c?ov&kptvA_|A z-xVH--v)%uDNi(0D{NHnjaZHrz2%lufZhtrDLZeapIFB*_0`XR>e7M4zoA31cso~@03j^pxkHOeu5A7TZ zdHP~dL^BTBgQ(b2CO&Z+%EHPi3-$$PLKrraLRLdw;$6^_RcL4Uo|GZ+DeAxBrTvd* z=~?=+rbz?LEnP5NJRbgug^mXW2en& zi#UNc(DIdQQ)^yd`O*HUjd@562YZ88`pR*IqrPCa@p+RvXFiDywonqsf`h0Q%yOPj z4w+TqRR6AgFM4O+K=eiLgMn6>gTpc>#x87c{Hr&94SRSDyDJbBeLK#pBmEqwU>UK{ z^6s*|yEqbhF=O=(X#8h{Qycagc5D?xuy3&Bow&SzvSY_G!}zY|F#OgR*fAD`G{lB- zD~r_oZQ-bMhwEGsyem1}GR+ln;R|x74p@ zVJ?AdF?|DQVpMp?XLVGsnV=|1f_K*_s|+vfsiLgk7({L~_;?r^)X9#mMG9&=N~JeS z6rh-*BT(eY7Non2Jxc9bcg~w#$lz;P95sPG?Oq5tcM`1K;n~XdP<_5f%#+8KGYUC3 zjgwBiRt@R*s8*xX!dx+PJzAOG7~6;LJiQ6Fn_90lILC_(5nh>+t@kF__-ajMVr;nE z;*(5#HcpbG)KE_=oLQ|zf#F}|Vm>RvuJAKf6J=6MaUwGa zYaDjEh8?auJ&any^p&X0XT<>zA#gtHa13`i!~u?&;~@@sK=)dPIN(w1c!&cYxO_`< zh-3L_Zvj6I_Tt^KuR&v7Z;*WTPX0uiV4sny7pxrE>BJI;SD_!kDU09^`Hlrgh-mjC z6gvmhV1hk7=C*Mh%HfIWNa75zV@$$K!(?R`W2fiR6BVUPoH|F+UuRivN7jybt ztXH*6Q$dJVhsVx>aFo$&5LTOLtOm^ZZ6KDogOKew41Tuba4?3$mO?gmKO@Y`Mlq?Nvn5G%qD2m8n=)gX>E(GMJ<<;vM6ULK36=fMPk<@vNHZON`EK1 z_Tb1`Yf%qxEX#r;ORSnj!jQGRwYW6Tn>YuN8P(Mn+KKN_6mcH)i< zWp@yl)cWFBumxX;YtYE3r3QtpY*A;n~+ej@U*Xi&GjG9N<{ z>*1MaE%L>&pbx^hG@V0H((z{i7EAOw%`{x=H|?}UO+CW#YRmlLjgn zSDxU^f44N8|6eGCOb|&&Hr*12>82w4Om{E*RC6!<%Z)0ql|+@;@kSi`t?jT<5)n=` z^H&DfLQni6lovMNGz}qy7XN0izPoz$y_mjOtfRhN1wHT&A2;EYDk>T-=fhgy1#s}g zQ$@^^_VdS1J%~LMx2&aN%fSsJ8XAK+F;J3!f?xWVaN+BtuaMxnd>HF}G~#wv8H!f_V?UYNAhO`Sf>kaLXaUY0(u!Mq08phl8_)^CL z13%N^FIQ1G^3O2z;;&o^f^WTQDVm8%955_{p!p@DYwwX8}gMK47_a52XnaB`_ zl*<0&(9&Q;Ah%d@HC(Do3Q3__cn1k9lGGKZkJTaLiF2{uS{OXy+#Bl+g}1rr3s~|v z94g;PV?plq%F$(KUcmFEqomJp`1nyU=j8cnQieu#(C$uFIcTHwjH>r>0KQU8mxL=T z!{JiIG#Sd4Iw*2nvQMYuV8v`G!e`Q`Hqv=ZT39ETX70ad`Ra!l72|9@qrw&|AjD6C zcvK0A0eL;Rbo#N;9ggU9Msm~1MzT*j>B)4ybAWV`Z{Kv%Hz%D$xyEB-x4Al$&1{Wb zON@7dVV%T#J#)%SzFzk>M69TMb1t8g^HwmPddEVt&>LQc25pLy-41lh!ren6H6kf}R3f&F3m==*T%8#LjT8}=RiZzk)$mvwJjm|j@gh2=S6 zIj(n>4Z?CKSbCm-^)PMb;PL1}_l51{qxLzZYziTKX(5isN>Riquddyv&&XDL;%8v( z5oywy!;OGoWr=MOwwe3J$yKnI)>Tgd~|$EN;G0xUy9yhwC_Uk+Qh?G~vqDnjEfU$VJNH=9R*gtvESctH?#l;^rpd z%GRA6u2yo9vbdSMmY$sR>N#9%$;FDbxcMI_H7O;du^g^7jB})R-zoP)#M^& zar1YDE4LnH^mQz`NLgHWiYMoAdpN7oqshV=wz%%d{gr7^;-tadj=<~oUSE_LJEWVx zh{kpVifcV&FJ}Mcm2a@Wg)&CJf!PWBjo80*uW5S67fV45&Z=kY zwB{ggIKD=X#5+vLZG{-lWfNECj+Hk0J@i)|*}%d|Sh^&PKq~i0Jgz!$dv4^hUTmYB zq@&ALElnj3>dBg#tx}pw9Mn!t%~mB%B@Sv*Q?pe_Q;CDRT~o6?kERj_b%&<1V(3Pu zsl-7&MN_j?MN^4`x=mBFRYX&XgNm20RByJI(NyA~CP?k6TCeWwze6>4>+7l5+`e8! zbq>>_(iD~3&3B`op{YF->xAvn)EQBC8L9~FaO_=11VE5UCouk^w_En>CtmtNl!33-C6GF*)C`7GSSV<*lWL~ z7YhxzgFB`;NjEDpELFK8v*X`khntybUd^ec=nXxv!YM>tJDTELv}sVGXX3^1!-_HW z9u^Ss>(E7qcO~yah}e4+0!~i0n-&&&8cyV=Yma2P#mpV%eh*>xU@W;6D_{H~ps_6o zoIw&mEN}7-N`0SFG1vf?#VZh?~W| zel5rcqf*Yg4c)(~%RME;Zqs?_raII~x9k&Tb=*yJu^*X0xsCWB^mU64)>B_@Y5Oyf z*L`wWtWK>#{ojLMzSP(gyA>i(S^?WpnA>|gtG+%T*1uam?bz+TWR83OQSh;RbbM6c zPxh57bwIzz$t_EA|8!q&yj8>hB|aVl3!}7*5xW3uot+Ni2fG2Wa#^}#uiYm$i_6gF z!+EHdq(^P8fNflJ8($3h%iIeZj>SE*DT=_AZ^i@!v2I3Y>LdQnm!N@yKusziM0^L! zpE_)sWO=>G3dAfXP4MZjTYviNGyAa(YIZ_@lG`73{xs+YN0gx(i8wze-fl+E>JRfu zyf_N0<6T)(ATb9T8k`(?nIm5+59tZVIR}D?5=zZ6QBs!=!zFb-ceDuI>$2TGV_++5 z7h~f#XP?@V^B6dKOj{>x(vrZueG`b~Ob{EJxlv(}7L?>lVuFm&))5->V6qm{`(DLr z;$cpl9@PbXl=rR=v3*id*BHne&ETt}mk@n6E|j2@uGWQC!?1w1xc12I(ttK(f$x1_ z$inRyU1QFSp%6zQ`kh6EntGHfMUt?GU!YDrMW+)75~a@BX{s9ge5?ViZ}decz;hxk z2vdQ4?Cb}cu@$$o5blOxau_N{7v16!9|3fjID;9ZZ#nwOS3^fT`qBHS(w6i-s&wag zIj!46x)?&8&BGAgDZ<>%!`)=o-TMpJGb$pJHp&y0uzS6ukeuX&s6FY3_{5HcTg*2l z|4d)@>Da{u7e))RgyRd~&#SEWy3!@^U_YqKwo*kW>UR&^S3QJ^#Glz$ZL(>AuM7dW ziOOGX{wf?l6!J2goTZ|wo|~%w-91&#F^Um)CHtY86!RTfQ49a&ew-VEN&R2s+>helJLDW`?``Nfo4xu=wiZwuYIF5k3Ip`&` zEbWK**;iqPpm03hq{HbFShn^3ZG6mJh;n6ViJ_IqiliIzf^`+WkvQz5>5|*AcodWR zW~EqC4TosOH%v0N%vcKAD`PH9y!Lw0SLK=ulk(Cwz`S{xe#GhH^3^pz%GTLV%Da$*B35W-+A>P3&VdHFftajpyN&jUAUVFa?R@mr^)Br*Jan)l8q8 zuhwjG(qpOBNDmI=ch|3-hVdF+);Zcy*9)d!)5;^Z^#xR39Fs|rHU1ScAV)58^3eET zMi)+>ny(H$O2^Hykn>y|^+$g%`X8)i!7wQs6e<-ZkHpThIAUyz+|JI_BJOdsN%L2l z8h#lB^Cw&8U)YDkx6K&T=Avpf#Ju%>^iRS8Usrq%d~wiReEih~O+Fa073v(_%;eVa zF7{b+POxhJ@Z=MXTZHYd1+!1p{SAb%8Fjdg0JIs2{o3&D@RAY-qRx%S3KpoSQM z3?3fiw^9Q^X}H|{p1FHS9!i6LIM4%FkBY%xpB(*`liswJi2if{$DqNg{%~EFsN>U5 z7qiYT_FcL8i9$d&KU8)1{D@C(eumcI@(m|HLfv0}GQlN3gCL&ykzbP^y8om6xE1Vu zDSY4&vUm1_YGXwJEziRbT?DH{SZYcv1aIw;ge_%n5T-qf;g#nT^2QbU#kN0I0v~U@ z4D>zPvJNjd3~L{e;0?KPKoPcc@D+M|ARO@!KvmNOE0tAV#)K-pz*h>XnA{n|Vpd9& zjzb%AXMMH~Wo+lsD;q3hB~|L44ra>uBGvC2JwLS6Z&g2I6O(I%`;dQ3@lZurz2db} zyTn;9PBx*~05m3?h`1EIn$H`rBQ-V?1U9+JY;x#OjJ0HJ7^18QjkV-(@+WL=Oc=Tj zT{TJ829zOSN_PQOB7m^F04f9mbX_1>1n9BWQd^KdyeiAhORP$g-moguBC^WS?S=CM zNlF=&?->>e!q98jM3F53T^Y$N(dIB~TXPDlt+L6=gU-fRlK^ z468!k;~sWq!=V!SQpYD1X+`XBXwUhYC7uU9e>fI{mnMhDkAoRK*2Es6H?Alsb_b+J z+VN@x3y0h~NGuF)1cFZRb!1Kn!zScF>ctJ~=PXm%kh5Cb>u^UkTD*Lq2@qYk)$KzxJce%I!zmGTm;^Y zcYZcu)awZF4tIFn;Em*@5MLKyFhW7)@Af9ni{MC`S@Y{V%TNJ$CbxbH>I(`b&#o`< z;roac((7OmmH5NB!*K@8 z)CI11tH(r74`%!zGWs@3- zLVxVP-n|cvQtYm8TDm>i*|vG)lD1@gYhqnnGUHm(*1EneQ6Jr$To+GlYF}F)UEY>R zw#PfBG>#n2fA!Hrwr=X&nrNHS(YCcS(YmQVx@ha#P3`LrZQH&qeqvk4l(iEkw2oUh zZv2>*rm=0Kn_GtL8`;*5&i2i1PV7tD@UlZG9;oEsq8YRJ|MBHhzxM>5KjV24&r^7w z#`6rGzuU5vp4E81 z{BYE*U*WkZZ}hFZ@LY}O8a&V9c@EDDcwWS_8_!F4O7lnGT85__PX(SzJpJ(uz%vj} z6`pE5&3IbyOvEz@&s03q@O0wYisuwO+wttclfrWTFB8_yg(t$4T}QHN(YRQnJf?9VE6STd)r z!0*j?j==MR7wr?}fKzJ6%I3lHCipN|JMR(&138}VR}RP*t`ny<>k?_h+- z7jx=rJio%T2G41Dwt)UkJRjNUpYYp=XEB~rfPWj$op_$c^Dtz59}kY>suS?wbc}ix zzbiqTi04J5>pnc_JQWUMDZD9FGx1!52k&&$qmcPyJcH4>O~SJb&t^RQ`xj)r4jr5W z{2Dy8fci%aE~PVYl|xd^Rtfxz<5?}Q4zStN8)3AHLRPP&F{-gIQlmN)q{`j|He!Qy zv`p;#BsZ$F`x4wFU0JWm8LMvVE7Uklefr46c&Q`33Y@^t5qrUxrHIRE%Nwe~y*7cexmg;C#xj*t4 zRkuHKqnf@ya+6xLKk`_7wX~n4jZ@f!>O1A*7538mCQne0?2p{6cJGheqCW4NJO*0B zoXR*jMNY=<>GgkKCj#-yeCbx_5u%aWeAtk+BIV zu>c0NKFJdlK9=mg(`r$3LF#4LYgDUy55wBk*%xVy`fgvOM)k|SNKNXczDQ%$r+tye zsbY-ay>!Km&<7_ty^O-AGE)?sG8ex$4D z@OX6o5z*F@TiZ9auHDo&(iNGpIT>9S-@LiCV|}ze8Qt1(Vn=*i$4FQI8PTKKJDM7! zZQaF)oc@rrDZcK+w)N4?ZJXnX?YSb07DD>k_$d^(Ve6(%BVFM|@kA%lj(8^`>*#1( z*U99B8TqERj^jH|Aho^Y3z`FFTj z?L?u59DT2EPqLVy(tg=6Yquu1k93tB5=TWjMUp<>QGDSMTRWri4W>{JoRR^D#J6r* zFU7i{9Th0Hp?y+L2rsUoQp0I-02n$i(6C&h`!M>vV-X0qNgl%F9&NA>A0( zZEA1p=#<>-IA%~tx&0HYU|K=rAOGbiEU#ORK!fS zZQjy}S~+NWYr^RvOffpO0QF~U5|ySD;<2F+ZI}KkvD@<8t8V(g4-_pi@aM=mu(0x~H6g^YJjP>giZAqqO_Om=!+Q3eaS=3#+luobx zbqQ+m66!6t#?~Mz_Scf>UWW|yr|3$A?kJu0)Fg!oMoI?filMw7;|_Tuh(8n6!qzQO zr)MbV$UusdlT2sKAZCa{26M)Psu|H`>$ad;qC@Htm2L*};<{#T?LaTI?gTwtj?@)O z22`*`x1E6YgpLZDLkGe7oI5I_U7GfRcDPl#4Lu+>^eP5JTU$bp7#(Qzo6Rsf(lt=G z)_Dt;&h4!btCzJVj>jM*neVN09BddiBOmP@ZN1borc_S?bi2n*V>g|1a*-_M-2ZOBc*^@s$t$^6{L^&Ej#RCp7Zlhw{js z40pea_bNMa*8*O&J#{MFOFI*2NJ(;hiXEO!HSjxfsak)rOYR#OGWW>&vq0+v-aHMo znVaHk$&5d2Aru|;)t%D<*kxCryPEj%J7fP29=_k?F2ONaNIZmhmw2HfTQMzQ;JYz+ z3on9jk6nR9-kF?$-!yQ%^^x-|Sa_;q@QlI(aT12V^k-PUXW@gLd6RRmdZXx-BCq;T z;O7Ddgj^x78Y-|+;L^}^`0Na=2D~gp{%ZvOMBuLkJ|%Fsz_%roRs1RV`w1K%a6~cX zj1xGc_?4odT35WVxKN!_d{VJjJzh%5JIfgRHw2c4>3+AI{$B|EP6geURGop>gEt9$ zu!=ID75H`ysq=;ro?3TeomV|Nh_TFU9MTw6M*(_O(L_>zJk=E{RC{MJ-o3LZt#&ry zoP~s6ETqhtOBwd#r3=9`Wm#<5(Q5TFmc^(eDdEl4&#w-uVQoy|TO0nk!K?1rO!!-Y zy9Hj@LC!lnzSrSZPYZlcU?5JP!2+iUTrTibftLxqMc{Ms-^ab`t2pyAWy_!~UbRx- zxm!+v`(}ZUY@wbX-NLy3yoG6aUEqh}Q+86|B(JgtlREh%!nFc73cOI@jRJor@Bx8O z2z*)Ky8=HE_@zKQK{k~-fg@H+y3CGf)}V;S5@7&!Tpt%&ht=6dqU%;VaV>Hql2Ov7v99t!AH>p{hrI0AQW`($fST>}3TP0C-}#x#dcp|mQ2jRL1`XN(KCGwg4+|8YZ5 zJ-eN0enWgd-OhSawu96$0uS9mpH_kYfKO0;v4i|2De|mL#g=*1hE(9Bph~5fqsvmy zV-w@fl(dvne;;StL}M1n-y)n*8-?CT_f$n{Ca?hd670l)wnQ)+hd}(mjuR{>C$x)T z(}J8OxT~SdRiw^TmjNqNg9N+9U_&6c2ya*zLz$|fy+HLWumbcJBh+<><2~A4Qv-pK zGwSlV0>J788|Rwm3acp6MB34y;e;Q)mnL=!XjQ-#h?Gk}Q@{>Yr-SwbkrGu$2Mqr(SjR0*tuu}w^1=>Vl+a>m6 zK|>#|b_lH#SOC~*f_(#=b6_v#62YzptrFO`1iKfs1;DNpT|aAmU1S# z>?E~9unz?5RI3Cl@G|zT>KMVs2)0cfC)kmKoubwVwpp+pYOP>j6YNyA4#iNUt`}^l zS})ko1Up@I2=)i>czcXG3$>k`&jKrQouyKOy(8G!xWkDwKt(5t)*|Cs{rpW&vjjg5=a5#>_B5@8|+e{?K0SR1iRK?mkV}lH|&=N zyHaQmcf%ex*wsS&tHG`n>@|a3FW3hLyFsuo4E968+`+mXO( zkfVErHdAO_D_TL7i_P=2ICE5k;)G+hP%{Ai!G;r zfUW8tHBNe+I!x6@s9&jX2zH3UF0?%0Yy}no?PAN1IDTBc*0ytkZ7$=HF z>K}qVjed>T2ZB9=leNV53icOOAXp$snJ*|DI0Y>t*lvZR-@t|lwg>$ovC+WJb-k)^ z5)Ie{U;*56jiW=rW(eo&xb%iOIyA`gdt2U_7pWD(`L>#DGe>KK^Uz=aQ%#p}ok42% zT{YY0sFn^=OYf;e1-n?neXbUZ%xi#QqOFz-cB{dT6PfoL&NjiG7HqGI3--CePO{nC z`0|+Qkn3`ZAtG3%>k3KB@I0oa(si|9;{+S*xYkCWAdGoIeuI5w7Qib_cL|R;}w*!F~^H1+dozd(6=O zDcH+~_JLrp=8d;!U`_F^aS4eSfS-1+0}`CM`m)j9yh9%s>G6M1YVI( z6543cYJg3{_=3yZ@~N}Yu9@y@Q38wdIj)R$9V)b=fRVOXuoDDpa;E=4tiR-nG)xmu_G*Buh>+roK=>n=(4O~4A&Z(UCd?Po%J30PLj-&}u{ zwEP}vxmW$ewa3j~)%p$c;XhCa&UM(X8>EN zYOFR-04ci^*f?Mvf?X}xa4RX;4+I-wZSzo{cK|C;^;TN22Lu~yu*U^!HrTU*tuxrm zf}L!zPX)WkU`72X^HN}4h+!bGfO-WODz+NZ57yq)+tzuKqvn3p(tE&ITNeOR>J#gH z!Im2gW{!}*6M-EI+9e|8WJnpIzO=3t>>`7GPp}&ecC%pj8|)Uro;KL+p6d|b2NJ`V z)*TYV7r<_IeQDuC4a65L`oP*^2W))N0jvsGKn3g)d`4KLYB8k-3iVb zHNu`R*rO7z);`p0L+0#G#$Ib537S&BJB8R7`&ch*4XA?cN{v%v4K^a>U@moG@gBUR z{7o^ZsgD=?0G}1Or#K((w*>yHxF6hK3G|orbJ<13rEM--Rh8z$Jwn{$=vLDO&Jnn{ z6r5^>z%_s_wV|{f@Fei-c)i|#lq%Qqu6IlKsO4QB3H(A}VHtgf2y6y)tFz1Abh*{H z%RT`7tZW>*yPLvqLe8z>4*>59Uu?P61L1LinzJ}U&S<2@*8E;IK5`h2f=!DY0XQqN z6qW9Wk@EoQ?^1U}sDa-Kd`#fekqdj}Ik}wt=a)YOczyX(wyl0z{tDnP%0Gusw1R0H zDR6Sd4)h#zDoz7Drs6EX%@tnBsla`G?yc^`bmNg~mS$f(PgZXS&u)?My1)+wvYuew8zsz@Tr56Ofuo{3 z5q3iKOu*R!mquBOTBEE{nyTe!w}$shdUUFC{dK&#J~}K*)>fM(#ycWR&na-b)R|G1 z_=V!WB6<#VNC_@gJBV=npf;>}?+rZQ8>VjeKL#rG@6?kEi+B2*8v9Y{yFS)i!e0#{ z{H?&xi|Bq-+)oO8Uf}Bj-xK(mKx;5L0|JW#mJ6%`9H!1e9n)zTBx!c5X~X~ScdKKE zy8~{uX1GG#ZX51{yKDHnDC@6_|HZ?L;qy~*KO*pj;jCS60@`YDY)HVRM#OFa&q=YL z1D+8(53S<@f!D_<`L>u3lAnzI9-IS5JO!U?vB}_8_l{sKdPd;O0{2BmyzBd8+_=c}*JG~h=TQ&CC#2>z zz6?{7TN-^ZTEKc6QZF?!4Q~njXX6n_bFMbD2DCOJP2{X@VqT~Rmzvqc6t*_`;NA>> zmr6A~0FAMwYv@v!G<_R!_2hA>E5-k(66#@ua;aSR9`S!i{69gwE@h3SO!gks@ZTXb zA3iP>5&tP;nX1;YEThe1nVt*A7Q#5h>~T!hq2uO;mUk^5w;>c#r;mf}o31~=e{t8- z0`~}fTj1w_AuL^A?iW%KfiZy-1s*Q&wB{Qib8qu@q&eEcG)w|q-1YUAet_2ryj$QO z0A1?kmbbhv^>zz&wYTN1Qk;#S_-<*5s+jl@+#>|8pEwt(WestuQztUb=S^fi={I>Q zKHDBXc^=@j$x8rP$6V^{DGKfG&ME9qem#Z#$sYthJB4k3kH9y?=Us7sN?7#Ol#9x| zQi5L8^M0r^kD>jd-=6BjS*2-_--9}D>SKV5r#=OE^wcBJqIXSw7x6L|A$2XN*qN)& z57R#kNPo9lKaI8hHi4_BQzxfPe-6|$r!&_V3H;gg-S8Pd>nX@|&;GF7rCy(PA%^~Yp0RWX}A{~)+Y{R-6P*=~G7e13TVaL#PXJVL1Ccfz`7mtaD0-bCi&?Ae4D3A{q! zO#**GXhy?7&aSRl-t~mQ=LBx8sfL7?g!7CTC0rm->u1_j`n)x}4m|JA&WHPRfu1>Z z7YSsGp!NvaF0gw&rA=bYM;ok~Q->Hw2y7HMRp4BKD+EriB~L5dOlLoYx;HQnJ{#u{ zHVRA%+$r!}fl~!m3EU-cuD~k*og6(oh3Ws{9Kt&U?py9}%_jf8`O^8FHTJQqN)|)K;&|Vd=aB_u{U(bJ-$}64);A41rewx=@$yK*>Hd_YZ)N3w&wr z<8Xf<&^M1IULtVNyfU=420&X)n#b0}l0q97$Q-%U{qxxBSyCABrT1WopjTmun9~0j zc$Rm$<`d=#3=142ut8w6z*z#15O}n};{_%Kb_qOR;N=2u6!>F6TirXKW8y=AF7=oB z%*BiIJMdxk-{vO)-sS1n*~{5$yAk~>>+XG=S^C3m*u4&U=2 zceZ+R0U`5vnHyzfdWSe93yasz(WNdEpVg2Qw3fi@EU^lT{+zXtq0STd?S-7H+#sQTyzr#{UeUSJ_BnpxozgK^4L%OPdQltT z-HSF3Slac2#rdwKUB43eu)s$JJ}q#Mz_$c`DDd9`i+%4v7+mTt#3H+nL=LEhf z@MD3lmErI0(nzY^mIJ5O9fXB4n33yWL zF9FYQy&v$p)`tQ0j)dNwu-CHB=lsW|^43log044lfaH&yi=|2t7t&)ofm#v*W z1S^-d3xtOw2=^Sk>a2AfeRi$m==M2aNV(U~9x_JtThDoN<$B7Y1eY4Ro-vLQICVXD zPV{(m=z5MptJW6}UEK9=;qTYRIeDawX*Y4QK2_;XZ3 zPTLLx|L@wkPx9xs6>z`QcFa(_h@*pz)g{L@J-1)k$<_VGoz!IA)^|qW{L9wId^lYq zaLLvW;Bz8iiK}+|^J7a~R|uS)`gGFcQSPpt>HkjgtJvm#)?nW+egoLc8Y{n}_+6X^ zct3-Egx5L2K?;B8fM&aJazLR%oytpcSjI!M+Y!v8p!McS;U-m8jtcyP;$Wu+awlF=(Z#*=Dq))O>?I4qBO7BAC`$SS2(KdEbl^4(Do`e_QERSGl^#U}u-^0Cu^-E-CGD zRjBI>c4g^sV7CZ%iMpfon>bZ)LJjkGiF&Z~a@RmLU>LD)si#Y?cU7xdF^#=c`Xkq1 z_5BgV&XIB-s(x%Rmith3mtZWFcdeLuII{Z*Ccg{!CopGVog#P80_`35!PgNrN#p9mW{Edsvj843O57$iQx=| zhX8xlV8gfm1zu|o2=<-puy7N zlYrG^I8O#PTCmq#)Wi(6$Y9jOOx39|=ySJgmbx?(uFIOusPXrR=Ou)jqY+b@a~;fc zX80M`ybN}6_#A72x=N&+g;ZZ-9j5-0!MGE5l4iik5-%1rX7|U;^>dIhG zxK^pV48|NCtzI!0%l26HzQ&|%SF61SW7)1&?$J8cEZfzp*$(Dy)A=%86IeFSHBgRy0=NGrwztBh~u`6 zWY%?Xr<$fQse`Afg$83C>{81zwB4>V)LIjcb?{8}b%U|jI7?k;FxI-W)NKZ1%{p7% zr!lEnUsHcD7;Dzo)Ki9&HS252-=tH= zK760qXMTVJvGYSwkWEBDL{v~zG`C!-G%Ybv(bQZ}(WoR5HM!k2EpsK8G;={kqtqlc zqg=AG^j0iIGZQUJQ?uu~&N;tf5beJI|Nrwo&-=OG7d~^%`JU@K*IDMwnKR38W;W^0 z30q?RF3ioaXG|jYZCCw-Klqv+weF53R z33Fdajx(Zta51^Tby$`q#G^T@5tii*(wq|J-bq?c+L-jTgij{pU#Zf?J573<0nl^a z!=;rbP4pfktukq*_e5#6NlU$7l?p60Lt0M;m^mzxHjw#@^m6Z2(tBhXr|aJ9fL3$5 z>m4J$M>cYD_t^ltZJZkTpst8hB&7q4phh2n+`dpWGk>^a^ zpFpEc8ZPZ7Io$Gyk0|e zCLiF0=_2HhO|tpM$|WXYx+9!ex=&5r6`wZpXC~QvJISA$gy~MyNO#iIUGeE7pEAkj z`;7dxNth1b?uDgh`JFL!SA2%a|1`bF9^L}qa608~L%avJ5gQNB#}aC!~s3OUYc zn_r>)Bl(fjr$ASUn1Dsi(=YjbApb=CIsFB6jl^-X`+qF|Ofon{16?O8I6dzFsa#2p za~cA4gWO|8Uh_XD-z4=~(j0)kl7A)9Cb^5hksBtRm47E2TRAK*%C|{cYX`Lv?vPAM zCBp0el5m$yVmf`P|8@B;na^p1e~fsSyw7Q;zdO(|PW$~6#Czl$PRIOL0jY^J2mL(g z{v>rcRf6tMlEmpR(A_5kIXT&5fTnTsvscOY$tF$_RCk0^ORBrZsf!)G+~d^Wenh%Y z;_&4}Fb^4FzYShqH%WpgGFF@9tf<0mle`rt!MTkiU7%7&7-Uj};x1%z8e@-DJcM$S zk`!OzzDb=FyWk4H1i{?L*t;wBgjY;@S_u+Xn3Sf32wO}Vri2L|$&Peml}I6sQ>Hyj zi4q2yl%vE5^G%wiG!u@Pv`}dw+~bsOe^Y5CG;BxUFOOu~*C=Eiz!I@5Z^T-B!YjwIX%A~I9>q41H1Jp%AG@TBkX8_ z>RRCnrw{G!@C=Mjr^dNr z$p|P=-xmVtggcMa3vd^=2}zuq1#D8c3*$Mp57?&e5N31gAFvx}u}Q^1dpV5?IHc|r zDmhIK_)Og`gmqypI4ap$6jnU+QZ`FOms9s1pWO{%k6blC_;fQ%dEf$Vbsu1uv z{h@G|6CS5O5*qZzbQJ;~r}qnwbHXF@0U^tz8Pdl>0Vh0$9}?d0gXu5_NjNO*G3l0i zSU?TV3tp`Emx}LSVzktIhV+?m%CrpD%7o;;R7c0%V?r?_14o8qLJ21v8IB2`Q_9or z^%KP7!f8qs0_JdB2z(N~R0x>E31JkaQX#y4Q|+Xgdt&`o+9?Y?p`GJYqI9n>373U? zG+l`>gi_p7=rflj)*qx@7Pe8!AsL{%E(AY~x*Rfz5{9w1bLx-Lt_$s{u0lYn6f!8W zR=OdKwdigLOD(#a!b*$orch$h{UVfEbiW7<`eA;|=dVIIC6?c>LJNzoN@#1*RSEqq zy5EGs7Ts^cB8%>K;Vp~qci~%$?v`-fqPr#N{j1AzTX3bs%5qz%XVLv3gjjTc2;D8Z zJ3^{OcSm^MqPr`MwCL^%xfb0$0lzea+a25bp75qc_ouMdqWe=Qw&?B)B{it52Awh~ zU%M~dql9N!3pFCTK7;wO>tKR7hEg7#n~LHjPVWaU*F^DEP9FyL5F~LXr?S94K=V1B z30$ek;xbOZ2EGGSKxsO`8Y$wBOb5C55meE6Ky~h#xSkUBfQtva2CrsEz3KXI8!XEZ-?Bez`U{)1*0x0$*bl3o1Nqg*d?rCj9A~K zrVShD)s)zMIt8P#CU~8%C2U}|tS%Z>l zP|X(X5o~SiK{e=|U~7ImYvfmRi+vNkN~$hdMGdOiCtMo!vDD9}QG!sNu1O=w;w7<> zwPd|&PkQRiKB=KQ*=U+2hx3g>IR!%Bz1wJr9!UExQr(atdIRxG+RJf2%F-K( zxB33iJ0wSkFM9AkKQu&=s%fm}KdN=g_>d)fh-o<+EW=ECFQkuNO&^48un@LHweDz0 zm0V5bAv-LVzl7`oQl7=a;MK`*fx;*)CNZJqdbpTLX}aDy^r{{qW-|iI8$hQ_x}!&m z;m@I$JRSGVC^3dog@HXJN^D7~)W9trCHCN!BSM{xDDf$7iQ6_x9L)*)V3atK6ZX$2 zF_%&fSr?iBUhYuJ)AxmTRI_#}c zVk1u2lcU5qO4u%8P|i`5aBIdI(c;ZC%nzxp(M+@tc2G~Fg_ubx2XxOHZN!Y{9lA+I zCvm<>xkgv9$fWs353ziR!}3j|m)LnIQl8#6Y@^XfT+FFo*jAvoDODJ_2lN%+p){Rj zh3zx?id(r3_oGyCHz(YWQpJxb<>@$@ri!JUmWLsIL8(;7HcJ&xGoo#lDn<>%vQ!w@ zvr@$bN_pf!*g+#z+()TII2R@fPl?C4CGLMuiB~z{p7WIW3n$!jo)Yizbd~U8-lxTW z!!d^v;jgf1LO-#9(sWWM{Bxt9n2>>20dn-_;Y0NPVsB2pfu0dZ0%6H;{~I7q;e`9& zKrxq6i7+<&objx9iqlL;H%PRNz;vYsjs0@r<>_0(V}MdAP1g^Hqi!Ij z3IoT9G%=kMjv;B{C~m1nAZ2oDLMfXO^od`MG;uy9>{*kHbg{ssTq8p)GA-vDqr^{5 zdeayqerJ+o8!O(UR6?-jCyLo4SxewJF;SdHsZ_`MO%xY$!um}Vmr%mKn`=xI-(y53 zMeH-Ch#zoE+*7BDA92EcWvY14Oy_EwDt>L!eB%}Iib-!8)5JR_1=?N{174tQP0KP< z45P$KJyRS^slveVY^L}kB`jGJ+e|Unq&JN@;!>058~+eDnv`UlCw@kW)poIXiW19V zvFJLAwF~C3Sgc10bLeVYEXJBN-&iJgFzHR>O)=G^XKX9PEK1Dh8u0+795O9pxNVIX zGMeRpV|js?$O*^t0x_MDfMfYP;zmk&WO2ke+XnFnrBWTY%0}@sPPoN3ieE5GC}*~9 zqxcge{UG$EP2#VdzKd7|bdQtKI6-_@l*eFM^7Mv{R{{Bqr6m(Wyr$bWi*c0L74pqu z7fRR%C1JDJj}p!?+W=+qba+i}i@1#vyC%0qEN4Wo<-I4mj>8;Eg!zr(YOmOj(+Wx@ zoZfBxhV4D^BBwo#SK79U`goSEwDEe|HZhV?sW8I+zHNt?&S{MOLtBx!jMEJJr?wBp zQ=B%~zq5TJ`b_82ugP5y z%Q)dRxeMZHN)=GQCQjdrkrOe$3So>r(dkDqi_;8y7pF?`xJgesRf%Pj&=RkeWH{Xy z`%Pwa$v(k}NGmAilEIPF1VuW{>BYz#Cq=^F0^u2ScH|r;7lJYHqg1*ogkeHx=@fO<-~IgCaDrAo!GF?t!Ozf?7y z(LA8%q{tbJRs#)@((@SY0LqY7%w$y3q_Oj8DSZ~BubU(|Pmp|OBjMKUMzzVi}knMq5XmrEN>TJ8L{ zRAkb-&TAx}*BvF><-A_Xpp;9lG}-U`uGD!BtHV8@tx{M%BbTWC&O0RiAB^e)?Ut%I z#Q^P-%I7j&3eZPV**r#10evhL&1Wobx%8Y`&MAFPMb)A1Z33yKL&N_@qfc znq>36;e6F3O!qUTX=G{O<*2*P*G-z=*h=p<{>!4f9i_NbTRJs$aj7)Z`8D-(!MB$a zf<7CA?v6>Vn})mmWm4~^tzFh?6A=Tc2W zqBppNn!2p$Z7$&^y&iqQCEBDF(OP_{2YW>-$0lY=R-Bi?gzq^WBoJSTTI z>7qPHe%_?B@?bg3r1f=&$cs!mCJ&XjnzXg)BEQ!yn#@tn@Z#E37-Z8%+yaR=&5sg&G^`K<0(c>$%R`mLDb zb;rruI7zX`>rRl1xusidj5txg$_dYiCd$rlU|E)ufY|TqPLv}lEh0T)E9y>?Gq|ot z?9IAU)O|_*h7oQ3v+}EQeUsML&5@%` zIwnt-+nKbr?hLt)Nngn`<#bByPT_2MHKkmFcM50AWt7+*#@FS0ES)|%*2(pCIc+)S z&RXep`CU%f5_4#O0iDZ&8ieP}rcT)u+f1sab)lZF`DQviBbw_VWk+m1*ST^b&0!Hd zyAbL+PfmFgb6-SG#zwo&mzPswJ#vA(h7$J3Z}kQ8MM^j~y`wLbTfBwokXpJfmb+0x z%dW0(%Ck%w=(OGnQl z*UF0-8F)=@t-OX4UXxoZZ>6-9ENhejD^>Rl_xE(TG*UL{)!nS_Z^<8{{23>_mbXo=qExD5{kF*-D>3&{9qYGEj$=eyVw*gR66QD0b(?&Z zQiXxnW(neMc`>C5 z1Fu}}me+8?I_#D=al$(6md|p+E0??F&T9z#VeW6a?v`(uRN%T-UcJ_#+v@tE9J~&x z!oX{s2jp~0i{ROsy{-r31C;Q3NT%z@@)b(VXQ@2Dz~QC9^;0?e9S3c7{ah}j#C#r? zt4!S?*W+^9dWYrbuBYS!CY^TuR(9Qhx(WkpbWR?`39pTwlZSJ{>!#=A7b)fG_;kuS zc{11GwaRmHj>8hJJ)M(hQ^HbTbv-AqH|dt^1-X=4Vh-QSUpUfHI&E6s(Z82dH)6>a zk>I%dt{3H8PSJ6yTZQ}qr9AzKxGMRwTtcbBz^k^GWpNXxo36hU=WJY-ZImhuyuN!` z4x*H&FOQ26FUxV9uzr{2QJl6=-F!-m;Ox`G?Xv9pE-OoMT!7n;@>ELG>6z(IaxT}E z#f7+Clh1NpSzJ@M>+%(@I}f@_$H?b`W5G?6nlx|jc2joUOiK-IR!MHk5tJ$nwERVm z<ySzS>PxVi}R0&EIj8lth!>b(57Il$aM)=|qW*8miKd z(jqcA{@i1#Qpjm+{H4cqP;;%ktD8XB?EQ`ooASY!kr`7Q{A9GRc@1u_SbW^5L zT12+T-+RnWDPcPDQM}E=L%B$4DLESN>*1|z+s1r;6W_?gPbuHd===Dl9(D!8cpSSO zKT51`lFsJ>ZjKtklZP@LZ2rlhPCBcr;U1>_FvGeOAI!kLJocO1M>4 z03BeYFHU&JBSAUBX;Z>xpc9-vN{A6#D&KM{OK=DJp3`@rYo%P}bQyH5lqyOULRG>J zkJd`votQh@Mu|!=r3xXZa62R` z1)Q+0la(W!aH}LMS2$tICoB3c^fFzKZS{vovXV(DhqP|>7tplbsLLT8Tj`$dl+#5> zi%9QQbv@fFD~pjT4D1CRlmnD<$at{qpmg8QbU0&4QBpbKOeaMd$my35Z_gCvMNS`t zGyqz{sXU|^P#L8Q!lG8qq!i^Ir~R!wT{|iX2QY`}WJm06@o^=W(gopWt9q`T6_10c zyCC?sZsXBK$>7whb$5^MO81YMZc*!j9=(*+oIYzk(j!%wb_jJjq<`WZkN(P8POl^m z^cR?<%=LIqSw<;`cqdKu7^Fmg!n{N#4fGtWY~j=)sgL};vW?U8 zNv?9b@*St_BuN;i7^Rr5!oWRXnBv9>_kdxFA0q*K>u{w3*Wo;Jgc3<=lwVtDu5>8=lwtBv(%DOIdQ1>h$4l;Hs^%j#DP3?VNCqGF3T1X%Q)I^M~hDI;D&f%b`FC z{t+#i&v%s5SF3%lS6qK$UV67(=CxkA&8dIeRbCsEfS*yv&RRDrjVQ6+vr%boQYG1_ zbTw(Ywn-UblJ5Dgl0~W1nACQ?*Jfn~r&rtRo|~0LoU(mZNn4b+IL&IiT-%})Qd&wD zLT%quiaD)>7Tl^}x!~Hb5)iw^>wTq!>R8FPDP<;Al5NUYCN0;tE9XqoJ$ERVDY04X zPNj-c37m^=@!F}}Gc6^dP=SXq;SY1DB!zI%#X-xpU5b}Uy60}CJ|*UJj}l3V`P`$# znU<1Jq@6K~F7zX>gGyK>)|U02kCo3Tv9>;> zd|89em{ds)DHlyzu9YZ1o3zL46XkbGtd&X?=?3P&TB%fVrnHFMXgkI0uo6aTDY@VF zBd;S$0oT<{p5gVWvh60OV`Vw26xE;uCRLK7%BLnR*FIBDnzYBOOgTe|mF08g3ME#S z&y^ddxni2GuPk@GUU5Dgj@(E=* zr#{JhyuMW4GfDS6r5rTVNy1mkrzW|JUnyryI^p%TQfX4C@U3#6(sX@Ta*X($qW;S6 zT7HuJgV%RTeNJb9&L{~$tj(@^omHMNsgj&i2Ag!l>%20akzNJqzE|dOa%%U3*AGeo zBY4gjo}5;Es?g_j(x}}nuZv0or99HAog`dRwormOL%aK4mz2!AGF` zu8#K=rI^$BcK+T!EB86Q0+zoj&i7clx$Ppne^YvKTGOtz_g!T*rw`jb;Vr30IDOl$ zpSP;Yf3kGHv>WbiQ+rX$A!7T<-frp&N~MBJ`&r)J>Pk)x+rQy$S66dt(*7Oq2I^W) zE!%JN4ps{|bpc(tx}MX(_WQjf)s398Ko_mP%V{zAY^H9Zlt&8Mf99Q_M&4&7+uQ!E zcaoaHsigfi@Am3^PRHB-;oVU^!l@i|UDX?$er<2_c|r~Ri+QQr;hJ}EwKJ#29nN~E zs=1V4?$%+lcYpN=rBdPX4n97E)SH|Jb_nzttV%=xH>JYx4vl?=sgH4*0G6ZFMx3U1 zNbnh>!pnlF<9;z-6)bfMCwy*uu9`z>x-O-}0L`VuuDi`u-=@Uw2F_KtF`{<^=c(8Zj;r+!!mIT& zeHL&X{u*Mg&q9;%s{0bPoaG05>I`YAT1hES$6sx{q2A)uDy2$(L#3~NgmJJ(%5tAK z)MWU5FOG`+QdavcQ`1b^>hqRbz-eg82R0O|$REK9^yP?hAH|bD{ zyM>OYz_lP#cQ$1e5WZD35ayWZbGur>34QKR|FY!1Q;n9foNPPnRFfDPnBPvdD<{lv zr`nGb=2xf=<%IbasuL*X5ciI^eRipD137ZvqweN}xfiL&sU@rXUbQX0)R5=CSMAP- z=Dt@=<%GHKRiEXAx$jdmIAQMl)WekW^d~zeh##oOI1TE!3g|SYTr#2~JVy=RM92IV zkO>{@_!g@JD6z79sHU6bT zz6aF<@V*l~x479U*!K{;@`=&?PWiqiY8<8MI$mY`MD5OqI6uC`_Y-v**WuO4QgsE_ z1%R$pJ!IbFxO_hB`Z5}P$2R>Qe&$K(5b536yMuwa>y<&im^>-v4E&Ua^CQagM3oickXK2P+uN%%ZbHQ`m_ zYI?V`vr$cWy{DS+S)*#gXSb>epQ5QIeBP#-u&t{Jw@NkP6E@X^Pv%q;K8sUL_(adw z>SA~U0qX^keqXB>DODI)zjNx(Os9X^dAW8@y~TA{Tln%Iym0`x%4yJ@S8bHo6K>_I zJ14Arx$4IW>t3!l*`%j z*dwp2&cUpn*=mrxNx_=C)}2x*Ew!gs#B}q`^RWwIi2sZ(mz() z#;LN$djDoxnMqsxyvcFSCILXz7nLdK2h5 ztq?yF0X5nJG+5KSGWrN8T^rbq(Fvg8+P3bDegGP&$vqhT4m4Wp*OQUnE6P4r+tQ1X zKhOjXJ|IGKi0YMKpQMfD)UH)FyH&2b!hLrIvWVQ4(fr8z|v8an)KFQKG?S0>C zzV-|w{aj2(VS)BMr^_*2fL`F#zIT5l$`AIu6?DJ#_5|rJMC+rBa z$5HzRnmg{{6@BhH<0q2Y{{CB^cs4Ew^tq$)oR8`ws0U^~sJ8yR<(k z;dYmVU7Fj|SWfIcm1LI|V^XNFTYKK5lDd1e*D0|pQAOG^rh}`*1L_rNz4}uxh9C>DJ>;^`VOhLPrJcLAKZ6Dy$>|6XK0)0FHnl+G=tJ= zN(;!mzAu91X-bR8vc41R6>Av-F&&(l_IR-?z80kk+_4+?(v7Ek2tpn7W z)Ay;Od{OJb>6cW``WLnCoN%^wNlWEa=gCTPNqd%)_mhq4S7<{y1wGjqXpE^#sDD|T zWa|EuE^DuHYVl-3{VUo`PAO0RDP7U#bL#zMjQFFrjMIQ8-GSCnVy$~s+e2xoo;K*& zhF7(6PNN5nsCQNCJQ!PPfu2ou13As2G?vriL4zUPLQbnGZRJ!%30%;l_Gg2Jf@Klc z{XS?^!=JU=jEI&t9w_^HnjdMH_6ocUJ$DGB=0G>K%ydSb(`GgNRl7lnZKEo>_d_34 z%G3T*t+b-yZ>H{MTAFmnBz#b;b&m{a6wxDCF(I@^wThwox`5kR2=~ISc zSupog4HbQdNoN|W`dLa90+vP7orj?%(u#(QAs5~fS6kuJ&9UGW(%wKd7+s|O{Ugy}j^!flIB;is5{PvLhnX@>ntr`{Io z;xxb{{Ov%RN%-4==S{+=>C;WZr|C0H!l&s+nS@W%k2MLOrq479pQg_;37@9VHVL1m zpJoz1O`mHLK21N%Bz&4a-z0pRet}8&l=@N&^>TjGLeDs_v{1V9S__SFUT>i+=XWji zn)6l*h2W`ilkgWL zXH3FhkX$ece?d~AXRv(*_TnBv*L9B!+{a4jQ>0aT1}A(^&2RcLM#9+Vk%~A?r1UYR zJRP61{7pZ~X+O*ae$!8J!gsFxrbmyUdog|I%I|stCw#NQ@A?Ov@Y&v5`XNsE6!0zm zI47K4+|o}|Dk1ngn_K!NPWa23Tly7dN$_15w{_Q%Y}CMaVf>*-QpzDOJ^zDtN6+NC zH=qu8^c9?nD4pV#XQ-w91?J^1s!QP%HU!gUQ>qYfw7H|d&Iw1NyZSP2Il}&I&^^7J z(-`{;L81`|-|EFt5x1>oWR7uA!yp%<-&jVtZQYIIChcFdVsVxqC16TYP*$+$$R zLco!>jZwu3N8z@{x=G9nzV9N%*iI>j^d0hXP)DPj>1faDXxyY!La_IAGu$R)x)OrD zr<)PX34i_6&FD_46yA&TzU>JkpA+`ozD5Zr?7RI8Jqx{*!dq6pv!xlSobcCA!;M*# zO5nFbKifta#hmchPos<~ZiyqQ4!IEYiZP$lROmg^jD&2e1D}0> zpgJ&1SQNN=NdJa8CKcA8BSWqRRqMVS@@r78X?bSIouE9Eegxf2qlcLToc~ds<7nt0 zdNd50!*zI1N)FC936B=@jDFP1QZgmoJ9xgajS@Qtg5PDn%vuniJ)dtBbHY($fpLve z9+{CIBQ7wUUtukgPbrPl;`D&v1;)!Jg#|A$7Mm0w{HBrqDoeL6{YcPCqly#u&sE0Q zX{gH~+tY9RtTr}K%A>y>SZfq=!VzVyQOxPXba=+vDB*-}V_IvJQOY4-rNdL>hI0=3 zWV6GyMm-?M+4WkZ1t&baUT5^8mUv#(JGj6oVMNcM-!cBl3D2O{8@DOtkR3xMVS{nx zHCF0*1-d=PMNTb-y%D_EaGiyvUPS(iTp9d< z(V0{GVe5lGGL~`bJ#1U>0V8oXvwU&b-r$4A3`(q=hYZ&--~^ti!|UFMjFcBC8N)LB z=!cB%jD%g8l5ogK<@6n;BixcqTqhkej#EOP?%?G-r5y6?L`f(y?sA$$i4cKI@^Z2H^W@&Hxt1#dc!cv+cedE zDy89=Z*^E87{jE$mP z8T16~5BRmCn%dei|H}SE8hSv_Y-DCVO(50r|8<|$rTU+xtuDi(%f@VQ?~~yBlGrBI zF*S2X8=2cwmk_^{^k7S}t$&y@-;~K_7+HuTmz|- z-$2$Z;eXE_eLl=j?RfYy5tQdX*egWO!1CY-qdlYr{?1b8ZRiFbM1qzQ^(j-I3iXL! zJ;PG{Ya8t$TjarhuF_mInu|_zF=#F|Yt2$&c@%1?QcLZTmN-{o`_can|E#7D?neqO zxk}5U(emiLJXZUMw>JGcDzsre+RhJp#(0rySv#|y@0cTnK`Itzb0>);SYogbn=!Qi z;4DQXY(Cb7T3U}C4<5f9$EoTg*Q1VTj@jU$E?6FRRO&@*)Sxq#p+C)w?PXS*LT{XD z@Z(Nc^(cq)N$Z&Q@NFj&8&AvH8BQebl<_={t& zqhAfB<^O+9vYEi>Ky1BHG_Oa^*jX8}s3o((ut?_*HRtNAwVAzj){Sp&VrLeP`8H}D zGuYae)mz_@ik*qfviMZQ zC`I_nDq7-fipAr1S1mEHy^+zxi%0vKC0Ui>uxBm6(mJ-+ICyECK-SYX*$$SDc-E5acxP?Z2g4#Mwxr_i zV`+`s-O*?5GF#)VWoGf#GJj$z|KGK$BNwZ;hGCfdNm{~3mF>Tm*Q2~yOKbJ~_a(3G zjg{Q$!Rq<%y4|f@XE&phn2en>cFOvo!6%qjwW)2`V>P>%$w`6MHjoRZi2bEfC1mEKZ-;)CA zDChGud^!nRgVka;ghlvvEymO=Ii|((i}aZ22#=&b$6I_d8;lXi)Ee;^!`jnYcbo}0 z&akkR9Hp(@N)NL{pH^?VkfTiUM~Ki?t7sXlTAU5SH=RK$WCLhbIvdpJY)~g#A;zF} zwDDGDb=gJzu$e&ZV;O6={j?_>pqA|H_%j-|=8oRvha6S^Q{zuU3&^xRm50>&pMR^x z*~p{Q{{LEQzhdo-ZQ>YVYR}vT$6bSb4j>NDtNQqzlelSL+SGtr(Ug=`zK`2FP3149b{{kOR za5NSO9+yRW6u_@DV;{yNm%^`v|D9GPeo!{}RwFGZ?o%~AL_b0s5Ah1=08%ASfYitU zkoqINJ=|U(tTl!~T8X>}(h-A4Vf=!8bzN9Vn0*$tf6ZcVEjhmTRG~*+mA1J?+uz}t z%>l;KE%g@lfX8To6wolvXW;GtJ(jVyWnpYXXnESU*usu8ceK%Xt(hg3@L`s${ExE1 z_EBkjYP3Cd+MdQkJY!qQysfO>u*GEBVve%a&Jo)UuBn1_)UkGHvGr8idhC9U&Rfr# z7i&Wn!&;JsS$ncDYfpAvkl*&M?z=%ugDW!Ev5w_5Y}{{Y>wR;h5t% zFSdsH`3tSr4q8quKlAUX9mc~52{v#pY-s@&&tg#P@c*cC{=I+9_tE~b7BE)BJV7Go zES4-U)JjwjQ<n8+-dwt{MZve^Gd!^{Kb z?&!BHhG|(^Caw0?cxKOXx5l%)SiV;OwM)Xv$>Ja7fyMv(mVeROvGIz9+16n(*7C3z zyr$uJ&ZIiV(I(6u=M`|3YZSH>lhrX2sY~Onp4nZANE+V^q)1vm5Ux3&e3{Opsx514 z@jLREd$o-|3`ebv$>KrA~9%>Nf45e=HOJb$ot+)LMvuJgc^EbtpnTZ*{%-2uI=dKI zuX;Yij+@Kji0_!;usI34p6>{w7Hu4}8Wzt+r0Q_ZIlx}XSEMr&HuI@D;#o(tM}@6N z{72cacy`4DkCAvpae}bj3P;0&`}R=!exVkd_m37YGY8$>z_s z?{`~kfurL8i96ajOJw6MyM|-ECRTkX*KxnTc9~gA{@*RRwGZRg7f2*+d6XiFreQV% zVe!>{N#xI&FiTA9ICFV0#_?MM|TG^Ud!rW=F>g3{4*SWIskgCm=xUe=h}HW=e* z&)SxF-H%=UbI7Nu|K~tDV%YfzzY0gM1~{(Qp^f7TUbX#b>LJtO;UyaL8jZ1r|Nhz_ zJMU&Tv#Ey#)B_8zu!Ofj*l`48+UgjYR9nK;4>J`DJDvu|Sqi(qT=VEqds~|^@Ei@+ zSs-7H#!>VtNP*m<;nPVN#w$D`%zkT!F&*}E>r=jt``UP>3{T>XL2dP2hJR(rp2cD^ zb}-hZ0Z4&h7>>MD{`)yvz5Vx6S@#I$0p-K?2&<*_h=b>G>{)0>Yy6#7rFUVp8h2r= zo~v8(UzMS{?*Bte%bet4PY8%GC;9I^OYmQPTEKdAuKgSWdzJv7BB=T7gf-QF>XQJE zsuvzv9(|Yp@1GE`-g&gP;eU2Kw%C8=ZZ*!J*qqAoYycZqtu4lEa2qLn#%|T3eYFSd zy|uNq@1C&V#P03Zg)v+r{vc%%4pO1dwW@^OS7PUw=Fx=i zeV7+Mo9cLKw|XpcJi(45iQ`C7yB6%p^M~0ySd0IY?axZZ=FIqXqGQiub+>BS{%DQI zuw!1$wkES@@wK<_zjxl`XlM4DwSWB#FxunOzyFmZGMhvGJ3Rr*?0E9c+J|fQ!~dKo z^v1(j;ixZeagpCcVPW><9-e99zEFLBdLpelTw)354nfQ6`MgA$)43Ci>1>7_Hoa(! zb#B0HP(JL4&-PR14fkb`k#JiD(JVVl9=?6=iFc886Av_Sm&qDZF2tNzq=OFwXgr9@( zAd&@3IxPKQNfQQ>9^`ol4|RbA)6$_5-q$;2Ex)$c!hKqUM0O?i57CmQ}E`$Tp+nt4*NKn#I>f&Y@vjrRxDv{-7M68nmbebq1+XrF_4}kq+(wFFDH3&<%0H+SM2t76bfeOj$_7-1 zQyBwN5?a!5JCJ3;y+OK*{b{^G(1RODc&`A+P-v+__lb>i;7t+PAooXhgqTy2J%ktm z->5ncQmtx~1G19L7VC}M)M&OCHtzjK3&ho)dqBpHD{i!$dR`#nx5j3Rea6jkS|AP> zccRfjl0EKnqwV5b<0?UJ9``%Qz2p7_d1Ra%vRynq&I#n@aqc01h_2&(A?!0gFytV? z?}!Yh<=hV5q9MM|xOgfPsccVWXDWM8nM&m|A%cYEJVk4Fmdx*kv(&>Hg1?yWPv2~Lk$&Ce6qRR5KhG18;}y?v@LcH`Bc3IH zcs7SH%PYidPe>e;@Y9e;T27RAg*Y-{{Fji|SkH4pBE(D*2a*k5R|Q`wfBYpVPoeuy zAp^;KUcU%3^a>2`@mdHr2fdnu#Qrmo)-;^925vhE#sJJ+7O)nw!0Nuy(+Og*Br&wU z18H4k0l&_2ik$Zh5=Viz&!Mz~y}F9ssb`c0;Qu_-YalJ*Kr-FyYX~p&$`ezmy|aMj z@6O}V-UG_%BH2O0*Q==?lm%iYNEazsz%3OlxO@Ks`!l}RELgx+S|Fb9D;o>MTQP$| zgW=u3iDEXvuYg4gxD|qhK<`FUBCSy(ZHIjDCJFiEXDClTtxG;Zn-p5#VBw6{2}p(7 zU;*1U82ki4?tgj(NQ)tDE2#_h;6~p(-%`3fzK$=vesRL)&~}oW*XB?+`c=Ha(9c&% z3y3jcn$QK>?JUH%n=r)ngcuMjgnbH94Z8r+DQquD*RUT!dWIbY=@&KvWc{$4AcMo! zfV}irfAFwMyh*P3-1c#UT1bKc(p?llt`Y}J=@aVsj*zBKNDvLWT?R|9K#Uud|LL&7 z;`9m2wZY;T`w1^Ym_H#S%ni0?M%Xy;X_Nnex=aoGgA`0yCH_J7Jt+xp&<;6ahJZc6 z5Oz&iCry!#falp{jJ=P5(z8CwE;Q^;kh0BN1yPeBbLDY1SlL<4o9Uos<{> zN5V`YIHi8$Y=~(JGB_o^aW2*7LU?lHd>Wq*;hBvW)A+>@KGJvvjb8!b(~S#gd;x@g zBe&4_Ef5ZmETr*;5FQy>Oyi3oJT7TF~S>@`b5PD>n9C}!j{Pd`TnFS5cAQb7|hG?t-1$bORtMPr{C7u}tX1KrK>aA7o#hYO?A>0Xcy;k!aQr2RBx zl!$#Ml8$?kG!^#7@1s-b$mT)EPiK0h$Q1FrfhhB+T;!H5;^>zv;+~aH{ro}e@~QOB zA>vV>fXXdYb`idsyeYO2^8G2KklGZAcw8u?9txq3OCY`o{1j80Vp{%U zF~lpNS&2BQYqMr$Vzy5g2;-5ln5M;fLM1s!@U7ej$#0W~xE>^O7WRraCT(hleP$=f zHzw_);ZHywo>WEUon{9~qpZNVgCsF4DlS~^lr_XPTwXsZCoEh(Jn8AM9Fm%aEi)*q zPh1Y!6)DO&WMo!C{TwnO>#4ZeJiIbKZAy&TK**qS9F;FonM>t7D&fuI zV2S$<&b!`gobj|e&RZC^MdwTbT! zek9>0*x2O$0)FeGi;Q1L>o4Hi~|p=L^pc0a)Z&eRl*c`+|+f_2&s7sIEv9@WdmW#)Nu(7gq*3XBsZbg zc-Ye+mAg0vq$Es%F}%3m6d1REZ90V>(WcP7b&8zr1IH`@XJ}KX{|3Sw@UTW&HFY+O zz+0xy1&QzJULzGvUG9(N9NC(dw)I8YKXYgaXM=pB^#U5kv89suN;xh6Y>h|fki<1K zeguq5k43MMGhb?+xSinpVz(1~PwaMr?}yz^@V&6hp|qVri|>KmPVkMd+v)b&1pW4@ z#7zRuWH!muU&=__ByVmoCUKLL-|(*Uc6sGX<3YRmrO6-{GCVGQR7wvi-B1^67NTf&_;Z}znkP1PTNZIan z$Pwu$kY!TTV|B=JY06^;xh);@FvvaW6i6a}3sRQPdFaGd!BTlBSSlX{OJ!FM3mO@y zMEk;T5tL>i)0KFT8A?l#qm)FDW0kfbGnMurvy_g$27&Jg3I@pqKL(iv9t@JNJOT0Z zl|CRBD^G)5rVIqRLKzHlwK5E3f${>#jmlV%vicTCU0n^*S$zkjtNJcT5A}UtsIQ7G znV~)b;ZbU$AGENFWzJOFK{!jrl4q-(AUsX&1~OOe1#*^(Eu61n3(r@dgqX$ZGa#3# zgFvoO`+&FAYC41q)DeCL3Dhov4Ay=G8Kzwa8L9mWGFrP0GEVywWP&F88zfQFKqhP0 zk|`RtYG=(EV!CVRAlysC)=t&jAf}(@1#+O~4>C;)1evZi0-2#jfE=YY1vyrW1DUC{ z1ev9^f!D>Z(4GgmS{v@KkuZIpT_ce?ZiQ&QBgi-%w@w0$Nz@mDHkrn!=u05nnTESl zn_fC@!Bl-2#P_521F3zQ{uacf>nlNK=yc2KYwXaf`hBeq$uPX z?+UU??+Nm@o(l4w-XA0}uw#K}H)(K*kwwf=n=mgU>`NlZ{mnlVTKr>}+fT+1=O*vX`+FWU5gFvY+uG z$brVkAk&P)Ak&R9kQv4akfV&RL5?-ffXp2AZ`l1gLx*|0ASr15Ds>`UoX zn_P}ySbapxe($%RPq=(ZbkUmaVLE4=vK?XWifed!~17w)feUOn( zQUhpnCmm#*lMBcMCwGvEPTnAso$Me}oEm`a>=XjByHjJ3y_}*!raCnT+0UsJ$bn96 zL8dvSfJ}Gl0y4v?2gp%QeL;?O>IX8@=~<9jPS1nPb{Y$k{gx}FY4T#R2wCQ)upt|lROBkq(ZaQkK?ISk|ba{UmJMD>k% z`~VW&248vpr7$!EUy6zALwqfXjDz@kh=U~--+`~E^Yte9qA2>s^<&Bpp}2lQNe-Lt z#Ox&(p3ar&yTJM_6^@whz*^t%a9AS`L5B2ntr^XybEa!8uK7C7bParnGhKtd^ceaZ z$JXGd1F~a{_Q300lEZ>L2??rGBy`~GA@JKItbaJ%1;cVohx>8^>b~82h(D_bu4%bo zjrAM>YqXOBVEbrALJ(gMuFp7!uh;PP>_C?9CcaJ%X8zLnx;z86w=E$CE`8H=IoxSL zzXYD=!8JZviR)y(PUGuod`(_s{sZ|snXl9MdKzD^=IaA|UC!5JI!m9-*J*q`jjvbp z^#Q&v=WCM7^X2PgzE0!oX?(q!uMhBbIbV|*JUw5h@%1#mUd`7B_`000;j%s5j)8og z%-3mrJ&msqY{LF(+do$k$1H z-G;B*@^vy_x8v(Me0>Sl(NM0duvTIH6Ul8fx6$H8%Nu>%=$l5NA!#A=L$-vR4G}|~ zLcK!$LW4u2LfeK82z@a$KlIJecS84s?hic@S{8ad^y|=Tp}&NNhjj|;9X2p*blA+W z`C)H`Z3){Mwm0l#Sb5mbVXol~!^6V6gs%$U7k)JSWccau^Wk^HNrV#N6yX`+9}yH0 z6_FT`67fVt|A-M0<0JATR!4jh@m0i`i1LU_5mzHBBdQ|)h`1jiHFj&RwtSK?>H&xv0czbw8Wepmdl_^;x>i!YDA6904jy?Bon zja#&A(XqwTEe5xk++uT!oh?3Saj3!i04R zyAw_(oKEP_^6{44TJ~(&x8>6<2ecg2azV>OEq`kn+Nyu6IjufyRoSXR>%OfAv`%k5 zx%JDf=d_;R`ao+bF)%SIF)^`6;()|g5@#g7nOKmxJMqKBlEkvaFB8usUQYZa@sC73 zscw>IQvIahq{yV$q{O7Bl13*@P0C67N79m{capXy6(yZZY7D*W8F;p92+_$(xTm=m z?tZQ#E^to_&cH}r@&nulC8WOJGLX;stpNF!UjfLq0joh41#AR)Bwz~2gpgq%1Hw_V z@Xq9Hkr1~Olvh&F#wv??&6f!IM{krJ+sPoSWAGV78See6@Fp39IKjU&{JTJz+=wf^ zGy53aiS;JF#0T!a`Vu?bjSD38NCOfK_h-XM5DAA+1Zf1Ldt2n~SydC$VV#OEMpDCtLrL+nUsrSYK2g!ANy zpq&ibERsg1!2Q2hp!M?MoOvZ!uOY*r{f3iw;Ouz=4F8)U<$L5sxVJc#Y$xN$4!8rl zi%f!hhLgz=@bD>kI7+6HV=yl`PO`}f@-p1ZdWC#LUM1g>X`~$9&;31_PA-x>atZEg z{seb0EB_aJ?*bp^QQZyC^X#s6b-&n2oFE06II&G^$JaO)=ORn8En-WGB*#ff*sQc` zYw=2}?5=Dp2}P0yo3VfO-ag2fdYjT@&YZCQs|rS z|37Eud7fR#;qsRE`@Y|=iFKZtGiPSb%$zxM=FB|Lnpc=#@Vn3Wy(G_jlZknMXyV?z zCh7f=srUZaGHV2G-Fvs`@*XhfdVh|S)%ThUz4w_*y!V?+y$_hn z;a@o9{gt`ad(d3xJ#239K4miAr_F@-h{<_hz=<%-Ld|5%YhIKGmwN#K1eZ%6puD_;(%dFM|17Q%Cl;wcPj#`(p9sb~oA_pdr=3lF_u2ei$PE(SDdAp89XgvO zEB)fLnM-+ST+Mzvef7JNO)7adQ6=Aq{h^RWD$%IBWLx~^>? z{2K{>MN+@{9G3qBfj<|FIfs}Afu{?+?woBYV>0J3@ANqrA$(jguamH19zKV4eO_Rc zQZbtP^KdHwygt8kYa4|JmN1nkNtMTc`pU!{CT9GJMGPYZ<6rY z&tYl*`@9DMwaogpbzQ(KSK2yl=~?S)TdJIB z8@0U;HavyA+LmY=bp*e#k|k&_MO&(E(UxkfcRiOqw(q%YskT~sU{o+i1!_y9xs-q9 zO7Yqc(Qve{qCI@+`K)VL;1ioT3M&7(tseFPN4JunmuziA_=6JG{?t~etX{RPh*a%Q z?Y(QZu_vQ_tNoxdto<34VU=5zVU^yfG)5^^0u{b(8##YwIX{)OtCon$XLK(7css{S zWj?+`+9I={V@Eh&R!dmhb?J`F+l_JI>kZ0{?v{ zW#-_;9|p}07k>wZ=4uRUA@3`VU*jK$obm{l5;B3)odI3h*6!nr;k1Jlwkg~k7b@J z{NjG5M)lIJy&(^8+Sh%SG1|K5d{LSC;6Cg*5tSL87dl^brszES%}S2) ze5#TkK8Koo{yf6D(|#Xq(e>`^=dq0&pU1UnQK0tuyPn5B{OI%E2FlrUzXX`RitvR3 zUvcge2+v(bnrG(uWmmEPRi9{|D7UY^iuEq-pHuO_lq==-PX@`u(XCwl@4cFJ>FBFG z=sNhd(T8wr^xFb|An@^)v#^);4{{~dQM=&aR$wkTxC<~RaQYxizVXK2e~vNv8(Bg{ z!nX>%?Z#IFf2Y8E1-|>nKLAEGOmr<)jilO1`H5<(?_}8zx)!$_e&HG?x3|r5UHJU$ zdtxcv?($)G{trM8e=&LD3mmxd6$k!r#a3;Won#AOn|U0TYYH}89q8L&UHh=4@zy&m zI(Wm(-vRotWb2XI0oaBcV-3K41<*4qVeR^`ZX1FBdsw|G^Ho6KoCf>XGp7T#nZNW} zfd30X4;FAMQqKT{Hx3H8&HM}yzs-Oe@NH|cn1AkdAobq?eOSsXka{*?o2iSh1U>=i znQqj8uhs&#na23(z&8MT<~)?`!;(G&`2F!!z+VOE!>&FPn34Edz+4T8w|C65fZqa` zGQSh=MC$VaecXZULipKdpiHQa~TJ`dZX`5YUIcz8>%e;LA5@+_v-0QP}-HY-;Z8Pl5}4 z-Av$ZxQ&VT-*6Yxhc$gM;61p9>BDBf4De5I2h)e`-UIkH>=AtPcGC~|4zm~Ve(>eP zqQ468&#-^+Vc8D>z6W>weB2lu1^fUw@^L%x5a1WEcks|I^Az?HzWHC+N%*kyj{yD2(9tWKbtAQf5CnNzpUWhgj_oT zecX*KBRuKNB78((9ycmI^Fo0I+@?ft2)qfmDDf2-ffesXz?TKi;szz&B?I)$0&f1G zue_6hw|ln(zRY_m;2pRlgdX#L5AgTAR{-AWy%O*hxK)T>aPeLP_)70}fUoji4|tb% z58$i4Hvql{`xM{2)_XJH>u?(f-!sBa#W%0_?gPBr`%}Psytf1XH}9Q*Z@}KgH*dtw z#W!#A-UIlD*tz)T&Dgj2=3eiEfN#Ox1>bz}{u1zyy^jLE)%zIWecnTWf8u=t@K3!@ z0=^A98jPd&8NhdVp9OrU_c_4(z0U)_%ljhWpLt&be7E-)-~-;50pH_20r=#XAG=+uoU;hhIxO6XEZ8&jNhX>jL~I z@7aLg^Hu|X-#Z8JDeqjsA9!m4|Jhp)_%Gi1$opeJ{63Ah5%6j60ziZN8_*J)0`I^0mjX8XmjSl;R{*x+_Kt5l{9eEnem~$Ue=p!!xOV}a<6i~1+CKoe z&L09??_UkL!5;oTLU_AB;z(nkofT`GB zfQ_-&0Jg+l2iO{WJz!hx9>Dh48vr|EZvs3$_GZA&*joU*V}A^|I(8r6b7FrAcuwr? zfNNs!1UxtPF2HrMcLT1Ey$5h(?7e`SV($mMAofAP&9M&yZi)RR;MUkj0k_3I26##A zA;3#xp8&ip_DR6YW1j}>k9`Kcw+9f~HTGG+L$S{RUK{&7;P1q~2>ATimq2qv>@kF| z7nqBE8Q~+bCxD*>^i4kY6@*_Xun_wyFh>QJV_!qK68i?=Z0wtW$70_GJRbWF;4QHy z0bdmR9^miBo&tPv><57Ju^$00#Qp{FHL;(dA8;YQ5pXen0pQ8_7Qox$+W>Em?*M#Bd?(;b z;}-+IEPg5A9r4QmUmm{#@b}_9fOp1w0bddC2mJl`Ucgtz2LSJiUj(I+YQWdWM*;7S9|XK7ehBct#jgW=L;U%GZ;amn_@;Oo@DJk|z&FPy0Pl_G z0N)Zn0{GT=9`L^SQNVY^rvUGd7XjZDzX|Zq;$^`1#%BTF7e5a8{`ef=2jaH?emMRj zz`uyU81OIS3xFSqp9K79{C2>JmYXZNK_%<;A0Eq9HB)$Xqt;Can-%flFa7*1&fLrT+0JyF0M}XVw{spkN?k9lH ztNSV7HFZA&ysqx&ev_Gp72OUmXbg7hSzZh_&SX3WYpf;tS9LEpb;-X-yxcS-{|c}v z`4M2^$qymimV6N5j^xJyS0x_?JS+LBy6>8IG`$IS)%{Ihf_L)InjQmupy|!P{CU%t zy`LTXgPR|{`QLBhdpxUPcb;c9!T!6<^ueB_uXh3-+7djlC*e{3WAj1tG5BS_01LjD zDxP=jyceB!`+4`B_t1I&dfv{peQU2;JF+&nwy^e=wI|oUa{cSq|M~ilumAS?GtNKn z{Nnk)d;WvxfByXT4c!~YH{7)0y&FEhA--|N#)BKP8~f=w$foaa zYP(?j1=n71>jn2-@bCri+x+n6?{99~vT95BmRE0ic+2Ou{Oy)UwyxZ^e%lq>4(z=0 z;*&T=Iydp1P1sy{YZI?JpU?G)cgXYn#J>rCW1{f_;x9;?CC@F1^X0iMaj86aB(9d{ z&O}b07bkvKo|h(GC(p|gZ$BC33-ktUM|mri8spgP~yGvye{$A@_c^cJMz3C@gMR`C!W29^<)w~ z@|;KCfyr!LeZng34Hoo1)FS7BAZ2UnRe-Lr@;e+OH;QzvZp7IgL6Pglh_h#sa z&0ZX56bby{cOX67^uj%hEN~cuMy8CJe%=s!Lt?5Hay!w(}Cv-JW=wl1I6rY zA$PeMJD#8J?HSwDlPzz`77Au;qGzf+nkya4mHJOiI>`Iv^R&O z{DcX~3x(VS`vCMyk;@ceM$jii(}lUE)F|TAiDqD6x?IUjPoRmBI+sNr$W4vs&@e|A z6uT_7t8+=N(YdMdVj(OB{MDj@l4}zpZK+K%1B02VTzMu_)s(H~SH=dFE}z4-XPH!k z(H|^U@`v*i84gPT> zOp}z`AoY|C2Nb8`IYO|6ZI=d>k}dZZ^5{kr%6rZPuz82%E%oPAsr%z&)THWDn=lcJME7iu+Oq1u)(9<(P!**1j; zEgozf%fpPgaht2%VN5`38L6q{ntZ7;n<>;_m)2ZcvGh<)*#qe9Or;1bgxadFP&ib| z%*-rRotOi;BN$73_-z?2AEdfcYS)RL3Wj8ynO%>E!EjmPi0#f#qf?BNo6zua5@mMh zD+j=%8{t4MLa{*4xYR?Duy&Y;MbKFii%MOU&{>fQr7R+3!8#0^AP8GaVlZ(GJEWya65h>a-kheXV3Gh5;Wx*;6;k$y7pi`x&(=#43WDtWth<*)4;%ieuIKot72?HRe4Nb&se{4DPv&;ePirz$WW#iB#sftWu~;5YD!1L{U@r$St@ zB+-7Bey5%}I8(qFvjfTA-dv?`ZaOoSpHOKKnG9(Av0TrQOcVDMG8l72-F#3)G!}M; zCFAG?#fac(SwdyF&9iWSukBYMW@i+iLTg zp1#q6y(7cv(d!P>rdbKrG3lL~C{!6NVjf+SDdj1q(!D|=QmY*x@%{O7#YV+ETfQ7L z+Ah;%!tD;DVQa~Wu^O@Zrpg$BGB!1pvVjKSj6(LoT!npS1K}8nXb7*N`NKZ5_AZ0a zAJb**TqD}o3e;427%RARF|B6?VEb?z3+c+{PV6leXJHwyi;3V-x#}6PbeD zzejR8YY(a-g0&hYlHJi+_kmj~m*&xJ8CPt(j7*g$ilqWpSX+5$hz*Uu5IcFpxd&&b zCT|L7XF1sW4{%msy&4D;8MBiX^9iw~*`ox@ByZB{DZ7PWe_K_-pb7VS2WATuY+=il zpic(+^5vOgSyr8%nVCYc!F4X0Q6uZ4NGUkyYDZ#ihpv4g-vdK19wJMFM(nzvGu18) zkxmF&NGmB)McCS@nc{SAx}uFFCy~i5zMM^Vf!M?qqHK`N9hk|{l9s7=Bv(m?6A@E0 z65GTz*@UTMy*&p;_x1Pm^^cfzB~wCPlP>4PYD!P2mkEj{4Fy!m>Ee){80Y$6(x_4D zOHa~4V6gB+Mb2(PMvvz!6O&_FGC8wBvK7IOYL&#=AZe|e3k)zJj4@4SuW}^0LIx$L z@+jFfNG#ed924!r#P5>^5UU}}nB^p_H&SP>mg-8;d=+V?>Shg#deHt!x_;GeO=kkvUpmWvC&SPhwtvZV7-O0Y4$%?_(IYM#O$k zsW@e$7L5(uY%ZOKWjLKP2d9rt7mrU<>ZYLy*p5A!d?A-Lm|GJ|kXEUQo*sf*=y0KU z95YvZM532gYXHd7e7h$H|xYfY+$q@lV z6l>PdVH%|HjiTDA;;~#$MPx~fC>D>-&PcPN9kG68Wrt{b3%Lw74VDcAX6D9<((k>+ zS$J1yj?p_Qr~&bpNK|WxPH|`pa33*Mmg>As5v2(A871xsi`I%Gb@diF9NIg_&VRgCU|=L7KsYDVw3`rK>cMYDiXl>VU>NCG*g(+`vQ^{+cM} zC-hwfRx|QU&6w$kuTqUHQ^>&$Hff4t#h5Inm{r@9H(K4Ald-@N%1E?UTNKf3Tcm*f zS~^qIPLkb;78w+`Oi__yY!NoQOh=JCS*vu#QY|7_=^LXkCzx>gRy7W79yM|_R~4qJ z=P`ed6_3KZ(o=>N2FnlYD!#yha4$x9JTr0B?8X33TeALX7>kl24Wn;*VzN}6=GjJi zT)mfK9+L%YJEfyT5*U1zMOw0ILQxGam6E8j94zxuq)BJoUZ+}+qC`PXA*Mc#`h~46 z9uV!pqEGjfNoU2JfbNrVcM&x*#Cnd7tI1@uX~=FBt|U5X3A%=?|HN{cfn7d35^4*O zS+EQPIz3KNOqgl8t`90-Hqq84V(2DnSWOk$kwztOnJmjCLrrlN!ko7uI~K6e#Se6t zo)QiYr!h_wMD@Ec@llcFk{OLNJu1LVkH(okP!=Oyr;wcY$;vKSCCWv=Pm;ChAX%ef z@&LDaY>aDy9De9DrtiUsVJTK`&-9$e7+{(v^(^Of7g<=w8E+`gmE2Mfyc8JOJ4)GH z4rpVtGGz%XO&IAd(9_rqBli?MBPgGO>gt#n7rtDyq)R6XeqpiX95U&t{B$G+ z8<__XyJzzS?7EaSHLXyIoYj;~S)OuXAYBRU6Jf(rRIwRkgT7)TgjZ2XgOM_k7>QDW zMMol9#&Y;b*5#7ZQI<7K`$p7pl-~BJsL!yGqIkn-m>QI!>`7FE(m4?<^Vq`eBe)P@ z#M5uY_Xx9zhe>A7?6hnsb{C4UZg7%vqy!JI!y4z+CpkqDX9(cYSjRv1NIXIc4h5vE zvC$(B?jSR1+n|{^IdmX*YImItKlEMy@-mNLm%1`GSKQW#6VtEs>-sT5>_K zg@%!;=DKZK(0+%I{TIol@9c4u9V_Z3+@%Q$a(Sc>7m)(0G7rcShm0&117Z~*V{r0e z9S|17ga}d?2^DA%wMB%UU}$IAVAK06^=Ki=IL|{lWKi_bd)kBI2Ih%{Mk4|hbXY{- zqBv?r>>#mx**fIBHCle8?Amf`%S1dZkIln^r+XJL^XB7!$t7 zidLnUW!gF6O^*ks#KFO9!09raxw3gKM|)&CV$_VflU6bjUHpOsOsC}&W@P3X5ZYM~ zv2!FCndQ=6*EZ1)`PwOo&Ote4xPPb+gr>}c8Xc?&war7s(6m@Hff&PU16wB&l{w^Q zgWSBpM%kr1JZH|S((DHDRLQJR9ZAt{gI#=Zy0l!v1Xjn~2{@(8N9~A*@jO?laMFwJ z)M!3*y5*yaB3~Yxz_y|Z~|5C>7N+>WV#zrx5#Qr80uMGY~U@{O`LPHB{t244rHdW&|r#{rns-;zKfR!qG5H1FapXRzLFsbG#4l3?jm$$hBjy>dk_+Pk%XdwEf)rf zHi*=1TLYvG0(s$fL87RFMKWly%7zf=ut`uva_DfB3yTU^u}BD7Ue3`o$3D26mOC~a6R5n2{Sfe36z zF}7{Bs2VEUx+s-x9`@43z=w`w;BRVd!9Kn>MOd zXQ0)^I#9jJ6-z@$5TeSLeSie|Z^AvvvMJ7_C4>uc3=d4_h-VB;(|0CE%wk!&b!!Yu zJr=JTM!1R{$Wfu{kH8~PPUo|-NyhRD114LnpvT0lWIcV@EkvWCSq@uS zYMrKgBjOp5tk`=+F6Gj$7IdUEXS;))^f)$(5=yl{eBN+vxeZ*{=* z!O@g6Pr~Gq+W?8LKuW4c8Ff7mUo!-+y{ld5Tm;9dp*ta+Q(r>aM35Gz{sl41^(G{C z8rUvtxNIyHTPNkSPpx4V;370pdh|vOHTx$EdqgfT>vk^iP$(af3^F)9CEREeD-l+2 zK1*@4wGS7|xPT1@R*2$#0K2uQWib*56E&6EM5&MrxS@rI-iiwbYMNpqHyhaQGB)^? z$lZr<>w3T6fP&^?KZxGjm9vG-E<=Z@h*5NmKZRTaa@T#XU!wjUldz7QpMT9q=x z>)xX?xd|Mk(xoTC8I@EC2V$Z`v*Yj+AIV8X@`mcgmJmVMaw3?ZvH!9=kMO00J;cmS}%1B6$)9~yv8ANb$hch^Jj&A#~XjCvz@Dfn4o*})8Qzv&? z>+&2%`8owp&r}~qiA$w!CT&Fe&(4M*L1eKywk#dwf7yoPbU=DV#=~+X;V8A-^JEt- zL9$=NRgxrOjA_AI%A_EI9WbV54%cCJ)s}eq(R6w@ZUbOc_T+OozStEMxHQQXxFp3j zq_%Vu6ov)T9?V!~qBnfg2Z#3$_4Ex4?iqr$6W;ud;Fm#Hq58%wvD_Wd(>jwrmY3Hg z+$6Ay%lgmY(cqc4RBwx0+R@qxIKe~U4AStZ-dDk z#LvE}-E4|_GZA^@YP_`>qXJ=3)=#H4rNxEIbJnhy1}i^YU%1Mfp%o%b;^poPUR;$~ zCrSf6%gLlhq%PRj7KvkU=2R=Hf~js##zqKfq9Tvry+7Jv#z10N>fdFAH@Usc2 z)Q7h76j&dw4YUF9N|8;oF?rF*hPgPXA15RejfAL-JIqtus*@FcNQ3slt8jX^1b*Gf zwW0KEIX4PUs^4OXo?Pi|IJuZ)-xrXREV&F(g|(jer3o3m#HQ7U9;3+BE?bVfQjhzZ zj@yttyekavJ<{#9Kl(A)J5{a;hqR6u=^`5@ZPdvlY1O_U?2b?A^Es7gf;FBp6YH$z z;ig$A565N5I{0u%8+7bBw6I>2#%op9CmFNzFXi>X%`=BZ# zAe5fbm;|dxGnlMYTJEZ*gvmaf$lw#-ZYW11OmPPsOmJbz7Gw#rd|9yq4G8zpG!=0P zlUZnIGFiDeGhRg-+!mHR7zcd?Sky9k$;xFbGJ!O#W@JG_L(~0*%nUE|$?+CPe-=Ij zr4oZmx<88rjH_Q+?#nSG=&720XxTtdR_`=%nhg(~8O@IusL6XLdHV`yqNO=|ck8gc zCz;_Y3m=EPVqjBPjSWudiL#AF?id6|jltrN{S$S(oDAZH)5xhJ+;|*vd7pr9T*&Dq z)|w1W1jBbI^!^kt9m%-EV^S*4NGe}c5PCUiXLspmVaz1Fk}4!*mp)33NrQAB0wbg! z4bG$Y0>>Xt)v(JT8ny+TL}U!k1T|Iy!4!i`sPvKih%9nyb@!* zLkEU-KQDb?U@%R$+t>t~3kOwZIG^PUKGhhsn_agwK|NH`{;DEa(qJ(-1+FrCbl=3L zKzg10*r=vS>$PZ=D^^~GR66x2xFR&BDQb+l6paOjExl}`BEs6uj0XNKL|B`Bj{~tj zbPO?YwUH3_Bf_*Go7P>`%p;sic6NyGt%5>=_F63vT$xm*5MJ#;ReH>-_9%AMV`*`a zN@!qk>>}=;v1<;42;p!mz`8KdIL->tE(|nIs{*tOkM#HKcO(ou{O*ChW7iG$YlhLW zk%7Uz8a@<_FvmrkHDUL_mQ^Hg^6Gq^Bo_&5fqOY zv|QP}$U`N;K7|zHRLj2MpeutMgJIUtI*+CW_=(w)4!A)G>j{YF)ySrxf|?kM923Yw!|w`3imfTKrnu3dsO5^; zH`urPy1^b8+t>8$kA{$7M*8>n_l)*4NSBdI?jIQ)7#fVA`mZ&8Lx%?GS~BWkvJd78 zlD3+@z;_h&L*dQy!6AHN0I6XuD6*%oZ)Ep%tbBL~bD)1DJ$i6>cxYrSi1+mN_K%K& z%{~1i{e!*z0YQkdBzybEM*GM1931RTTZ}Xpg{Kb>X~X795|!NDMEiPfIC!MLiAeot?8`y%n#%6?f}g%OB@Mod#(M!$`o{T^e&t$z|&k zbxFW{Py-~2v^=4~ls=oYkSSv!!z&nKxM-Ki^x-RrW`dW)C3MVwD!@c8k*j@VZ;^X#4)Cgx!@0iRje_34+;+lo}zd z071G70}b^apj{YfXnH}TCwS>32s^y=et5w|(k(8m)gmGsg(QxJ2u%$t!d!&NF%yQIBOCOb4z9Up-q#jnv+WjZv{J2W^p zGPJ)MjpYN&N;R&pfBzEP62wR!s>MtH!|C7Y9~nv?=sz$ta-Er(lsBERA)V^Qo3bN0 z)fG@C*kJGzHF)EE#t>)%L!w9+aMTRTu1l^5=`N#xYNj%$LBZ}TmhIKc0e-?D!}8_h zRa9JZ-@#4*>OILU##WG*NAM6Py%|9oNeMFBfWE{oue0Z;_vKF5GVzj-L}6aw9$i^( za?n=8DYRaDLPU{Tb6Bg^B1b8Gx$;CQKZ65mIv%)n?9K2MM9jbnYm7v()3b*#dke*J zSamn!K0jPTy*SUD({ zq~JSkXsDW&>_X^ylwe(>5o(E~vPk zy*74WG)y`$)VKR!BtE(`OhX%;zCsOyy{_iLUNLfqNBUvv3M*qH{k>Q9yL7b31)*KB z!6W17x88mD<}2ExI&iQbzpc0}Jv7`K)`&>&{(=6%F%!}7_S1uA03Yu(=x{TdImVBv z9L^uX5NB|=NrJaK>N|4;|QTpV#Vh#K!w}W0-ioUM7kLRWWK<*G0Rhk0dXLQCeHx2#i_W zm8!x~wNzyc5&b7@zCN^#hsrjpUlOZ|h=Q_A!$>s)L-Oj)$f1GVk?^%)cqoD&3h?qt zjR8j`G3=Y<1dfi0NH9=7VQN&(gjgK|th<9nHT+?+$yt%c28$y!eKFJ%M{~R~k1uCw z$^i`a?&1lJ9Kz=bj_f;7K4Mh;i_uW5?7@aOYf%R>6O*_y1RGtk_8Ta0+u@il3kG)M zR30xG2rEzuOg~=axrQa-C*8Jf)%tAtVBWs$ZN(JS*8dP9xJ2Qz@|m;%LZ61~k*3(X58n>!4=qL z`V*-9;W^a|)dlHV>b~fsC852=lGP)QL7VFk@1@Gt-jU+G+Qp#bIOuVad@(m!cqt>#Gt3_&TjM{~_ zF2^ReE=6r~DC=uy;hb#Qn8ut8p6{j?ZMoXz$5U@n-g||ho4@KK34lz9hv8h|79aX4p zQPhO?WY}wLpAbaa?b@tQeC$^l$8%{riHo$cifQ&6`)fi(%i0ajfn}q(30!sa5GxKG zVPY(cQn8=UgY_+e&yF7+8$eu1@)qs9dI? zk!ZWO`YTKhS%`e}F`cjKJ*#2#9X7rAVEL=!$=w^11!6gZ@ZQ!bNuZvV>xbp*S*Dk( z2qX3VGE%)N70oSOhbg89>$aCvU&0N6jUwG%7F}|ujn+r&98o>P_)0i-e7Mv^TSu}0 zM=O*Uoq)5ZlP1IP11fSyC8(Y{UA%31nwqeYcvecqhEI;$Amjn=Zg8SJq{nr_h#lo3 zXdkY;Tal4ncknqZ>lV%|_u-mAuECF}8rBMyc-(3?0QQm@o;IOI8Cmh?M!sxi)04N*0%Fhqx8i+YY7SjT!b|oCh=oTewrr?+(rlb$Zmqk=& z4CPoChfUTmu}Q3z;tZQCZxRp9R`jFm&~k={$7Pe}eFW$_oL^?-_Mt%8LZDtwO_}T< zvGao&$S8ky#XV&oJPlhxE>deug61&x4NTzc6ebt^EQl8BjEACrj&>?nnZ%Zz4rcir z9p)&%QJ0m^K=G`0S~gPU(lMD789Rg}`A&cx?NZimFG^WEaK}p=H=BICWRs7V+%a+R zQ6OG0k-I2v{gif~)fIK`)m$CN7;ww2`c<~qx(K7g?5t(LeKzkne|e*1^b13F%<|Yf zMt)dGq8thtDjeDN%h|2=w3*2SZ})3ZxpUWuaX`j&9XHJq=$0(5x?ohrl$mipTK1l) zEO}=XS|dXV6$!IlL}3%zmqrBLiUtXG8fwsf%AY}gUdK#EC7f4uh1;Bc?Yg4&x0wNz z(jPC0xoO6sFlydnwVqR>!)$ao?X6$wc3EoGoE+B=M@>v(uYgamK|UdNIFEr(NLnAn z*dMqv8Trt)zLZCff?v!rGyDz|GEW+~2aDG$Rp7n1Mo& zPMC30j~cDBmTBBU${He_V*67L4q=j*ncxl<=87q9F~zM09(TN8$XSegB;$CuOE%2o z;U_L8aF58~=RDk3b07!ycQIyY%^w!uNQsvmAj()ajzP|Kl8d=IV_&VZ8oG{ zl;6neAQ8?^^qT7Hpl5Nv<1l1`7d@b#^?S-3TGb(eMI{}@A>_E(A#~#wUSUx=#ak^? z_$n3T1fOcq{x&nv;stz{AT?StTg^D;;!!h+=FKo0B-B2FqamvB>=u1# z7vK1$LhsSXZY($IveA!2D66Ok-|3`DBk>76Zh==yep9Wd94==Er=z#+C*2-!U^*lz z%;@?kVv~>TWJTV`)hQ9R+^Y?D)$e*XFNcbjJbNy-B~EwrFq!b6a;XWai1PoN@aE8 z(uA>m1;3iNq*?CduBy$plSXq`4EY{6&o__5t;F9UD$I?QX7TZnY%juC7{Ve4bF;YU z!J8}kO_KdMk(z}K7E;udy9rl9r}FX+dKm_#Ru_Gx*|m zDKO3yAw7lJmN_Az2&2}hBN>v$^L$r5QkkkT9+&bJ28_l2%p8`EkV4~EL0RJ~c}H;k z0h1fnS$Lh_GRU{w@zVek#jLv@*E8BXFrY_}`ijKtIJ72Hv0Mg@->@KTZ0xbE>Hv4O z#I}Gl*>3ef$ruk?Ee4(rh%{yl%_W@j+E1Xsl7$0j48CnX0ddbmVtDGy5{TMBUvZXe z1YSSU0I1L${K#@#x^>(Jb_QBOmDq#tEW`HMVE7%HLTGlhX8_@HF27so;P61n{} zfuqAd%ncz-`k}-2jbnFD!=*(=q!&kDGxF(#;Je4cb_%7A^Id8Vn;KC4**p%#cf%Bu zbBVCcH3_3)vDiU0%g`UdN2BGJ3b@hMA9XmC$-5g_bTh(-?!L`nUs&(gdt*lTj;I1h z7d&6a_m%Kk>JjX>A;Eq4S_7`AnMi324xt%bAg%a8toC4z(b&L;*dWx|@}WFTANQ@V zuwnZ%Wi_60HHw1(hYPGn3?)BY#)uh(PL|IESw;OkyjE@wX(v~B{vZ6vM)2i$bkr{Q;vQ#(&0>E5>hev(*QtwhAD~Aucsmq5<}^;^ z_cAuY9Wq1D)2_?6r0r+Km*Fg0RJ7Jzmv2v}E0g)M*`-#)!_*a2T@^0W<#;Db_l1A`>d$FJdZ0e!32YlBk_9DjOR^*d5q$Uu+6qQ)$b4l2257cWkl(rm zzgVRs8UyoeMv54n)x$YC$_qzG((F$O^=4+c$HLUZCs2mucXIUuD<^n7gK0xe3f-&P zPG*v$!W4tD5$ho2%$8SEnZ@dzX!w2g`xfkgu_De@59AB@i3A?yXK@P_Q@;uUZ7kh0 zoXMB)>k{a#epTIKS0dU&?}zjx_cK`B)QGm58$DmrB>-1!@m{H=B;~nY}tO{ z#XDbQ((;2W`3dO_o(qa1!j;j>wqIn{tWg)u<`Wlg-n@C+_|A>E(V^zdzFYzO%(9D0 zPuLaRwn^G{9e_>zM z(-v>u@P7TI+%l2@4bzvbsxT|$Z3%vlJ-ROE%e3CO4(aM)kM8Vw6n|OQExeJJbHl|T z^0Owo8)N(35!4{g7#Qb8-!e3WTdvGe+=0mP)-0{qiG6zOOm6(Tu(CK-v~juY>vGAI z9;p=gx&efizcwa@f`&teIl7pEYHo#H1DjM{8RlL)#GYCX zUz(vvpv!QhV%Zcum_Unp%88RRY}s@ZCmr@Xxl$3=KF}NR0kQ4;1XS35w>J0SXOrD_ zVH2E`x^HkllD3J-P6S@T$z1oH6zA zIG76l%+M&Fc>l%VZDiApXBiN$$l(8O{C0c>X-ANw+Z+a_gs00%DlM(stTnfo&E`dT zdI|WYj7c6t&Vn&rgUD4uF1(lr{EU=QL3vrT+L%VxikI==?J;K#APm zaI;{DbZk1GYt0z&J)nUtf*b|231L3hN@*M}R|AJ=7BO~iH#!hM9EK9LJh)$_hNDQq zy(9e3rZXK!2}tY4;An@Jk-NdHvqQSxcNt*#P z2#5<);D5a_F?3Jk^KF?o7;}Rg-b*ZQ1Il#u5Vr;5L>#u5hViXId`RNkY@Fr5@r71b z1iu}4(_bwH$3ek9C*Q{qqA<)N9|yd8_(MTnZM=z7mokFf$I(`nF)QU3F+sX9_EBMq zmey_hQEv$&R05yfwuN4%x(>D^gTCxWAO0uRFjrjzOJA=1UdRBa9w$4~HAYF}2dJjeS&6eIbjdU-&<=biai>s+T7px6!%6nSQnq4xY_@+} zq*O9LiCT^Tk`@Dd!9moR!IWd;RNHk!tSLxkX*f%cXo8Ku4!yy2Iga{p4IEQp47}*% z-Gm`!H*kt_%0XML(3DUx(#G`kpl(j$qxdVLB=(KcZH$PJ4iG1Q5oJwCnH;!HXx(zu zo1tT=qc1VnVuEx>MX*(Mx0`gPRr3#{WKI;bkb42N!4+l~*qA~C2EjUBfkb7O1FtE2 zWL8m0Uv92P3g_?o((W@-?Xg`+P5Dfvk+;L(?3t-X zL3QF3RO``Ux8iTVbhhdZ#{1D9I9kA*uT9?vO7_NjwEPm=`s!{~j?V|hdi3oYW47rq zbc33_a9s%X1T~?Glj5iip;ZTdS)SbxYHIl~S8Yi;M&^uBi0X)F?Y-bY%S8*5Vp@yYNVlJQ{b2?K0QyGM1xplK@4Qm{RULQhF^ubIDLhDamikeITM_t2`dk|cZ zs~T?B_JJ3!pfqWm>cd$(VpKqQrc^_HA_^2Wjo&R%QZBq5xHC60?N!pVkRaU8(Fjvdhg2pdfJfAMiR% z?r{j{^=Q`lfX|0WG5lOR6&*=|#}I@d znl~r9T|2shp-@Zpa@24>CL4^JBBxm>ir0fPZCSJfb&@K7oT#^graBi}M%7qdU)d@o z&3OZIn%)<{Afs40!63I3R6ezg*kDbwnhz9b3~12HR+vtT#M=N=5~~t+l?$nlH)mz z%?A|_M|Vab7a6M9Zc#>rt_;{)JEDeim=aaR%c#IcRm(K5O>@*tH|?ygg8!-7j({K2 z%*_kAArB_@0$`%^)LiT|fK!^$^1{u`(p{>Ve`mG*T)U-o+u@2;G0Rt=TTQN!ZiB4~ zX%jlEA9e>f<=m92?M;0i?Lw~E8A*4$maw+y>SN|V@&7)vlnOS08%?$8b!lAMh>*@T zf}1{b^qJd`ffUm2jmlBj9a>}c=$^Xs&HQJdxw8KoqwBgUy6`ybWof5XQ&n}`{3n0A zjae$F(=bHnJ5j?*`~EOQoU5UZ(y7M2I_Lk@X1MJX{UGWD3&khgvAa>BN*G6zI5(#t zcBG(~QXM+`ajDwCHZ1+y9Sk#n2Y03PomDH3T9KuS`7N_@zK*i)ATL3;a(kjq8yDMz zZsS(N+@iJ)ev?`Dtl>833RoL%tHjk{+S*XGM8Xtm{)wuTaC^zkX>}^C#qiJ6yIM_B zYcNU8Vd`C8^DJ%4lpW?Wo@@=%&HPWDLBvj;3)rA>ORpTwJywS=w%ckQy{p(Yw>Ae} zqp8VJ-37JuxRG5$U)}UtdVEBphTb*!R2(tg)a;XD+WNu*ZIbvIj;n62HzFLG}6@Dpl|5<+zNxXGbxu zLT`MSb2a)T^pk~-5zl(Bs9(f-h&>;+-xy-_b!Dk>TBDZWI#`F;jjbPq_E8UF)Q({P zS8t0=W0-EvAAn5id4+RCoN6m>c0_wz*S9IDlUD0Slv3*kpj*jX%^E^?gjzXAkk9R8 zO+EP$n|C$)5S>2*J`8Efqg z*x*X9PHa8oU~i~5(VR1gl640_zbxCsV}Wk$SDeGpG?H6&9-7z@IA>I$xY6U2+SaWW zeA1!M=MIi#3@1gSI<_YQ$}Je_Fh*4r#yB6t80TXc<9yVZiCr6%du>&@VT|R5F_s&~ zSZ)|&xf(N<){dv1qN%Hg`=4-LQKmzAhXHX#^{TBq9IAO59|%-1%$4jP%)$$qTthS9&YlZ!s`b1 zC)}%2LCS?tCEGCcR8v%2*PGoUwz!)v zISvC;-6pebX<5HC&w-_Re$)El1lzH+v|q*na=WrNtaQ|Bi)o#Wfjm+ z(Uu^c?(~wfF#+eEF8E9{D+WXj@x(M}UH$biRq56?FRE7G^y@o6JvU@r9JM9A7^w-F zBh|CvxTsOi9oOeP$D*2aed^pGq)`7*9vtV;W;1{CnX0FK##R4{({6Wzsa!QJ~{Vy={~rp6=IHElHXHQnsYYx$irNv2vJjR3Up{KjIBq+~AWszJSsC-_ zwIy<^u4@`VI%94EU5@8&_yE;2=Tnn{GjR@PJhjo%Qaoc0ee(5R{>=X5fe*j(!nO;p z-t&5s`rysiUvuX6uisI3T1UIL!r*b5KF-v~20W6db!_%J7B(YswMH+p(JM9Dhv@a7 z+RrDb`V>8eXcp1^8oi!TP%Rp7g_k<5BkQj)E4DSe_bSF{ZNANG1tgo+UzK)fIT?q;Ipg1B7DC(HF@DY@dWXVYc>KUj{ ztYdO)ok`-aK33P2h}CtpB~fulTUUZ5v`JxY2qF&ZHh``~y@_?AHL0#d%J^Lg1Upki zWq?QuCes-=_%DvJG;yCGMnGgdLD22_EvU$EXH6j8)~&GV6^5*J^$yOa5zZH+rtiJW^G3&^I?q!zM+9g}mU`bz+n=80}Q5 zJLX}~Qk^7jKec3g|lHb*KOYgb?YI>%fGFn8;Ov$*Yu&RYJ8&s8;!Pb?n^) zimyYVb!4S;6^FUAV}8D|JKk{<10A!d9G!WSO}Wjb+=dj3dzr(%EX3XEaCe5dS2^6P zfJ0kP&H&6mz*g^K=w5I>$H3bN?$+MAo8dQV_>By|Rm1jiug2acOwO?pEh$PeCk!4? z0jYX@wx8U%(+GXq0ue2yYs1W?hJDOeC`toMN`D5-Lo__LIBX5QUhgptPaZKh(kzT>QE~ z3U$ZgDxV$J(vk7mVJ)3_K!6uNB!j>BA(<-}@^z+#vU9&m%l*iMdDoRlLbSU&=HCaw zdlAzY2yQ311K{L-f)foOhO8n)RfJia0#~~_x*JmU^};H;p_8a~bb&U}VbDjUwVO30a-pdXON6DX2OUHm6CEqpW;V8k z8WxePjp!5QOV{p_Nsn39zOW%)$8{n}kRqrjXdq}JXeMYOXa!*Ig$>LNh|WhP&_2UJ zAXv{8U^SM&{q^fyNQknMo+asxswn4Q0kQ(tYa3vnE@V5Q`%L@%T`Yh8F0>Q4E>2h< z0>`$jQ%nOZnh{+K9c=YD6uRHQdTqiwCNRzf?Z$`W#%tloFFY)KJuJFl@m|C=^Z-JB z9VprtNdZXWM}_@|$(0}$JB51T;f}@5CUPz%AkqqfmB^zg2k{OV50LqVJ5dG(gs2tW zsSssx&B%rzs7OJnZ?P#_&yPD6UWLWW>q>Pj+zW;lyUG1xw=`<8n=Ia`4ZIVh?YFhG zwLpTe71aEEJyuZdL~ zE!Eha2xHwT7uG}!g&9V(>_|IjmC2`D(P zr7O|U9rx?&$#z+UdCCt+4 zW9mr79rO1ftOQ-4s53OXc5z8qwTcUK$4z*`>VODz+yom5LD3 zgjRGngrdc8bZw+H)ov(XHj3odRI8yhgqTL-q^mX2VoS0D*6flHZ>?(&GEz2IrCL)d zqw<{s-zXENzAywlpAbDIV6~Dr6|mJTT)KFNsb}_(r`A-HVGjW%|2t~SS4)s6jCDvG zCA;ISUN{E|JdsB%W%_JQEoA@8Q{DYrzkdyNcv3cwu*){cngAKyK-KB&*)~Q%1T)F+ ztT#|6vU`OnAs|-In;J|E`$5pOarhX--qpYmoqr401a6aCxn%%Y2Y_mXW^+mwWN2mz z;=%?jh72q|jBp!vDJ>d=T7S4B(~hOD3SpPvN4aUrpf(@5Xb@ze(O{%YCTpuaY@d(v z$rP++*uBA?V+0xk>mx&Ai7h_BwGs{OSonUB3=50N2@*2MMXdvr65+b?Em^l0z6B(b zrOOr{flQNN81s#b)3DfK|AsEoDEmtA2*~O+4DF17>>@AXc9PZx1K<~%T8Y3cLg`>` zbG@b_rHca41NuIOt?3P>ViE3Wrc7P!W|1U(MUxjaVWABK}!N$wWMMxlbZjO z-bDyKYh!Tw@V3qWzwSCu*Irt7w^HcVb$7+}9>{;jRp;IR=Qo|7_n&vsIZ&Rz&3n#u zGTA9Vev5`%8sIg8x!9I!OJP;&xE322%m-MZEr>abv}3V=)y(HSgR0n!xrWI^IxGj0 z8x|a9GOU0Yfxp7qT#sK#*;tp=xNT zQUS>BkcRomHJr2hzy=yyb&^1P0fnN7!oPUy54nvYXe4L>pib$Szu(6kEkF}2!lBSU zf1eoCcT>SF-i@dfK7St+LC1EslXF?zmF>FoaDGPghU`Vu>qtvGkGdDK8lt9jII-5* zAn=GfL>Xv_x@C!$NQ{;U=TVa5vT&zZ%P{{Nspw#vb5Bq`MnTd=9SbMevhCDg7Cs_c z777}+oOCtx-r_~d9QLT&8x885e>=u_aXT6h*b*et24B3W5&PRJ_<#BRB&+ zD(C{M0*%+n01{eZ5@H{Yl>o~G^0aV;0I5c2Fbo}w54O-WLw`3wCR-X1Zb1a$2FRz^ zz=4ot8@o$lcj+eaJ}htzaAsnsXori*$bT0H5Auoh7P?R9`{54bq+vU5)zn+LyH3K5 z5Chbu>EzuBW?Y5tf%IZYtjDThL$IB}e;9#;2T|Bc$@;EDyX-ia4gXOJ>(NUtM~fJy zl87xk+%>cnEiLkfg(d4d<{yOJ&-DsLfeH(KH}(iF3Tj#QY+{%|Hn?@P+3MQ@=4~OZ zQ3Q&?$XO=vsG??3n5|)Iy-XTZ$tBgYjqQ#Ll3$J3zJPPbrAbe4>Pj}OY#LxMIBwxJ zDZmlsa)31*qj@y6Oz-IN=@(Gn<05oN`{G-D z4=UC8aTo-~Z!N0IutI@BK5*aM7Vp7MdI`#5HVQl}cJnrsCeWQscMzs0w5BR(m9}(Br z;v-Cv{z4IK6Ug7k90|Hd9v3LS8-%HKALX$8&v=YWL7X5#P)Cp?NDJ{(-v4N9P8}Rk`k0}6cYXKl<9|l;spP`SE zx9^kkW!Q<ZBcrGalNG^PlA264nU<^PhpEHtvEDPE5@C&mjeQNeSlo zkP|GdVL1JQA<2y!1amVA_UdS8sGGi962kQoQ*oMcm)NRuQkBF+{ zjNd@;6N0A+&f^MjEx|_!x-sYDs|n60*gU(Hozm1D#9ZT<- zan$>u>F2))3HI>Ufimbef(#Q}OK?5GjRZV5I5`QM1-fGxbezQq$z%RQ*rIgY#4|oDFFcOB$rg#Inw#@H zjkdwp3K1Hyi#~8VzM)3ACs3C-j%qZ56Ik+eatvVpBMiL^+sj+6Rg752t-hbq(+aFQ za$KN!HKu0(vYMj`*u|&CB{7yIsQ-Cs9&cjddczw(VumlUr2!51&P z=Zq^~@b{aJ-gfoYC&&MJ`Ukf@^3-*2c-@Nc+lAy zefQ`?@88}%`kKZ23#r+c{9^3R?;ZQe1+U)mv`LrwXV-B= z7W$C|9fI90mcAHvwD51XB$GI7#2tc#eejWHXg#)cwhEFLh=2q(iFGy8zHpE;5&7|8 z&3NEu5+6Q{k7#P@7Jnq4Nn5PhCfwaFcasrzKHVbSJsFZ9AhRB0v z^PxI@a& zXFUdAFA#}$mRH$QNnqrX5&P~HdSz(gE~GR{#r8fFsmPQqp1~Mg+4V`kMH3LxfG;K5 zyKSqnoxGkywGZs^ZV?{5I)o!`y%dB(Xv<2g^7X&;5HrGw(uyX)uo=f5I_3Xjo%CCc3(st#%~yO zUl2t3&H8S9JrG}^tmJd$Zhqb!pNfR9lA-~*!m|(0YzI0PXBKq+-5DlP^s?-!gbBf6gWwdBHqRVF%}7Q zi97*NDo;USp05%ijHOm_iDBO`fB{cH2&AJhdM+5p!4mdg@p|T6b!M_23Bf-h=CF1p zRwU^pV@OjOs!w7?KolXke4)!A2k-(>v-RVjc#gUdg@kw*GEm1_(4H7f2sBMVoS`~` zBtbnv13?o(GbAbAl3GOp=v)Q;iB_-bOs=GthkJY81W2V;Vm}H?265i_NzI}5^@FBrMetG z$ha~Y6vzu>E0bY?jBA0({|Vnj4PXh0-IQ1Q&=G5T3}OuTazV}kSnk$)#dO(#+A)Mfz2$iIV_NIEwH)2 zt=SSv$Q9U}>T-COu|8P`wTWp2KMgk4_h82@nmyGBON43?Nu5w1R1;WF5QggQTm@^y z$2CIC75#_QrIW_*iVF>=1^x+5?L5HBAT(BW2u-bM`(1THL*d0gp{bQtzbh#;lt=s% znpy$GnXu4M#PCmOYGumrsuvnc4gLvDt(f>-4MIafz(1j>9eKa2NoY8>_$M^AgXwqi zRwqVC{|Qa)_)v-CU|+f)Yjdh8iH!?}Wfj>^U<jx&B?{{*+ zgo~zyi^BX{xUOImAUU37%EGr>WUcu&lp^xCFZ@VWj|ZucTfGEbcdLM*sQ|dJA&DJ& zOQ$TWST3R7;cv!?{Euk?@cRFDiVfCs)V8p>B?()9@e!?Ftb;8jK~Qm7qsI^XLayfR3qJ$hVhV;=EBc}f7vR-g?20v_mJ~1GWyL7t zI}ChF;WYbXf!Wq%T#L>kg1il$NsNv3^!CdQ$&N)&`r;`t2kCzcdj%`E1Q5nQ8Z$U+ zEntBr3GWZynFJp+;F~c;;Qgs>kK*51*flOu1Gs1jci^Z!MR_ve>RM8REl~wONj_P+Jg0*#5~J{#S{b= zxASO{rXrZXXmzrYF*ajyhHzmG2ZZOM+mVcab+8XfVhebXrz`D?iT|g)vx$wWisJZv z)0Q`{wnG^#RG8ujB52yl6v|fui3kV_5eOC8nYJk(p+Kc2Zd?pg7qDrh(gT``L5`BOuF8ew6LEmD(>U^c{S zdFbCV|9IIIxxd7&9_qHLB;HwzF@uPlTJ#;HedD~!{q(Gg_4f?3K2G#?xsu*`(Uvi2 zO4P4QpDt+dx=_{fbd&l7q_lO(XBJ8PUVe-Tdfo`uC%jVq9C>Mmbnpt9Sc>S=TZn0J zmZG0;DON3hiIzZ|`l|Y{SVJXc-O@L(5I9^z0gg?_%$ZUKjfYV-z8lmJk7#pQjbX=NRi_Yeeu^C}r-*8!!z_ zhP(P1Uo15i_~eGvNb;iMT2s9RI=GhdNn@#$dCe1+Jd+Zke8DmzBq6m_8sSZ)2ulO~ zxs@aui0Qkgg4OlvXO9D2`gG_vv`1>YUJ8zrQnPlLj?f0QO^} zZwsEXL*YT8XnTFZNO&Vc_*|t~0kGRFcKe@Y_ka@EpehAbPd>2_fy6o8h~AYE)5DJ2+RbNUy{xxQ)aRBT39ZoU zOd~3RhAb894_O^8A|;S*Yt;IJ<&c-7wu_nDr12UHAObRDM za6mvH^@ju$g{IZt5UYCEud6=F3*;1Qx1V&vTR?kyI9acVR&d6g31=T?|5yyKEZ!Cg z(imWN*4)7q8PJT~K!wt;LQxG={KBln?otQ+J_h<)QMYMAd7k z*uy7h+Ov`40|S;X?W+z=6$8D!go{HcH;D#CLlU}F(Sf1fA?xX(;^IflBZmgG2%`Df z!igw7adE7veWlbwcE7S4opd)Du~=|ub6lX;n4Yfn@uM8#{5@|LF}matzWvIA!doJ@ z@wJ)h3+FDMIaA($b>Xu2b67rnaq38UTeZ4#bX#={8y&-u8+u$i=lUWn<-T|R(t-UG z{$_h+tWvF1om&^V!SqQPPakDDqVgVXT+F5^{BSxn(RnGN-3FZx(xHdV1w9Vw@7 zB==qNeiTQ_$FEM|^a&p=6PGW{T-rCaYuDtC=^Z=A_G}-YsqWr07)|5`PF^@KKe!E7 zyHa`Ic~@#XfBd9yIlEi_|87e<=iWJhqpevy#Ndt1YB@7wzFY+J*Jkq2j;e433#@^QeE7O@5`SXS>=dHw6-*;uqJ9Mc=9B# zc0;GiO^&ZrX0tVAcbNMr>jAY`^~&0Dkg{a)TBZw|mX6i_cB7_Gs%KRnk~Q)?MV>8& zN6E{ZFRi#8P9{yAdzBFsS#QYv>J{20Be>0$Eib$2AJDt?bfnz`{2RcYHAvxZ4&0~} zXWcn4@Xv8mrk3izon|q=iuqMkP#kk@W%&^!^SHwC6}-5pSO2^6ju>u^rEQTZM&Tyw zFWqT0wfE1XIP!gRoP1=dR7M^bS}@!W?-;l0!{zDQds4 + + + TwinCAT.Ads + + + + + Converts the specified Raw data to the appropriate typed value + + The type. + The offset. + The data. + + + + + Converts the specified value to raw bytes + + The type. + The data. + + + + + Converts Primitive Types From/To Byte Arrays + + + + + A TcAdsServerException is thrown on communication errors in in TcAdsServer class. + + + + + Collection of DataTypes. + + + + + Data type collection + + + + + + Data Type container interface + + + + + Determines whether the container contains the specified . + + The name. + + true if contained; otherwise, false. + + + + + Tries to get the specified from the . + + The name. + The type (Out parameter) + true if found + + + + Gets the with the specified name. + + + + + + Internal list of data types + + + + + Dictionary (Type Name --> DataType) + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The types. + + + + Determines the Index of the specified . + + The item. + + + + + Inserts an into the . + + The index. + The item. + + + + Removes the object at the specified index. + + The index. + + + + Determines whether the container contains the specified . + + The name. + + true if contained; otherwise, false. + + + + + Tries to get the specified from the . + + The name. + The type (Out parameter) + true if found + + + + Determines the specified + + The name. + + The if found, otherwise NULL + + + + + Adds the specified item to the collection. + + The item. + + + + Adds a range of types + + The types. + + + + Clears the collection. + + + + + Determines whether this contains the specified . + + The item. + + true if [contains] [the specified item]; otherwise, false. + + + + + Copies the data types to the specified array, starting at the array index. + + The array. + Index of the array. + + + + Indicates that the is readonly + + + + + Removes the specified . + + The item. + + + + + Gets the enumerator. + + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Converts the into a + + + + + + Gets or sets the at the specified index. + + + + + + Gets the with the specified name. + + + + + + Gets the count of contained s. + + The count. + + + + Gets a value indicating whether this instance is read only. + + + true if this instance is read only; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class (Copy constructor). + + The coll. + + + + Returns A ReadOnly-Version of the . + + + + + + Clones this (Shallow Copy) + + + + + + ReadOnly Collection of objects. + + + + + ReadOnly DataType collection + + + + + + Initializes a new instance of the class. + + The coll. + + + + Determines whether the specified name contains type. + + The name. + + true if the specified name contains type; otherwise, false. + + + + + Tries to get the Type with the specified name out of the collection. + + The name. + The type. + + + + + Gets the element with the specified type name. + + The name. + + + + + Initializes a new instance of the class. + + Type of the data. + + + + Collection of objects. + + + + + Base class for object collections (abstract). + + + + + + Generic InstanceColleciton interface. + + + + + + Determines whether this collection contains an instance with the specified instance path. + + The instance path. + + true if [contains] [the specified instance path]; otherwise, false. + + + + + Tries to get the specified instance. + + The instance path. + The symbol. + + + + + Tries to get the specified instance by name. + + Name of the instance. + The found symbols. + + + + + Gets the with the specified instance path. + + + + + + Initializes a new instance of the class. + + + + + The relative path + + + + + Initializes a new instance of the class. + + The copy collection + if set to true the collection is using the relative path. + + + + Determines the index of the specified . + + The item. + + + + + Inserts the specified at the specified index. + + The instance. + The item. + + + + Removes the at the specified index. + + The index. + + + + Adds the specified item. + + The item. + + + + Adds the specified items to this collection. + + The items. + + + + Clears this instance. + + + + + Determines whether this colleciton contains the specifie + + The item. + + true if [contains] [the specified item]; otherwise, false. + + + + + Determines whether this collection conains an with the specified instancePath. + + The instance path. + + true if [contains] [the specified instance path]; otherwise, false. + + + + + Tries to get the . of the specified path. + + The instance path. + The symbol. + + + + + Copies this to the specified array. + + The array. + Index of the array. + + + + Removes the specified item. + + The item. + + + + + Gets the enumerator. + + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Converts the to an + + + + + + Tries to get the Instance by Instance name. + + Name of the instance. + The symbols. + + + + + Gets or sets the at the specified index. + + + + + + Gets the with the specified instance path. + + + + + + Gets the collection count. + + The count. + + + + Gets a value indicating whether this instance is read only. + + + true if this instance is read only; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class (copy constructor) + + The coll. + + + + Returns a read only copy of this collection (shallow copy) + + + + + + Clones this . + + + + + + Read only collection of objects + + + + + ReadOnly Instance collection + + + + + + Initializes a new instance of the class. + + The coll. + + + + Determines whether the contains an instance with the specified instance path. + + The instance path. + + true if contains the specified instance path; otherwise, false. + + + + + Tries to get the instance with the specified instance path. + + The instance path. + The instance. + true, if found, false if not contained. + + + + Tries to get the instance by name. + + Name of the instance. + The found symbols (out-parameter) + true, if found; false if not contained. + + + + Gets the element with the specified instance path. + + The instance path. + The instance if contained. + + + + Initializes a new instance of the class. + + The members. + + + + Tries to get the specified member + + Name of the member. + The symbol. + + + + + Interface represents a collection of objects. + + + + + Interface represents a collection of objects. + + + + + Initializes a new instance of the class. + + The collection to be copied. + if set to true the collection will use the relative path. + + + + Returns a Read only version of this collection (shallow copy). + + + + + + Clones this instance. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The coll. + + + + Returns a Read only version of this collection (shallow copy). + + + + + + Clones this instance. + + + + + + ReadOnly collection containing objects. + + + + + Read only symbol collection. + + + + + + Initializes a new instance of the class. + + The coll. + + + + Initializes a new instance of the class. + + The symbols. + + + + Collection of Namespaces (internally using + + + + + Generic class for Namspace collections + + + + + + + Namespace collection interface + + Namespace + Datatype + + + + Determines whether the specified namespace name is contained by the collection. + + Name of the namespace. + + true if the specified namespace is contained; otherwise, false. + + + + + Try to get the specified namespace. + + Name of the namespace. + The found namespace (out-parameter) + + + + + Tries to get the specified type + + Name of the type. + Data Type (out-parameter). + true if found, false if not contained. + + + + Tries to get the data type by full name. + + Data types full name. + Data Type (out-parameter) + true if found, false if not contained. + + + + Gets the specified data type. + + + The specified Namespace from the collection. + + Name of the namespace. + true if found, false if not contained. + + + + List of Namespaces + + + + + Dictionary NamespaceName --> INamespace + + + + + Dictionary FullPath -> IDataType + + + + + Determines the index of a specific item in the . + + The object to locate in the . + + The index of item if found in the list; otherwise, -1. + + + + + Inserts an item to the at the specified index. + + The zero-based index at which item should be inserted. + The object to insert into the . + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if item is found in the ; otherwise, false. + + + + + Copies to. + + The array. + Index of the array. + + + + Read only indicator + + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + + true if item was successfully removed from the ; otherwise, false. This method also returns false if item is not found in the original . + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Determines whether the specified name contains namespace. + + The name. + + true if the specified name contains namespace; otherwise, false. + + + + + Tries to get the namespace object + + The name. + The namespace object (out-parameter) + true if found, false if not contained. + + + + Tries to get the specified type. + + Data type name + The found data type (out-parameter). + true if found, false if not contained. + typeName + + + + + Tries to get the data type by full name. + + DataTypes full name. + Found data type (out-parameter). + true if found, false if not contained. + + + + Gets or sets the element at the specified index. + + The index. + + + + + + Gets or sets the element at the specified index. + + The STR. + + + + + Gets the number of elements contained in the . + + The number of elements contained in the . + + + + Gets a value indicating whether the is read-only. + + true if the is read-only; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Creates a read-only version of this . + + + + + + Registers a type on its namespace + + The type. + Creates a new namspace if not existing in the collection. + + + + ReadOnly namespace collection + + + + + Read Only namespace collection + + + + + + + Initializes a new instance of the class. + + The coll. + + + + Determines whether this collection contains a namespace with the specified name. + + The name of the namespace + + true if the namespace is contained; otherwise, false. + + + + + Tries to get the namespace with the specified name. + + Namespace name. + The found namespace (out-parameter). + true if found, false if not contained. + + + + Tries to get the specified data type. + + Name of the type. + Data Type (out-parameter). + true if found, false if not contained. + + + + Tries to get the specified type (by fullName) + + FullName of the data type. + Found Data type (out-parameter). + true if found, false if not contained. + + + + Gets the element at the specified index. + + The name. + + + + + Initializes a new instance of the class. + + The coll. + + + + Provides data for AdsNotificationEvent of the class TcAdsClient. + + + + + Initializes a new instance of the AdsStream class AdsSyncNotificationEventArgs. + + Timespamp. + An object, that is passed by AddDeviceNotification. + Handle of the connection. + Length of the data in dataStream. + The offset of the data in dataStream . + Stream that is used to store the data. + + + + Gets the timestamp. + + + + + Gets the user object. This object is passed by to AddDeviceNotification and can + be used to store data. + + + + + Gets the handle of the connection. + + + + + Streams that holds the notification data. + + + + + Gets the Length of the data in the stream. + + + + + Gets the Offset of the data in the stream. + + + + + Provides data for AdsNotificationExEvent of the class TcAdsClient. + + + + + Initializes a new instance of the AdsStream class AdsSyncNotificationEventArgs. + + Timestamp. + An object, that is passed by AddDeviceNotificationEx. + Handle of the connection. + Value of the ADS variable. + + + + Gets the timestamp. + + + + + Gets the user object. This object is passed by to AddDeviceNotification and can + be used to store data. + + + + + Value of the ads variable. + + + + + Gets the handle of the connection. + + + + + Provides data for AmsRouterNotificationEvent of the class TcAdsClient. + + + + + Initializes a new instance of the AmsRouterNotificationEventArgs class. + + The current state of the Router. + + + + Current state of the Ams Router. + + + + + Provides data for AdsNotificationErrorEvent of the class TcAdsClient. + + + + + Initializes a new instance of the AdsNotificationErrorEventArgs class. + + Exception that was caught while handling notifications. + + + + Exception that was caught while handling notifications. + + + + + Provides data for AdsStateChangedEvent of the class TcAdsClient. + + + + + Initializes a new instance of the AdsStateChangedEventArgs class. + + Current state of the ADS device. + + + + Initializes a new instance of the AdsStateChangedEventArgs class. + + + + + + Current state of the ADS device. + + + + + Provides data for AdsSymbolVersionChangedEvent of the class TcAdsClient. + + + + + Initializes a new instance of the AdsSymbolVersionChangedEventArgs class. + + Current symbol version. + + + + Initializes a new instance of the AdsSymbolVersionChangedEventArgs class. + + + + + + Current symbol version device. + + + + + Event handler for the AdsNotification event in the class TcAdsClient. + + + + + Event handler for the AdsNotification event in the class TcAdsClient. + + + + + Event handler for the AmsRouterNotification event in the class TcAdsClient. + + + + + Event handler for the AdsNotificationError event in the class TcAdsClient. + + + + + Event handler for the AdsStateChanged event in the class TcAdsClient. + + + + + The class TcAdsClient is a wrapper for the TcAdsdll.dll and enables synchronous access + to an Ads device. + + + + + Initializes a new instance of the class TcAdsClient. + + + + + Finalizer + + + + + Releases the resources used by TcAdsClient. + + + + + Disposes the . + + + When overwritten don't forget to call the base class + + + + Establishes a connection to a ADS device. + + NetId of the ADS server. + Port number of the ADS server. + + + + Establishes a connection to a ADS device. + + NetId of the ADS server. + Port number of the ADS server. + + + + Establishes a connection to a ADS device using the local netID. + + Port number of the ADS server. + + + + Establishes a connection to a ADS device. + + NetId of the ADS server. + Port number of the ADS server. + + + + Establishes a connection to a ADS device. + + NetId of the ADS server. + Port number of the ADS server. + + + + Establishes a connection to a ADS device. + + The address. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Number of succesfully returned data bytes. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Number of succesfully returned data bytes. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Number of succesfully returned data bytes. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Number of succesfully returned data bytes. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Handle of the ADS variable + Stream that receives the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Number of succesfully returned data bytes. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Handle of the ADS variable + Stream that receives the data. + Number of succesfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Handle of the ADS variable + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Handle of the ADS variable + Stream that receives the data. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to an object. + If the Type of the object to be read is a string type, the first element of + the parameter args specifies the number of characters of the string. + If the Type of the object to be read is an array type, the number of elements + for each dimension has to be specified in the parameter args. At the moment + only 1 dimensional Arrays are supported. + + Handle of the ADS variable. + Type of the object to be read. + Additional arguments. + The object the read data is written to. + + + + Reads data synchronously from an ADS device and writes it to an object. + + Handle of the ADS variable. + Type of the object to be read. + The object the read data is written to. + + + + Reads data synchronously from an ADS device and writes it to an object. + If the Type of the object to be read is a string type, the first element of + the parameter args specifies the number of characters of the string. + If the Type of the object to be read is an array type, the number of elements + for each dimension has to be specified in the parameter args. At the moment + only 1 dimensional Arrays are supported. + + Index group of the ADS variable. + Index offset of the ADS variable. + Type of the object to be read. + Additional arguments. + The object the read data is written to. + + + + Reads data synchronously from an ADS device and writes it to an object. + + Index group of the ADS variable. + Index offset of the ADS variable. + Type of the object to be read. + The object the read data is written to. + + + + Writes an object synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Object to write to the ADS device. + + + + Writes an object synchronously to an ADS device. + + Handle of the ADS variable. + Object to write to the ADS device. + + + + Writes an object synchronously to an ADS device. + If the Type of the object to be written is a string type, the first element of parameter args + specifies the number of characters of the string. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Object to write to the ADS device. + Additional arguments. + + + + Writes an object synchronously to an ADS device. + If the Type of the object to be written is a string type, the first element of parameter args + specifies the number of characters of the string. + + Handle of the ADS variable. + Object to write to the ADS device. + Additional arguments. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Lenght of the data in wrDataStream. + Number of succesfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Lenght of the data in wrDataStream. + Number of succesfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Stream that contains the data that should be written. + Number of succesfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Stream that contains the data that should be written. + Number of succesfully returned data bytes. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object stored in the event argument. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + If type is a string type, the first element of the parameter args specifies the number of characters of the string. + If type is an array type, the number of elements for each dimension has to be specified in the parameter args. + At the moment only 1 dimensional Arrays are supported. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object s0000tored in the event argument. + Additional arguments. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object stored in the event argument. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object stored in the event argument. + Additional arguments. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + The stream that should receive the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + + The handle of the notification. + + Thrown when the ADS call fails. + + + Parameter semantic + + Value of parameter is interpreted as task context number + + + Value of parameter is interpreted as task context number + + + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + The stream that should receive the data. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + Deletes an existing notification. + + Handle of the notification. + Thrown when the ADS call fails. + + + + Reads the identification and version number of an ADS server. + + DeviceInfo struct containing the name of the device and the version information. + Thrown when the ADS call fails. + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + Stream that contains the data that should be sent to the ADS device + Offset of the data in the stream. + Length of the data in the stream. + Thrown when the ADS call fails. + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + Thrown when the ADS call fails. + + + + Reads the ADS status and the device status from an ADS server. + + The ADS statue and device status. + Thrown when the ADS call fails. + + + + Reads the ADS status and the device status from an ADS server. Unlike the ReadState method this method does not call an exception on failure. Instead an AdsErrorCode is returned. + If the return value is equal to AdsErrorCode.NoError the call was successfull. + + The ADS statue and device status. + AdsErrorCode of the ads read state call. Check for AdsErrorCode.NoError to see if call was successfull. + + + + Generates a unique handle for an ADS variable. + + Name of the ADS variable + The handle of the ADS Variable. + Thrown when the ADS call fails. + + + + Releases the handle of a ADS variable again. + + Handle of the ADS variable + Thrown when the ADS call fails. + + + + Call this method to obtain information about the individual symbols (variables) in ADS devices. + + Name of the symbol. + A ITcAdsSymbol containing the requested symbol inofrmation or null if symbol could not + be found. + Thrown when the ADS call fails. + + + + Creates a new instance of the TcAdsSymbolInfoLoader class. With the help of this object one can load the symbol + information of the ADS device. + + Instance of the TcAdsSymbolInfoLoader class. + + + + Creates a new instance of the Symbol loader. + + The interface of the Symbol loader."/> + In the first step, this method is for internal use only. + + + + Creates a new instance of the Symbol loader. + + if set to true virtual instances are created for non-located symbols. + + The interface of the Symbol loader. + + Virtual instances means, that all Symbols are ordered within a tree structure. For that symbol nodes that are not located on a fixed address, a Virtual Symbol will be created. + Setting the virtualInstance parameter to 'false' means, that the located symbols will be returned in a flattened list. + + + + Reads the value of a symbol and returns the value as object. The parameter type must have the same + layout as the ADS symbol. + + Name of the ADS symbol. + Managed type of the ADS symbol. + If reload is true previously stored symbol information is cleared. As a consequence the symbol information must be obtained from the ADS server again. + Value of the symbol + + + + Writes the passed object value to the specified ADS symbol.The parameter type must have the same + layout as the ADS symbol. + + Name of the ADS symbol. + Object holding the value to be written to the ADS symbol + If reload is true previously stored symbol information is cleared. As a consequence the symbol information must be obtained from the ADS server again. + + + + Reads the value of a symbol and returns it as an object. Strings and all primitive datatypes(UInt32, Int32, Bool etc.) are supported. + Arrays and structures cannot be read. + + The symbol that should be read. + The value of the symbol as an object. + Thrown when a ADS datatype is not supported. + Thrown when the ADS call fails. + + + + Writes a value to the symbol. Strings and all primitive datatypes(UInt32, Int32, Bool etc.) are supported. Array and structures are not supported. + If a string is passed as parameter, the method attempts to parse the string according to the ADS datatype of the symbol. + + The symbol the value is written to. + The value to write. + Thrown when a ADS datatype is not supported. + Thrown when the ADS call fails. + + + + Determines, whether the is disposed + + + + + Occurs when the Ads device sends a notification to the client. + + + + + Occurs when the Ads devices sends a notification to the client. + + + + + Occurs when a exception has occured during notification management. + + + + + Occurs when the state of the local Router has changed. + + + + + Occurs when the ADS state changes. + + + + + Occurs when the symbol version changes. + + + + + Sets the timeout for the ads communication. Unit is in ms. + + + + + Gets or sets a value indicating whether the TcAdsClient object uses a client cylce for the notificatons. + + + If ClientCycle is set to false, the ADS that has been addressed writes the data cyclically + to the TcAdsClient object. The smallest possible time is the cycle time of the ADS device. + For the PLC, this is the task cycle time. The cycle time can be handled in 1 ms steps. + If you enter 0 ms as the cycle time, then the data is sent to the TcAdsClient object with + every cycle of the ADS device task. + If ClientCylce is set to true, the TcAdsClient object polls the variables cyclically. + The timer that initiates the read / write runs in Windows NT/2000 user mode, which means + that the time behaviour strongly depends on the loading of the system. + + + + + Gets or sets a value indicating whether the TcAdsClient object synchronizes the incoming notifcations. + + + If Synchronize is set to true, the notifications are synchronized onto the Main thread. + This is necessary for Windows Forms projects. In Console Application this property should + be set to false. + + + + + Gets a value indicating whether the ADS client is connected to a ADS Server on the local + computer. + + + + + Gets the port number of the ADS server. + + + + + Gets the AmsNetId of the ADS server. + + + + + Gets the port number of the ADS client. + + + + + Get the AmsNetId of the ADS client. + + + + + Gets a value indicating whether the local Ads port was opened successfully. It + does not indicate if the target port is available. Use the method ReadState to + determine if the target port is available. + + + + + Gets the current state of the local AMS router. + + + + + This class implements an ADS Stamp Header containing multiple ADS Notification Samples. + + + + + Creates a new TcAdsStampHeader instance. + + The time stamp of this header in ns since 01/01/1601 + The number of notification samples contained in this header + + + + Get or set the time stamp of this header. + + + + + Get the number of notification samples contained in this header. + + + + + Get the array of notification samples contained in this header. + + + + + This class implements an ADS Notification Sample. It contains the notification handle and + the variable data. + + + + + Creates a new TcAdsNotificationSample instance. + + The size of the samples in bytes + + + + Creates a new TcAdsNotificationSample instance. + + The size of the samples in bytes + The notification handle of this sample + + + + Gets or sets the notification handle. + + + + + Gets the size of this sample in bytes. + + + + + Gets the variable data buffer + + + + + Base class for all exceptions thrown by this class. + + + + + Initializes a new Instance of the AdsException class. + + + + + Initializes a new Instance of the AdsException class. + + + + + Initializes a new Instance of the AdsException class. + + + + + The exception that is thrown when a ADS datatype is not supported. + + + + + Initiailizes a new Instance of the AdsDatatypeNotSupportedException class. + + + + + Initiailizes a new Instance of the AdsDatatypeNotSupportedException class. + + + + + Initiailizes a new Instance of the AdsDatatypeNotSupportedException class. + + + + + This AdsInvalidNotificationException is created if the length of the notification data is 0. + This indicates that the notification handle is not valid any more. This exception is passed + to the AdsNotificationErrorEvent. + + + + + Initializes the class AdsInvalidNotificationException. + + + + + Handle of the notification. + + + + + Timestamp. + + + + + The exception that is thrown when a Ads error occurs. + + + + + Initializes a new Instance of the AdsErrorException class. + + + + + Initializes a new Instance of the AdsErrorException class. + + + + + Gets the error code of the Exception. + + + + + Category of a DataType / Instance + + + + + + + Uninitialized / NotProcessed (0) + + + + + Uninitialized / NotProcessed (0) + + + + + Simple / Base Data Type (1) + + + + + Alias data type (2) + + + + + Enumeration data type (3) + + + + + Array data type (4) + + + + + Structure data type (5) + + + + + Function block (POU) (6) + + + + + Program (POU) (7) + + + + + Function (POU) (8) + + + + + SubRange (9) + + + + + Fixed length string (10) + + + + + Bitset (12) + + + + + Pointer type (13) + + + + + Union type (14) + + + + + Reference type (15) + + + + + Base inteface for objects representing data types + + + + + Gets the ID of the DataType + + The id. + + + + Gets the Data Type category + + The category. + + + + Gets the name of the Data Type (without namespace) + + The name. + + + + Gets the namespace string within the exists. + + The namespace. + + + + Gets the full name of the (Namespace + Name) + + The full name. + + + + Gets the size of the in bits. + + The size of in bits. + + + + Gets a value indicating whether this is primitive + + + true if this instance is primitive; otherwise, false. + + + + + Gets a value indicating whether this is a container type + + Container Types are Array, Structs and its derivates (Function,FunctionBlock and Program) + + true if this instance is container type; otherwise, false. + + + + + Gets the size of the in bytes. + + he size of in bytes. + + + + Gets a value indicating whether this is a pointer type + + Pointer types can be dereferenced with the '^' operator. + + true if this instance is pointer type; otherwise, false. + + + + + Gets a value indicating whether this is a reference type + + Reference types can be dereferences. + + true if this instance is container type; otherwise, false. + + + + + Gets a value indicating whether this is a bit mapping Subtype + + + true if this instance is bit mapping subtype; otherwise, false. + + + + + Interface representing Struct data types + + + + + Gets a readonly collection of the Members of the . + + The members as readonly collection. + If the is derived, only the extended members are returned. To get + all supported members down the inheritance chain, use the property. + + + + Gets the the Name of the Base class (if derived) + + Empty if not derived. + + + + Gets the structs Base Type (Null if not derived). + + + + + Gets all members (down the derivation hieararchy) + + All members. + + + + Interface representing a reference type + + + + + Gets the the referenced type. + + The type of the referenced. + + + + Interface representing a pointer type + + + + + Interface representing a SubRange type + + + + + Gets the the base type. + + The type of the referenced. + + + + Gets the lower bound. + + The lower bound. + + + + Gets the element count. + + The element count. + + + + Interface representing an enum type + + + + + Interface representing an Alias Type + + + + + Gets the BaseType name + + + + + Gets the Base Type + + + + + Interface represening a single Dimension of an ArrayType. + + + + + Gets the number of elements within that . + + The element count. + + + + Gets the lower bound of elements within that . + + The lower bound. + + + + Interface representing an array DataType. + + + + + Gets the dimensions as read only collection. + + The dimensions. + + + + Gets the type of the contained elements. + + The type of the element. + + + + Interface representing a string + + + + + Gets the number of characters within the string. + + The length. + + + + Specifies a single field/member of a Struct DataType. + + + + + Inteface specifing instance objects. + + + + + Gets the of the . + + The type of the data. + + + + Gets the name of the DataType that is used for this . + + The name of the type. + + + + Gets the name of the instance (without periods (.) + + The name of the instance. + + + + Gets the relative / absolute access path to the instance (with periods (.)) + + The instance path. + If this path is relative or absolute depends on the context. are using relative paths, s are using absolute ones. + + + + Gets the size of the in bytes. + + + The size of the in bytes. + + + + + Gets a value indicating whether this instance is not basing on a full DataType but instead of some sort of bit mapping + + + true if this instance is bit mapping; otherwise, false. + + + + + Gets a value indicating whether this is static. + + + true if this instance is static; otherwise, false. + + + + + Gets the bit offset of the single . + + The bit offset. + + + + Gets the Parent Struct of this . + + The type of the parent. + + + + Interface describing a Process Image Address + + + + + Gets the size of the in bits. + + The size of the bit. + + + + Gets the index group of the Symbol + + The index group. + + + + Gets the index offset of the Symbol + + The index offset. + + + + Interface specifying Symbols ( + + + + + Gets the Symbol/Datatype Category + + The category. + + + + Gets the parent Symbol + + The parent. + + + + Gets the of the Process Image + + The address. + + + + Gets the SubSymbols of the + + Used for Array, Struct, Pointer and Reference instances. Otherwise empty + + + + + Gets a value indicating whether this Symbol is acontainer type. + + + true if this instance is container type; otherwise, false. + + + + + Gets a value indicating whether this instance is a primitive type. + + + true if this instance is primitive type; otherwise, false. + + + + + Gets a value indicating whether this is persistent. + + + true if this instance is persistent; otherwise, false. + + + + + Gets a value indicating whether this is read only. + + + true if this instance is read only; otherwise, false. + + + + + Interface for a that supports values. + + + + + Gets a value indicating whether this has a value. + + true if this instance has value; otherwise, false. + A VirtualSymbol does not support values, but in terms of the definition, is a + + + + Gets or sets the raw value of the Symbol (Ads Read / Write) + + The raw value. + + + + Occurs when the Value of the has changed. + + + + + Event args for the event. + + + + + Initializes a new instance of the class. + + The symbol. + The value. + Time steamp in ?Ticks + + + + New Value (Primitive type or byte[]) + + + + + Symbol that caused the event. + + + + + FileTime of changed event in Ticks + + + + + Gets the UTC Time of the Event + + The UTC time. + + + + Interface representing an array instance + + + + + Tries to get the array element + + The indices. + The found Array element symbol (out-parameter). + true if found, false if the indices specifiers is out-of-range. + + + + Gets the contained Array Elements as read only collection. + + The elements. + + + + Gets the with the specified indices. + + + The . + + The indices. + + + + + Interface representing an instance of a + + + + + Gets the member instances of the Struct Instance. + + The member instances. + + + + Interface representing an instance of an + + + + + Gets the resolved reference of Pointer / Refernece + + + The reference. + + + + + Interface representing an instance of an + + + + + Symbol Provider interface. + + + + + Symbol provider interface + + Namespace type + DataType type + Symbol type + + + + Get the Namespaces of DataTypes for this Symbol provider + + ReadOnly colleciton of the namespaces. + + + + Gets the image base address. + + The image base address. + + + + Gets the name of the root namespace + + The namespace. + + + + Gets the root (main) namespace of the Symbol provider. + + The root namespace. + + + + Gets the (root) symbols of the Symbol provider. + + Readonly collection of the Symbols + + + + Symbol class + + A Symbol is a (named) memory object within the Process Image with a fixed address indicated by Index Group and Index Offset. + Symbols can optionally be addressed by instance path and are bound to a specific . + + + + + Instance implementation + + + + + Initializes a new instance of the class. + + The resolver. + + + + Aligns the type name + + Name of the type. + + + + + DataType resolver + + + + + Initializes a new instance of the class. + + The symbol. + The resolver. + + + + Initializes a new instance of the class. + + The sub entry. + The resolver. + + + + Namespace + + + + + The Byte size of the instance + + + + + Instance category + + + + + Instance category + + + + + Datatype name. + + + + + Resolved / Cached Data Type + + + + + Tries to resolve the . + + + + + + Instance comment. + + + + + Name of the instance. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + The static address + + + + + Bit mapping indicator + + + + + Gets the data type resolver. + + The data type resolver. + + + + Gets the namespace as sstring. + + The namespace. + + + + Gets the size of the in Bytes. + + The size. + + + + Gets the size of the in bits. + + The size of the bit. + + + + Only for internal use (obsolete) + + The datatype. + + + + Gets the the of the Instance. + + The category. + Corresponds to the + + + + Gets the name of the DataType that is used for this . + + The name of the type. + + + + Gets the of the . + + The type of the data. + + + + Gets the comment. + + The comment. + + + + Gets the name of the instance (without periods (.) + + The name of the instance. + + + + Gets the relative / absolute access path to the instance (with periods (.)) + + The instance path. + If this path is relative or absolute depends on the context. are using relative paths, s are using absolute ones. + + + + Gets a value indicating whether this instance has a value. + + true if this instance has value; otherwise, false. + + + + + Gets a value indicating whether this is static. + + + true if this instance is static; otherwise, false. + + + + + Gets a value indicating whether this instance is not basing on a full DataType but instead of some sort of bit mapping + + + true if this instance is bit mapping; otherwise, false. + + + + + Symbol loader + + + + + Initializes a new instance of the class. + + The resolver. + The loader. + + + + Initializes a new instance of the class. + + The entry. + The resolver. + The loader. + + + + Initializes a new instance of the class. + + The entry. + The type. + The resolver. + The loader. + + + + Initializes a new instance of the class. + + The index group. + The index offset. + The parent. + The type. + Name of the instance. + The resolver. + The loader. + + + + Initializes a new instance of the class. + + The index group. + The index offset. + The parent. + The type. + Name of the instance. + The instance path. + The resolver. + The loader. + + + + Initializes a new instance of the class. + + Name of the instance. + The parent. + The resolver. + The loader. + + + + Initializes a new instance of the class. + + Name of the instance. + The instance path. + The resolver. + The loader. + + + + Initializes a new instance of the class. + + The member. + The parent. + + + + Initializes a new instance of the class. + + The indices. + The parent. + + + + Gets or sets the notification settings. + + The notification settings. + + + + The parent Symbol + + + + + The index group + + + + + The index offset + + + + + The instance path + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + The image base address + + + + + Tries to parse the parent path of this + + The parent path (out-parameter). + Name of the parent (out-parameter). + true if found, false if not contained. + + + + Sub symbols + + + + + Creates the sub symbols collection. + + + + + Handler function for writing the RawValue + + The value. + + + + + + Handler function for reading the raw value + + + + + + + Registers a Notification for RawValues + + The value. + The settings. + + + + Unregisters a Notification for RawValues + + The value. + + + + Gets or sets the notification settings. + + The notification settings. + The will be inherited from if the setting is not overwritten. + If the Root Symbol also doesn't contain the settings, then the will be returned. + + + + Gets the parent Symbol + + The parent. + + + + Gets the index group of the Symbol + + + The index group. + + + + + Gets the index offset of the Symbol + + + The index offset. + + + + + Gets the name. + + + The name. + + + + + Gets the type. + + + The type. + + + + + Gets the relative / absolute access path to the instance (with periods (.)) + + + The instance path. + + + If this path is relative or absolute depends on the context. are using relative paths, s are using absolute ones. + + + + + Gets the of the Process Image + + + The address. + + + + + Gets the SubSymbols of the + + + Used for Array, Struct, Pointer and Reference instances. Otherwise empty + + + + + Gets or sets the raw value (Ads Read/Write) + + The raw value. + + + + Occurs when the Value of the has changed. + + + + + Gets a value indicating whether this instance is primitive. + + + true if this instance is primitive; otherwise, false. + + + + + Gets a value indicating whether this Symbol is a container/complex type. + + + true if this instance is container type; otherwise, false. + + + + + Gets the context mask of this instance. + + + + + Indicates if ths instance is a bit value. + + + + + Indicates if this instance is readonly. + + + + + Indicates if this instance is persistent. + + + + + Indicates if this instance is a TcComInterfacePointer. + + + + + Indicates if this instance has set TypeGuid flag. + + + + + Class representing a Struct Instance + + + + + Initializes a new instance of the class. + + The entry. + The type. + The resolver. + The symbol loader. + + + + Initializes a new instance of the class. + + Name of the instance. + The parent. + The resolver. + The symbol loader. + + + + Initializes a new instance of the class. + + Name of the instance. + The instance path. + The resolver. + The symbol loader. + + + + Initializes a new instance of the class. + + The member. + The parent. + + + + Creates the sub symbols. + + + + + Initializes a new instance of the class. + + The entry. + The type. + The resolver. + The symbol loader. + + + + Initializes a new instance of the class. + + The member. + The parent. + + + + Pointer Instance + + + + + Initializes a new instance of the class. + + The entry. + The type. + The resolver. + The symbol loader. + + + + Initializes a new instance of the class. + + Index of the current. + The parent. + + + + Initializes a new instance of the class. + + The member. + The parent. + + + + Initializes a new instance of the class. + + The index group. + The index offset. + The parent. + The type. + Name of the instance. + + + + Implementation of the . + + + + + Initializes a new instance of the class. + + The entry. + The type. + The resolver. + The loader. + + + + Initializes a new instance of the class. + + The member. + The parent instance. + + + + Initializes a new instance of the class. + + Index of the current. + The parent. + + + + Checks the dimensions of the + + Indices + Indices doesn't match the specified Array type + + + + Gets the contained Array Elements as read only collection. + + The elements. + + + + Symbol iterator object + + Iterates over all root symbols and its subsymbols. + + + + + Initializes a new instance of the class. + + The Symbol provider. + + + + Gets the enumerator that enumerates through a collection + + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Gets or sets a value indicating whether the iterator returns also instances of Array elements (default: true) + + + true if [iterate array elements]; otherwise, false. + + + + + Gets or sets a value indicating whether the iterator returns also members of structs (default: true) + + + true if [iterate struct members]; otherwise, false. + + + + TcAdsDll-Api Functions + + + + Ams/Ads Address + + + + + Ams/Ads Address + + + + + Protected constructur + + + + + Copy constructor + + + + + + Constructor + + + + + + + Constructor + + Net Id + Port + + + + Constructor + + + + + + + Constructor + + + + + + + Constructor + + + + + + + Constructor + + + + + + + Constructor + + + + + + Constructor + + + + + + Equals + + + + + + + Operator== + + + + + + + + Operator-= + + + + + + + + Gets the HashCode of the Address + + + + + + Converts the Address to String 'NetId:Port' + + + + + + Parses a string to an object. + + + + + + + Tries to parse the from string. + + The STR. + The address. + + + + + Gets the NetId + + + + + Gets the Port number + + + + + The ITypeBinder interface binds DataTypes and Symbols to its namespace. + + + + + Registers the specified type. + + The type. + + + + Tries to resolve the type (parses it if not found and adds it to the resolver if necessary). + + The name. + The type. + + + + + Binds the specified symbol to the Resolver (Registering and linking Parents). + + The symbol. + + + + + Gets the size of the platform pointer. + + + The size of the platform pointer. + + + + + Gets the root namespace. + + The root namespace. + + + + Gets the of the Process Image + + The address. + + + + Helper Data Type to implement Bit mapping types. + + + + + DataType class + + + + + Initializes a new instance of the class. + + The resolver. + + + + Initializes a new instance of the class. + + Name of the Datatype + DataType category / ID (internal style) + Data type category + The Size of the Data Type in bytes + The resolver. + Type of the dotnet. + + + + Initializes a new instance of the class. + + Name of the Datatype + DataType category / ID (internal style) + Data type category + The Size of the Data Type in bits + The resolver. + Type of the dotnet. + if set to true [bit mapping]. + + + + Initializes a new instance of the class (copy Constructor) + + The copy. + + + + Registers this instance at the + + + + + Internal ID of the DataType (non persistant) + + + + + The corresponding dotnet type + + + + + The type binder / resolver + + + + + Data Type category + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Determines whether the specified category is a container type. + + The data type category. + Container Types are Array, Structs and its derivates (Function,FunctionBlock and Program) + + + true if [is container type] [the specified cat]; otherwise, false. + + + + + Determines whether the specified category is a reference type. + + The data type category. + + true if [is reference type] [the specified cat]; otherwise, false. + + + + + Determines whether the specified category is a pointer type. + + The data type category. + + true if [is pointer type] [the specified cat]; otherwise, false. + + + + + Determines whether the specified category is a primitive type + + The cat. + + true if [is primitive type] [the specified cat]; otherwise, false. + + Primitive types are types that are indicated with Primitive, String, SubRange, Enum, Pointer + + + + + Gets the ID of the DataType + + + The id. + + + + + Gets the corresponding DotnetType if attached. + + + Dot net type. + + + + + Gets the namespace string within the exists. + + + The namespace. + + + + + Gets the Data Type category + + + The category. + + + + + Gets the Size of the in Bytes + + The size. + + + + Gets the size of the in bits. + + The size of the bit. + + + + Gets the name of the Data Type (without namespace) + + + The name. + + + + + Gets the full name of the (Namespace + Name) + + + The full name. + + + + + Gets the comment. + + + The comment. + + + + + Gets a value indicating whether this is primitive + + + true if this instance is primitive; otherwise, false. + + + + + Gets a value indicating whether this is a container type + + + true if this instance is container type; otherwise, false. + + + + + Gets a value indicating whether this is a reference type + + + true if this instance is reference type; otherwise, false. + + + + + Gets a value indicating whether this is a pointer type + + + true if this instance is pointer type; otherwise, false. + + + + + Gets a value indicating whether this is a bit mapping Subtype + + + true if this instance is bit mapping subtype; otherwise, false. + + + + + Initializes a new instance of the class. + + The name. + The size. + The resolver. + Type of the dotnet. + + + + Alias DataType + + + + + Initializes a new instance of the class. + + The entry. + The resolver. + + + + Initializes a new instance of the class. + + The name. + Type of the base. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets the BaseType name + + + + + Gets the Base Type + + + + + Gets a value indicating whether this is primitive + + + true if this instance is primitive; otherwise, false. + + + + + Gets a value indicating whether this is a container type + + + true if this instance is container type; otherwise, false. + + + + + String DataType + + + + + Initializes a new instance of the class. + + The length. + The resolver. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets the number of characters within the string. + + + The length. + + + + + Represents an Unicode string (Wide string) + + + + + Initializes a new instance of the class. + + The length. + The resolver. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets the number of characters within the string. + + + The length. + + + + + Represents a struct type + + + + + Gets a value indicating whether this instance is derived. + + + true if this instance is derived; otherwise, false. + + + + + Gets a readonly collection of the Members of the . + + + The members as readonly collection. + + + If the is derived, only the extended members are returned. To get + all supported members down the inheritance chain, use the property. + + + + + Gets the the Name of the Base class (if derived) + + + Empty if not derived. + + + + + Gets the structs Base Type (Null if not derived). + + + + + Gets all members (down the derivation hieararchy) + + + All members. + + + + + Represents a reference type + + + + + Initializes a new instance of the class. + + Name of the referenced type. + The size in bytes (Dependent of the target OS) + The resolver. + size + + + + Initializes a new instance of the class. + + The name. + Name of the referenced type. + The size. + The resolver. + size + + + + Initializes a new instance of the class. + + The entry. + Name of the referenced type. + The resolver. + + + + Gets the the referenced type. + + + The type of the referenced. + + + + + Represents a pointer type. + + + + + Creates the PVOID. + + The size. + The resolver. + + size;Pointer size not valid! + + + + Prevents a default instance of the class from being created. + + The name. + The size. + The resolver. + Type of the dotnet. + + + + Initializes a new instance of the class. + + Name of the referenced type. + The size of the Pointer in bytes (Platform dependent) + The resolver. + size + + + + Initializes a new instance of the class. + + The name. + Name of the referenced type. + The size of the pointer in bytes (Platform dependent) + The resolver. + size + + + + Initializes a new instance of the class. + + The entry. + Name of the referenced type. + The resolver. + + + + Gets the the referenced type. + + + The type of the referenced. + + + + + Represents a SubRangType + + + + + Initializes a new instance of the class. + + Type of the base. + The lower bound. + The upper bound. + The resolver. + + + + Initializes a new instance of the class. + + The name. + Type of the base. + The lower bound. + The upper bound. + The resolver. + + + + Initializes a new instance of the class. + + The entry. + Type of the base. + The lower bound. + The upper bound. + The resolver. + + + + Gets the the base type. + + + The type of the referenced. + + + + + Gets the lower bound. + + + The lower bound. + + + + + Gets the element count. + + + The element count. + + + + + Represents a member of an + + + + + Initializes a new instance of the class. + + The parent. + The sub entry. + The resolver. + + + + Gets the offset. + + + The offset. + + + + + Gets the bit offset of the single . + + + The bit offset. + + + + + Gets the Parent Struct of this . + + + The type of the parent. + + + + + Represents a single dimension of an + + + + + Initializes a new instance of the class. + + The array info. + + + + Gets the lower bound of elements within that . + + + The lower bound. + + + + + Gets the number of elements within that . + + + The element count. + + + + + Represents an Array DataType + + + + + Initializes a new instance of the class. + + The entry. + The resolver. + + + + Checks the dimensions of the + + Indices + ArrayType + Indices doesn't match the specified Array type + + + + Checks the dimensions of the + + Indices + ArrayType + + + + Checks the dimensions of the + + Indices + Indices doesn't match the specified Array type + + + + Gets the element position within a flattened multidimensional array + + The indices. + The type. + The Position-Index within the Elements collection of the Array instance. + + + + Gets the element position within a flattened multidimensional array + + The indices. + + The Position-Index within the Elements collection of the array + + + + + Gets the element byte offset. + + The indices. + The type. + + + + + Gets the name of the element type. + + + The name of the element type. + + + + + Gets the type of the contained elements. + + + The type of the element. + + + + + Gets the dimensions as read only collection. + + + The dimensions. + + + + + Gets the dimension count. + + + The dimension count. + + + + + Gets the element count. + + + The element count. + + + + + Gets the byte-size of a single element of the array + + The size of the element. + + + + Namespace object. + + + + + Namespace interface + + DataType class used within this Namespace interface + + + + Gets the name/ identifier of the Namespace + + The name. + + + + Data types organized by the + + The data types. + + + + Initializes a new instance of the class. + + The name. + + + + Registers the the specified + + The type. + + + + + Gets the name of the namespace. + + The name. + + + + Gets the data types organized by this + + The data types. + + + + Symbol Navigator. + + + + + + The path separator + + + + + Tries to get the symbol + + Instance collection + The path. + The found instance (out-parameter) + true if found, false if not contained. + + + + Tries to get the Subsymbol specified in the relative path + + Root instance (anchor instance). + The relative path (relative to the root). + Optional array index. + Found object (out-parameter). + true if found, false if not contained. + + + + Tries to get the specified subSymbol + + Root array instance. + Relative instance path. + Array index. + Found Instance (out-parameter) + true if found, false if not contained. + + + + Try to get Sub Symbol + + Root object. + The relative instance path. + Array Index + Found Symbol (out-parameter) + true if found, false if not contained. + + + + Summary description for Trace. + + + + + Tries to parse the string. + + Name of the type. + The character count of the string (not including the /0) + + + + + Class parsing Symbols from String or from AdsStream + + + + + Parses the the data types within the specified stream. + + The data type stream. + The type binder. + + + + Symbol Loader interface + + + + + Resets this loader (reinitialization) + + + + + Gets the build in types. + + The build in types. + + + + Gets the data type count (provided by the target) + + The data type count. + + + + Gets the maximum of the dynamic symbols. + + The max dynamic symbols. + + + + Gets the symbol count provided by the . + + The symbol count. + + + + Gets the count of used dynamic symbols. + + The used dynamic symbols. + + + + Gets/Sets the default notification settings for this . + + The default notification settings. + + + + Value loader interface + + + + + Try to read value + + The symbol instance. + The value. + The error. + + + + + Try to read Array Element Value + + The array instance. + The indices. + The value. + The error. + + + + + Try to Write value + + The symbol instance. + The value. + The offset. + The error. + + + + + Try to write element value. + + The array instance. + The indices. + The value. + The offset. + The error. + + + + + Adds the symbol value changed handler. + + The symbol. + The settings. + + + + Removes the symbol value changed handler. + + The symbol. + + + + Tries to get the current Notification Settings for the specified Symbol + + The symbol. + The settings. + true, if already a notfication for this symbol is registered. False if not. + + + + Notification communication settings + + + + + Default + + + + + Initializes a new instance of the class. + + The mode. + The cylce time. + The max delay. + + + + Compares this in term of priorities to the other . + + The other. + 1: this has higher priority (shorter times), 0: Equal, 1: Lower prioritiy + + + + + Gets the default Settings + + The default. + + + + Gets or sets the notification mode. + + The notification mode. + + + + Gets or sets the cycle time. + + The cycle time. + + + + Gets or sets the max delay. + + The max delay. + + + + Compares two for Priorirty. + + + Checks (prioritized): + 1. + 2. + 3. + + + + + Compares the specified x. + + The x. + The y. + + + + + The class TcAdsSymbolInfoLoader is responsible for downloading the list of declared variables from an ADS Server. + + + + + Initializes a new instance of the class. + + The ads client. + if set to true [virtual instances]. + + + + Resets the cache-contents of this loader. + + Accessing the data members will force AdsReads in the following. + + + + Registers the specified type. + + The type. + + + + Tries to resolve the type (parses it if not found and adds it to the resolver if necessary). + + The name. + The type. + + + + + Binds the specified symbol to the Resolver (Registering and linking Parents). + + The symbol. + + + + + Reads a value from the specified ADS address + + The address. + Raw value + The error. + true: succeeded; false: failed + + + + Notification Handle --> Symbol + + + + + Symbol --> Notification Handle + + + + + Notification handle --> Notification settings + + + + + Registers a Notification on the . + + The symbol. + The settings. + Only one Notification is allowed on the symbol. On case of double announcement, we set the Notificaiton parameters + to the higher priority. + + + + + Unregisters a Notification from the . + + The symbol. + + + + Loads the data types and symbols into the + + + + + Gets the amount of data types used in the target. + + The data type count. + This poperty can be used, before uploading all data types and symbols. + + + + Gets the amount of symbols used by the target. + + The symbol count. + This poperty can be used, before uploading all data types and symbols. + + + + Gets the maxmial amount of Dynamic symbols of the target system. + + The max dynamic symbols. + + + + Gets the used dynamic symbols by the target system. + + The used dynamic symbols. + + + + Gets the build in types. + + The build in types. + + + + Gets the base Address of the accessed Process image. + + The image base address. + + + + Gets the root namespace name of the . + + The root namespace. + + + + Gets the (root) symbols of the as ReadOnly collection. + + The symbols. + + + + Get the Namespaces of DataTypes for this Symbol provider + + ReadOnly colleciton of the namespaces. + + + + Gets the root (main) namespace of the Symbol provider. + + The root namespace. + + + + Gets or sets the NotificationSettings that are used for Notification Defaults. + + The default notification settings. + + + + Gets the default types. + + + + + + Converter class for the PLCOpen TOD (TimeOfDay) Data type. + + + + + Converter class for the PLC Open TIME Data Type + + + + + Converter class base for PLCOpen DT and DATE types. + + + + + Converter class for PlcOPen DATE data type + + + + + Derives from BinaryReader and reads primitive as well as PLC data types as binary values. + + + + + Initializes a new instance of the AdsBinaryReader class based on the supplied stream. + + A stream. + + + + Reads a PLC string from the current stream. + + The length of the string in the PLC. + The string being read. + + + + Reads a PLC Date type from the current stream. + + The date being read. + + + + Reads a PLC Time type from the current stream. + + The time being read. + + + + Derives from BinaryWriter and writes primitive and PLC data types in binary to a stream. + + + + + Initializes a new instance of the AdsBinaryWriter class based on the supplied stream. + + + + + + Writes a string as a PLC string to the current stream. + + The string to write to the stream. + The length of the string in the PLC. + + + + Writes a date as PLC date type to the current stream. + + The date to write to the stream. + + + + Writes a time span as PLC time type to the current stream. + + The time span to write to the stream. + + + + The class AdsStream is a stream class used for Ads communication. + + + + + Initializes a new instance of the AdsStream class. The instance has an expandable capacity initialized to zero. + + + + + Initializes a new instance of the AdsStream class. + + Length of the stream in bytes. + + + + Initializes a new instance of the AdsStream class, based on the specified region of a byte array. + + The array of bytes from which to create this stream. + The offset in buffer at which the stream begins. + The length of the stream in bytes. + + + + Initializes a new instance of the AdsStream class, based on a byte array. + + The array of bytes from which to create this stream. + + + + This class implements an ADS server. Derived classes should overwrite the indication methods + to react on incoming requests. The confirmation methods should be overwritten to receive + replies on ansychronous requests sent by this ADS server. + + + + + Create a new TcAdsServer instance with a fix ADS port number. + + The ADS server port for this server + A string describing this ADS server + + + + Create a new TcAdsServer instance with an ADS port number asigned by the local ADS router. + + A string describing this ADS server + + + + Create a new TcAdsServer instance with an ADS port number asigned by the local ADS router. + Optional the TcAdsServer can be configured to use the overloaded TcAdsDeviceNotification-method to implement an own notification-parser. + + The ADS server poert for this server. + A string descriving this ADS server. + Enables the overloaded TcAdsDeviceNotification-Method to implement an own notification-parser. + + + + Connect this ADS server to the local ADS router. + Thrown if the connect call fails. + + + + + Disconnects this ADS server from the local ADS router. + Thrown if the disconnect call fails. + + + + + Sends an ADS Read Device Info request. + + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The ADS error code for this call. + + + + Sends an ADS Read Request. + + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The index group of the requested ADS service + The index group of the requested ADS service + The number of bytes to be read + The ADS error code for this call. + + + + Sends an ADS Write request. + + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The index group of the requested ADS service + The index group of the requested ADS service + The number of bytes to be written + The data to be written + The ADS error code for this call. + + + + Sends an ADS Read State request. + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The ADS error code for this call. + + + + + Sends an ADS Write Control request. + + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The requested new ADS state of the receiver + The requested new ADS state of the receiver + The length of the additional data buffer + An additional data buffer of cbLength bytes + The ADS error code for this call. + + + + Sends an ADS Add Device Notification request. + + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The index group of the requested ADS service + The index group of the requested ADS service + The number of bytes to be transmitted + The transmission mode of the notification (cyclic / on change) + The receiver should send the notification at least after maxDelay ms + The receiver shouldc check every cycleTime ms if the requested variable has changed + The ADS error code for this call. + + + + Sends an ADS Delete Device Notification request. + + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The notifocation ID to be deleted + The ADS error code for this call. + + + + Sends an ADS Device Notification request. + + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The number of ADS Stamp Headers to be sent + The array of ADS Stamp Headers to be sent + The ADS error code for this call. + + + + Sends an ADS Read Write request. + + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The index group of the requested ADS service + The index group of the requested ADS service + The number of bytes to be read + The number of bytes to be written + The data to be written + The ADS error code for this call. + + + + Called when an ADS Read Device Info confirmation is received. + Overwrite this method in derived classes to react on ADS Read Device Info confirmations. + + The sender's AMS address + The invoke id provided by this server during the corresponding request + The ADS error code provided by the sender + The sender's name + The sender's version + + + + Called when an ADS Read confirmation is received. + Overwrite this method in derived classes to react on ADS Read confirmations. + + The sender's AMS address + The invoke id provided by this server during the corresponding request + The ADS error code provided by the sender + The number of read bytes + The read data buffer + + + + Called when an ADS Write confirmation is received. + Overwrite this method in derived classes to react on ADS Write confirmations. + + The sender's AMS address + The invoke id provided by this server during the corresponding request + The ADS error code provided by the sender + + + + Called when an ADS Read State confirmation is received. + Overwrite this method in derived classes to react on ADS Read State confirmations. + + The sender's AMS address + The invoke id provided by this server during the corresponding request + The ADS error code provided by the sender + The ADS state of the sender + The device state of the sender + + + + Called when an ADS Write Control confirmation is received. + Overwrite this method in derived classes to react on ADS Write Control confirmations. + + The sender's AMS address + The invoke id provided by this server during the corresponding request + The ADS error code provided by the sender + + + + Called when an ADS Add Device Notification confirmation is received. + Overwrite this method in derived classes to react on ADS Add Device Notification confirmations. + + The sender's AMS address + The invoke id provided by this server during the corresponding request + The ADS error code provided by the sender + The notification handle provided by the sender + + + + Called when an ADS Delete Device Notification confirmation is received. + Overwrite this method in derived classes to react on ADS Delete Device Notification confirmations. + + The sender's AMS address + The invoke id provided by this server during the corresponding request + The ADS error code provided by the sender + + + + Called when an ADS Read Write confirmation is received. + Overwrite this method in derived classes to react on ADS Read Write confirmations. + + The sender's AMS address + The invoke id provided by this server during the corresponding request + The ADS error code provided by the sender + The number of read bytes + The read data buffer + + + + Sends an ADS Read Device Info response. + + The receiver's AMS address + The invoke ID provided by the receiver + The ADS error code for the response + The name of this ADS server + The version of this ADS server + The ADS error code for this call. + + + + Sends an ADS Read response. + + The receiver's AMS address + The invoke ID provided by the receiver + The ADS error code for the response + The number of read bytes + The read data buffer + The ADS error code for this call. + + + + Sends an ADS Write response. + + The receiver's AMS address + The invoke ID provided by the receiver + The ADS error code for the response + The ADS error code for this call. + + + + Sends an ADS Read State response. + + The receiver's AMS address + The invoke ID provided by the receiver + The ADS error code for the response + The current ADS state of this ADS server + The device state of this ADS server + The ADS error code for this call. + + + + Sends an ADS Write Control response. + + The receiver's AMS address + The invoke ID provided by the receiver + The ADS error code for the response + The ADS error code for this call. + + + + Sends an ADS Add Device Notification response. + + The receiver's AMS address + The invoke ID provided by the receiver + The ADS error code for the response + The notification handle for the added notification + The ADS error code for this call. + + + + Sends an ADS Delete Device Notification response. + + The receiver's AMS address + The invoke ID provided by the receiver + The ADS error code for the response + The ADS error code for this call. + + + + Sends an ADS Read Write Response. + + The receiver's AMS address + The invoke ID provided by the receiver + The ADS error code for the response + The number of read bytes + The read data buffer + The ADS error code for this call. + + + + Called when an ADS Read Device Info indication is received. + Overwrite this method in derived classes to react on ADS Read Device Info indications. + The default implementation replies with an ADS ServiceNotSupported error code (0x701). + + The sender's AMS address + The invokeId provided by the sender + + + + Called when an ADS Read indication is received. + Overwrite this method in derived classes to react on ADS Read indications. + The default implementation replies with an ADS ServiceNotSupported error code (0x701). + + The sender's AMS address + The invokeId provided by the sender + The index group of the requested ADS service + The index offset of the requested ADS service + The number of bytes to be read + + + + Called when an ADS Write indication is received. + Overwrite this method in derived classes to react on ADS Write indications. + The default implementation replies with an ADS ServiceNotSupported error code (0x701). + + The sender's AMS address + The invokeId provided by the sender + The index group of the requested ADS service + The index offset of the requested ADS service + The number of bytes to be witten + The data to be written + + + + Called when an ADS Read State indication is received. + Overwrite this method in derived classes to react on ADS Read State indications. + The default implementation replies with an ADS ServiceNotSupported error code (0x701). + + The sender's AMS address + The invokeId provided by the sender + + + + Called when an ADS Write Control indication is received. + Overwrite this method in derived classes to react on ADS Write Control indications. + The default implementation replies with an ADS ServiceNotSupported error code (0x701). + + The sender's AMS address + The invokeId provided by the sender + The requested new ADS state of this ADS device + The requested new device state of this ADS device + The length in bytes of the additional data buffer + An additional data buffer of cbLength bytes + + + + Called when an ADS Add Device Notification indication is received. + Overwrite this method in derived classes to react on ADS Add Device Notification indications. + The default implementation replies with an ADS ServiceNotSupported error code (0x701). + + The sender's AMS address + The invokeId provided by the sender + The index group of the requested ADS service + The index offset of the requested ADS service + Number of bytes to be transmitted + The transmission mode of the notification (cyclic / on change) + The notification should be send at least after maxDelay ms + Check every cycleTime ms if the requested variable has changed + + + + Called when an ADS Delete Device Notification indication is received. + Overwrite this method in derived classes to react on ADS Delete Device Notification indications. + The default implementation replies with an ADS ServiceNotSupported error code (0x701). + + The sender's AMS address + The invokeId provided by the sender + The notification handle to be deleted + + + + Called when an ADS Device Notification indication is received. + Overwrite this method in derived classes to react on ADS Device Notification indications. + + The sender's AMS address + The invokeId provided by the sender + The number of ADS Stamp Headers contained in stampHeaders + The array of received ADS Stamp Headers. + + + + Called when an ADS Device Notification indication is received. + Overwrite this method in derived classes to react on ADS Device Notification indications. + + The sender's AMS address + The invokeId provided by the sender + The number of stamp headers. + Reader object for the stamps. + + + + Called when an ADS Read Write indication is received. + Overwrite this method in derived classes to react on ADS Read Write indications. + The default implementation replies with an ADS ServiceNotSupported error code (0x701). + + The sender's AMS address + The invokeId provided by the sender + The index group of the requested ADS service + The index offset of the requested ADS service + Number of bytes to be read + Number of bytes to be written + The data to be written + + + + Occurs if the receive thread has exited on an exception. + + + + + The AMS address of this server. + + + + + The connection state of this server. True, if the server is connected to the router; false otherwise. + + + + + Delegate for the AdsSeverException event. + + + + + This class implements the event arguments passed by the TcAdsServerExEvent. + + + + + Returns the exception that caused the event. + + The Exception that caused the event. + + + + Returns the exception message. + + The Exception message. + + + + Defines an Interface for reading the ADS symbol information. + + + + + Gets the index group of the symbol. + + Index group of the symbol. + + + + Gets the index offset of the symbol. + + Index offset of the symbol. + + + + Gets the size of the symbol. + + Size of the symbol. + + + + Data type of the symbol. + + Data type of the symbol. + + + + Gets the name of the symbol. + + Name of the symbol. + + + + Gets the name of the symbol data type. + + Name of the symbol data type. + + + + Gets the comment behind the variable declaration. + + Comment behind the variable declaration. + + + + Defines an interface for reading the additional flags-information of an ADS symbol. + + + + + Indicates if the Persitent flag is set for the symbol. + + true if persistent, otherwise false. + + + + Indicates if the BitValue flag is set for the symbol. + + true if is BitValue, otherwise false. + + + + Indicates if the ReferenceTo flag is set for the symbol. + + true if is ReferenceTo, otherwise false. + + + + Gets a value indicating whether this instance is pointer. + + + true if this instance is pointer; otherwise, false. + + + + + Indicates if the TypeGuid flag is set for the symbol. + + true if is TypeGuid, otherwise false. + + + + Indicates if the ReadOnly flag is set for the symbol. + + true if ReadOnly, otherwise false. + + + + Indicates if the TcComInterfacePointer flag is set for the symbol. + + treu if is TcComInterfacePointer, otherwise false. + + + + Gets the ContextMask of the symbol, indicating the task the variable belongs to. + If ContextMask is not zero use or to add notifications. + + + + + Gets the corresponding managed type of this symbol. This only works for + primitive types. + + Managed type of symbol. + + + + Gets the index group of the symbol. + + Index group of the symbol. + + + + Gets the index offset of the symbol. + + Index offset of the symbol. + + + + Gets the size of the symbol. + + Size of the symbol. + + + + Data type of the symbol. + + Data type of the symbol. + + + + Gets the name of the symbol. + + Name of the symbol. + + + + Gets the name of the symbol data type. + + Name of the symbol data type. + + + + Gets the comment behind the variable declaration. + + Comment behind the variable declaration. + + + + Indicates if the Persitent flag is set for the symbol. + + true if persistent, otherwise false. + + + + Indicates if the BitValue flag is set for the symbol. + + true if is BitValue, otherwise false. + + + + Gets a value indicating whether this instance is pointer. + + + true if this instance is pointer; otherwise, false. + + + + + Indicates if the ReferenceTo flag is set for the symbol. + + true if is ReferenceTo, otherwise false. + + + + Indicates if the TypeGuid flag is set for the symbol. + + true if is TypeGuid, otherwise false. + + + + Indicates if the ReadOnly flag is set for the symbol. + + true if ReadOnly, otherwise false. + + + + Indicates if the TcComInterfacePointer flag is set for the symbol. + + treu if is TcComInterfacePointer, otherwise false. + + + + Gets the ContextMask of the symbol, indicating the task the variable belongs to. + If ContextMask is not zero use or to add notifications. + + + + + ADS data types. + + + + + Array definition for a single dimension. + + + + + Gets the lower bound. + + + + + Gets the number of elements. + + + + + Represents a collection of TcAdsSymbolInfo objects. + + + + + Returns an enumerator that can iterate through ths symbols in this collection. + + + An IEnumerator that can be used to iterate through all symbols in this collection. + + + + + Copies the elements of the collection to an Array, starting at a + particular Array index. + + + The one-dimensional Array that is the destination of the + elements copied from the collection. The + Array must have zero-based indexing. + + + The zero-based index in array at which copying begins. + + + + + Gets the element at the specified index. + + + + + Gets the number of elements + contained in the collection. + + + + + Gets a value indicating whether + access to the collection is synchronized + (thread-safe). + + + + + Gets an object that can be used to + synchronize access to the collection. + + + + + Defines an Interface for reading the ADS symbol Array Information + + + + + Gets a value indicating whether this instance is an array. + + + true if this instance is an array; otherwise, false. + + + + + Gets the array dimensions. + + + The array dimensions. + + + + + Gets the collection of Array Infos. + + + The array infos. + + + + + The class TcAdsSymbolInfo represents a symbol loaded by an instance of the TcAdsSymbolInfoLoader class. + + + + + Initializes a new instance of the class. + + The symbol parser. + The index. + + + + Initializes a new instance of the class. + + The symbol parser. + The parent. + Index of the sub. + + + + Gets the Base data type of the pointer (the referenced type) + + Type of the reference. + + + + + Gets the referenced data type of the reference. + + Type of the referenced. + + + + + Gets the parent of this symbol. + + Parent of this symbol + + + + Gets the next sibling of this symbol. + + Next sibling of this symbol. + + + + Gets the next sub symbol of this symbol. + + Next sub symbol. + + + + Gets the sub symbols of this symbol as a collection of TcAdsSymbolInfo objects. + + + + + Gets the number of sub symbols. + + + + + Gets the index group of the symbol. + + Index group of the symbol. + + + + Gets the index offset of the symbol. + + Index offset of the symbol. + + + + Gets the size of the symbol. + + Size of the symbol. + + + + Data type of the symbol. + + Data type of the symbol. + + + + Gets the name of the symbol. + + Name of the symbol. + + + + Gets the name of the symbol (short form without prefixed names of the parents). + + Full name of the symbol. + + + + Gets the name of the symbol data type. + + Name of the symbol data type. + + + + Gets the comment behind the variable declaration. + + Comment behind the variable declaration. + + + + Gets a value indicating whether this is a pointer. + + + true if this instance is pointer; otherwise, false. + + + + + Indicates if the Persitent flag is set for the symbol. + + true if persistent, otherwise false. + + + + Indicates if the BitValue flag is set for the symbol. + + true if is BitValue, otherwise false. + + + + Indicates if the ReferenceTo flag is set for the symbol. + + true if is ReferenceTo, otherwise false. + + + + Indicates if the TypeGuid flag is set for the symbol. + + true if is TypeGuid, otherwise false. + + + + Indicates if the ReadOnly flag is set for the symbol. + + true if ReadOnly, otherwise false. + + + + Indicates if the TcComInterfacePointer flag is set for the symbol. + + treu if is TcComInterfacePointer, otherwise false. + + + + Gets the ContextMask of the symbol, indicating the task the variable belongs to. + If ContextMask is not zero use or to add notifications. + + + + + The class TcAdsSymbolInfoLoader is responsible for downloading the list of declared variables from an ADS Server. + + + + + Initializes a new instance of the class. + + The ads client. + + + + Loads the declared symbols from the ADS device and returns them as a collection of TcAdsSymbolInfo objects. + + True, if a (new) loading of the symbol information from the server is required. + A collection of TcAdsSymbolInfo objects + If no symbols have been loaded before, the symbols are loaded from the server, regardless of the parameter forceReload. +

Note about the PLC: Please attend to the PLC Control that the 'Symbol-Download' under Project / Options / TwinCAT is activated. For further information please see the manual TwinCAT PLC Control.

+

Note about NC: The Symbol download has to be activated at each axis. This can de done in the configuration dialog of the axis under ‚General'. The field ‚Create Symbols' has to be marked. See manual of the TwinCAT System Manager.

+
+ + + Returns an enumerator that can iterate through all symbols. + + + An IEnumerator that can be used to iterate through all symbols. + + + + + Call this method to find a symbol in the list. + + Name of the symbol + If no symbols have been loaded before, the symbols are loaded from the server, regardless of the parameter forceReload. +

Note about the PLC: Please attend to the PLC Control that the 'Symbol-Download' under Project / Options / TwinCAT is activated. For further information please see the manual TwinCAT PLC Control.

+

Note about NC: The Symbol download has to be activated at each axis. This can de done in the configuration dialog of the axis under ‚General'. The field ‚Create Symbols' has to be marked. See manual of the TwinCAT System Manager.

+
+ + + Call this method to get the number of declared symbols. + + True, if a (new) loading of the symbol information from the server is required. + Returns the number of symbols. + If no symbols have been loaded before, the symbols are loaded from the server, regardless of the parameter forceReload. + Note about the PLC: Please attend to the PLC Control that the 'Symbol-Download' under Project / Options / TwinCAT is activated. For further information please see the manual TwinCAT PLC Control. + Note about NC: The Symbol download has to be activated at each axis. This can de done in the configuration dialog of the axis under ‚General'. The field ‚Create Symbols' has to be marked. See manual of the TwinCAT System Manager. + + + + Call this method to get the first symbol. + + True, if a (new) loading of the symbol information from the server is required. + Returns the first symbol or null if no symbols are available. + If no symbols have been loaded before, the symbols are loaded from the server, regardless of the parameter forceReload. + Note about the PLC: Please attend to the PLC Control that the 'Symbol-Download' under Project / Options / TwinCAT is activated. For further information please see the manual TwinCAT PLC Control. + Note about NC: The Symbol download has to be activated at each axis. This can de done in the configuration dialog of the axis under ‚General'. The field ‚Create Symbols' has to be marked. See manual of the TwinCAT System Manager. + + + + Ads Symbol Enumerator + + + + + Initializes a new instance of the class. + + The symbol loader. + + + + Summary description for NotificationMngt. + + + + + AMS/ADS Net ID + + + + + Constructor + + + + + + Constructor + + + + + + Copy Constructor + + + + + + Converts the netId to string + + + + + Returns a that represents this instance. + + The format. + The format provider. + + A that represents this instance. + + + FormattingDescription + gStandard formatting + xFormatting as Hexadecimal (small letters) + XFormatting as Hexadecimal (big letters) + + + + + + Converts the NetId object to byte array + + + + + + Clones the NetId + + + + + + Gets the netId string from the byte array + + + + + + + Gets the net Id as byte array + + + + + + + Converts the string representation of the address to . + + + + + + + + Converts the string representation of the address to . + + + + + + + Creates the from bin hex string. + + The STR. + + + + + Converts the specified to a BinHex string. + + NetId to convert + + + + + Converts the to a BinHex string. + + + + + + Compares the NetIds + + + + + + + + Compares the netIds + + + + + + + Determines whether the s refer to the same target. + + NetID of target system A + NetID of target system B + + true if the target systems are the same, otherwise false. + + In comparison to the or methods, this Method alse + checks against the LocalHost ID, which means that is the same target as + + + + + Determines whether the specified s are equal. + + The net IDA. + The net IDB. + + true if the specified net IDA is equal; otherwise, false. + + + + + Equals + + + + + + + Operator== + + + + + + + + Operator-= + + + + + + + + Gets the HashCode of the Address + + + + + + Is the Address Local? + + + + + Creates an empty NetId ("0.0.0.0.0.0") + + + + + Creates the local NetId ("127.0.0.1.1.1") + + + + + Gets the Local Net ID (System service must be running) + + The system service must be running + + + + + Type Converter class for the . + + + + + Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context. + + An that provides a format context. + A that represents the type you want to convert from. + + true if this converter can perform the conversion; otherwise, false. + + + + + Returns whether this converter can convert the object to the specified type, using the specified context. + + An that provides a format context. + A that represents the type you want to convert to. + + true if this converter can perform the conversion; otherwise, false. + + + + + Converts the given object to the type of this converter, using the specified context and culture information. + + An that provides a format context. + The to use as the current culture. + The to convert. + + An that represents the converted value. + + + The conversion cannot be performed. + + + + + Converts the given value object to the specified type, using the specified context and culture information. + + An that provides a format context. + A . If null is passed, the current culture is assumed. + The to convert. + The to convert the parameter to. + + An that represents the converted value. + + + The parameter is null. + + + The conversion cannot be performed. + + + + + Returns a collection of standard values for the data type this type converter is designed for when provided with a format context. + + An that provides a format context that can be used to extract additional information about the environment from which this converter is invoked. This parameter or properties of this parameter can be null. + + A that holds a standard set of valid values, or null if the data type does not support a standard set of values. + + + + + Returns whether the collection of standard values returned from is an exclusive list of possible values, using the specified context. + + An that provides a format context. + + true if the returned from is an exhaustive list of possible values; false if other values are possible. + + + + + Returns whether this object supports a standard set of values that can be picked from a list, using the specified context. + + An that provides a format context. + + true if should be called to find a common set of values the object supports; otherwise, false. + + + + + Returns whether the given value object is valid for this type and for the specified context. + + An that provides a format context. + The to test for validity. + + true if the specified value is valid for this object; otherwise, false. + + + + + The structure contains the Ads state and device state. + + + + + Initializes a new Instance of the StateInfo struct. + + Ads state. + Device state. + + + + Gets or sets the Ads state. + + + + + Gets or sets the device state. + + + + + The structure contains the name and the version information of the device. + + + + + Gets or sets the name of the device. + + + + + Gets or sets the vesion information. + + + + + The structure contains the version number, revision number and build number. + + + + + Gets or sets the version number. + + + + + Gets or sets the revision number. + + + + + Gets or sets the build number. + + + + + Determines at what time the AdsSyncNotification-Event is fired. + + + + + No AdsSyncNotification-Event is fired (ADSTRANS_NOTRANS = 0) + + + + + The AdsSyncNotification-Event is fired cyclically triggered by the client (ADSTRANS_CLIENTCYCLE=1) + + + + + The AdsSymcNotification-Event is fired when data changes triggered by the client. (ADSTRANS_CLIENTONCHA = 2) + + + + + The AdsSyncNotification-Event is fired cyclically (ADSTRANS_SERVERCYCLE = 3) + + + + + The AdsSyncNotification-Event is fired when the data changes (ADSTRANS_SERVERONCHA = 4) + + + + + The AdsSyncNotification-Event is fired cyclically within the given context (ADSTRANS_SERVERCYCLE2 = 5) + + + + + The AdsSyncnotification-Event is fired when the data changes within the given context (ADSTRANS_SERVERONCHA2 = 6) + + + + + State of the Ams Router. + + + + + Ams Router is stopped. + + + + + Ams Router is started. + + + + + Ams Router has been removed. + + + + + AmsPorts + + + + + AmsRouter (Port 1) + + + + + AmsDebugger (Port 2) + + + + + Logger (Port 100) + + + + + Event Logger (Port 110) + + + + + R0 Realtime (Port 200) + + + + + R0 Trace (Port 290) + + + + + R0 IO (Port 300) + + + + + NC (R0) (Portt 500) + + + + + R0 Satzausführung (Port 5019 + + + + + R0 Satzvorbereitung (Port 511) + + + + + R0 ISG (Port 550) + + + + + R0 CNC (Port 600) + + + + + R0 Line (Port 700) + + + + + R0 PLC (Port 800) + + + + + PLC RuntimeSystem 1 (Port 801) + + + + + PLC RöuntimeSystem 2 (Port 811) + + + + + PLC RuntimeSystem 3 (Port 821) + + + + + PLC RuntimeSystem 4 (Port 831) + + + + + Camshaft Controller (R0) (Port 900) + + + + + R0 CAM Tool (Port 950) + + + + + R0 User (Port 2000) + + + + + System Service (AMSPORT_R3_SYSSERV, 10000) + + + + + (Port 10000) + + + + + (Port 10001) + + + + + Port 10100 + + + + + Port 10200 + + + + + Port 10201 + + + + + Port 10300 + + + + + Port 10400 + + + + + Port 10500 + + + + + Port 10600 + + + + + Port 10800 + + + + + Port 11000 + + + + + Port 11500 + + + + + Port 12000 + + + + + Port 13000 + + + + + Port 14000 + + + + + Port 15000 + + + + + Port 16000 + + + + + Port 17000 + + + + + Port 17500 + + + + + + + + + + Describes the AdsState. + + + + + Describes predefined Index-Groups. + + + + + Describes predefined Index-Offsets. + + + + + Describes the Ads error that occured. + + + + + No Error. + Error code: 0(0x000). + + + + + Internal Error. + Error code: 1(0x001). + + + + + No Rtime. + Error code: 2(0x002). + + + + + Allocation locked memory error. + Error code: 3(0x003). + + + + + Insert mailbox error. + Error code: 4(0x004). + + + + + Wrong receive HMSG. + Error code: 5(0x005). + + + + + Target port not found. + Error code: 6(0x006). + + + + + Target machine not found. + Error code: 7(0x007). + + + + + Unknown command ID. + Error code: 8(0x008). + + + + + Bad task ID. + Error code: 9(0x009). + + + + + No IO. + Error code: 10(0x00A). + + + + + Unknown AMS command. + Error code: 11(0x00B). + + + + + Win 32 error. + Error code: 12(0x00C). + + + + + Port is not connected. + Error code: 13(0x00D). + + + + + Invalid AMS length. + Error code: 14(0x00E). + + + + + Invalid AMS Net ID. + Error code: 15(0x00F). + + + + + Low Installation level. + Error code: 16(0x010). + + + + + No debug available. + Error code: 17(0x011). + + + + + Port disabled. + Error code: 18(0x012). + + + + + Port is already connected. + Error code: 19(0x013). + + + + + AMS Sync Win32 error. + Error code: 20(0x014). + + + + + AMS Sync timeout. + Error code: 21(0x015). + + + + + AMS Sync AMS error + Error code: 22(0x016). + + + + + AMS Sync no index map. + Error code: 23(0x017). + + + + + Invalid AMS port. + Error code: 24(0x018). + + + + + No memory. + Error code: 25(0x019). + + + + + TCP send error. + Error code: 26(0x01A). + + + + + Host unreachable. + Error code: 27(0x1B). + + + + + Router: no locked memory. + Error code: 1280(0x500). + + + + + Router: mailbox full. + Error code: 1282(0x501). + + + + + error class <device error"> + Error code: 1792(0x700). + + + + + Service is not supported by server. + Error code: 1793(0x701). + + + + + Invalid index group. + Error code: 1794(0x702). + + + + + Invalid index offset. + Error code: 1795(0x703). + + + + + Reading/writing not permitted. + Error code: 1796(0x704). + + + + + Parameter size not correct. + Error code: 1797(0x705). + + + + + Invalid parameter value(s). + Error code: 1798(0x706). + + + + + Device is not in a ready state. + Error code: 1799(0x707). + + + + + Device is busy. + Error code: 1800(0x708). + + + + + Invalid context (must be in Windows). + Error code: 1801(0x709). + + + + + Out of memory. + Error code: 1802(0x70a). + + + + + Invalid parameter value(s). + Error code: 1803(0x70b). + + + + + Not found(files, ...). + Error code: 1804(0x70c). + + + + + Syntax error in command or file. + Error code: 1805(0x70d). + + + + + Objects do not match. + Error code: 1806(0x70e). + + + + + Object already exists. + Error code: 1807(0x70f). + + + + + Symbol not found. + Error code: 1808(0x7010). + + + + + Symbol version is invalid. + Error code: 1809(0x711). + + + + + Server is not i a valid state. + Error code: 1810(0x712). + + + + + ADS transmode is not supported. + Error code: 1811(0x713). + + + + + Notification handle is invalid. + Error code: 1812(0x714). + + + + + Notification vlient not registered. + Error code: 1813(0x715). + + + + + No more notification handles. + Error code: 1814(0x716). + + + + + Size for watch to big. + Error code: 1815(0x717). + + + + + Device is not initialized. + Errocr code: 1818(0x718). + + + + + Devicee has a timeout. + Error code: 1817(0x719). + + + + + Query interface has failed. + Error code: 1818(0x71A). + + + + + Wrong interface required. + Error code: 1819(0x71B). + + + + + Class ID is invalid. + Error code: 1820(0x71C). + + + + + Object ID is invalid. + Error code: 1821(0x71D). + + + + + Error class <client error> + Error code: 1856(0x740). + + + + + Parameter at service is invalid. + Error code: 1857(0x741). + + + + + Polling list is empty. + Error code: 1858(0x742). + + + + + Variable connection is already in use. + Error code: 1859(0x743). + + + + + Invoke ID already in use. + Error code: 1860(0x744). + + + + + Timeout has elapsed. + Error code: 1861(x745). + + + + + Error in win32 subsystem. + Error code: 1862(0x746). + + + + + Timeout value is invalid. + Error code: 1863(0x747). + + + + + Ads port is not opened. + Error code: 1864(0x748). + + + + + No AMS addr. + Error code: 1865(0x749). + + + + + An internal in ADS sync has occured. + Error code: 1872(0x750). + + + + + Hash table overflow. + Error code: 1873(0x751). + + + + + There are no more symbols in the hash table. + Error code: 1874(0x752). + + + + + There are no more symbols in cache. + Error code: 1875(0x753). + + + + + An invalid response has been received. + Error code: 1876(0x754). + + + + + Sync port is locked. + Error code: 1877(0x755). + + + + + Client queue is full + + + + + This class encapsultes accesses to the TwinCAT Registry part. + + + + + "Software\\Beckhoff\\TwinCAT\\System" + + + + + Installation Path (TwinCAT2) Registry Key ("InstallationPath") + + + + + Installation Path (TwinCAT3) Registry Key ("InstallDir") + + + + + Installation Path (TwinCAT3) Registry Key ("CurrentVersion") + + + + + TwinCAT Installation type + + + + + TwinCAT Installation path + + + + + Tries to get the TwinCAT 2 Installation Path (if installed) + + The TwinCAT 2 root path. + The version (TwinCAT29 + + + + + Tries to get the TwinCAT 3 Installation Path (if installed) + + The TwinCAT root path. + The TwinCAT version. + + + + + Gets the root path ("Software\\Beckhoff\\TwinCAT", or "Software\\Beckhoff\\TwinCAT3") + + The root. + + + + Gets the AmsNet ID from the Registry + + The ams net id. + + + + Registry TwinCAT Root path (TwinCAT 3) + + + + + Gets a value indicating whether this code is running within a Wow64 Process (32-Bit Processon 64-Bit Operating system) + + + true if this instance is wow64 process; otherwise, false. + + + + + Gets the SystemKey registry key (Don't forget to close the key) "HKLM\\Software\\Beckhoff\\TwinCAT\\System"; + + + + + Enumeration describes whether Tc2 or Tc3 is associated. + + + + + No installation found / Uninitialized + + + + + Tc2 Installation detected + + + + + Tc3 Installation detected + + +
+
diff --git a/ExtLibs/AdsApi/TcAdsWcf/v4.0.30319/ClientAccessPolicy.xml b/ExtLibs/AdsApi/TcAdsWcf/v4.0.30319/ClientAccessPolicy.xml new file mode 100644 index 00000000..110e386f --- /dev/null +++ b/ExtLibs/AdsApi/TcAdsWcf/v4.0.30319/ClientAccessPolicy.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ExtLibs/AdsApi/TcAdsWcf/v4.0.30319/GacUtil/gacutil.exe b/ExtLibs/AdsApi/TcAdsWcf/v4.0.30319/GacUtil/gacutil.exe new file mode 100644 index 0000000000000000000000000000000000000000..ff1dbd9d880a9122b3e9e8a9c31218099a168e81 GIT binary patch literal 118696 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�uEbFjjFPGDaG1cqj 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 + + + + + diff --git a/ExtLibs/AdsApi/TcAdsWcf/v4.0.30319/README.TXT b/ExtLibs/AdsApi/TcAdsWcf/v4.0.30319/README.TXT new file mode 100644 index 00000000..9bcc2200 --- /dev/null +++ b/ExtLibs/AdsApi/TcAdsWcf/v4.0.30319/README.TXT @@ -0,0 +1,68 @@ +================================================================================================================================================= + +Installation + +------------------------------------------------------------------------------------------------------------------------------------------------ + + 1. Libraries + + The following assemblies have to be installed to the "Global Assembly Cache": + + "\Ads Api\TcAdsWcf\PollingDuplex\v3.0\System.ServiceModel.PollingDuplex.dll" + "\Ads Api\TcAdsWcf\PollingDuplex\v4.0\System.ServiceModel.PollingDuplex.dll" + +------------------------------------------------------------------------------------------------------------------------------------------------ + + 2. Install "TcAdsWcfHost.exe" as Windows Service + + Step 1: + + Open the command prompt as Administrator and use the InstallUtil.exe (part of the .NET Framework) to create the Windows service. + + Step 2: + + Switch to "Control Panel\Administrative Tools\Services" and start the "TcAdsWcfHost" Service. + +------------------------------------------------------------------------------------------------------------------------------------------------ + + 3. Test if Service is running. + + Open a browser and go to "http://localhost:8003/TwinCAT/Ads/Wcf/TcAdsService" to test the service. + +------------------------------------------------------------------------------------------------------------------------------------------------ +================================================================================================================================================= + +Logging + +------------------------------------------------------------------------------------------------------------------------------------------------ + + Enable logging: + + 1. Open "TcAdsWcfHost.exe.config" in TcAdsWcf directory. + + 2. Navigate to the "userSettings/TwinCAT.Ads.Wcf.Properties.Settings" node. + + + + + NONE + + + C:\TcAdsWcf_Log.txt + + + + + 3. Set the value of the "LogLevel" setting to "INFO" or "ERROR" + + 4. Define the path to the logfile as vaue of the "LogFilePath" setting. + +------------------------------------------------------------------------------------------------------------------------------------------------ + + LogLevel Description: + + NONE: Nothing is logged. + + INFO: Information about method calls with parameter values and errors are logged. + + ERROR: Erros are logged. diff --git a/ExtLibs/AdsApi/TcAdsWcf/v4.0.30319/TcAdsWcfHost.exe b/ExtLibs/AdsApi/TcAdsWcf/v4.0.30319/TcAdsWcfHost.exe new file mode 100644 index 0000000000000000000000000000000000000000..f59fa2f95015896da09e154c2909a05c99fdeca7 GIT binary patch literal 7680 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 Pajt!o`2TtTTM_sVRXeiV literal 0 HcmV?d00001 diff --git a/ExtLibs/AdsApi/TcAdsWcf/v4.0.30319/TcAdsWcfHost.exe.config b/ExtLibs/AdsApi/TcAdsWcf/v4.0.30319/TcAdsWcfHost.exe.config new file mode 100644 index 00000000..982f2e0c --- /dev/null +++ b/ExtLibs/AdsApi/TcAdsWcf/v4.0.30319/TcAdsWcfHost.exe.config @@ -0,0 +1,158 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + + + + + + + diff --git a/ExtLibs/AdsApi/TcAdsWcf/v4.0.30319/TwinCAT.Ads.Wcf.dll b/ExtLibs/AdsApi/TcAdsWcf/v4.0.30319/TwinCAT.Ads.Wcf.dll new file mode 100644 index 0000000000000000000000000000000000000000..2110f8eefa52804e391f589b62d5ded3f9ab010f GIT binary patch literal 47104 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 literal 0 HcmV?d00001 diff --git a/ExtLibs/AdsApi/TcAdsWcf/v4.0.30319/TwinCAT.Ads.dll b/ExtLibs/AdsApi/TcAdsWcf/v4.0.30319/TwinCAT.Ads.dll new file mode 100644 index 0000000000000000000000000000000000000000..e04c717a6004aab22b7c361377a672e85df06cfb GIT binary patch literal 245760 zcmeFa349#Il|SCxGULdfP=avKOacENEHLbBOhyPMtrZZ?76_xq}PrbmbE z9KZkP|M~neXu9gvt5>gHy?Ryks=E5*^|u+8VHh_4UVPCo9>SCVR?6?*f3_pJWANb) zisq;Jk!d)db7&{dV_(#rW)4qbTu=FQQTp$je^s$8>qXyfLgqfdRs(3R0e z7mv2LdkZw_(~dEWliDm}!~d>0JuYpJVb068Wewvta5ki%x4uV*A0xMhFYr#qHv!~d z{X+=wJ+_T{t-L`Zh&P`S(zu3k80enL80ao*5^1Cxdn_Z@jO~AD$S~3g>@?!XC*q@9 zE`H4x#P52&t{3Ynd^VAg<-E~KwQ?aq!W(!Locr)h{9B3U8m(M>MFd3Q6+8>x$EM&N znaK81@FfYnB!QPC@R9^xlE6z6cu4{;N#G?3yd;5_B=C|1{(mHatGKSlKdwzpBW2w7 zsW#&y|Jr6`1Zo(I-`!@M7Z}EALx!9X&>r5_M^j#e}B{5w?#XguRQnRHTQk_v0blP(-|$l{(~of@jV;L zJ(th_;nBh4YmPeb`sbeR`Q0(8)yFya-8W!{J%-^G=bKgtw!Px8Y1v_cp~C?(4Z|_* zdK(-D$vD7vam=g$ewE-zej=;zT(FYVQ#xIq z7nqfClww7_;3=GqA1f5{!l;B$hdwflXFs2;%Nz}u%O@Hjzt}dG;0ccWF5`uszen?R z8Ro*mQxl!Wap5l8a1zlcRrG}LI|w)`zh%rqe$>$qykHM9vruOksiaL;L?g{YA~<1U z(X?l^31)HBv{MK(p=el(E#uQ*hX1T+09-CV7Ex>0TJRVSA|4Lmr`&GZtc!Cq;YDlL z8B>$zF_~~ApE)%dw49p>NAkqfWC+N)nQ$bpo0`0U$%G?${nX@zOeP%3XH88$fXRd- zdBfD?`AjAp$!AYZh5($K2}kldQ>s&0x=X$||f4iq`7FBBzSx z@U{k?d93FYi3dA?kzfWq^EhBpR}`KzBOa+W@!SSpuaw&xmunv1f(M_e=5I3I2`zZE zO{yM!La(nuZ*>bE#<3ajPHfFL*0ca_Of`dv$m) zG-MbFZV_3m!d>gz70C=pW)dVbB#HDYl-JAKzP&J?Eob~}gzn~zIKiHLs+9G!K@g&A zdij)}N|Hz1jtj7Q?^>UCSc+r&CA&0VZ&9c&^oSzF&7)*qh zPx~!(LEJ4WMOJo<^6dD_<;ku*y*!!n=gJc%Wbg8X`T1+f6ZUT(@`M@OKY3!l@R#Z* zjra8OWXhi_PZ-O+%M%9kuO&~I*L}znqv^ioc|7zJbF69PiJ6b_8TR)BRDbVXzt^JThh zUou_(*OcjseaiIE{gY|ee#x|N?|RA!{q!E1)lqr9{OjqtprmOy%GCgviGCgYlWZJ!7G9B2vo^mxXy-b-hlS~Kp zsi#NpOQy%{hfD|dS5J@Kr%aFAKbgXrvL9pAKKee_Wz)-)DKp7*-+doWtG$m=C+vqz z_q*?}-lt4Y+&`HH`z6zT=qVSp)60}8Gs$${dV12nWP0*`$aKH;^pt(d^wfRH)G;o^ zY^gw*7A9=nxl^({N;Q{9w{WqX4RWPJ+_af~3aINRs;7ZALLrQ?v(ruQ2%g_5OW!|zE2rYI0I{F zzj77)K7F^CkhJFnvy2eE+Z*g%j}TD2332M}bP9;WmU=qciztSxI650q%(CKWh;g&OP)mor?s|F{AVF%(~I}cq~5{7;ba{f+i0`c`G@GJ^<{=zg#2K-U#LG zW-#SO7a>!n*EFt*E=EWw1xxy;z%M~!cqx8zI%)n4S(@-hmUf+`I4R4VDey*?ysgv5 zX2{coH}j;@QnQt>K5^ChjH={GzgoF|!q+uk`Bp|!6IWchxmdjnb=exXJAJvUw9L>N zY{emC!*D8Y$f51OUTUnL(9Jk>-Y*OlV=E5*+|n^N;>2d9(gZbN51(OFE& zsIyevqVf;G%q8`?au_5FFSpiMghXQp4_l8Ql~pM(A`MkVxS^-v<*H1}_#hN+fI2z> zg462g8z$>$^-t1K)so;o?`Wl1V@nF0V1{Br} zeT<;K4HH=n>N|U+1Hr3+-n+zh3lrHwuGH>2>B71_Z=1-K$N+4cdde9pqC%-U;$< zkWZs)lfw-;9XKcN_>S<2-m3xv8a!+RoQBTeVTh$ga2rHqsJ6t;$)UQj#PVsk@0<~< zfVNDhm-hQEJf08|zz~U`1HNuuu9SkSa9xgq3-Xyl-YXsEXXq|0clciKc*ai;&Yj59 zxtNB_RHU3wBg@OOKIWEbKLZk-ei}|$uP~AKd~dM*kVjqLhN%Is)h&>0W57II4V7A9gdA2eBc4a{8P9L# z$yh-U#)?as@@Qopj4L`2yRXbwbk~c+?Bo(wBY>Kxyd8F7KF0uT6i+(_lwXycq>Nvt z`;4~dhug6|zXa67SK}wP+s98$itY0xYtLLzUyg^bAr+}`W0*fmS05vr(gN5o6~K_D z0_QLg%NdMFvtks-06ML_V0+@R6&6s<2iJn#If?mTLyBq=NF$e+1U6*3)8QnL#!RR7 zAxdkeqy31|qUmTnMFd~y4{b8xn_2eDp8*h74*i9VjOLI=hNM-edM#ueZpDwxnJi-=1hs&D#ENQwRTI*H_;3PC79ZHwT5U#kq;IZX0dmo~q}c#r0p&zkyeEp;#$vu@$*kQTn}s4? z2S{K?+nEqYRl2~;AbLHMPBE=26wcuSz_~KIE{0*@=0vNTFm(3onRcvc-GbFkTVNFm z;TtrzozfAU>PXX6tuUjf>4 zoXv+-$GYD(Q}sSRf_lGt%;BT@Mlez@FgWN{Z)60H7hqN2#4sFNHrk*cdyuerYzN=0 zG2_TuO$fWUHRf2D#kBOz$Ya)+DY^;4VU-lU1>xPEQ+C|&W(1!xqqjjkW{pgiv+5b$ z!n}n#i5J^Cxpwr8a5=X}F)uP}I=7J@;$S!0zJ z=It&^GsU>&?5GX48Mbua=vEYX&AU)gc6T;Y#=xqWbC>@SRNdO)KxBq_c;344h%W%x zj4uDU;NTd7?bcq7-%Zh5LC&oa65WPij61qm0poZO2X5UM-QLKOBvRQ4;}zb4wCGMv zsKGQd51|M-3L=)jH@v~2EZM|vZ6(rToMu5-r5_5U5{&9z(FzJJTQO6{Rf_O#FK4Dh zFzW0!oWg|XKsS%L=YtCT3jY%nTY8=O zg7Z$uvU)d2RNs!DdLDH)Yy2%l?~s}^903c)uOEFJ6BZ*x-KyV4zxJFCr%uguI#PA& zozr30sdG+;TR(zNyG|W&QuS4M1n6AS5prE^Q)J;pJ5b1O5A)Zwst1QrE#IZa0qdIb zJsa?Yz=Q73e}jC%lEX+{x_*;7qtQJ`-ooZ?A+B`Ki4LPCn!7u9cMMmSHucPC%COUz zKc>n?vBoK<7#${vy{gouwE}Gf(-J~j(0ht?C)U!0+g*1#3WYFOSYjxT1aWPAWJJgBZbyla_ z;SP>1wg<;LT{Cejyk?P2VP-h2XV5#a9o%)U50|u}tQw1-~J6$QQie$FK zZT8DtdgK@mK~65cWi|v5-j8rS2P_p2>g|oNs#XW$W-UP{Eu|^+b`D_O;dNwIm(8GP)(CX~T?1%VLpw54+61dt zX%iR(-6oD|6WHstW3y4x(j-_DyRq!kU2anLx`8+lQcNSOMfwa*lD`J12GEfyEug4D z6l`#fluxNfz_L578o`l97)t%tFjPY*fU6opMKUt@s)nGUlZJ2m1v6*v<1curMOnp!t;0{24R@oC_;&|9Yn zHy89ho+Dh3Fy==_7X*nRLjJ*~bIxX1fE|QC=^%*H9Hp-Qbr7YUiZ35(NGGID zQ=0g+@3>-TeMfik`AQeoD_xkcbm0L10JQ!AN*5fZVyS1#DQf*Zu(7<`LVpoBwl>o$ z^uip>^3C-;S}0vNkFg+Iy4b;CzJ?;_bH2AQzW{!;1voj#<9+QV&tDL{b%L^J_uHTH zvrlP46MOtzjduL?q`Mo(4D;>J_-Q{UcBMw+4X2u)MKy6kQ1LK!yPsBtcc@v&&~}&~ zl@=gxN8t0MV%Myw2dC8YoqlI|6IPc^{(RqWl2??_w*r(EC&-whkvzbII6+2}F4FFb zX}f-BcoHJqb98(GWyJx#Gp|Xi_)&WiFTds&u$7*=~tiDFP$Lz zrNc_U5;^?7psQc$*BpON`PKfMAq&=f{L;Ou!9o5(fj@g1H8@C#U~w#hqFaK=F`9UHEh@r?>buIcKo>$`!D8>LZA~`O;9`O}`KY}OBYvbP#LJKe+ z9gRPZm(YYZ(jj~du+udhQK1ieY@7|)c?mf8vrh+nF$N&Bb^y4Xo5y|vj%#E|yqXdKfLsYc0ssha^m|GGy3F@MpdNe&&xbIWF?vYp z0rN;>s%$)TGz*7`;IxbW2@J>Juvt6G8PFk#!$rFisiV zy0Lex(^QjE&w1+jtee}76+73KY?D0j4kn(pN9L_SIguy^5b}#tMmN%75PU6WXp$4y z;UlP{(leM|mH*a_o2R_HfR%-x1A!moeIeA@GGIJ8?)s*X@to>othFIw&!GBEBqo5w?J9UoOvywX_v3= zmORHD{~^?A#(ZDiTfTVD-?FQC0oJL%5`K*T&DlJhp_+Boews_*29s z@H_+HfxhQ6@WkK(-boB@$6q0_`WjG*@X7;vF2T|2Mi3akAqLLNInfye7wVv4@6O}J z&0a9?M3(|uU5KBpD1<&4{yXwWBad;$+@^$74%E|%wh?efUF{GF$*J#2;UAEg>g29EBK8KEiBE5U=ApQ5HW% zCkS^#zFDVFo;hbAdmx~@2<@TBr{m##X&yq^VUa0sTQ9J3(fD&~`A>luh zj^p%(KV-lKpNcmUg13_RME=gXXjFi-bR6DctLxP7z=M{Rn=vMm>_sK;;0j!JHC^2O;_1el)HJ zxp$MME|Z$vzw$w=Rg{_N-QTm|iY0Drurz{Ov&t4m!DplL1x&5?Cl zgY&trE~oEybz4A}(|>y?7X@@Vb3}90Z2<#l;ytVpwza311&q4i75yGKGbv`G@a`Bj z0UKG_U?^^a%zo%9x(p=tzx!8i(5*0&#fFVyXRKQEhy5e3@RG!jXb?x8*by&7msEnq zR)EHwWM42oq60>M+`lq|Kw&0J-JdGGuz%zu!AlY!PgY5^e8%33<8;xB`&Uk&5R(P% zPc2}`_eb9%!AlbVOO&l`{|be&38orbP2-Pk#~p3bRbb!Q|p9?2Z1AO0U03Pu1l}&{#zpf2V11 z#ZR8N+9!=g@^tE$!y)e0v4FxeT_3{}9L6%{o|a)iKdy#sP$J0!E8p9LzufF*V9?C1@Q3T7lP*DyKVAGGoUQEbM{ir1~I<3C#5|&%~}GS|$7uiiDer zGdMS0#aRL;!WJ-wl}Z1R_7>1SmVAC%^SOe2%}Ryeh8w$%*{wvLU7z+nG$Lzt*62Xi{kK-qYO+u(6g;k)GJ@Uiy(S!y(1b+1)T|NXS zazdpkmlWiZQgZ2qSW+sd(hIgD{0M&aVVxIB!V+dTN>F%EHTsKuE{CKqpz&G86Lqw% zGzMCV8T*SWEh~+B9_q%A|D#Tl>@% z$4%%8&ppls4GjN{yMVyrP@8KQvYd266Ky!mvu_F-bcfjR0|bkB1qtm*7(tktgyBe> z%NC&=gqStAkVs3Mnwu;rBT$^TAm0(rA>ojrSvvy}9xoN(D+pX+79yN9$Nu?Op@iT} zaLS1P8X|=$GO}2|`grmmj{gyPH;zDj4d~A>UF|I!MkZsR=2%0T;n$G{Z^Js4hEnB; zQu&mX5P|ENNS}lR=+^iKa}_4VZ55wCIJEr&MNXXs{P%cmS4R(`XX_$9QuT}ZfZ@AD zo~in!@^tE#$Y< zXEbCsbE*=ZWYMBiVI{f*SK7fQTYZ=BMV7vwr&Gk5*0Sv8~LeDbv8A^hydB)B(Tj?ty!nm$6*RXsUxpl!&05SxJsa1$1o_JnNguD0nn8M($yHMe^SSl z|Lql0|C^C5;r}^G`F{w7|Hqup|1&w?m%+}Knettr*)^+p^T(;*1iIk{gjkPb@C17| z0)~3L36J6>8VX-47HyJZsT5QsJc=0^z_nV+KZ$K$?UaB!OeKkY5e-=n0T!o;SyNBya(?;7C|I6ESTv>x>th38F2{gyzOb z?UtC71QG*JYuv6&e6k+D1G%T_F`;|c<7U339#5B#XWK7>{P?fY3EzqWOzxz3_1l}l zw=swotUy#%c+#BuI|f*P69EfEc|CS%ym!JpD>OqNfmF*xoo`D=@a%(C;uUT9T{$9;(u(`+~~x z9i*zWu^F`|Y}QygCprbiYO16VEJ>TSJCQPShkCAfEf3@zfS0}N1e-MquM8CvAxei3 z{ojq1ojQ-)Wvo2Cd6xDqZ!r$=FkP8kFO0)2^`cNG*Gpi@dSS!)s{XiMlDdz2H7H2E zupc1x;xkb%M*o6(*#=w~#+hg@YunQhVfbDAEdM27*zutX1fm(?_W)LaY7s*BaGm7$ z0m{0PylEoWWu?O(0OCYTksfa_z>OFvh){5_;lPy>Hyo6QiZ0)QaU8%xJ4$^;JM!r+ zb!1Qhf&5P(-FlqPtVt`tAbG<@IkPF6r1EDP2R8|9=I0s5h7O5#s{E+0YX9xVg7>MT zb*Ax{vEVrsrai=RMcZ@gUUVuLS85pHjY$OAjly#f!~w{=fE(-RX-o}Y#b0#0tME*m zX1@)Y%o>07X?Fb{30cFuRw*r$<$ya0T-{0lC4m5cTM1A$AfU8^$wDCRqgR2yjM&;n zUBdG~7z5P$Mqg=)M|CEi*%ns*nQf68E_k~!xz|NB+rq4|P$EmQ31p{88S~A9p2Lh3 z25|KEwMNfI73SO#GBhT@SKui(PB}0r5+Lq&quCdXV=jU_FoC;7Dls<&{BEa8muGUL%A2fG8>L?#8yT; z>MeGo^o)yGdY08(E4`a280h3Fd@TZB>qUOuS+lDR%;02eBn7nF)9S+_iFMmK?W z84KfR4FZ7^{t*SQDRo+=6LeSa#2ME$CClnw!@DkQ?&~)Bw1m;?fnRnD>bBX+<9p#3 zdAUEl7S9djS4!N1LEeP%!HeC_mMX>EjTw%rNtc<5E(E+iQ=X?8&DpqpBj(XI(@h@j z?ll?V@%NyAw#ZWDSq@@`8J&vi6-IGu1p|Yb@dI`FEHnBsU{;8uL^#;*1`z)nQLEu) z=t(-~pvMm#8P=B5q5ZkExN_PRh3GrTHgJ}lGcHVwjq^l>rx2q(2=bOj8K7~z6>k!% z1&E12Tuf=SvcQd-S?((yO1U_TD~)Vz`4xD8JKJ}Ge*@Wa%5y858yTkRMe+Ucecz6j z8`T$&#`3I<;Vp8jHjZCAx(I?TKH5?RD~NsshOzmt8^BH}w3IM}TR=JA!=#n(^EavIFsR`f57?J#R3Fw1-)fWr1iPk;eC`UOA=&5r(+Xs8G4GmhuEtdAyv zG1LPhDd5`YCWQzM!S^6kLGYL)ie;W+U-dV5Yy~gOYem1+C@S`EjIGdVcJ%LzO5g9+ z<@1hdvTO1#=>I@6?t+eM(w5-EO4P*CHQ_v`3_9nb9#-@_WX_g4+~_|Mz^g0af8puM zN#~JY$a_$(+LqJrAHugcPtBdqQT#>!4>G8lM*oc`$a`l2EoVgOQic4G^GWmO+g`c!={pPbhU zrfOfx_k6Z5U3A_SGCiG03Zbxi_SVv}{Va0sFwddj0ETzZr>Opzo%k!%6 z-+6U7?cz8*bzU7lO|9Hm24TCKo;W+i?lo56AvT{yuSi6zGx#H)_uz@izHbGKvX#fs z|Et)G_O{wLQ)xz=D)y6ckF^ha zIt+)~vL1RAdy!caPHk@g@=h4b*a|-3+(3U)b=S+(Ny1N? z@KZj>b+{Kt=NL6?WcD<;+}p*Z5h&=-cP0Tq&I1IvD zEzO{#I_680{VR5SV1q z!YtOVeL%u=Xueqp`-wknT7?j&cEk{UOBGCgGqfS_;Kg<*tL@NSRpyN811eqF zsj2zx2&aa0+suqJL>$`1c?vnUdzT77^8ws)3WjFbMLRkm#-&AK?d)&?Ly*rxK9|C? z$zD($W^BG0ga&V-%M37$~#Enj@rO#v|kivT+Vz^1Ww0hgZ3&wCIUbI8pWB?vD`W`GMwmDYTmq z2wBxDo_RKw+{>T??4MX9$M$gBC^!oj;inu=Aw!&_@N%VjX*H>6NOuXq zP#U-cys}-$?w*@g^NjE9_R@IYTFo=;7kUmyfkBZk%c(u2&=`58nsY!%`7iL`)>H7!<|(0~JnJ7!1Y6OQGPZ?>0CA*8MXR_0 zo)i8MM|NB_;I@`~w|3YlxTzXQ*glV`L!Dy7@pMy#u$ z0j4a)uvk)So17Cp2O;#17tAfMhK$-X(f?2=wyeamrSr^a7vh87_##>T*j74Pg%Y_Y zQkR#|anv)4%jE+2bg+h!q-^OxC;BBamS?L1WgW)10O9R@5iOZ5In^UUhf7@=F*$PBjJm=nd#oL8w3{}TD!iay$hOddnSon+FFTLwD}F`m&X z8lVW|BtgMS0Vq_ugdzb&ASVk77R^9`XKoUTKorV11Z9#sf{H+}mjGTqBq)=#5hwzI z&lf0f6qHHI*kRo-5NM(2l`fg0h)5UJTqEhnPEkUni&~y8>BCbL5b2_lQjuo!RLt-d z$ie>qj%FKJ^$*iE$g$bvnJi;7+OE2mq|F+W=w-wx+?(d1bLCFK(W_`JtYCB|AbRlK zlN@}h3u?^mG8QaVV=l)g`Wz$B=Ny-`t!M%iFwtFyM|qa*h_|NN2ij{2ICg4>>ye;* z76(nv8)wTUauq8dWYx|>uB~tmH29~dpc#Q5^dqcvLL!}+cvQjydEbfPh4R9Dy+vNk zD9*nA@uO84TQJ=1xini!%Fk1Fq<-)VmQ}p6dE5as9 zqAulbT|WG|tiB!H2zsmqJoBPQYTw{$+9xF~7B4f2zHw|qGSfBa0a%uluhhJ~8Bx4R z)9@A#V}9`?7^_=obNIr_taQfC><|-lue$bGJ2iiXJzM%E9q~sZLhoeLE19=36G&7l z#eEfVYDqg%T8&2Cn2cPVjL_BDK)Z&KM%%xtC3bB~te(vF#+D??tV!g$me}>lY?NK2 z=+lxBT8Bmow-OqWlarCllaVVJ!OL@t@Whb=c}CwQ&OMvB-UYh{-jT8PUfuEm%_Y3^( z0zV-EADkr#?~{bZ$%J-Ect8>g$%KyK;kan_XWRG!_^T>gDkf)SN##}OhrMz$BMw(s zvW3Ib6=JJ#j^cc17w*-&n8cUSy`(lK$h=kkq!f9z0+Da4dbfbi(c2ef*{Z%*V7T*- z+BryWt?Gvbwp7D9#urq+(qJT)ju}bEjHFu_(ek#9&w`;XQlIXuUE5$9wptQi0Irw6 zgWM`;S6lQ|6u6udA6FWse;j*rVnV>oox;o(mC`3E?7&F*gruxjDQE#^dYwwzDM?4@ zq;^Sqy-NC!BrVWMXa(eg*h%m_Ny=dVt9mYjY!}ynXT!LL_66f?bFITs_e3uqV=(?j zU9bge_sJbGyJ1}Eq{~^?Tn^&hFIerF5qBtnKfjb3>c(Sp-p-VB>B>3~2`_|9aC;~h zNd4n;u)^77iIG%NNLSxMcH|xuh154bJBdVrq^qAMQt34c1M+A=pzBbXgaQDMc#a8O@ZugNNdchELB2XMI@PS>oZ|f;AMrY={Hr8%d-EtG|f_ z51GQ+M63>Y9#|HNkov*bVPFA^an}X$EvO+zI?qn+$fad7^A%k9uk6Nlv&v^VsN2VZ zS}tYoCm{?Ig^5lJ7bT{aw41&y3`wmzFl*QKYL-fwVtQ%3Chkip$%^g(!8B$}mxIOf zawob1&tS=7Yzo{owPTaJ@t=a)Kq>EI6eLmCDlJlh*ihB zpHoX&N3X>5wd@zTNi*T>$yUy0x7Z9Wwwje25so5+J?wqM9Wpp1_mJXHPUHIrn7j$u zXRsur0t4%dJxmnj^=9qkKpMd*=+nU^ z_Wu}VGWo@ZUJU*uqZ|vk%-AY@$gB}KvQ^=hE9%*_q~-ItIY0rb6m3m0-C1BN!&WB& zRpc<-u8fJHsgns!zQ6JwG*m%`8d!KmYNs;naw35(K!z#(#8ZZ(B7EvddXPzQ#IXQW z@gYW^GlJgoG~FGp%X(Wj$v>>X0!rjdl{o3H^82jp== z8trf|J}nDV$)V6ps*Ih`DBWHb-upcfI?I2Uoy#qU-5q@A<^tqSmHTiC0}bF*o`ss> zy$Seqv}C%>7{)PBq}AjAHr+OUuE-iw^Z?YwNZ_?3QJ|DGD6EtyoGtp+VWVukHuF02BkUojs^=2<+TlGPsOv1Ip|CLH${fFjO9v> zwhZP!8gzRRUHU&z%3%7+) zo7U#+RZe1#Jxji)P&$BbPv4bwDnEj*t2+(F_bZb;&&QCgT*kL<9D5r5iYqHe(vo7< z5bBxTJmUoCbYsuEV^~D3jb=JpN|31WG*Z^Qa!wQ;nGkqG zxuJu+mwqLl70THwVPAl2VVUlFPVHgTcm&ts5jOIiisLl6z>Dfk(U#jlJ~|iVv2$qE znSI=yB{ z#S*78uD>@!s+NxRnIU=J>8OkDL7#)0%o%OYhmC7NpLaBpjpW356cb|}y~m_Yxfycl z-m#RHk!Gf;4&w5EWQ1UPC3|4zwKPluC} z$57}<)~tR9yBc*yikmbL_tsXyw~ED^t`Vj|BHifK49L9qRMer)HjC(;8Yxsx%wlgN zr2dM2o7EIg6vpSia5PO0e&GP(?L-voG0j0Uk^jpmQS43h*jsDT8+Y=}%PX-4Gp>AFV?aES26J&k?GSypfc8lSpE}mm*608 zck@i2Vq+mrY3`L1oS825!3s7QRHdu4l{~Y`BFt?oa42tNO|a`?7BvXA`fj;}>o07E z1%vat!>wRvr|%RBjbJZcG1So6O=wsHVt6fnwv(jLt<@2g(5_#`6y7{wbTkRnTOVkj@i*Av?h1!Ol?I>Q)`k;Mn~eqq|v3sqVJWy>(@*DDEUPF z`c(Z0Mg7nrrruLCIiJ*TrhLu%-4NIB4GgrfiuDU>!ZIhZ+LXc*Gf82)MC^ zBG{MCK|QZSJ+~c7)mk}Zw!v;6({5bV-Bhw(Q8G-OV+C^X=DgA>C)^I5;5lS(J1Gd6 z+I5IZ2#s}ptTSoj4qaBG<)*hU+b}-aBPR|SWaZpeR%XYnG_<{`>`p`1HCJySS0pAB zYd4T9Mt2?C&~GbxBl$a4vjnqbhR|~HYH~!NSCh}^X$nkDCBpw;7;euNgzqL0#O;ak zf%8g^N1Va)2}O`6=kJVje$FRn<-BoC*6;LDnf)^5X}~U=26j;bb|f9<7f%LUk^sCh zp0uZAo|BSp5z?&_mj%6s5A`Cn(e>EVik1V}if)1uMk5G1 z6It7G@3lq>cFGK2jyx@jTEZ!y!a96Bfz;%R!WIf;P#F6#zo0W&Q&A?z4Vd|OzZAy- z!$&{`e&lOl#neGuDi86N0S`VP%(W6aBQ?g6_`^|3xffioLLiF;`(w}_H+l=|fK67} z*<+h_gT{@M%o|vb&p9Qfq&27j{^vw*Z?z@eGfnIE)oq3Loj03SX6WirO(~eI@S#2h8WB4 zBsMP3L|AsJ>)32#K0fN$g|p3GK`eOBLNbQVrV*lUh*r@&im0;%wX_Jyj4OhW9|`iI z2=-}$yARbFH1>yKkVd{_h9AJBPIE-iinH;Cp&7m((7@vz2k%Ab8Mfi7Ij9$y;=eY? zhkve$^7}mG9%qV=M3uLS3{OHD`kSAlNqRe!WTollV#o+QgSi^5C&HIg1Udj#%z z37w_f^9&P<%wZlOxn(u2K;q$IIwf0txN-vwwHf||k`JH9uiX1=hR-qhFK89{$kebI z(s#vuYciqcgKZ-ceR_iLv1s4Bu)9F0@#OrD6#1h9U9IGzlC6kJedQq^&fr98{5kvLhJdArCc0s8E z79WGFX7}3N;j=7#C#OlzAcU3`O@ckAGn?Ba_3ty>D-DUommU64@U#Xg_p6}W^&b#Z zyF(?H(nWB?Sn*!7MvM_$jxH@NQ1e>CWSKllkLCZG2iLIJg{639V7U$0&kWu_TjTYDLp194~N6!FF{)_wQ;DA!~ zK~JlBVIuC4yH1CFmzBEG^orGCT%|s%A}$r(U+Vva3hOQlF)=1OVDl~`#eY9C?wfxL zW54L^UMm5btOso`|266{IHexF>u0RV#_4PF&n-1!Oy*>NVm+Mwtq12)7oZNeQb(#^ zrt=H45h$%z|GsJF8NN4)K73FTrwND}Gjtr)#!3TV}~ z17+-K8YhwnUTDMr?72j&>eo4Hq==U#!*&oU51F+eBHq+;rkd9h7Hc`fYFsk;E-JqX z13j1ACz!Q8%>6RVUZjk#ux13|)h&?sO1;jOYteKVr3rPTG@#LKqC`(nmIAzy&z-_$E1%dU;n0-=qp21~Q=<0M zF=`8=*q{c^bRg3(kw?Kr^Y)&MK)J?kqJ4f|nGXGZ<_a zUk67Wvx2Y8UR7rTn3zUCCChaBc>wZFqo3`ueoDr_Og~RX5i{!N9kHwuRhw2n$>=ot zsTsAU?q=%$wmvG+$NJb(`2QRF_#7HIsgGo5vOW^WtnpXrqa|wvidn1APl?b||2ZF8 z)aGC&Zg8E-IiFc!)5#0NcEY~cd}$ok&R&O)bqE#Rcc^!3THCXwEInh6%d+_%dSiaC zZ9z&A@32#osVlucdS?0-rsOj5npD7yB-z)G0zK8&p9eD|2RHjVnbWc@&y71fkuaR_ zA#d!cdAP(mQ>0+{q*VCCbl1lFdh*0!7eIbNNCgL{!qx1zR-FKx@p~<&hl0K>Uf@JhNqwRWfEnnUVfV zk(ZJEHwbHde&}JqN$+USR7YW#@FGu*nejdP^g7?(slNL#wp*Q1Ux2a~qwE4MvBQ{Z zMN5#yRqi4>d)DhO)r~!;d`l(Zqu;}CL&WG#*hEkJqEKvyn@*eI!AQARigCt%?Xt4u zRFyZ@XtQ4fHgZ6-&4?4XSuSofBAGS*k_;<}8?B@|)w@tMnuk@Zz71hcP8d-_WB;L! zlpFOk!roCnXIP_P56L4($2zILRN6)fUHlp z0OwBPs3Mi@L?olx%H`;O%H@Sg){!dB5xL@IHXU(pMEOn>)}gX@DbSdMV0uZX_{%DH zl7h@R)FiAa@v)Byk90lFP(D5mfnpE-lZr*2DFr=RD9*?J6WlpcXUjMVW!{B4W1rVj zH&_T;SxcmgQ*Uz6ys)mlbby(;%gsc0qiLkR>-ZV?yYeaAlH{k>Pk0$1Wr9UNz@8RL z;5l>EW~MO*WnchBe-JQUF2t1_j(*E7>pJUmY2H_d={x;8|ArPZt2;SA{C5PYCj@bJ z%DB4q0GqaqSkc?T&IrEyreb(I3ywl{?$MI5|8A7K?SFu3M(2UPXZ5U=PkMXhL!9U$ zKq_BHvqTpogm!!y)%}Q1`Ngk9ET7&E{p*<9V>!N$Zic*ACzqZq{NxZOb?fO(>D{ZO)DjkAIwzm z0hR5PdF6Kr02{b+k>A9ixGNt_04TG{?-Bsk9STa>9)hZ44dKg940eUK;#5G^4Af^q za4C@OhNnScaeuLFd6?0=z=Rpyi{G&y>weS?8aqJ4uD&{j15nYpa?Qw7h}bDD{}>&FUlR_z)^i!_?7PCh(%57SoUTQH@xn-T35bY8htn zM!~7R7UJT5zbr|EB^^Fk&!NcSWq$_*z_B}SYdG%k0UTY5a5@datkezH+k?{{CYQE0 z(?ljJtzXj4X{4d5DOJ%<sToJ`D@W|RHv5|KE@}Jtz7jd^Vh)}qM~iue6E}I|=DE`$v^CXtLl?58qs_sy zVZNjL5W@l2#jxfk;%R4HL7nU5cVjd7km!4WFoINk;y!}a^guSw2g-{c!uLS|4VDzJ zsAfnun%21XY0>)-V@K=T_D6OGyo)vg24JPHfFR&R*~~{Oyb2Fm;TMQB9~N2y0K6Cj zBme+h{|Z9_(zj-z?)ReZ)h(a`7rPbRk5Y@P`-UDzN>JSd@OCMlb4ukmKmxw8aye3P zU<<#aIL5-~>~WaZ9=xY;r6lop6erc2u|+yPl63wuy%|&KO&>SQLI3|M3&cNjTLu;2 zO*OHLyPd)6`@wO2mIOb*V5bB>$e_<)xDh4Q@zN(J(0PFkGGrES3x3z zS2CTgxYkeT;7-g=5QcH>o@11OY4)Sh|gR-hEC9~FotGfUb!jQgfoUf8BXglAycScgSfYQHQy9bjFPv}jyOiPaoL&_ zGnAX2NT7(6EZ;^Yk|zn0FS72|tYAioB4w|x?O@h(v2oy;#%k7+yW!RMs`oKXob-9) zN8|83W5**#JF)xmUeM2Ax8Z|=-Ij9?q8d%1;9d!7XuOtS2S+^$+yp>mlXXQl@F!A| zEz%p}wqJW9!{*GUMSZ&dSyg{m32|8wq+z=-2H+k|T!k6P2gCeSW@3{ogX$6-Gv?sB z(NC?*r%P5QpLXSx+roT1z9QVNzapH)SA^U3SA=zoMkUB-h~dBW*eQ(8P7;jZ4KP61M`0}!h zZ+O`ltla|`LGv_4t2;QK5rLI zf)4ILNvi%w{1l%ab>U4r75yTgGyPonCWK;*aFj;0D2wNou@Jch8jPFkS7Ba;HIMNL z{GEb7?&+rRI$uja~Tj5avJPFUKE75aXEyobQ`GYyl3v zl1aN)xdIcK!BvGma~F)iI@VXEV=P>1MTMjDubNme@-$$a-At$&8J2aq;rhO|#2ZSD+dk0NbghP20# zHrQD}70+p~L)qvmKFMUC$xUt($-DQS{BtDt79gTCr=$Jby{7(wq`R2;?CCN)`MoB0 z?mc+`$+M{tn9b`pNYpB1<~)-(OqYD{-ji1%xsRFGO_zB!Qu_;NjrG%|o zC7;J+QRKd9l3m?qn;KaC(_p1F))r!QlasTi!K!Ryau1W6p5}yzZrXeD-Fr{oiR5(k zf17IdC;)B(fWv>h+=_=W^+>!Oc1FR}dRxYiei(uG$+*qwMD!8#N;A9;m~y2M23Uff zXc^&VxD5%s=#MMQHX}CB9Dd^|#R)RfJPvE3O(Fp@(!kaA7;F!gB+6EDh7ufw1HBmQ zr;I&`%$wcjsMDcFos1rJmLPNMkmLD|JFzLFhaC0X=sWB1@k-0hXEM_aIl07;qlZB? zk&V}pp(%Pop`88tDz=?_x?Bl;YK6eOpRku9A}afm*$uQudIwY2Se=1 zG3Tv-pAFbA@s}KPE(aXG98PA`CDw>@%()PMe+zggBJo&+l?JE4T$6ADjMHo3+eKeF zqlvzY*)XVJw^(JezDDUrx^-uf4V)g*9yb7@(`a496-9>&crVD)WpGvZ#{{+3= z)-bPT*Yi*u@98kCa}oVDU%mb=`kcOaQ7t1Efmq|BF)08yihY#)W-Khe)}Tf>VZrli zBPi#7^gAp17?QL2>aUyzgF`v`Iy&{RzWDH8S}r+79?pkN93bkSuSCbS=yiaGk_^F>U1legL%9+b`1DgEc|o;W8f^$cI4XNH9;0{3CN6{ zb2=-Uh2$%(2zuaL894T70p1(^HB#25R*zuWr`;1m^ZTIr0n&un_cX;WZ$Dr2Ca{G) z<<81~BSj_8gKBL>0LC_7Ls!*zfgCQ0)N(EQ+^F1OP}Zmahpw~iT`lfvq-Gbzne>G-%# zcTG`HKQdgY{l>HGNkU1-(6Ok>#!)xX$Rxj*p$%g`hj=HS13 zGZajh5PgDOcsCZ_PFj5(!qw--O=Dmv?x&XA7ye=07R{T1cwgO4ib4E^sOKDur+DEhs2|=4ZV`#7|gRLs!pi- zpmxpJ+WSHuixsVhPSMX7OV`vjr|$%Q$xou{S`2RVDTz?ZF22W&h^%9@bk$nkG!8SC zZHZ;8?roIzgUhi|Mq5(4ar+&j7G`A+m83K@=@;UN`~R*pWyNFleoW2QF7 z8SHZuAIff_tstigbFml~y!~fK*hJ(@6=GL$$*!E7O^#F5HX=N{ zml23Iw>fsz*@PJJ=w=cxoCNgk+kn&WBsSF&n~EhF_FKdo)$Lh*m7HxU0By?+9SUxI_|+kj*W{o?1?Op3Qw(Dn05G@MBIbO@+$iu(z7eLS z9txxipN&@^PJ|C+SUyx!y^(ke7>6hF)8MFjGChhTfXEz!ws9fbp*9Cz-I1jz2g?~8 zC^Ku!wJ_T-V=N%L3FL;win;n5H+=ATFSDZ#$~OAO+|g$LJs)L!6lH*Df*y;Z5AX%& zQ)CO?eXok0HLt#q+}8N3KNcck^=Xk1Xz19i;8b2ve8V=cJtMZM8Scp&A4B=L#=a1OjgTR24|qPf-DX7~_lk~8t~I=NS%BNL)Ru*5YsR9X&psn@Kd9jGXW5}CKq5B>MxuOkzzHEYl; z+v> zZbi*856jp?r^AQ2w!7%a^<_M@7~TPC<0BFrPb z`(Fip(yfke08x9wt72eSzYF%%?(WPrsEXVk)Lb4Z`ckOOAM~hC*|edr(09A!e0lW+ z;U444>*D^BGSHumPYU1C=iY^KaYNlQ>uX1|WJ>t~F846+K7h&9P_NU4xG0o7&#ibx2tj;9<5P8BkK)$$n?wZOA zK$I9(1q$;Xq;FwiJ1ZSM@hRVY*3SlPSueU1KRf+wA)VP#qX87E0Q3?-Q>b20_p|r_ z+ZhlOlH?Wj-tYz#D)-wtV>jwms26`@tCtNLm^F+%b{QuE7*9vL&=X6pnGSD*1iEp- zEqnm6oR8upN@8@AYhe0)k#>>T2+4K1dS+fOp&(FK~miA-7&SQ1$s-ZKBPnCo) zFpi(jaz}#sR-A#QG#Wbg!$NCi-az+#4uAZIu|v)&a5t8TEVx_v`nO{OBvuVgR z70Z=_*vL5ccMin2rr(J|Fm%Yk7GmV~@(z?5ZfUPx0$$}!(4s&ZzjU=$*1pO^0E*tV z4vD2x6$KaH)FK7B58PfiwEefgH#aT8Arg+8BO!`opz?E2L7)ByV9J#is+b{TyJ3i9 zX7@D#mj9|+X>2!BUn<=}T(qRP(OrP<&Sp?S-MzKK+ywY=WdYF}ny>7i(s6nHLaFuc z9BeCuP91_5Vbw`WH|9b#)PY0sm&G6dQD=UKzYu?zfHmNV%0JvaYVeP`q;$hFPDhyQ zY_rB$1f;@8xu{H{iYW_=0n!`k!siExurP~bg$%ew4bgFx!x?`tDBclo8`npHh*``c zKJ5AuJ}@A?3{SNW{vq(dxl)`#z4s%ztQz0@QCTf@0B-RQD%c|As1zgf)BFJs| z=nGKA`j{kbm!##uXXq9Tt0wPC=Ye?aLNVmT=i==u_ABsG1TJX7K98KSQ>(?G6d=)B!vlCW@7Jk8??VYW5r;8 zQ{0hHmv^kC_TShn9}kV0|~dyO(~Z=6>;bsvEm}r~0X_IF7Rw6!K2N*C$P2 zx=m34FUV)We6A~#VBQgNInm=_8jP|->yf}I`n)Ov+ZWW~USs^k*i_$W6z(;8G4R86 z`Lr?kI|b*NpZ7u8ABOA(XNy8&`6K&V*l|egH+)7ZV@2-_CH93>3O+`vc6}0CLMml; zMeheqN$IP|R#0zZBS>ZGugEUY)Py+|wE@(d*#1#j=2q0+&(xHGirV&>nlhNF$d*rE zV#7yK8}uq_yQiN2hdD^!CmaVGqu# zsI8s8=56RP6P&!cZV0$n$2#EEFI@=j?b<^bP7Fy}hAZd^2mImI^-i{6bcFH4n8 z_!kDrB<8j}2jsJ$-{4C^=;)mu% zT=-tjw;&a)c|1AQBGU^cE+=|FSeNlE>%uqpJy_T3E^xQit#LGMv5s!^IglyOhxh+} zuB8oe)#kmZ{l>Ix!70Bm=i0J{I20>K1G{JzODrJ3vo@37F26Kc ziShH2l~7Hp%TdjmOpfcAQFTP2BlBA8lu>m;RZy+8+P!meMH)ty-bL7mTQQ#p|L9Nu zALzj6{&F2qjjD7YS+CKPr(@hwjKd8s(n8~8Rpa!Q=C)Ks*8`QXb=#!UdbGr$oMqpU zHo{tI|JtZ4E&CMtjGxKp{9K?~DHpd=?*C3Jd8)D~baE?saVw=z!OWCaO0D4W%zbwy zA0`MLq?qVR06nfiaaY3Tt8}LDYlJ6yFGNT^_?T_*{4ad!Sgm;@{T07}x3J^{pS;SW zE@_^JG<=i|D{;@WWu}?MCBjy;0D#f3@+k5kE|YWxl%RYXH9-I zOcyo(oVjaG#NsNk_-QSdjPFHHq72^yWBA<^6W=`ch>wATJtM*F&Sh9BK-kg>BCykg ze75xRAfGEOK%vu!E$io02{}+hA4`<*EqGHV*xwT+e5y2|$%`;g4D#)zWkJ59G)VF) zNsF}I?@*LGK&8X)NKk&tZwIX1Z%-Q!KeF%rkCh`TpkSO%s{;Xo<`d;j?V(NC4dgFLAgt(Pw`yNXf#^-6f zu35wxo71pfPXlAJ^=g_eC&FgJWV5A!Gn=hGs8hq9I1yG_-lox!%5T7048EE3MwK)z zomOqz0JGOLbE`1BThyXT86Fmau@$q|GKt_Ra-4w;zaB#F?- zrDRSujfH$NCLkShlm@aN1X2kCDVe9mp14He-&3}YF5y@foAvvFn?^^ck&$|FYg!>S zER$1+ek4NH1hlPGLRM+h5@?ljOb%UHYo{7kF2FRRbP9X~rI)oxooAS$?@cFoAD87* z@;+WRy*204{R`%oHfOpS2{%S)D#XqTz>dDk@d`N5dBwABf; z%^1;gCA@v=(-1fL*G)FnC_g=oQU0tlocPMe{|B0}VH};_Rz1)bTTD@r3deI5J==3`iM(z=R7GSgdSqWX)={LqP zJqOx6_U5=fMOQWjdB1c9hZqdF`O<>_L*1LeM_FBcz;~XRd1lE%CJ8ekAQ`}fF_{EN zSQ7Tl1>6WAvZxp!NG#-`GYKMbFlt?^wzSp0TBUBai(5Bs>sGaOYpwgzD&k(XwXL;U z-&&XN|3CM6W=UoO_I-cf_q~DV%suy>d+xdC?mH4yHy&BRXJwhet;wT#T9aGzv?fBGgXZ=jv@@>p_K9lOBLm^9Ts|K-*T z;A~s5f(_`tq;y6-(xI%tHNls&7R9deU@MpEY<`kZ2Vo^bGl5sBrkO0#jjZsBN3VEn zIM((hdd5QnIYE1*=ZLNP49V0U>Jn#FtF1Ou_U!^9^T7VJK3#or*PL>U7qA+_Hc>&3 z_ey`BjUY~{IO@YjC|i9niQ0xx-%r`ifchYm+j zdZoBxucl(+R9}_8BaW**z4+Sk&B5p6RcRO^ac?otqVqj7x!=0=9vFNzqnk>6HDhL6 z4Mffa;+B4|)rX#Eu+@doOHFGpv}eD)_%~3&<|W#!Vvj|hJ%mjP!bpV{Z2hgK;r>`j zq+ly2ra|*4X^t0P-_k{$yMsbIYmz2+pfM+@5w9W1Wi3i^rXCf`c4P!-@h2?vVF?FmTI~Y^O!j=i`##FJe0ID&ji1kPE^vLs#@jxm1JGOIJ z8ww^)DP^oChcgg``hsaAbW9hkpL7G0hI6BSg>_B!YorU-P;wSbJb1)`ukB*Z%tH4~i4+KG^h{e{*{uzJZEoM-@(cR0xw@L5YSBUiT zqmM%Chj6gMB6ki7yID8wNlSDW_77o zDzY?J@*JP$Nd?D8gD2ILk>NrVS0n9ZfZXDTa#N8RKN<2u^i*>m`W3b+u={{2!S-^N z#BSX735;7B`D?%MVm*!Y;^m6s1|Q;PJ(bt?nY^~o($=|!G@M!l=6IRFJ~^HIDmT?F zh8;E~h!gh&*Fj(RBh7O5y+y2lgOd@%!U(p$Vmq+Ck&bH%Wl$gfjToudVSjA&kyqm= zH`2S0+$&?}As}99O3eBu5Nv3W01+0?Cxr0JKV0C!aCph;Zx9kr1v>oE(F)*j0RBc| zsr>-_J^&eGE5Iwbx1uO^3=DO9{aBP828HhM$(Bu7_kd634=H~TtmxnGR~0lfuG4@& zNIsi{Pvamy~PTllR*a$P#BB(Dtkqry>%*<4B8=bU%2TdRJ07|IW&EDN z-`I)pjx=EMYn6D+GqBIp-~$_!lXWI_8pb=nFUL+AOs(%fT&n4_^Tc{PE?E%=FW&!x zzJc&0M`q^%;UfnO%wL@acxC0|jW$VEKE}>&CIs@6TN*-xx`<$(dogHnaS?X)N30^6 z_1NTK$c6qb@&GpRxN$@U0`gfa%K%M%skgQy?hW7oHO@d6HTVPi_%tpn0j2LL@5(f3 z@m^);2~#@h==qUnDJa8XaJ1Yuzv8$Tn^?#%*x>hTerS8a&lG+_h%IqY$Vi;`nF0BJ zCu!l0q5PU9MpTyEsv)P>T8}C!vJ%^@_QJqTwH}00ycf%t<)GbD>Xn?T>&JkqZPN7@ z&k?bkgzh_JjIS>B#aAGv707`hjAONIfsof0uGC*!fy^Jmsq0 zmIg|LB147e#S0MvxVM)28Yh!G3SbDsJF+Oo9Uwl<0vm`Bbw8p`HD$c-T>|a3L9!_f z-VeXF)=J>lR$Ga!Twh>7*n2CqOE$~;%>LSbNcI@wj^`VHh-_a|CdZ44M#)dHFGmp! z&Q?T8mL9M(AJdsQ5vgOrZN5*1JWt`pNF)GfebHHbDu&7uOX{$}H8Zi1_>DaR5PrFY zzFFs*at}Q73U<`y%^0{f;6eDo&%^k!Gl|#o1CdO^eBOxoJPsZ@0zos274odDENm2h zDq^|duMSz+9s{}6EAV?B{6>QA%Gl50+V%u&a7kFXyKglLl5ba>o5K8P=joMVTt8tt*jo1}wsnW)37)!KqB#bzKrjhV2j|3Cm)pDG+ ziP$!gT`h~XO_gm^wX3C7+l;VnM(k>-(>B$%P4%vpN^LXJwi&sLq1o{@)htMldLL_x zy6i}r2V;Ll{qM%Rx3t7G@!!}Z!~q?m;VZ;7b}F4>@4`jb{cavzRM1vPoUo1zryy<~ z0UaNDYR7M}e|S^Cmw5@3b(~+?j3?nQjG;a^|Jl#_I5;(i!akxqZ0*-f%@P@x}5d?A-qn5%ODTUi$^|s)DLvOF| zuin-a)EiyWdKY{5iW2^r{Jl;Y)_!Rmw__v2x z#eT%5Bp^d9Tq48h@E%w6@G$|J9^WB4M+ba4(V3Hu&J^w)t2NHPxJPS5xOO7J7RQ5Pz67$1*Ir>S@d(Ok>(3R!(GUkN%9u?BQuZ=KC1G zKksM!&~WCB9|xv|;x~GT_;K`ED1J3V#gC)Q0`a>W3sQRcor&K&`x!rUsPe{-gUCYh ziw+S#juZ>UZ_H5f<4ABn^+4K-^&$ywY$$?uYnpLZFGHP~0LI}=HGp>K#&$uE_=1oiJVCc9W zI7D1g-iL@QDhLEwph$AC^?Bp^xBZOk+5&Oqz$%lj)q~R&3)_%5f8{ePC$7~4(sle$ zapeFh6W8kfO4oPyGp;8Vh${y}L&g=AWWl&{(38o-1LKN`#lq>zLCxol>)-b?t{ny9 z$^lF!uA>L1D;mdwaXmOEuA>K}E9N>2$CU$-Ok79rSGvBppK)DRAg&yAWa6494`YtA zU|c!4D4ecnehSBxgNIC9_b(6sV?X1%zCc_#P{_nJPr72>wP0L1AjrgZV7j8kEF4#M z_%m@GI$ha^>q0&JKH`dJJ6B>AU^RMKS7DC|-#MCs4aIt0*zVx_SgEtC4hMUQD|WSP zXtBHAvOyPIn(t@l3^VD{$EomeP2yS*?$PU{`n>J|YRqiiH#2Yxec9SfzwdO&^a1tX zgQ()1OIQwN$VN(87r`?%`a}gDtC2n-?@>Y*97_c}Ly{g=`0Spz?k_q62HS7*#P>O$xokU-mp3$rALPcR2g$oZp?! z)~3F8Fi#QSij1W+6JRfu^KOqg4QZR%Cbb(2ewvr4`W=Yo;J^&fbx!tu_#_aw%A0YeP34+PB|?^eNGqqtbk-FpL4MNB<3;hGgvngV(A zoMvnads&^9*mb@(OL{x;sv$a`WI~Ln{Y$pxsZczbaL+rx>Fcu;9iMf z5N~~~)`6_l=Gd7av_672TyIi;PT~qCvxFz-O*L(1N5Al^wBvw_ByknaMPPud@HQcf zV#^o9L$#sbI$DOv*zYLW&jXd?m75#kp&j?6UW{M7kA$~_JmKZe8%$C7{SdP9{t$3S zj=T_L@gleBOYWdY@u1&SLVr&EH)suO0|HOn2+`$XCY+Z?f1${fXPC0yV8P2n8$l>9 z3E`QY6^T3HBYF^2qn`<)xb+ys#s3E+DfN-$cQ-a*34uolf~~vYELpM8aA?@i!hz=znl&qFAQn=uubnD5Wasv`2GRm z`v-*Y9}vFZ3IC<6@Lx-ZkC)?e!w(DyKQJKtz<}@r1Hums2tT01PfUwC51=MLMJBiJ zA@$0;HyDaKdyZ^j%&<;tzKt#|iLQ`G8_BD((wyaJB>ZNjCpr*@qe?SkIH_n>8BPM4 zBMc|)%xc3)Hglxmq?oBCmVD)sOGdKfGm~ubkm=BGak*S4=wea(c$*uiqqZP-I_|88 z(C=3NhI~8MAcIuKeg>a$JgymAjyp|odg(;`NITb0_q`=`vFAXc5w*9-#C5jTDqerG zM;M@wf=MT(hN-IYsw9Z;4VcGI)z^@*%%e-K+l%ACFSotG{M!u_Jds2?82YTSqyy`t zvrs@jhMasO?I&=zUq!Pz5FcFF{YzMB`!P~nbt~~1Y;`MPHyfcb&P#Q^0S!jmJrK;M zI>4dA+auE2G&mL|w#78Z0-ND9$-!wGuWi$wwlQ@I@D`A;4mb80^4AqOw(8fdl#Nye za?lazKuRNKJ6B_7GaDa?dA)4BUM?5o#u;s&IG!S)8V_QtHTyc&wbXCgxhu>0dxM=* zSd6WC3=v;!kR{|VAo_c3llP)OwS5qhQ= zg3crR2R{X!z4s3r_YN?8RWiR@Z2GF!_@mrb6hod1Ug4|49zH`x1&4X_>;t)_ zen7xz%Nt4!bC=uP#r~Y#2>vy~tKwMwx??}458d`nha4XGL34B~Biv|M*Wnkvycm;0 z3L@T9&meKXTPPYl;RY9X%pHY}p%hm(m3D7X^TrgP=u`TgM(i2nHMbtE+zum~R(H=$ z(gig|u-H#10jwkS`_bEEnCxvbEVrsbSQ8Ns^f$SYQujF-Ti-6+$LwsRWS-IcwQW7c zwMw8Yk-*$F!5EGPpB^)Ilen3YSMiN%emu+`w@4kk9Rk#MS4t(6cmhe4)vaT#QoqfU zxlbz=MSXxRhES0w=0$22b~Wj`!`q84i7Q_0m6K|*n;97VdSgC1BOYFbGAH^i9Td)? zUaeR&#sZ_0$4syw)tgcR9V?bhSf!IXZYEe7>+Rgd0I@LSmmo!Vm|}uhDm23B5=aQ> z3JBY4d{x5h8ecL1Kgb;ziNu2R9*p2&W5m6P2y$&Pf6?(xai2U6KyjNq$1g-{cKTR=*j^~Ce+*3Z zyLa*@(qhJbPvr|%1?&&R66NDiFN9giqaUr`sC7Xvu@~VQOt8ksRf<*#Vp;5Oj3f>L zIoc>Zgbr4%52As9hoi7s9J67J*%RWs#X!jKFNw#Y^3ZvH1Cc#KQLU|D1= z@mbZ-b$pmXBW5atRuakGF2QFNK`LH{U7_YI)w)ik=aMjnXT4R=A8#tg8skYL_FHg6 zUDco+b5>QCc%pY&6 zg+B;nGKoM;SN_tOzm7fWcsS5zGR1b5-;6abUl3pNo3Wlo>!TdceMD1YhXCX^L)w~4 zN;D;QAeG;1Y*pfpM!4a%o^Bk(P0ge^l4|2mI5izV@|IBu>CHc!6^wvv$aw<^gz7<CY$OEyxY;*E&4fB0OKd@CN#m@b<%>U&33M8{PvtJlY~Wf4=Yr z`jhYq`CEt6xU<2`Rv&1M6!H3ugZR%lJZkjK1wkWj-IoMLl1ehxA{oJqZZ@+A$&7gY zqiF|WmUbw>st&B+rw@;44-N;3%5dmrhl9yOSBiN3&1nY-C+%Rfazs6d{LgW-&&_J8 z5%=H4>X7}>6HIb`+7la3Y&uZ(AZ(QD7ndO41&}UIrWOt0-q0a4w_&=CJ}H2GEOJwjeaas%HT_$d)laI=gt-D*gzi#x5Ve9ean_WyC2tQdVSqZmQ+0)j>h1 z1rN=r)6d2r9e;cW_ACFP{1AFj1lIgdBaklh&b)%Dj#-nDyZ;2T=LEjj@;N~xeAL6>p@?XX^PMx*KLnq1#sq_ zWr%zJ7vq=X+`-~|PDd4id&L)~J_&Xb{D>l`#%D@(mzx!aZ}dCQ>;oa9~1 z0byAC?uxas?y|vr z2qG2MKD%PG>^Qj*&WQ+ze|hxR7%ufTLRHS=h+(<<7Q6dCmtw67s_dWXqcn`;u<{0O=MGccbmWm{$G<>&??R97l}ZIP|RZoE>Z9 zbEKQq$W+Tsw1c%?xPJ;+SrtitgvDrZ6@~oE{M@XQp5;WJ`5)R3y|g%9;KwKDP>1vb zm7;jjW0T{N^2PQgAN|qS1nuk6!AjINZXvWLk*xlLf>d~yYKoBTE=XcaYC$@%Dp(;> zbJk>`K^!V37OAW8o4bA46te$jj;mNKzbR%k4r*;*s zD{$=Mpla|#op#|jzkW{o55r^zk`O*;s1*~7r93bXmHJ|sTatazrqrcj6KRhY%2!!x zCSOH5##XVE(@%pfC)DVVMe_SXKFanc`IU8pgk?HmIYG%=VP<8iSBJF5sZWYz{HFat zLOZNnUyvf#n{rPK%6mx&E>HbjYL1k*T1w4P^1BxIocLt-!0IxeUA9FY+@``9Y9~CW zHWg(L^=nYxS1G{TWApZ8czbQ$ye1u0Vpan#`qj@H;XaBCe@r~f-{2Z!e`MFy3Gad# zEIr>145}4{`R|AP zxSiE?0))bpiF8V?AMD!}CL;GYgu@Oc%9fU^WFK+`v|MKv;*7f>NFw`ruzXseZLy`W z#zG}nU>HJa zc&lQ-zE$xkms0P+=cV{I;R`soDqai+ER85k38@?4(E1V#0bX+%z^#hk1=5O#PL$i) z1)h;rQe)$qza6NIvCGo>3T)lhR{?#onSgbez|fR(DQ3OKM$bJTJe>5TA3UB-Pg|Ia zYmpV?!c3dGdM=j!3sN6Q>Q$IXNK-csK|Pk#=%!|DWS~qe#lr zJM~EusfQHAnA5AUKBLO=<|F&&PMw{2$3HSuYpB@HQI8`3;X+G=^>KOA63+I`saLo$ zi-2z~C{}`^bsN{6i;<^F0msbv7;dfWU}t8nn#w|PQKA|1_DRe_n0S05H^=Q{j`Qp5 zJRLW=(sMvA)Poc8JbEsJGBd9+>9yH_zVH(-YGw-%Raht})%;`VAmPPL?~8ZB|6a51 z#h>CgpI!qIYZla6m(Gh{mH?SOWjm}6FzERXZLmeRZcvEB><~v{odN{j7xAW<1Uauj zkk}hw&CCfiB4IL<=Y~leoXjg6<|u~gMVQYZr5MfM;WuA2aRt0JJtxd-L1|_l)Jn&b zg$M6s6b|zgXch$C7dz}QR}~5q_oKFDg;_Nhiy{b<1ui$9w87=>g~L36@$?}~Ttp}F ze4{{(f&DR7YfhMVfYQvoT$YX}3o`DKFC6A*hUrI`r`lnDu~3-)h&3%M%*fnBB}|t8 z+<4Lkx5^g|le>06;C&J6gAz~damk;a$hT8-!h8ypX6CuKbUazL;1c`7Vb(C7L4>&r z9GHjBFBE1F1Jvv=Th^JG$I#LNvVy|(_Tvf`lqdr%YB2VW|Xe! zV>Ubs5AoRcNzc5Wdfepi#(dr)28lmirgG;fxH`ahf?2O~5sJT-tR%>S#ULjxW~8tB zbf*pmIo?U@`YUJz0V7TX!qh)rr?Ped?Hg{s>Vcc_Rs zRAuCKpY5GXK6v^|^CDtXd6EI-rsRhVyqF#wImLq`XO@R7QuJ;7Y>!k(+9VN^OIfnS zU+U?bgE`o???R`xS+*HHjxDhI{DI`7wsSM?J#@nHhQ67cyyb8>>(asE^reHvJlWAV z3p6<0t!ecn1C$F(vyY3wW*^spxjzEOLte&(t!e4B5d>Tv#*+8DjJk(Ww~4s=7oVJk z*gou7xX~Y%(CxsJZ0*Q zgC3UUv?$BGILmxE%=K7>6Iue)nYdK=pI=q{m#@H z+m3XO-Ep=Z=^eY{Va8aH;&!hr%8H4vsoHS+vMg40S-+rkCxBG80E`smL|firA7`giQkwC%{pu{(=)_QSX(29`(rP&!g)i!J$v zC*g6d*bZ1CJsEMNXO>Qwo*rM8g_E9N0;x_q8xrU{o? zCr?En`pI5R*ZjJqm0RYxDy80HtS@?&RSz~PmY6Mvxn!~AY;0Gyl zpxf-0yZrGgG_CL|G=Go{=toKdwsdy8Wm2^HNhB_v<ZPrw+v;)*3uq@yVQO)SIwJ;Dzq`1^bwrsT(j(8#c(!6ywJUbD{FY=tz z@V*7axdc)%x}HpQX@%(W2Y#uRbaeF$kVKcxI=Wwn3DKoRR&>8fTZexu+DLR*gi;92 z-5#?hnvR+T!Wb9Bx<1DmrynJ*C5ijcW(9D3OAh>D=Uy;Y2fZ473<I0oVreOVj*u+3Xvr&m0CW+0KNGF&3lI%2+rvp&lyy`~Or&Y*r zl|eVo4&D#%u?tY>QV+u9?jvmbGDx&hs)6t%3y+3WU34D1rg(fVT+?(V9-^yR1BfVC z;}K@=U8H#1D{i<0v5UbtX!iXIOnoD*80g|&T-$I85{pe7U@bd6=sE|KYv`RL&$7E!P5kFqX3SQp#6EL4PA{*28KZX6u zX%Ho3W;?D5c~|o}L~n*_HSVw}qHK7O5aQs9%bDHG)NZ_Asg)ET;gOv$-10a6(L+DTL7F81M~ST{~WV7?n?gZo%I z{no`mN&@k*f$zwmRo=TlU(zIA3J*vmx6c-!@j&g#EuMHEPrN+j)&5KaaS(s{vQpM- zT%$)JQkP$$?;T~`{3L9uSwYF!+C&io&{_OCi9sn?WnaqzX*js&m>kNpJ zdW3X-$$Kfx2jFR5+Qh41$4r*Oybs;kCD1Y;!kibLhxm=O(}%@e>k2zh8-1cE=v}G~ zT|!yC`0WykaRyzaS(WBW_{{>pQCeRtpV+Ml=^1K$B}PkZAn*dbg${Wz?(@k*PW8i! z-Q|XU6y9Aky1r(fZe!eXFYzE=?Cj*_#Yc{_d3oeix5Mi;$aMhZ(j~01yihHIhQG4d zjF+2s9TL!nqJ|x2e5R?(_M{e5lv)yy!w^N<8YRTjQ0~Lw5dC)L>LMxEC=uZaZ#T?9 z9IfY|k$A1)m#RzhV`a!|2ZWnq#Z=T#7Ab0=N~~u|Zba;M-KRdl&XLiQR)u3xS)|>H z{cRWyD8J@Ddlt+djm(@R_UsjTE-%3gQS8cTi6Coy0wSQZ5j#Tx$zAbkT1q}5AR-xw zAkcOq#KInk_K6d}6B(8rFl1Z~r>M?d!-6 zYV8wMGkyfr6uJ54W_0dc+=pEWLllOl18ke7O1$I>JMeA_z%UVpmRiJ-@kNu!A3Mgl zU@a@o4aaESQKib%)Wft=fT%fZYpOO>cx?+*tZHrAXN75!KjZxo}|SEY8iG6(!lZ zvN$VOme{!xEEDE_fjw&U?-hV!hW<~b*c;sb54r45zJ zNg7=~+)`j1D;6HJ-p)~Tzl2G8JB7;Dwr%6&{tz|Y|J(UXYr2dNQFetwjUz*4i6C^Z zhbVF&NTP{%G7k)uAr(S86`&!!S$xTH6(h<=Wa%G|VunIP=pU|lCKHcbYMSPY9A%ab zR;F!5W$sTQz`hCT*5HT|N3w0x(3QvY5bQxzlt=Iib2%=VE0?y6PcnyR<9RBiV#UnY z@mq-pkjvYihY2LQS>uz)Z4Z%2I<=zVbfXZel-k)&t;(zx2`-s}3?$P&0m;;yK=!Zd z1>ygsS;NzweXNi16kv8WUG3QGdKyGo6}4yj<0y1#b#mUJ?QYmWoflG_ctAQl8>c$6 zRa2Q(O;{_%Cf4<&Pd6Q~`!ZYSds#r_WR`A5bcsr=3fjlhvI|v~t&}U>=IYkmEp1MA zysD6)*mu>@a`&;%Djip|9;b;BDfGt|;+KEUJZkDP5aE!`<^1uczQrFLvbjQjy{RkZ z*G%n}Utj9m^6O7sg#)jA%tpwiS&WwvsD<$(6t4#$R&duW*}c^f9!^ z+9x77(r07rUf5?~4SBbMb4H>(jCbiBqirUULtnl23C#XD*yy!Sj0QGabH-%k6E#ub z9GCFC4H{wW9cG|4WpFB!X`}htCdytCyl=4k`CKEcVZU4=k^6SzSHTN=B^8cmsx$DV z-)*S3=c&>COrUP%Rvl(p8XdCmclF)ajsp3VCR}bXD2TJXR}N9lQUPIx#g6P)B=(WD)J1rLs{|FPpGb(>K4J%pds&uBLK z_~W)NVl8(ojP>W(#FaL&rgK|orzxi6?Ap)iIe8cC>aQ{S$hHwvt(q5S7?2pkUz{+$ zrWN*ZxMfW!$}uS}rierLi4_3JuVJ=m2gZy=iFHJ=fhmYx6}6c5h)gOU?gN?864f%R~&={r)Ous(3?3_iIrJ~2{C;p%w ziEc1lA2jL{X${@Mh(%I&@+X|S9Y1jFBN|5p>DtG*0}~F9OKp6Mw1$S3GhJlZtNmr z#tBXAeW1-WxWw!R*LKS^r*z9Sr^M3D>1@r%X+v?lm!5h^x1fk7C({^Rc2D@ru1Wpq zh~$v0`|I98jUurXgPASjOW%+W|9)Z%OWrM~yyGHge(WPcS5JV@lCVJD}II z+K32s9dhj3bV$BUb)Km`G#1&;I>pJuZJkE~TtsF26V7o={5aOOQ1a_3lBVkFm4jU=MCIM<@0wWi`U067_-D3`0*6Gq%%VSLX|# zEbBYI=C<5_UyohkI~DlGb@>KEpCofoFun6?j9r2=5Y8tcv0=76<$xbLGjP z=KlLh!)!xW$j`Y6Jh((^y$PYB8qY{or~WkKK;NRY=F0+ohXDyM;3ib< zkfZ)mQGc1Oe(c47`a|K0@^D2(7=yDit^07eA`&VW-IqDK*M_c8`KpTHqWj^YGF$f} zq5F}x?nglPBW>N=X|8q8khShZCx(WHMm!ZNr|u(K_f?|%5qm;a(0$cF-B)SdSLNuw z+!i@hZtFL!bzceHSA;58VnA9Js<7Sk2pQv5t^10TAv`k`bnkczRZ{mMtw89$qN3cv zp!;&iht_?Wt$PFMi;Mf1#gbn_7E7_T?zKyuU&`PfU3A$r(=n`@RIVe>+km`?zlHc% zM|b0!gAW5{%fhMkQfdM+3H)XT4%w>P`Kf zd@wA3m%riEhx+Hg`C}xHM3||6!i?88xaa@(5GeINaOPEx`416EA*+7Eda9dm-hTiB zZouQObs?rljXwIJ6@RTpj9d&W!uYsj@=SL6aq9waTVvO;nfGn$orYn3LZSWz#zr4u z_NG8gAB3&X;9kd`0X4^8MimjD{7cgEi_o}*P=x*pgpL;_e$5^|at`)RYhO*6j?kLY zk;Fn4{xWRPl|S&HUDFm@LjwYvA9Dgj7?LVOhoQNl;ASUFwuUQp zNyQF(XM{p?u5^Y0C~sUXMWr*BvnwRCO%xeN1^b&J!FBS6mcmKltq2VZ?qR zw#Q}BEg={53yb9)VC_bAu&K49e)EZ?OLw*dt3w2#D+c$?0c<8PRe^ zvgKqU86+nyDd+fo$Vs}va?&^|p6R*Xl{alu`w8Rqjjx$k%TR7)W~!*lq=c=9^fko%f9<-oivZtml~-|~($p3^Kf zV?2vn@3qFFKiAd(0iVQ=M7y@f=jlric zGqsb4u2JY%E&DQ4O?l`VgzoneZh9Ik4_&>`{ZQ!Avp;$0Fm{A|=Ly|vXZ|A(-6Wwq zQRvnTK{r9@T7@n>EtQ8~lhASQ$(NZE%R?6zy0?(DzRXl#9=d~s?jF#|6QzmiF4RV2 zkVZSaoYxtdwQ+u8spsOZstH)o08JL5oowN6;3V8PB=MTbw4vK4$=_JxwGITsNQ+Kj zU#SPAOyd?IJ9HpFZ)Rdk3p_j%0=?CVw?SgCTZKBor^=BTSSNUOUgN<7@4&n^Lf&oV zGwQMQX`c30E?9U6X16TT^r@!y)?0*>hZnLmltr38q}1N}B_SP<>9R=Ehm_h|R|)BW ze3wO{WZi>V4*hvc!XEF|+cYu4Uq7i3<+O zu^0Z>4vqlEGs`f8@IC>IkQKUztgp~3LM7>q@k#*HR=jRAIOx2@a1zNicsl3CW`kS3 zIk0$WGL{*eY%$3a3+f@%rIk*pLfG6pcOC>d2z90trp~IEM8w$<9^A;vRM_X_@qUMv zxK@&fF%WcmvRfyRCZQ!rc+>|Z1G1(jp(RLoN(LkYvZN-VB}jOv1tbHqq9&mwNO*P% zBm=UbCZQ!rc%%y?1G1hbp(RLWXp#YSo+hCsNO)ihT$q;z>4lac;aMY)49H@d3oSvy zBQt}N!_+O*V^n-j3&o@u)IteAc}W8N=91r_#wmy7U`>)QDI6{fG)casa7gBBl6*+bjK$Rs<$t^o} zdotX#+Y?=SJ+Z^{vr8|J=t44xos@k~Yz}?1-I#{5nYTYRpdZA`N!Xk6R<`pt8&f)@ z(jV0C%;n`#k=2)y&QY+Tq|{T{p4A;=-889?3_1QmC_S<4&~?4iRLFlQ9llg{c!Dk~ zWcn>qGvQbF|MT?Sr9Yi@$RC$QU|X{E+p|Xq6}YQl`sd>VF5f`u%jQCP+;V3{O2!!? zPcS+cvm>Hx-Mi-qMLPEB5eiRTaRh}+-`uh3tkdlgC}u}F0(Dz^Fec1&rC(#xOMQGT zWUfbjjIkQ~-YsKFz0<*4VT7DH?-bsZ{1`rB_2djn4lY`b#H~hOC|92jza>L0Q)%ey zj>CZ0o-Ha@KI>&PFR_QfA&vY7h+!uGMXn9xitc%--R<{SZ^9ZekU;?Z^41?|kscPj zMeKGxK*b?9J#5noNL~(&*5_K?%&7C33~-VzdIbaIK>E`m2GX;^gu}?Ng|z?-r=b(B zb)%WH$6a)E$4-VLMrVQS9LX{@8FUXJ4Y{C6N~3QvPmf&=auK9ly&U@j5bSQ1frU@f zx70M3`%os$tUQpBCpJmwk9`b@9E`68Jo za-@qQZcHDoQ7W)!Fki_7`Ycd(T9UeVFg0#%#{Z>0+`^~V0F&on)RFp_xz3&X1V5Pl zh%IHN*J~|jLxu*F`EU`kCEcTLj`-bS)GL+XzudF9aU;$r;-P>(a=|eR+{b)Am}=Z7 z7aYh&cBFj7-}5TeP!g!^`wYZb7UfR^W{T)n)0)X;2wqNS>@CK|USG%?!#r7V52sd? zzK?FKI_4Br3>51@raBM5amt7qOk^m*zU+($?u-a1eMgxhLXpoFVHM8Eh!i1DW1|yC zlX3L*eF~w%auj{J=4`XN1mZLl@uX+evzacq#FKLmGPUdX6q$u44xNI?ec*1@7k`gO3*o3=i+Xo(Z9SA7|} z!6>MZZmjDO81{d+U~TKWFn(tnR2;-$;CnzaAwphBd#x9(5~##R8^I|@J@%c`qt)CK)NrPufqy&uwal3}wWxf|$1{USUNqEP&|dBo3 z-ukF5hMd&iP8YDoVDcE`n|_+b!deNmPK-rz^R=xfUpjr7Cp&u5^U6}z^t`fE_c)WG z%S*}&rp{!lhvq)Q?8(%P_7DH9f%{9mo2)3xlJr(FQO@XwxSZgKN8w;vujsmxzV z4@~x!f?s;lw^CF!aFY4+&M~tOQqHhhPu2D@-jS8HK~aFNL)`KX(!@OJ=FqRIEfM-a zBi@FRD_(`qfK+qJzM&>I>$oSNC~8gS`EhO!v17X(I}SR;WzyI}Nh@i|wH@T-`tcq3 z#m*(vX*wU3q)Q>wIX=>Dkd4vDl(W8rG>oiF&IZq5!-#xN>>{AHBeiK=1M)i5t+2yn zKU1x7flh?R8AkFHSf`jG+N!46>Vl0%j8DzAK$5$`!P=O%j#yuS*({dJ-0d2M_qLbm za&yxyP9FBCKEw;_QR(tgWS0-ORRtE2Rar5bun1iHbttNEN+?J$? zow%!NizTuAPGU*f!X{1l$0~#)SNB#&E<@gvXrWxij=t^c*`4x11ROG)=%|lUuKt@?h*>vy5#<;V$=(? z@z<2J_^{9>u7~Jin8esN*w0!Gg`7MOg1l2j-eOp0-S3S7m<#uN(-!w%2lCy2J<#9% z;N4Tm-+fL;U;>glRRp$1pTJMe9%w;lM<_4|=}Rad)IxVzs7fP~K)_BnUEEePF^8@t z$7wRL>y19Lio5EeB$|vq#>Yth7Lv-<5KdqNbP)#CU|rC5XkBFdW$PlJKR4!`)TKlK(iO&gp<_@ zwsjaC(IKq4=hzJ&Zlef^OeAPAaG&2%2oF2jQDzt%FSH-dU%dN)>W*5eb!r&sf=)&s zRhpZOw9l;~?DAQmCN6NwCpN<%EKKZ&jGi|UL7ZZxdaTn~4xPIos&`hw4rssp&K7h; zGun(gYER?tG>%#si*r}BY(9=XcOx5)IVUvmSITb#?vKb0ZeYIz-QuieN)6Ac6s%3wD z;AIB-z{?EufjIGhS1^Nb9y%LMGIq7-9wE zM-BeFx4LujUT z49MIT25|Z%9iFEY0em>pC}CstLS2;vtP4Pj8b08OT?rW|z*-7GQM|Dk%sU*LqA#sx zjgRqA1}xUAnL2%RE?|%dM)b@ei*W^|6J&|oADaaPKXdU@;qh5L zh$%Yy7`5q)QsE6)Z^CZ$nhLa<%z+_nG{XUGcKbywJm!SgLEsYm#KlfiD1<9QiNikm zb%@DRx0LNP$TmyM7TX1T%Lm4i_z)2F3sOV!Y^ad|Ym1my^L65r@$w zC-@{Mpd>IO_%r#yDFibEqJHaXiC~4tAM)UmOXiD}%qmPStr?uq$Gea^A9zC^TNRK( zsh{F|^f!OI8>pPQa)6&k44V{U2bW3u*mDt?1E*@Rc znMih7-LsmTCh}iAx}bM+Pj8}gR(EG_PoiUUJi4TJ-R7?Khj*U3-1%rHHZ#%wI@$JCZhwn6eDSSKeosREr ze80pOEx)sP48F1W#^I~QSBGyrzBs-{d^gTqvh2q`rGAI+G<@I0cL=@?e4O=Zz_%Cb z{S`jk!z1@pO@?^{KFpuU9>hH+)=Q9o{P=j<=qP-c!%)A$hpn*cLVR2Bp(<7<r-;0pzZhRwQ#)OmVz&9Ts_fYoZ`yF`RjBl(T^%cJ5 z__pBV--qD!7Ibh9@NeUD;d=!82rK8Q4JxS)RtfyG@U4|48%(L?bC{^2;FZ^Dl3bCL z*Qr?@4qw&z7&c>Kd!k%BThO^#on0u*7C!BnU!2JbbGZ4Prlj)aId_r>e7ua-OEXHrHbq@Ll=D<|%TUhK6i%WP zj(4ltJCt*q!tTXFz9%8(7?%}xo}|!T7j|w|%Z74pQ9VOBPga)=+sJaTI_au}NZ0suJ+zhQ@mA9zb$ zlN1JX`JI~89fh1))Juh&CaeE08&eGkP6Gw{uw-6!>IqH9<8wvNqRupdtQ?#`Y?3v;Z; zF5lD%qGV6U=FJ^F7&O7}w$9C@>9Hu#DTvR)&UL*fIbmf*w0vRbwyyP^wpJEw?nowG zfM?nO+@UE-ncQ@DRE0nKZb+6 zuI`g2oRaA3!LK9C*3QJ1t{#c_s3jeVjxC)?sA#fl2O`DDV?>yMVwzl|GpCwGCQEQ`}sQZ>=)B>w_^9D)Qja|qZp6=VLy~bgoujXjOlGKBwCvpBTh%p@UY?CM7DLV4N2_G0{ zh@wgQ5yvJh=1kTV;*jY4VsDp-S}A2CI-u;?Nj1>Ae1VRyu4{Cu8f#~#=+<;5?|@3} zqP8A|S89aKn^`tCLq&{a=a#KK$dzMObR?V_!cImf7a;%iCXs0>!5$MK(Jra4(zeTW zoTa|&+}yD>Dbdt&f#?*e%aXn8l6q>!RpEG$Tw$kWy5La3*49qegUdIOLf2g#QPfP0 z^EPZqbS5dw_(e`-t7}OFgzVIae7`=o;vF-O_@*9~#;AqNxDmBgE=e6`c=BXzq!Cgy z?YYS{4z(aMQio(FovD&iE?9>|*LSSn1i|X0A&^+1YDjLix|5v}+`7)rZrH5vLd}VM zP)Si6S?Mu~x=NSS$y;AnAQvyC-m-ISErMcwEs@UKWS~ApRU+<=(wR?fQ7AAZ8Jo?9 z{06i;q=_K>bWlfjY>hfKLls*Fx;QaOSH|>WH&KXSR(mjdUUd2Tt;m+BkOl;$i@{-* z&Y8X4sD;*V(#>U)&QQ{zf-HKsRL~qM22=MoRb-wfes@(IJEuQaEn2^99H;rwZjH%+5i7k`bXya9z z0cZXj=ZP^X{yqFoJOk!sJqct;PSdO3pXO2vv4LRRG0W5_%zI$#g&KG0F^d-BHx9gi z0r2^ot#u^EABN&($9{I(oInkbk7`>~7=23^c^Kpad<)!4eHR^aGl;o4;IrWY>qP2Y zm@$44T6p37yd2A|f*Gp;>I&c?&{n{V0URdTFb9nf?8FcK(!LrWX|Op!ezA6A$KF&+ zLx+d3;vsN*2xs5b*#f^N@Y`bleSxws?={h$u0cT*B z3$!A%`HH}zC@HG|%heBSDZ@eI38x7B6<|;`9dsrnS=2zd5ztiMY9Rf&Q#awQyYuIe z^CffX>yi0)%s17g2h;Vpi|AUrnC5pDQ_jhU*Brh^t-wSh-v2y;;l8tC&k9rByYg_v zOP$1csguYp4j5GDY+{J_0D^PZOVP7PNtzSF==C26+fxur0 z+#~Qqfn^EOOci*vz>NaGo;WLEsviivJweI;JFy2gl}W;JNrtsRVA&>ywJCWMwijKQ zr1?7n9~StSz-I(LFYpzCZwdUXzz+m|EYRp7hcT|Ea*eNt0 zDe%NomPSfgha0(9P|npR%3iOSV&oH^TgN_4szC;2UBeJeBD_`c%@) z7PwsCMFMYtYq@&r)O$`f)gQ&?&wxR7@D9dk$qt&2g*mLQ+i~`eu=<(6#{h%sS+Rcu zX5^MW@;^ynJVkB`Q`ErWDeCQHKvUfS8&ll__)S~FcT$wivy+lPwu3Mv<{JT_^PSY& zdpqf?_4Jy-Qu%$e7S`R>!Z5!U;slit@)*Kq$BXuhSNHVgYHPgnn0 z2~-buy};U$^;$LdQ+vfstOb}Km`B_W6U-3zGPOo9EVe3_s|+i-q;#Xkp}#8x^P;XL zcC%onJi%V3?pKe43NaJ6H*9RGVE?kQ8R`u9D|Kngd4i3%v4ui85!hth197xqQ*7)Q zp==XMA0%Yx^MOr-Y#RkT7T8>1Cku9*?Y31g%XaG#Ea4iDJ0kpQhhS#{;{(_`1^XJX z;lR#Re#HF>_#1&ZvGy)g-v<^z%r*84!G>Xn@>Ots2pDVR^Ho16Ulq3s*`Zse{sC;O zIzU}6l*5cssOJwv>wwp3)C6DwVBZyNzF_0k_XS%aSUs+~BjpzbYeY*!>=MCRuxdf< z7lKVzKN9SD!KSL82=<;})77nl4RbTRIqGMEjTLO3`h{Rq1)GmOl;nAoU^hGq8iOM`o-Gs5%2!Bk~8%@qqF&;j+%g zzAxB%oYkgew+ePLcTfQPonT4sSpfFDV753$lvk?lt`dZBCa?hRzd&aM*tbAgtG=yL zg8kTghc|$nbGqwl=;=xCo1nc)oiA}W%s0jDLct<90T@=-s%r$B1-EKo*9*29Zli(y zK)Ce6O#!>X#nSj?;c~6IMJTTVWgYV4{et~SxO`VVEZC!PtB2d8g1rg1CSZ>X_7U8g zfjuo)k?&3KRA9dstj~L#tPT+_ONGlX)M|0-fZK(xU#JtrZIie? ztiFa)U#7Oh?HjI#)z<|(7uXfRt`y2EZOW^~?T0qyHR5)k?e=|fd&+kEzPP<+yZuny z-m~3)BC@Ce-6B+Y5rt1@?&RIrUGW zJX$E9Q#k&G7_GA1J`}fgwi^zS!EKA}_K~=qB5uzsY~zR9S>pCQc03ZhSg;qA*UdD# zTqyS_Y^R3X_2RZi6^q-C#O)PTE^haT+bgO<+#VIT*AzAw!ru$xMvOe)6t_3j0pj+7 zxV@pG;${RH_qSD@xCMhuzqj%7B>jcN?avB(2f=d`+yd&)s!81H#O*H%`{Lj>32u+L z{(==Z`kN7CF8{lX2+Gu9;_vV3U^jEtQe24~Q2$Vi1UpIGK2b-DzaH`TiCQk$ITFGr zSkouZOF^lWgI#B19pd&28(W9d?q%u`n`f6`uL$OHB?U8!7zdZD*UfscLa<8LZi&OV zBDQe{xV|k|yV1$)89-V*Fx8+%8vA`JaV`L1A5 z8++f~kNC|hW{eiO{@cyk`$%y+!gZvFSf`D(ZalW|Q}qdL%dRbq5{3AGdh#x%MN81}#zuR)eFbqoB}0()DqhXk8syersi zf=w|#5X>kgjqGyWx5n_#WR$H0_Y4Qvcv9{x?byMsZic4 zl$RO1B@VxXTcf(#_>sin1z-X76B~P1uv?8=z08q8Oh*LJySqzxjxJ*ecNzDIzc{b} zFzfhAj#O*L~dka{G%R9!~!sUcArtQ1NUq!M_!2Zj4*T6v+gtraYY3`2= zoQMH-0k8me4jqY85s0nG@~MFne9+4^;!nAkn^%F`4}oDm!;PaYp!}KmD{^C41?(Zg zO5MG}RME5R}`MNd4d_CEH6?{W4*fbna(}3}^=qrGYz}~2<%(D=OaXaYdU;!Ml z38)#i+o6KZ1m*^1pJ20WF8R&?Rj@*uR_|V7$fa@c_ z0ql)DYIxMyktYE!i#!K-V`LBD&m*q@-XHlR;8Ox$0d%R0t7bttmsC9m^VI@xuKF>| zcUIB$A%RaP_r&H?$bkE~M!g6714mJNlLRgw^&xC#Mjt^5 z?5No5HO;Njh-*dv_UK;kivEFlj%B>I2rK&k-!RpBLz+rc&NZ*1)e1EG=X0i_+5c_2z&(4rS=MZecYu8{jcK~ z#}CI{1{gSSH{iGfuLY#W+WXJ0r5-M;rEagTWp4j@?MHBZpq6?5$y#cAuh{=X?0t2# zA5lkp&8MNx<8!H{bxfn<>dIj5s;l(5%f15}x4NN@@-U4&YU21ieI7M`{QZE}jVFht zu{%M(GIl@Uy4W(mM{SO=9BInCVDC}Cjr|q&nts?pvjT`q{iT5w{U^p}<8;_%@v{Mc z7QfW=sE6Val>OhuuY=87@mm1@F7_YAe+qMTBWaoh&S+%livZo~jK=$eE_Ghx!9^am zyYbS12Q>!kkXr@bEA)>xj)LF!8X5Y`rd7Bm|Cdb((2t$K5NA)I%qs=17r0g6b%5YJ z@t|Ut`r1UAp9c)7jm`9x5ZK#%R&j1DwB$M#yM^ZZW=c-^UFzXx@)^}~9b}HR&}M4O zCzw-W&88u0o|bzN;y@ag`li@FCca*UFPF+TPnk?^^C#2(@X5>-#{zoP*9GowEGu!T z8^!)-VpB1NQcase-7c6ydDc%k5;P;HlFyi_=asbg$6;>opDJ*kz#|2&0Su{&ranC^ zq^=Zrv%q@O(Jc#WKU1+~ zY42YS`}Y10K$q&C^C)EQo$~`}$|jAnyP;8QE;6wcNt*o+*N?{=bnXJv3+h2_)}LQbuL^{-XoU* zZl8OdZBGdU=$tU!F*`4<;lg<(usL!bZB_%i)Kl{&qIrLP-ekb{=d}Tr&Yul9ZvFzm z+4BzrTsHqmY^G*wh|)Cw=8BNoGyf;x)3%6w<_kPh;IV)!`qwSG)by(F)ZJX=MZH1o z-MQ%LVJ`L3q8J_zB%fvdYVoBe>PdlNK<U$>)VZCZSDmG+fMwT0M>O)a_A{j)7> z0cP5{B<)=4S)@^>)mYB_|6F5=eJb_CDt`WFFpd~OR@B)F~1f&KQg3mQa zErSk!ATZEM^Xe+XyN)2dMeKhr=AVf9Zh;RAd{*Gg0{Q41tFTJXYW)f!hV1C-AERuM~KLz`F!KEbtEk|19t$f$pUYt4v^2-~@p)1Rg4| zLtu}<^8{WY@MeMc2z*T7^8)`S@Kb@IW#k_f*evj1flCFRB=Agumk9ikz~2gdN#H*O z2A7jhjlf2Ma|Ess*d_3EfnOGQjldrZd{E#^0{<@X6M^N&kmrE{Cks4O;4uO>3fv*^ zD*~?rZ14Yn*n1baEUK^3f6tzIo|!=`l#3`T4{}$$gW??p6_rZM3*PUFX{Lz^iVA9Y zO(l)gsJxbznwFK7nf^l3($X^1GSfoRk_x55w0>u;wf8g6AllpiJ^%MT|Nl9M&u13< zyVu%lUuVzEo_S{W_QNAxAxPNwNnRpZLGkzWM{N|y8mwLa`oT3=ul}JR`$LR-JY=}) z2lvlDFaYJhKsuS2bsNIG?PNs*M!<)A#FY-lL%0sk!#F=HG*>I^!T=NF>1xPs6O@Yf zA*t(N_G_Jb46fYUq;3dSSwdlo5lm1LO5+;JCNH4b_Y3iND$l`%V>wkpv)mC7m{2-@)?plQOdLQgG1Uj=%0O< zm};jG~sXR$le%=NBKiTa~jlO z$A;p0%ju!mrxzjIC%fG+JZtJjawy3eBv*h`;7s6+1`2y~*m01BBtIK=62c`UZw|vT zrVmHyKOE0VLO`ml>2N&b!k$v-`Wmik;XDMco`&PuAoi3(J)*$b2%c+EkI3Ht5p4Qr z|4Q=TB)vvpj6cZ`k})LXNhXqffaGA3<4LBI%qIB+$#o<*fmGS<5qL%RCP;;SGy=ZX>Qr`e&g92nYj*~z z!L=&N{$oS3cUl4;=yC{#1 z#T?I)EE$V)omhdnJ{DJ9__$xevvYiOxWaxI7w&R0@9`x(gawU9KcNstZ4=P89p4gU zNNPODAWyh()h{>D7zri}_8lrr*!1qC=CM%G%#CL$=%eF{b;X6d} zV>=~1=Q~OXVEZKP@*S_#Vil6!_kC0eWPS~>w)yOR-|0$i)=biezH^iy*3P0_r9Mk0 z%3~k;<|z%BcNnHadPWInm%{~}_I*)_W(vqE#RLAcNB@TXUD||-yeWSF7cNz<7?)SaYhV_-y!S83K9a|`= zhu`l?2X-n-SPlhBU}5m~1T6JrphTA5NKiIVH<(ieJqgr<)x`(!z;Y{43Y*eY(3?OH zu)=17J_LG@1-1}$4yYfS)KbvTK&k8?{%jb$aDRmlX3d})NdErbd^lSrDayYVAI;85 ziuKP^#-SO@X8EoJe;1#?{8}N45jly~CCX>L{iFFL7Dlw14fb!!A7KenH`qUxPiEVs zZj66h{wVW~_jsAY{D|_|82?Uu3L7H{eNJU(Eb7W1W9395hiNQ@o~>LB>DuyiSl96Q zoX+Bj&}T0`ow@LpsxY#q`}g59Sl13n3u)h+$?hW(HJZtWT2#hnvd1hMz%y8$MMHQd z+dx!gKIuP-&tf|zJ>x$F=p9L0{3Dgw?0reQ{0H#a>>N=(+XuDHV#SgQp|*3dSnyZq zIN?8@&t+FhCrUPtm0MKC=CMC58o;xevm>TM%OO06-Ahyi{Vh!Ys>D zwt&T0R0b4h(Ez@Xb+l**f1GtE5;AL(Que;2TmI95PD;WST*l5y!WLY{%8BxsBcK;w&TdJn5zvP}fz1Gaq6Jql z4L{|>#CTcB>J#NdyFAWUvEEXLqbHADClYP_B)eIO)CBZ`x-#}8^R{RJU(Nh2n$Fj- z`b46Yo??xNL@PbTVu@C>1_4bu>@h_7tXaV0{AqSf>N*Fs%;wLt zNs=Z6i~^cxOZPl`Lh7am={d5}^;Mt;48wfNvK76jUokd5I-hmRI=8YzI-1 z@?))1cy2HziPD+ZYnAg|ELM^lSOL_5DA(`}Ea$JVWTFxUb9jZ7cg1ui3g)nzC3hn) ziYxF>z6XQwSLA3JXsE9VAgZIjE2+?t7+4B@bCuE+Dual^x}$m_YZ=%`En?eyq}{7rpqFu#** zIZ+YhXQ(Gxc~7)Ns-u3zvQq?Mjfz>|{YZrjOI^aUiE^1*yNg=FGWwwoW}Vuh%4H0) zY?kM$SG$KQ2wNh)_I*I7$+AR2y25S|iBbLo)B0mdq5FX~BoewGSqq!)N0w^SU1cL| zx~uGUo350-Ytxmok8HZ1*k?A~Pps6Y`Y_XRU0y-&t>)u7agjq7juS&7uiv1zSagXPl3!f3PhU%}{SLK9I^{;2GyF<|S!n zodNt7^Of{?ohLV~h^21|+uokJNdsXOQ#$|OnsgSM(pC0)|k zpzYkL%pnqG(UmPkt66aMS5!keCh6IrH&s))DrsBL0kxXqJs3;2n(YSNJxaW!w}L)U zeUveh3WGjYYbphjJ_$Ol`YTr@oe%m(t);9QBD~xRx~v8&XNko4tfLeYk#X;I2PNkR4E zw8qLGk|OKX*IFtDor31F*7cIKI3-0=&wBl|c1nSyarMS)iAtfQ`Sl*tx+(O^Ey(Yg zdO2E8C1pJ3p2J?Qm#6hn))EydZ`9kU4N%rg`l#M+ZHQ7J>2$pV+DPR&N#E8xs*O=L zNV*2P3Cbo(j{0Y`Ny-*UA@vVvQv%~8fk zdZfO?F<)6ODYJe}$Ky(&q$QwRs$7*+P(Rf1gi?2c@Ujndc}kL`Q{Z!rl1-GuitFcT z>y$#GBITF*%^lAxrIH-MZ5$hwe@pTSPIA1U-1{*4EK=$QH+Sq%LL|im_i^k}noH^w zJi@V8=^|-x@D#^>oC}>5r9lM1?>VV7WsO`!Kka;U`1z_enUeUv{{uNYPw-94Do& zNQrRmb9`!13)f-C=gK*eAEZlBPAfkWyqwwP32!GY$E27YfSY04s?d3 zQLZaMHHdH?EQ6Wy>VY9chMIti(S;#KJ;aJ1;54lG=upvP(*}$)q#7hdl4Nr1(mDFr))m)|E6A zbR|ldq%_c#D2*je3rTW*uf$2p2}uU(C}}0=E-T$6JqNnW$^(*ihGeN%lmU|Vg=7Pb zkn}$2eo)dReFC~4l&O-w0^N^Frld=t`%#%sB<8cL$|j+My7zZpRrU#;vAn@>=TFK( zN$VSo1v)BeTZ66Y&&o+jdm3!#KPz7fqJH>ADJIG>;=;B$e^Kf_ifxu-^a3hV`UoP+ zYs$k!*z&4&P06;XjFl_v1sP)?-LJ}KNwa}|Q+5cVIr4YKm_j+w9QnI4lxP8aD(n?! zg)&JJ&X_lpbCTAF)zWS#e+V*mh9x=wP~c)1{uUT-ge3!2lk{HLRDM(Om2@nujNMe~ zO2Ylm%{cr|5Q>X{RRXt8iYUhUiEKl&(U19G=&Qt z?p5!>o5bCOdzFJIo2_;=3P0v_TGXi$JrsVzrW+Q1)@fRn zM!j+m>D(oA6YlSqoIX;ACHujNzhlHY6e(CTKb|S;j(f2`&yj?Cu|Hob2y!T60ernh zzc^~~9YkWh)aJ#KaJW=|f05kCpd6rnDM}=-C5Yz8DDEPHvzdr? zdK4cb>FtOvdNj|nsJ9-&k4X9;VyNDfduO80Joa|PIK4TaM6?>#*rw}o{IOZ6Tg|?U zn4`Dm1w?s3%k;MVnADX;tkXO4+OyG8l(RF{0k1UF$j!Qkd?L5$_@+7hE2;YbvD3?uwlJ(*3rEX^ARsBIeM(Soqexg6bcSzmB z$Wqpq7fM!{-?Cu59tQ*usNbEC*g;6 zsk{}@Mdh1FFQ8C1Apde_^-TF{|!Ah5440HFNV=1H??k4KZ5pHrciQ1-*w5UT=cVjfaLSAs4 zuY!-|_{(dt>Nm<5$6FGKo=)RQlCY;I@T-!rrzi5q=20tAPfz06lCY;A;fpQZZv9by zP>_QCH--1k#&o$1`)?{=OH`s@|2@Xvk%ayC7(ZswW_=o0b08Uv5Uf!;Zz2i%b_VYt zi262z_mqTvo56caOYGYWzEBeOZ6?nr5`CM=w-I6AJ_5Sk(h}P&lYb#})YG&11&d}H zv-uBJy7@*Hza}XvYBA6smgNc{ZN8`j_ShUACW!iWE>Ds=tlvDICJA%T;Y)~cpI&Dy z;A;f2%%}~wslB1>|MXH^wrK8k}u%qc-cyEm{jTdcsXKK3BTQ;S*V6tg>iZ zREhB<_a&cV46flJl5h+@#Zx5V7<`&96GUThEng=I$KX1?!P4#4pW(Y?Ivj%q{Bub- z>YnALl5o^L%Wq1;k@Xz+T8K3&p^>$L*OG)IYXf%)QgCE#;C&_G$lA!q5s8ttk!MI9 zw#!DID+$|W6JIL{TVe}$Jx=*4*b*=BrbJ>c-^NE(qK5^+Xss}|aePNJ?p3Fv{sKB? zSvt(^{0vcvg1NuMDU3`QjEX!`5Lxg3iX}-#r6RlsnId>V_rwn0iaKK zl%y^GXUr2kPSP&_bLL5&DCzS?7tK$3A4w%ZpYh>DB_@uSQ+$#n951JMrX(CMr+BU; z951K%YDqW>PVo(ra1@;4J0;;LIK|(VguQu+e)!ILCR&5W0Jhi^RTA`&5n7<>mpxFl*4An4EMUkZ&@_S>k1#8PnIyUN?9qNNQ7q) znO>!Q710{DEGFCQCw`7-fw3uOsn^fESP)pQ0&4#>dcpCz-m8q~5#<_h$4uqd`8uK! z6Ki{&ZzL)*v8}K3H>BmsnC)KI`2lH(yWbJtQG zj0TO-GMA{t#Gby+R}dAM*wfc}z970&c%45db-1rU$z(e0vFm)hBzuCuGWc7-8aH{cT8O%16H<=Rx5+WHfm$qS3Q(w8do${C4V;O> z)F??f6NRhIi3*jKO-5IXP{&Dn0n$aO%ZYM~Q%x?K(Q2WjQlN(F4Wbeg$3!F5*n&Bf zm^db4)EY#E$_rrGSZyt7Ws|IGP1H%!631CHHC+;pv*zjrX=ye+XSPu1ZbhGkNZe4xMw6zYO04=N(E_7KQ`CJ+RAS=16s!Iq31_fa^_sL? zOqPF0dW8t{#$)lHO^+C{Dt`e9$Mv#mv1$Mjj`_f9@oGbhBC54lJ6e`4swJooSk%5+ z7j=Y1&s0lN7ZMdR91}fM?M2L?#Kio1sI`cS46JPrwT>jLZ4b2`5tb#QS`Rf&5DRJc zjCr4$C@pdBxnJ!j3HSc{RrHTFYSe75dB57j^0KYk{pv7_T2y;bonle@YJJuD7VWFn zU)@S1N;X*CO(g0tSiM42Vqy-1)!(gjhpP=%y|-cRSnBrGhO6~0YEf;Z+RUQQtBqD4 zA`&^IsY8fF4r%IIB9TLyRingaM+^@IMSfe&B1i9LKUABbzF_5WtJ*~MZHrn|dsO|% zqW0CMs^={7_MWD~O=Mo)Z6LX)f7D~e0XRB8QDVTef+UzCt z0@sbrLcQmzy@`qp?9F-VLz1wk=c)aLCA3l#?|JGpLB_Ub)iFCU_tot6=Docasc#X9>wv}Xbk+X_xqAqYh91Is z*F$)O_0Ul$r-yKqd+2oYa+|KC65)~AWBFSpoz}vh&X4F2m0Fx7ELOE$SR)*}>%Eq! z11uWoy-b}*gq9C`=c(H)%JN>Tny+BGg=|*yQh1$tEus<=>%LA6CdxIkTP*Tkr$$O0 z)^?rRR1&t!I<>X5T-jo~*E+S6)M1U*sr`t=xyCwmsMKK#u2aWK!Zur{&LPUBGl+HS z<02g$xz?$B1)11_>(oP%um#tt9~0%X4;wCra+XLPw%L01y41bgV!8Kv^$)4T)_q3R zcVpf2**lbD2WS!7_{UsPiyVclO; z`wF5~deO=+p=GG@qPmTAShCl=UsSzbMK2{L>b9$XMB+J}?dlXFVYyvBWwU%)J!i9g z*~;O;mh%k{VW~ZYrS{M;vW%xkQpEUtS$%;BMpnymzEj;xRAQpfo$4V;=yRufR1*5! zsos)=K6hGW+1V0xX?wALm_w2GPSxjiH+|y0TRmveS?|4S(i^CQ<1M6nQ(Z{3nw7OI z_I^{nK!oRfYrWr6jW^w1ioD-dcU$y{_d&JyKDX|yccFTUNcjA~DjAmALw`ccd&oN$ z$?q+V3At=gxc(Fv@9{v=jZA?N$B%)b&(|WiQh)SzoP0RE77B| zm~JIm<{Ils_q0qWEH_FLmfMN2J^ibDd}0n~tQ;`+Gis4#*`WFvwM2SB-C6Y~Nto`e zm98*0y1IuxgOZ(9D=aVTz0RuX?_eEPvp-@xRR2odBFP!owffiUS46o+XxvnOUM(gn zG11F;wZVQ&x4`HVx83W!+K{Nk#Qe^yiA1@^qj90id9|-3EZKQ=xup4|+fB3@j)o6G zx@PZ+vOF0#r1}MQJ<$R>Qhuv$k-ANBW2=9s-jcdaag(cGQjG&5-Rqz$vFeU9-(`!` zR_WC*tIfy~+q#ThR(leam}q%LeNd9x>WS)C)Zs+9615g6n`kxrzSY@#e^Ad!`mNQ4 zd#|eSvNHHv&9v5+?k!bQB>4gTtge+5(faDWWoptvv=p=3uj)3U)vR^v-|ziZy()Ap zskOtWLiIj`mhc>5YhRz6>KUTdY-sCXpTAV&eblXHX|1Dtn1*2-gL7NA@KG(oBeRF_ zi0+{$T6eTrKHoagM#ox58y?HATZbwh`q@qnGrp90boa*FErTmj+xQ)($8u2ot2X)} z{*0-)OYQJ(Gua1zGB0Z6sNE*Z2Yv)EsYRRRKJcS)NeOM%`{0K;@UO_RvdK$6{uaH^ zWUo&xiw3oM$0tzRL2Z_A%xzQTQ%8G^2#+hrfKCW9mbUrar=E63((`S;0=g(^Z<|o1 zzIH{@zuFY=`r0)~CqNgh{UPaV&;@H+A(pH}`Jv6XJ}xboNc4M%7Ati#+y3ekqCHC_ z&WS>`ZA3UeeQShja}EnH*w*3N8bK!ZO1QRH61IG}c19BRQMgti3Hu>j3oJq}3yk1) zO=^T|3yE@ARJ&N9RUe=(hqY)o1ilt{`6$wA*0Ejt8j;$r<47eYj)^Gk1Q9&12$oUW zkP||O<1AVmBMHY@v^Gi7^R2tqh}Pywn%lZJ&{j!Lv>pv~j_9J2-R>_VTJt`MJ})Xe z+QoS{)RKu7um#QEHDa_iQg^;xNAJd3*r&qM*?zK56D>nhhxS=M&9xz)30-#k+q6KXRScep$>a}61BZVIZW&L zl24M>`?T;4A>V)##x)zd*|p6GwS3Es`jQP3Tz4Qndb3 zhkHkgHcS%k9Vyy)K?;uD`?SeYhiB;zXcX4@S6Nx&c zY4t2>Rx?d&Z_yP#QQJWzo{OEV`Fx39#IvuHwN*so+1JThv#(Gmo_)>GjB|qU+1DIx zF_C!ob%B=fHR^KNzdOP6^V*bekQT6-3EgWh(2fx;1Zq|@S6hA&b>g|$CE5=}SnA<5 zmuNoUq7Lcdnonql1sV4zl=GF^XOadJU6h1poGZ0oh*q=B3G-^M)S7(f_OcA9uORr% zNhw>U6-s(7;mMk-GyTA9O%hSFRL{AStsa++?VFwaQ*^}C>%Vf!l61LZT zQiIpc!Cx->G+}qmr!=Ef(ANq3YOd7^%LJ7sykGMfZPo9BeoHuB^EvHIg&@82*_s=* z;v0f$bS|#BMVoR{P;}?(HDA(^?R^gX1NSv1)9eXZfY-DMf&Td4IV zDp9a3hqZ+k`S=!TXCz@+KGN|0wAf}-x-{@TrnQ%}uuHV>aSh)Pi@ImK9N-^o*^;oF zpJ)Y=unwoRS0!PoKi7^(!cw26I=G*P`9cyt=W&3awJ5@s=KG~Z_%zJdmC~KJbntwL z?*)q@Tr+$xS%m5En}MF^f=Vr&<_hxt*`f&7BHv#u!gSXwr7O2|nyZ2DZx%(k*7*Kz z5vIehNO|(RY3VdqwC|r5MYuNl{$&xSQyk~1mGD}-lyL|C3Qz2D9h}@@z;F2Q=!;Lx ztBw>R@ob^$$Pz@)7HaSmBw7|K7rKNhnxkCORiY8_%SY7x(Pf{n=E#<$C%)(FaBPtj zkobYG?l?jOPbDRu@HHJw#dJkVqr~&R_c~%FHBbD(*UvFUQoF>PzI7dYCG`QHp^ghg zh06HEd;G#3KAOmVMq+KhC`S@ek+L8$(yy^&v7{#wTlh6~?30!S;HA0aoTL{M+xfM0 z(CY`GEUzXe`NcV+9HL|=68HJGb|e$!8owky?}&Hwmc)}nm3T**qs08YF zzh4{25lM{_hx#Qr{NOjv*w)PxANK3!m}Jomzg~_sc*7Cy0pk;w`1Ny?OPZ0m#&3Wl z-ay?#RwrqzI>eDKDJp4`-w?+bcsmX1;*xgw4Rh?4)FtUvzu}I{L?y}tN&EapIQ+as z?t_!w_Z#Dgl{7Z#W4|;>7M|_~5$GWEY7dlvNK?}PM^#9PYm#73r z>v;bYjzWv3`k!)~vS_yd8Aq{2kNclcG|y*GdUb}`D}K#3jY>P2wG2Bwv>dkclVlc7Dc%J?H_Lu z&TbtlrNg%*iYNGR7EZ7TXW`BkVY(!uZ1^?j=5Ag!yIORii=F=H;vL}8?d?|6Mjv#m z6VS~{ce-0-0K6m~{?O<5pzCAN@7-Dj!0Y0ru6p<6fMFJebWaT!Yf;eGE% zz#|ro?Vb}b#iGZ%uMU`L(bnz-0q~l6nZujiHwVCL@g*JY{&K)-wnvNs9W;!fJGLiCVv(1ghh`g{}hmK(bD9b0qZT= zoLsGzcqb&b*;~nVYHhJ}UnMuLwZo!6lUvt%#iANLI@Q`^Q8>_R&V4kN#JTY6&Vxka zi1)hlh^6b`eBF83qSpf7aQsx&orRJf@9_iBr;>Jtg(^kPFD1PZR=|s# z#Y9DHWskDJ51fr7Y0ok8d;Au7#F-*#6VQjwRH7obyGN*U%$X|*e*t^UxlLHYFJM{i zW6mQ)tJ%ML=(Uf-hr`9*_^%!{YoBm7Bg$hZdj!?~)HzKMJ+J?na|sc)QU~W}&UF^O z7I@0}l11+Zo_4-t(c!=|&SMtk^DmuWTXa0|obxA(P6wWc&x~MM#97G&XA;puI4`f@ z7o1aw3hAumqH_aLu2Iq>ruIdr))3Q)R=ViCUlO*&x6b}VxL#1ozI8rKgmowbT51ve z%E0-KMLz@Ub*EgC&JaA8+C3uTeZL(kXX>4&Lkpnt@f951W^%FdsPei z%Q;t4O(3QhNJ{AC7sU1bl2UpF2RZa+@U99R6OZ*1$pU@NGbrTrcaUd zX0P@^-uf&eF{9k0&$p<1&^`K-f{gciJrLxhua|VJS3jW5lFs&m7ar*^OS;l)1khed zxQbd+-!I9LQpRfPhb7&Uk{;x%AD2`oWfstBOSdS0!&NcW?pJw(?e9VNOYsiJ=~uxuZPWyxdafL1^UC4~*>5?ot9(n{!B0|n{( zS_|qqASJk-9ve?}fc9z*9*5fT|;2W=}NXy979l>q%zLsuTP#b-;MbW-( z^_kN0fz%;E?WhIaSKe;IbGPSebdWmy9m>AoP8Q)gSYoAgNtRA?6$N**D8lt|aI!_1 zE~Qes`z)R2Iv4zaMG>yz;64^%x_*_?^|y4IE5AmnMG>xR!GkQqbi*p88*b?|7juoY zD8gm9Mq7mG#_RK}HY;Um`ZgkQ%-eE~FC-zn+(z=vFq>P3>O z4|>QoMgK-p!$E^wQ*~eb91F}E9f2OxyG!afXrybJK3mdMpmhC3LGW9zd_G-2YSHPy znfe)v3V5cz7C-6&$IYU;?*`7&dv|oxYk^t1(aB96oOAWMM1{(#L8WY-USH^pfU%AE()FaScX6kC#+9$vmDDJ4lWVQM*rFY-XZ05> z+Uwe&@3ZJ_*Cst8QFv*TSm=6DPqOHk>m|LfMW4EM==&}D%C%cRAt`9^x2{)pElGF@ z8vLW{bv@pqYpyr-DHh#wy`yiD6gpT7IiP=NQMHgmdZ|S!ZXhg^r{i;P%LdtYk zvPc&*cuvUgda9&$iOWO&()U_a5TYA?J%nYu#Fs+uG14u1JEWFz#-bx3^^Mq`Zp$x1 zB8*j%k_H#>7-P4j@rlJDjg4<4%}D$Ks9rCTZbstP;O0iMqy>pPf?F6fB@G??Ye)-Y zt)zzs|2w3maahtk$RXCaBx%iHtwEeoCq?+&Jh)neRz`D4Zx5~k)ZU_6KqDpL+IDN> zX-T;5-PSl^>FPJ=U<5uOd=@2yH|S`j_eIKK#|M|P1mh?Xo;@wAnP8kDDpBw_-Put4 zp=F7J$LTIcv?M%ECmIh(!XtB%k!?|m(#_Z*36J63jU)XjcgUe-gI-4B03>mCf1i;; zgt>QWaG%jP6?Lmw{?LpD_Z$0&P`9YT14h^&)a9^CLpwF-V~mk>ZRm;y4;pKU78v+s z&O^p-LGU?>ryD$E6iXdG(bLypgDH1b19W|jSV2a}uyWqd$d-h6G5Q(Hh{Rb}KjR6h zdtun22K|h+L|C%Vfj$|EK64GcYnf_%L6pPV48PDI)i8#MQYR1pzQI7_;Bc~JZ989U zFvQ3n;iel6h8iPA3d?@OS?Dlhx1`a-_0ZwQElE>{|2t%akvvMIn>YNP(2<7sXhF%t z{X<6?P!RYls*cb7j>VUhHv-s5T5UP2%ib|5I&pjA$-ErL-;JJhp??Z zguUV+eEQTw_|&S0@Htfv;nS{T44+91yk%S{_ma#+4$%B9(DmZ7Cn9cVtAZ3GjQm^ePOjK-31d}bN#B;kn6GI~hD z5t(HSkc4|s%yrX(DZS;k^X*ehAaDoNNYS;ksP*ehAa1|l(kW*OUvu#cA2 z%rXuV<+6RFZ-ve=)ahar;24~1)FH}c?~lILV6M?l(#NCKuzAK1NnejP!m^DWnN)Z1 z=@*t`93>LtY`$@ssEEedd?RAE$N|UMe4_`E7-#d{R@&%c zzjYSj-K*y;!n;=+EW-Oan=HcnIWJg*_j6vd2=C|YvIy_zylN5N&w0Zlyr1*7MR-5w zfJJye=U*1#{hT6;@P5vR7UBJzPb|XwB&TdN)&Go*X8WJB(c}IXY_!t9*hcI8FWYFd z|5Y39^#8?1Z~B+p=#YPfjXv_fWuw#niV3?Z{K31?1_y<~=hrN17*@@q(7~<4d~9^u z-`^smEzP$j;gwBGvrrOV*|aoWb7<@ucx4l7MoGden^^N@Nw~TkXTBy0*P-Lg zgOc#7C(b-VRLJm7Z=CtLB)qp9XPyz349_@QnQSiQ$MB4^wON-ahs_z2pv0SFq;4J5 zA>Ldr>20DyY56r-de0MHl(A?TE2$yTBqDLH7;ny!gy)KF%*E0&B5_<;Tl0jZMv3WR z38qgr`h>UALEm;YH_Ufa!?0fF!G(gbZ+n|bkGtu#e?RlgVx(LaG&nnKpjmf`n^uGk zGlxhD9lSnllv!ZW*06Er8Ao@jj*aGvQ(9y_RV4fr@WH@@3m}Qc1^ei#8 z<>;l5;r;g|W(-jgTz#JKU1m;_gkv|)+#(6bZoYY065fA*&WwEmy%aIL|Gw2sBPxWu z)%WSjVf)R+lCog*95CDGkq&%js|U=! zMENXa+#g}@nY)R^GhgqSlb#gi#Cr_ynfoQ-zIo8RN|ehQj|)`}n%=8Lez8PplG=}B z;RnsfE%FX8Gz%;W3O{P5uMz2bjr%z4xas|rARGlBo2!U&*uZgJ)KAP0gpTeJoitBL z!u|H7c}~*UapnA^Su6=x7EYR1iD3U52k$gAWAZTvail!yo|md`9yikEp&dY|JsZfWMb}Ln+cLI_pi+!k}&u4W?xB|`+4&*IeE0B+<~Tv@t??=0-J$E*xq?V|xn$-NiN3vL^$Px8%|rOxY7gP>B0Yq^Xe_bP;V&A$H}lCSo=Xi5zihrE z@-t%6X7eA-BbIJV_>X3}P4|SHOiQl7NH!sU{ z6VeujUpI|s$P1g92EVE`{fNXb(65^rlJFPkznV8BtxH=P{=2CaV7emuJ^CN!Vxk=O zLBvzxf0|*>qArJRPkSc(FLQ^ay=j}m|82US6X`xldnsJ;+CY@UzDnC0u6eDcUxi(y zvplEQv6sOKyJ!~7o@+Y2P6<+eoL$PCUgsqFWFhqyzZf%HWt{=bR3hxL0`Bx0Pn5$} zgQf1ZK++B({4PAaP+CgPylmly37+`cR=luxTSoXY#^Jjj9?Ovwc3JkEi7>uR8@`H2 z@hCZKNZ}?{41S9NZBTOfs)*a3)0?>QD+YIp(JEP@4So&5V<}?Ln^q~_Zu8$6esjd_ zCH((>Of%>s{8q*7ZP+^Q&hf(D-m2}$gNW$?Vb1Qi#XJaM_~IVPRFYy;47J6NvxSBB zVTyUwW}iu6;UOp$eF`aJgjS>#(r#~$7xp4|d%Va?^ZPt^2;lXaxxDE$D zFOc>n$cw`_N6=oah2sJJJIFtNpOi73odrvSeFxHn?*ze2A=6%k7*45FN`>D9#I%^o zNvU*7Wl$g$hG8bBn7i2r32z`d3$=wCLs(_;x5dETN0z9yhuxzw zk+k=bwx7*rlnC4Q->Knt-Y4wp9jg=*4x7P^&A{aIFcRk)juqu z$Fi!{Nu$ngV-MpO{m|PEkiuJ4`#bp*`wQ+V295v9K6h0qGq#Mz_E(9w*X0Cgo$PCn zdX+M(4BxM+QGFc@+aJE12(og%xTkCIbtJ6IVW`oawAfi`RDc+cU|sWlK<7Uz_X*OwW}I)_gehN{Z-kUeI)!>jOt&jjF#JTbRPx& z`KVSV;&>A?fW3dkX!il_-RoF&wAUs32#_$FQCQ3dC^?IT7?q(GzW)W|9KNeXVKL*` z&xFN!YyxOG!#P}K-65>8!3}Waj|1t1?b9-r@AfNUa;Zu~^p4UI=<=WKawI|@wS*-;dTSNXu%nK0jiNP|jms$}S zDvTFpL(dq#-2-azY{!#o6Sc-Jkg80JGcA6N4ofAjaYW2+%KZ(J?@%gFSYa3=q`M4m zKX>*f(%O9<` zZL@1t|DrB-pZ2`|-v4>(JG56B?%nXsdYYN-If|HXNoyYi*qfD)!eXy{jE>I7V^E8G z1bnB}+P}~qN6U}kO=W1Kv1<@^kfoDNmq+&7ZJvX8yN%9nLMr&m=OZXZUR9;Y3)j%x z`;OiJ-OAPl)@Sfr%vc6tV-MTw@<~gy!SW0L?%H9zSX0$1wSb5hKCx78|930r-}}dW z@9rOK!PyRwDys&q?-cF==a5)OJicHHD9lA=!}eF{ zXeGv{`^fd?FyRMtUk9Gu>*tLrReSO$b;u)Z%I(hmr3->&CJjfc6*1JCvBCh#5mZCxBFGRj}%;4o7X! zDh$u1Im@JQQ&`F5Y&M0L+oTw!BBtt|F3wEE{=TM4tqZ^pUJKk_>opW#wbpKXPp!9s zPfx8qbrd;@V}0dzxV>d=(DjA5#_@#RJ%wec+Hb{wRW zodT(|uR$8D1f)s1d&%5IT}mNdp<2W74N6$~-khl2R$AYyAWN|#f%g_G_cD5e_4fZ` z;_)80M(ydiL#^?C_uaKPxBOqNdw%%)))4KCHtrdw>KMc45Hz~4eRmsNgTgkyecb-< z9gnStZE}09)kp8#8rA;~ix<6rw^p)`jT+E0aQ;Kr8sffE)pNz$V>CL-JN}bLd7O0RD|Gh_&(+;|iE{vPbY4gv z&{APfP#Di=-1n+P+ln(BY~jjx=kbh1+`-pnt%W6)@J^PZ{CBev_b9PF;aCi93(vPe z*t~;hY%5K+mED{D=>k!Zh-Osb7A2@NO6uK&ZdNXn(FloNLXL35*GGiHDhZ8UZ=bL;2E7L=SE8P z|8AMZ*|I1bwu5K^w|tRGyNmJ_T2W3>5+U7X#KIe9tv$9KBAaUDaIcD`}Ps* zB*Nw_dALX(MEI&Ld<(+v`;tQIiP4zHQemjIOL1*$KgV{T58M0kPGMZz*QQ`k9qx!> zyti`aFy<((e{s!UmCt>NYbDQh(A}<5?eXsC-^3GB`23hk&z!htBs?2;(pTUWdb*WU zUTzyv3z4r_ld+e9puv~eg4Nb`W@Qs_HpihcIzz6PM#-tZ?CmTh2?Qjd7M-p z_fxp`+WlAf7d1uC_WkJ2PZ49u?e=$WZJ6QdsaIV2xziq+1uGk3g+zE0`>cC)w-=2H z`-vmPsos^{n#Oo8t~kp`&Sj>_;Tm9M1|IJIh#g)#JcV* z3NHf5NSRki@;)eGf~7 zk5W8Jc%o(`YVBhH?;2=qFZg#bypQ0dRdKN|7_3fXw71X3qO>RBdS78*kQC1diRWHK zxC7;aS}vc15@Ecfr$QO9j^DNv68(tUeN5%Vo>G_y3n}i!+sk~XwK!a3th%;&Crk8i z_lEP5M)T4?TbHw^t-9hTR_&^;Qrc7f-?cbuF2!;7pNs@7 zgZqAveT4t_j8%J%|2_A@?sor69Erp|GW;DG?hAP3{sM&u!7snu;rndi+_7jW_9k4V z;k3u8w8v@kH)x(UrKWIbWK5905G`1>IKK8U{$ygvY2e~9l7@%779TRLnR$~Xv*gYY;Ak7sLP%YrQ( zwhUzggeO3F0)!uCTVTtAEgiNDWg_rI;EBK!fhVyYux)`Y3$}FFGL%Ok{0M{}f$(Iu z7q%?e(qYR`9%c8lN1@Eq*b!wqY%|y?*p4VOVas6WU^}8@!ZwQ)!*)cO4gY7u|18+% zuwP(1qRfSD9;<-uh>{Kev*CXZbYTvJb09n)wgt@K3*i4k$oFyP!ykwLi&!9E3~@`C zi!Xuy%h-c#CA8)$)}F6||9LEd=Rr6R!mHUJwuTL3PqBl_Q!JT3#gbr4fUP}j{n>NS zj~iG9-vIw#fNckCJJ~4M`mrMrKFWUKpRr{16ib0ES^a_yWnVzO&#;l~EX19KxG&il z*iv9iR?mU%YtVheviLVFL%j$-iebCNR;icZe+m3Af&V{1TmArb`2pIpoZSQ4NLCK< znGD~rbVb4UJd}~V0kVuK+~r%rO^{`*2FcnaLr6xGY)-Nb$<8EuknBTpAjqQd2^5|R z@_2X-$O66uWGSrNyJZ=Le`9^v{jRAzkB^)-BVrw&GVMWS9iKC80LT@-LqIN>HcC0l zPQ$yejjC_V|o??l48@Ou@c8IS6h8^VGo#ZfJ{`huMQ2fb7KD#RE2_&^ZJ5V< zMVcTJ((h@Qsq{>*+i)F!-}g~y&w=UT5R;Z3)6fJ<=w+xoymy2>5AAl6Z6oHk(rHlr>vs6mm#8`f60zej+JL4WalvzIn!rjY3$X z#2qB}lFU}4L0by5ugmwXMw#IG{YDDZw3OX|m;zn~vVt#B&&>F+QJ(tKjBL$C z;48N--HZzh1U1UL#T_KE~FH%|s-r(0W<`Bbo=k0;MI0Ny6A`AE)H5YsyV)(v2 zMZxcEU8K64Wh-V*i#f~kXGSWDvTNN#m(Up7c00#j=-L?jsB7b?D!%3DDEO@4C)K}Z zu4sH#t(mdD@kw=mHVO)jeO86CoF(ANWcPz&?{S;lI^8bXGjdVWH6X7-45r-zO5iu%d8MK!ub?XVoYm9ph*EtF?D)nz$D8;xWC7Av_?oAqJ^wZ+u7 z#o(s|a^DtJVyuC*4s(JUoB2w!+SFnp+Q`h)%|f(^nO}pPmRSsPcIJ;D7iL}qIX2@) zvuJI7CTkv|ZOYU^#$?nYS&w8W$!L;INyd?EN3wJCB~)5(IwtyYtX*A>qsSXddsT0v z;Oykbv2B;I%&4AbbLykz)DB@3-M&@F(8QnOfV~i(2+2ZC}z30quJ&$56}|ikSp4M(iOnlRFOA#7|JCE{y=$mc zYsmi^zB+PM+M*TS)F8S-^3R-a>K*$)ju&oSU6w>*o}-Iz(-9l;lXLO9jtU z&G>TOhkZF`k@s2lE!1ld$M4(h#S%8%OFs8NXV^97tmw496W)^YBZ_}Xl8(vYCq ztjF9%ARnB&Ek1+|nfn^ZMu~5cJV5gO`2AFi{ZxznREv$YCvIdD=a#aK48B+pzm8|l zt>0#X`t)3Jq+0>u{Gn?>Zl1ffjiOG>45edJ0i5N&K6iSDsnC+MJ6xo8o2tZSF6dAL zzAf|w$+Ey2^z|S`{bcU84vNF&yQ_l<63%UCem(@}OLaOb+RV1W9Wk8Tu{LQBfwu)6 zYC9g9H=yGl`cBIphTmt|!xG@TEPEJ!k7Xm|`!Hzn`zw1GeraV7)nyN~UPi|~G(Utm z#?6Zf4sqajL!uo^=PiZ!r{}Hgn8#n6_bh~O&e_|sjpO}!9lhE(z66PT^xGY`gXc1~ zN5LaLT5i^lLfP7Px(Kp!rz;@4b$SbAuTEtkdw1Fh^1{8Hq2v{CUZlCYsI{s6dr)2Q z9O+9Mw3_JlpXi>_M#)20HKyiWk}FNO+e$ zq%CEK6nrz?AqC$vcSyna%Nf>Xe4pG&uzA^W6lC|#N9oOUN0koQeL9bX+{@rf zZD4jExK_k>ob{z+))IzqDw{xMGuRa6FNeX>71e3L^_T%NOQ{YrTd4_hp;GIAu=nNx zauwD7c=he+Z6=u{6PDzW$OJ<6narAGviB@WT4rNrlCT6iot{pnO;7jG-IHY4oFpKi zAfTwI_yhp~318reA|etV_+$|Q1=*h{h^Q#2_{8n;{hV{E?!DbJ1NwgNeShCSzJxhd zb*gUFsZ*y;ojO(bwjbxNo-E+Ao?$@jZvkKSoDKLYV_x^1hxi+ef6KEU@wYkt4ww0> z=X_w4bs=DhMKuI1DnH5kDBx7LtpG1o*tUvg@m~G+Ga`ip$S0CePeWfyo&&t7Vf zzWV{+@ckR$TfRpD-}XHL_>S*sz`y#Q2UPwa1D4=7_kt?u{{`SA|8D@N`hO32g#R7D z8U7U&K{bnErT=fh%=KHdf@*<30Jy|I39!aL4Y0v~6yOT~F@UT6m4NI0Cjhqk7Xfba zF9mG(Hvo3~n*jU#YXML8w*YSQZvx!z?*Q!g_W%y~x6bmbA^$$VU*-L01Mc&m4|tCM zLcme~FyQ(A^8hdMe-!W%|D}MJ`!5H)(*H@otNhzg!`1#M;5GgofYz9rv`oq zctqe?z!`y;0A~e$3OF}FlCvN{GP5K=($c_~6#*b8aN*C z{J;Xhivm@EmjvnnFAppSyfUyF@Tx!<@an(@z-t000$v~J2D~Y-8SqfxRKVK;rr#a4z8Y0tWz}2wVvGRNxZ8X9HINz8Ls4;LCx}1HKx# z2JrR34S;V1z5@7G;5NXw19t+x6Sy1juYqp^s^9~FCBcUPgTcoDCk1~1I5qeT;1R(W z0cQk%0yr!98enDcSAcVaZvid{{sC}F@XvrX!FK^0f+Zh-oCiaItApi$>x0t)TZ1zI zHw9+{wg-;`><-Qc>kSV1ID^2g=nzunjO3+yXchj05I_=L7Bw zeirbY;MW01gJs8p&q3B9LDnHbl81&6#aDzVzB)uQus&1)EjJn>&3S%^wBkh}(ubFX zNc&wLO3wrqcg-Gq8V>JVxOsoO(G%nqqLLz|Basc(c% z1^iYh3V1lw5BOjx3HVSb4fwrK4sb!~7XX)(ehILq^hUsj(nEkNO7A!hGE+*FUs6hP zb$Kbt)s>}0^HrrJU00V9<=2#wj9p(!GImob$=IP%lJ?t6NuKX4U3ENUrgS~vw@TXp z50`F6%@3A-5b=jfyN<_qVmxr1STc-G?&glsyjoXxUSM=a)SPcv0EE171@03gG2s zuLE9L_G`ea%6T+FOV)aw+(p-D7S`AO94eUqra=S-sBjZUK8oj-|Y z>qV1jwq7!cX6xmXXtrKCiDv6nlW3k^J&ES&HIrzbUO$QE=~G?Uqs-Qo&w@t(Lig7kF%MO8^1 z9z=MHw{$UuR6g#P{8zx@V*;_I-jIYXIy|Vu>vZ^vNta5wn<-RY{{uShEff4f9kxu8 zc0!Z!3ln8t|8)qdodgN!?GUd)S*UePwc#O*f zI(!9phPb|Cq@4#4mQA~;ib5KXUm&D*Uzx2`-0Q_vgzYhod^YMu&%Wct1j-<7J)xiB79ZsmFtm@+)rl%It<|~ zk@!v_jRS=wXA!(lPhrWaLg!o^_Mai?^L2P_LeeEWbvYfj>absj+XsaoqdL4shlh3e zvJO>R%AG$d_4QvY;o&Pu-hQ%%LZa*CLlWW`h0~)?DD~*H9pP(qSoxGvIp~G;IvmyE zH99+nYnRj5` z7w26+@1}W&=G{K;&UxRM_pNz{=RG*@&3WPZpPc`*`O6nvyx@feRSQ47@X3WoEUH_y zYEgJm$D-Yf_Ak0((QS(kFKS%8Zt=dw*DZc>@lO{2W^w6~BbLlsa{Q9|CEZI>OZF{! ze#tME{CSC|YI4Q`02tNK&byH&pG$<;?x&#SJj zUQxZay0!X))!o%ws!y*TtlnFFZuPKCiMOQ$V8cImvOOO~!!x^?Mg zOAjr5X{oJF33E{*?NM>rZJIY&f^!f`&^Pu5I{o!=Z+|8t!d)pyA<$ zA2z($@Y9ChHh3DRHO^^lXk63S(s*iPqA}gLr|~n5hZ>)1e7^CO#PcM6Q*?%qzEuXi1$%;-M8!uK3%ElBP*bM>n0&RMoVssky16X-m^k)A>z@n!eg}chk3< z9%y=~>9M9CG(FSwV$)BWUT^wM)3GbNSMFc=FDqYJdBm!=ReM(5xa!$eKV9{kRqw2t zwR-*P{?!+)KD7FY)o-t!v1av})7K2FxoFKN*L-fxwQHVPbHv&c);6#0UVFycp|$6( z{q))!)*fE_$l7Pu{&MYK*9O;3T{m;x>~+VlTexoNy3Ol8v~JJ3v)Aokck#N9ulvHf zTh~3f?g#7secfB@{=BYq{o3^#)_1Povi`L7vGrH3|ML1<*WbDRTk9WK|LFQ>*T1^{ zjrD(BUlJ}09~GVzJ|Vm~yehmkye&K!-V;6;zAXHu@NMCH!}XBEH8=@xhBR)+E!cjX zLMK$2dPq&dY21-GojgjtrjEv`$Bl@unxlQQ9Drkl^YK{uyEWa6N`E5AM z--xsPO*l>ZAkOdMnZ~L7Qk=@yZ2+NKl6vwrMO3MnHt2Ia~fyO8TA=8q&|z%SEKYzYOlHrcLnao zsqVe%EcI=5wz^N9qYkTc@%s_ysfX2v)gx-ZdQ=@y-%|(GAE*n|Q)uNGwDO#~ zNWGvg#(DBbF-jl92z^|=j#F;$xxlb+j99By__p2(;zp84_Lu#q#3AGC6i|af;P+<>F zx;;;+ZqJWY)bosrd7f1XocQhZJg<_Tm(&5zkJUlXE9zpL+Ft7UnYzsLn!3XCI!;)A zsXpcTmHLe54ctJ$361A%MIV*#p1v4x>-437Bhxnk{^&@&2BTg$k}$K68nxrs9YrNa zW;8(-E?~H5rt|C%|LIEL|NWn?0?Z#n@e3J#;+U@>{@SrO_#m6d(zAa)mY#ZY+S9S16a(-96e|bvG>IO{LUp!AosBtL_6{ zs1lw?>myag{E=Qr{lX=oR{AA8ar5fiOR0u$PbVlGc5}?#U*Vhd<$so7soluWNDX?MrnPn}p#y>P?9`g=f$yZkU?uB)fMOq6?=TX92acXk8S zzkuOb%z2EzsDUWFf#YtBJS8=_>v^T2eloNcKlMl>^-h9B9w1^ACM{1U@Eww?-%tXzSU zi8J|QsD`O0UkJQNnvAu(jA#-mS$p#5P*PTh+LQkU@msry!dFhCUM$*Hg&m&sbay*p zWbKnaF5gCNHE$!S=;Zh*9G5jNv5jhW&%v5A98O*lJ@$BTo=4WL$7BxP5+&&pE{RT) zIVjpm^p$%Kil!0`Cb~;B+kdTQH_a2(JiCEb0eaMSSo0Pv?8(5VJ>|e> z04)`RE$>k~0E23wH5K?pfEMiGX~0xj6~I&jdSD4p2mVq(_^hoXfIl73f-Qa|FlSju z0dqE>1xx&Bl>Y+YRCTU31G(n_TClul0{elz^Q7s?>OYn0<>^* zl)Mtp0pjZuzPZRf7SK{hdQJeQ(l-y7Ie->ycU%ck$N3fjb3CA>j`l1>e3yR_@H+wV zJ4Bwvh^PEZfFA_Jmzh0PzzoCJI#ulf^r+)KOMyQQFsMG}uL1rNKnwPNEpnFvTB^oF zd&F9X^`1sx>KHb7mIL3&aJi=m_+@||)#O=)_zH$AJ!^nj1!$?Yo^^sw|V5xO3V43w{z)85d zY^lk(uZ%f@o644&VqFM0)w&pPn)NZj3hPq9>DFa{N8pAs#@+fP;8D1ZjPbQT131I_ zEZ|J*^MJFhF93eP`XVSi77)KtVqFV3*SZey1nUOCdDe}{U0~ge_IAEvsBw!bAOk1kkdK&N~>lwga>p8$a>jl8g)=Pj} zaXZ>lC*#(nrB1P40kx-DKSTUfhP$kv12X_koi=>yLP94{mf?Y8cR?F0}rF_(vFi)cPCZAG6*Cyacx_p*<`w;KwZ=;AK_- z@Nz2zc!gC4_z7z=;ODF3&>sY|s ztT}+UTgL<5VVwYYw>2N|o7O_Wd#%NQ-?pke_=c^u6!F6h|JAAm<^e$bQkYc__+6_J z@DXb{;Nw;k;1kv=z$dLWfIqO-0shbm13qQ706uNC0shF^2>6T@0esdv5%4*y1MqpP z3-Bk_Nq|4KdI4XtHUqwDZ3X<9bqe5X)@gu0w@wFq-HHPK!ioX@(uxDVVI=^6ZS4Yl z(@FyV*4hpDwlxU&j+FuYlXWKGU#%SA->hN4|Frf3zH5yDdc0=?dcEfY`n?|p40`ti zhP(#>OT8BWmU%A(ob0_Au-yAGz$xBK0jGK|1Dxi)0;+ zD}Yh&&mbY&0kKwke-4=R{sNek_g9GTW;p2mH85#F%nt9Hhz|i;YOnXVfcw0^2ORPK z0q`vE9|6zy{t58I-oF6u_x=s=fcIU%gI9Kf4Pjz^h?N=`uhy9^&LnGeh(48K>h5co$KK31|A`0q1(qNED=#~D6ZvK06q zFnp?{7Wf}B{833g;?I;c0zO-^9Pqi4Ccx)QRsp_HvIg+Ql68PDm4pF*S<(XdtCBXr zH%c}F{<qB6mYRG2Dro*2c1=bSdo1R#Fqj>_I$e#uLXqc`I3P3zTJQgzCpl7Uj}fQ?@Yku zz8v5R-!R}gzP*6w`9=UoeP;vi_nixP(Dz}$3w-+lFY_G)yxeyI;1#|L0YBlp81R$6 zj{#okyA<$KzRLhV?Yjc-Grms(Ugi4~;AefG0sNfrvw)xXeID>?-xmPC;QJz|y~cMf z;$H;xs4w}hL;PBX*ZFQh{CeMwfH(MV2K=(`7Qh>Qw*ubeyAAMW-yMKo@qHEW7T?zZ z5Bcr_yw!I%;Q#X719+S7Uci6x-3Rzp-~E8!@I3(dP2YC_@9}*X@LRrz0q^%c3iz+S z#{eJjJr4Mw?@7S#`hE!bknd^0hkefgKH_^0@KN6jfZy}I1o)Wm$AI7W{RHrF-z$Jm z_{}HvymZ{TA>!-|qpR_x%Cz1>YY5U-bP6@Fm}0 z0RP?hH^3kJ-UWQw=kY=t`!K=OuYEqi8U6s^On=DhQUAnnmcI;`V;Ii%Pe%L${waXR z`lkVI_fH3m`HuwL;XfKM?w<)b;6Da6Bmph;A^&W|cLQ3ut8^^lX9D7P$NX~;&oMm9 ze>^ZF4A1tT0Q@R$?YxxW_h3V%J| zr~Hk8*ZP+OUhi-6Zc^*LUU<`?PvC8T9&j7(t9juu|ESLkKlV|9fAfDzl?OiI`;@8( zd>ZhGz=Oa{3S5r(jKD*P|5M-*z{?}Y78yWycf2Ojs2t1qhC)i>1r zu;E|AUg-BBReJTjhvq#qZ_fOh`MLQA=6`4YQ}d5rFmFL}!M+9eEO=zW-wmhN7fTYC1=^Os(~^k0|0vvhUM2Wxt2PObS+O}6Gh&Btms)^^rztv##u z`P%=i_18UG_jcVi_5V`;v-&^PcQ*_-ywebBJlOd4#>0(|G|pN+u>8E`S1$jZH0NkBy+`M9=J**wlIMwicg&O`qo;YaNI8TD=_J zXPv>}{nkznAF%Qqb_8axqvyH;OE^3!u#Cgrz&Z{$2TtVhmf&?8N>J|B;LFVv-WL2b zhj#?;Wc*iy-{tUY!5?vWSMcW?-W~iShxY_0Z=~n$4bI{4zTip@?+>2D;RC@0hu;Za zz~Og;H*olH@GcG?4L;1_W5Hi?_;_&gCaUkr;2TWG4}*agNm1S9NdXxp8axN{w$|%+`Sl8 zkW^{?HpJgLLgL>?{3hJ#AgbO)yaDH0YjFa$UaeCts#&$-?^<<@`V#)G!{7Dzy8(YU z;+@Bv@OLx*zKL_HhjAkKEOxFhsTb8xar^e?@Cy6}=S^>^H`Q-(0`@!n{T_dBW8VG& zIQsA7>Sd<;avff&!>e@oIUWA94!@+sFYE9tDqlf#e?_Mc>GUC;zFntp*Xaj!c!WpV zo#m0|XCV#gRBQd;*5c#}fB%8M#xSf4SUC@Q zy!b1@-CrO6aFf#$z};WE{~H1aOOaQGa1z4F2+I*pLEcn^(~zz}I2~!?gIe8@=^sud z)~dd}$#hG&uR7eHtL{&w6vDQB@x)L*nMu1dDWf%(kM)fVC7c34_Kpnh$fOETR4$Kl zotb>^@X$~un@{u?6o{nv#8SzAJk{$d2@`ylP1$6X`tHHzqIA z7f1V>gfh28^d_=Y8D|sWJ&7|-DSCow9}kDF=d+nqQC7IWzcsNZ87IN82fnCGYa;b` zlzE>@h}7|DBfQj3%xFzLiXP{(cE1ZAnV{bVWhUr%K^a%K z9K46C?9=Y*|w`2wfW9fc*0K<^W z$I^Lj+%zIt(x9FuOynj!mXZ#dqOGI|O+uG-chh7!DvIfpx($(qRkrQp#$2_Sax`#g z3__Ak0auAE-o`fEKz0$Rgq+^50xX_++n6Dz;*$l~2WH7cXVWbWV2`%HQ;3;Ley&)FQ zXR!K6q0ZQzBqn@@B+Qh6{JGoHB~=7#+HgE?mnuqbNoMoIu~ZQ@(v#Sk$R^TpEP*tQ z;|cJq7!&EvBx#|yixj6L;cPZGVrLhoq$3eLPyJ94VjY%eT9{j)%66f%m`9qE_SCZH zhiXpdJ7Pma$@DIIQbpR*!-E{NBav__8Ot%wi4i-@Gp^`XS6p+99~8bw3pNKhS(q}s z;4IAtd8&7KM^7xhi$y~fBqB0dlnx@TFm=*7GWwjDu#jtF_DP+#RATt;xXl{rie58> z%{rk)4AQqJ2}W1t?69O3ndS9f9ziTp{!iQzb}Z78;pNG0Y;B20wr3^w0% zV@}#lw#%5?3MtI&C03;49hjw)IGyi)nn|=57I%(~?8yv6*2m4_-nI;ol)yI9 zOS$H9B1;lcoGCp`rM6}<1;EB4+rh2`i`sj%YicQeJe6Flh|d}Ps}}8sAV=4T3c=VHlqy^8LTV?rm;5WQLh{C z*jB|EVq}QHV7m7AJ;^&R+h#+(Zn-FEa6H*4C@`i$V_}U?t(`j|!FGuvHrO<~3XCD! zYh`xa=j8Pq@BKEY!9EaUt7;hGJ72%abv(&bw23Y&?v=QUVh0ue~c;c2A z;%YD#&ty|jRGPx@&`@fOE2C@2hhSUlBGr*D*bOchfFyX|nAOV-R!?yOz``T(fmxNz z4P|n)M^GKZsXUs<MLKcYXGi^E}owH5<2>B1lc5^Z*MGry%&=OM8t7@kN zq|qrbPIk5Qm9%QgHgBEB$yRWl$|g))bJy6NhG9e-Ez+7Ao#H)>rc8@MHOWFw(WVFf z2KQs81*#~MPNeff8gbQ`f-V-={Ud|0n(SQ#DZtK9b1Xr0Nl#4i5Aw!H)QxQpSiglrJ2p4`!A9X39ux}BRJ6q!i6NB-g5%v%E z4uRQy86J9x>hgq(@6M49N>DBe+0mr-Q4(G>3yBGrf*~Oh!bl#WBt|9rG7@Jf4J%$Y zm>jqdp*xgmfLas`RYxgBwQ+>0DXh%Kqb|^Hq|)w#jgUT?E`q21aER)T>l8afb-a)K zr>yCmVkXJb48wd^GR?E9OQJfUO_`Wo=o6x1YN=ELKFtA@f;OZkc#dMe4Z}$15hN9- z;^aK#*dFauRe9U=>nC%oD_!hB1**V)p?PdniL5r*Unq&GC{J^p2oLAUrI^UGR@QkE zXA2z|<5<_}9PD{s7&pao19{f*(X`9{lT|TF#kARvIBnB)229Fyd?1@ilcy}Y!|{># zt7t#38;O2w=V$>*Fl*iANetX+l8*>hH}WJXT4C}9ZdxpT1^#;I_`%Gc1hkl&U05aH zs8_7zSSJ#*IHj57ZqaTnnul0tRg}j|_f2%KP9(+qkCqZSbhLMPaCnG^9r1i-h-L*n zKAbI5&hQRk+p`B}0n}SAW@Eb2R0Hqj)W$@ zNliGs(=z*!pjDi#=iR*Nlp-fkjb6u0cU58ub4BqwVc-c`m$r5L7 z7B^!$NW{2W*Jvs&4RYUk4mqrFa=B_Jmy_dE=c-DgT#$esLoE7?qEV)mlP#;wy#usK zC7jl{JbWmt<&u-K`*k;}bLlxZng>Hp1|U%}OK5!+?bri4Nxyy_n3Y0;Ry( zO<053K%&m)McQwzV*UNmvDhptj&U-mI67hKFh>Qt{5Uz9Jg97J+>0NB-ir(QlCSr9 zWWo~%9OnQIpbSz+c^0|Q;1C`6a52t9!}@rOcLWn0Yf&C%_Sk{YRZW;d^cB)@=5PY* z*%;D6he7J7AU8A7X$5Ns5#wA_n*%Z3cZjNdf2^|=6RQJY4YmPd3s7E-; zsBy{CRgFuQ&a=s~(^&h`Sp3Ft4&EGt)KMnUg=P}nd74Cx8ka&W~ zOQm+i;=5II0ydd0)|Q4xgdczz!!$WtPNGQrDzT4cpCvE2&SnQo@Ngm;h2tfiP@B`c z)0w?#+O&~&Aq!|jESVBpB|ZkJCoU7-h4pG@3jR@zWIZMq2nzH2TEZQ@o7%#yZ9OWQ zk7YrkislmR;g81UtPswUXpW|~IBCe3;~iUcfZTCp6u6J*^x0|e-ef*L&?hxg$90sK zHV4})P4N;SQ7VhQC>>IwVajk)l*jTWl<-pyVf>`5{rs3j2@3`@#e_C-!f)aZ5LRNE zMopB{uB*)!snygX&k5ti(<*T`SA~y)mN=v1gWNNRaBZ*{z6x7uh0(l>_LDtB1Vevo z91-oLD32FFLUY8)lVnG4w7aXPFS@z6t+j1KcyoK7!pKMAq~frr?Iaya8hC@^s9^hA zy1CTmR)np+EnOWQ;m+1bYc$fiCEOlqEkyRTwzh4FbZ+P>Mi-{H_7tXjT6_EGen>$B zTYFl%I{SLM+6&R)*4EB0^u$d|Yg_vm+!#bpE1HcCk$u3B4rpj)7FB{7K=(O}Sd$5h z(GazvXB2dooaQ?@h0D1qZ?N`qUYvnOX(Wr4l3C8j=8$+Q`228fg#F&euplAOa;GB( z!@VQXplmx~)E*JQrh%?c>81;C<50+L*)`e)!reHVi{Zd>$hjK;Tnl+y1g906WYYpO zm~&Yn8xwiqg`rQA#fqyVwl6sd$DJM_70n6{^tOr1z=vkgoL12@`EZK7_ShBm45!Vu zwBTXZk=R{mBtL3!P6YHwG?2QEif-7;pF6^Z^|&;&wq-ilYTZX*tI|2|1$e%Z^}p z*b_lC;b0gyDhOy-X^Pwltx3KofjeB=>r@&OixAlGvR8sm!g0k6T;XkTo;AEwk;&{H z9^$$&@>r+)d&u343t5R6j+-?ZhzyPNWmp@^&J+COYZlr7puWIt~mLFiYL~RCTvAHFu zLN~H>Rr=7`^qnf;+Y~yxI8D539@#JqUjwN#s+o&(L(mtLp95cZVU!YC=5+H2Tm^j@ z?HH8+`*y;@=b9Omn89ebN{-m5J<>uVQ^J-2Ur5nc1V}_^_2HH%K@ld65{6G>5X=B7 z!G;?b#hpNNkw6bKEy=i^W7k+vn@Mm@Tua1VLxd0Q@HEwpnw@qWCz?>`IMPfp7Gpl% zG!jimnj(%ck?2MQC*Wx$b;H%r1roXpX%reE`Jj`0R4&6+?jzaUisTBetVmtCZt_H6 z{7|`lTB94|n=0;xT#c}8>uR95a-^M#^*D2j`V5F@hWkx)1|?YS>608NEV)iVYs|PA zC?S%fMFVrgMv>ewTb(?EVG7Lg6RQe4;oehYV#lzEnLK?EZ`QG5G!^B36qPH$*?l!n zJ2#33_!LYW$fk-GXra6uBpMwnC^LmQUkT2>l>&csexNrogaaH>N1`w^!*znr!}-P$ zZpZ9O+v1KLPbLKug&Ab#7&a$@Op8$QtfbplDn~mX*#BI-YX^$KZD}5ZnT;$F-MpEh zx`BREh=|kmvw+gxzz8@Q$`nuPYe+n!b38$f$VYcL6WCN~lRFMUrb;?tCi5%p@-f-c z2EI|VNV{g6txlLsLlSF(Wbs5qpYUW3DwitaGC9NWoQm_9x#mz;nwLjgBE&W7N)||v zIa)CJMpQ`rCd$*6*F@RWpeS$mB!k~(b2>X-hN-83E_eF{8AXj3=6eEqnI#`lPXX#A36;CqP7st>?$Q`{Cf~zlSam|ql^6(6V zcH?kT+yN+Nk}L{tf?O0#RGaH@qFJV|Sx<7RI1TyMGn`606WfUqUaN$hp5aDA*l3Y7 zx7mfG+JQuTH`F4ofy3Q6q;G@4+X&VasT#e6jF*ukzK@q->Vf@<13c+NK|O^Tu6hbH z#;sf<3ri9sx?$q%#7VRsS9{^@$z*t6!sZGOn-O%n3eb;t1;#!%_8Br*pv)++mquz8 zI0|gTh;h#1s-;U?Sz4!JJ(P=+I=65@S&&%4PS#wca9b>LQa--_QgWvxDo% zMU(w(Qlf20aepQclb&;k(pIp>ozw;u8ir0~4yMW4b5$*bnMOH9`j;cF+Ke97>>Clsb8m~1S;KtJWm*eSdV%iV(gkM*)z_Zco5(ifyi`O;&seelU3mp~ z!xygKBvcgcI8#+LA^R|ya1aB19!4$7TEx^l87^do@6a)E`Y9c_>etl^nN+ELS5;cn zidR>n@NK*MrL0R^Nw)awUW z*27ucc4noBl_c3uwxiDO&g5{t8=ig#MY|Wx9ap1FqALv|Z2m~2?gp7AJ?Hq60&iy^ zgK3&|?3yE9F8Z2HFL~;w1J{K^}xC#~) zG6iTL`NS{6X0+62bf6<_@GuqJW0V}&s(P0v)j8$iLhc{u0T!FY&KOP$+_oBQRcEKv z`X2cOlonDsK80?&CZOrP+9P^3r_5cmq9n%MG5d6a$4k!^vFwoHawnP8xaBtDHofYmvKT>v~w ztBY$~yE__f#yJnB#)f19=l`qi>c?i83diJ_juh9fUtJ{X%(L)uF)`%VHdjcao4eb) z!mZ>^ubTir4!Qu<3hzHx!bi~hif?pJlHV;clTIr(J>{@b!L3+*U=XF-NnM-!a8Lwl zaZ{ez$@hQFMc|yGm=+wpfhv&X=nlF;VP+r|7Udbux-CGJ<2^6*!d~aCTPmpar0YEt zQkU$``g_W<)bbvg70};NJ6oRSwOUULJryP(e!|DbnI->774CWW4?j1y z?SehGoH1yRrE3~WU&g^}J;yoV3g)^Qs6^qd3ZoFU`CV{TO9)H6f>(9x&q6-@CnU3>9ICv(^=4nG(9y`5pwmMif#@hk$)I*(oJgNF!_oiSu z&=CwQCD;x6?h@Q#dy@R-63;=M*(Gz+QLS z{I=kBZx7vO!<}4=seVNcXOcsTfMigNFYHppl%_aaaPf?s$K=>2r4!wW*lvAJQ|Ro` zM>QQdJBs1J3p(3e8%#TgGIVGY>mSiMaejkaB-Y#jl=^p2AVU%5I5C{(3r0aNEs{%V5JlveBR5tIGG#D$MnA)UZN3#CjY7&a zId+C73ps{BJFCz)O%m#UzmkMQw>S*3V$pVw3%>U$Z|}=6DH!hs#sDM6z7+-66Wxp) zHv=<{CxY>_QBm@oZjq~d22Hm(Fs`_#q+c2$L`QCyold*d8=tn>;^5A)k$BSy{uQ^R z*jbo^_)>zniyh=RMA@0dhT?t@Zrq*-FPKDk^CZsw_SqJuOlCMsJ|q*vRDwjpr6;bTc{1b(&-z$l+@w#|ijpu$jbEfvMP+;dc@U*tfx{FXr|?#pRMe#o+N=!CgfJ zSNct+jsl4*{06C`K;jlZA@N7=8KRK|p4QHb2QHM|t}fzGq!A81t`eFor-*Ld zRiqH((5j2LNOoZ~Xg!IjgkR0h3sqkutY z+!!iUgaQV{y9?2bq)li7=j=Ug8v6ig$CC<5`vml(93qsa*N|E#!EH!3IIuqDc1sBv)*@dP$SXsMp<0=eS{_USrtIfIkZryO&JEJ`@eL}MUfkW#Nu z;IuAS-c+|Ha`9|(2&d6BY2l8NT>!2h#wBLnW&7P!2I z$xBP0WpY0$ae53NtLTqqxJ7C)1sF$65Z!*-H-@ElWrfHzDQsm`xTHuoINSeh~IYNzBfar0g5z zJsXL4=`RYfhX}V-iqa7p7ak&$;b7=(A7Zn8(W+mGwF3ie$M7yP|JpMg@SX{A)l&m< zV|a5G9YtK;3q}NQ;{tZJ2<#1S(2*_86p8e1q@YFe+asNAlx$#W zNgH49iZ?*82Jwlqoq6gM>^}O^5LF!R=wfvlaC&mC@#=;gI^#Vd~4Z+j{>1T zU3|^8v#pO(UEM8Ci%7JzN7_33lOg5xay7Vp%-^|CU;?o@#2<5yXo+W zZjWPTVsC}S#!RMPUO7{}1H*ZIOaspj=dcritl*YA#6Ulbosm=m{hgz!1fMX)yB`#Y&eIL%1Jsw7H52aL30#^ZZi2@v{nZgHUyQfKT zvau*hEv@J&IUaRVzG6_2VAUmsv9ZF@Y8T(E>e(7;cEwM2;$1F$myPF(ixE?bQ(c&U zB)PmFcA~aga!_ssoiMAVn-Kth&mU6kfhU{8FrE38%6Mj?4dOS8B{M?6!t0T4!UqHkI|w} zcWuBOehsxV<7PE%jAUv@W*=P$&;u=x>A@7O1)e%9mE`EQ?EzzOK8JhCri2z2NrKV&n3gT`Oq`A| z@=5w0gP_{>!A*|?RPj=ZelRlUM(V{>Q>M%7l&sZK+O{jl;U`eZog<gHKG8)-YX^O(9YP@DRHs;P488bzAPVVH-YH+@;YXWpjdoKiDp4BDg z8ZNLxt;mqXbqO8}T;apLXm)ne^=q-}B#m!l#`MQAaTcfxwGPXtH(;943rcqV?s+1Q zZ>_KE>d{Y8@8Dz64Qr&H(d;*pM>;c@Ic!Z!nkqHQNk4>KGR}2ME`YlbG7O@2as7$= zMYUitDr}sPM1V{^U6S2kJn>FU@J(xwBlfgTi><13inI%M8Uuaty0NHwgK8Ph(#1ey z-{Dz#Mr|&h0V_J+ZO2bx* z;g;-J?D&tPcyUpE+%~oj&X}MY=b`cVYp#<+v5X^0nqD4%bJXB8Q-C%_#~BH`jqwMH zwt%(~MZCw|VrN+)gj?Q*1y)C}ujw=MKVDKnC-oO=%1no}~S!Sa|g@wXSM!Pxd=4v#~>z=*mE0JX*6#9_7uI`%=g7f zo6>oyqSuvk{Cx=eVklRNJ!UpD#JTjw7ncvyD-byO!5qK?d3<*&Hy{)cxnxR6iaSKI zkfRgXHgq@%?%B6&aq@*lhtN1^g_np0%ADL%f)5Z_xMU&IH{Z}reSzEVuwHNNi*Ind znLBWOcssVM`Ge7pNN1F8llH}_yWwmi)}8F9_m>MX=r^%$Y=-Orxc>!JP)#tI%)R@9 zGvFLcD0KxEqLCk+lsxXeR4sBvjTa!LoZNFWRY*#5WGON^l8Tw@5A2*{B81Hw;l?vB zR6UwU4tiDu{alPM-akv|Z3m(pdB?jlTUQQM^lYiAby~?uP4&EQQ}+O33_5hjbt=O_|@mWXh-;DdbC$zk55;Xp>b)-;uV%y zDsE3>`sfpU9}o!{L2M#m@2F(Xyb(!Cf_MrkhKa2|m?U0QHpDS&$g%9sv+?+-P%jU- zLQL+R7zwi7yGiYqhhW$n1+HM$=P=v(YD`k!w}=&0L(~vix=WPYkj&y7-WFm)*(s4t zM%gV<%5^8--V3>^EvmApI{tbM6Fpuvn>t&YPw5Qfb76S%-W@}R>S=3l3-`8Blr9XK z?6#iXNLQx|)poLK?b_N&7YmiX8t7azw6p3|t9^6O$*xoQuw`c#Uergf(+aA@OZh#` zr%>bFU6=!HJ<;CH-SqJRI~{ImY3uC;nH$=A+B#d>>;eu(7und>*W1>&VRL6oRAaci zs64tg(zmH2+9R>W1?3TX^J zzTZt+2`@MB-h`G7+CY%VW5+~aA1<)h`PU66_mvugv$=a`XR=<73?c<$8xUyO&os4W>eBM-_JL%i3sH3q8pJQv95GmDmDZY zR^EK04iA$zj!F&bFOrKhn4ZREGyX=oV5pWt44;#?!-Gwq{dbi_N`3@D!I+HY=&lak zDA_Qa<|}p0+$C6^yU5vTu=W?>_0=9SQqd&5(cCXMzsbQvWNpr~$61*W@AiG2le zc#ZL{01Ota%Oa878bXpfyWqVVY?_N60i|e0Gqa7>lsrGl-;Q!6(?@ zL$X(AT7^9QTRAkSAf2iJ1NwR6Og3XiKHof;$PeI5k-kjBpT$b-Q{V_BThSI$zUMS( zcwv9Y$n{Y=?eS7WaIsMLcM-`Tvt$@)U*6W-~(w>s$iGF9w zT*oCu97oH@Lq|wuQ^_1;oMx5@dHmDxp@U^b2Er9yH8kZ1?of|Qf@=Ot8)DZcQcd|84yH!XX`H}a)cQ2%~&lGm7?5{-4 zFixUOHgpuZfOGl-%~{=1Qw2tF5UN$*S|Qe9@OR*qIrcB?a9-GtV*{@617+s*MLef} z14GmRlqgM65_;-_PEv(h??^GbUADIE)FA!9Kzt+>m#_b3@&gdA5jEz$6jBLTv&l2a zw@$ehF<@vkv?9%&rTRtH)RMlbQ#)9t4?ymQAXqeCh6<)ho)7XcFX&8|H~pBWJQ6Vb z=!-O1;aK7l_E-Oj0+k_a}r3HuX@yqCu zIl=@b^a@LaOPRe{QI0#t-V)T;YE-sgb0ll#d)82*Gxla}dYBkAObP&g6TFUKUq^!e z#R^H+2EcH7gMqohH>`$8oggdio~ckD;Dcf9=7X*$9e|r<--J>D3WKI&=5G0 zU*@^?{9$Lh6CK0UCg+!Y=+5z1+19U+3{K~r8E2*$={boDv*8CDjNz-%;7=So4Qf|L zSTvR@+<^!kav(9JjVGuh$Brq|b9yLgA?RauzX7&WVs9q9+tGA5Dy;xpP}|+>5=g= zhDPuy?Ex2IrZR|9KZJkmGc-mda-c3|F5ZqUr8zS;qc54qZ<&qhmbrXa&}Yr0-UR$A zbj8s`dhoN9Ij0Uc8a5t0zr*<~zcC}%|J(7d@h}WI*Ax7MXw~MyYIt@Bllp~YgLH7N z=QJhs32eIV$IBeE0-_b$$1xXS+8kr{<32!=?rA!eZIGF(zqALV9GYj7+$ZF3{+l=^ z5d^F+qtkq~-dy_DEzpe6d&G@6twf40ENTplLHOJN;j^QAlyHjEM|xFjW|*!hAOmhV zeXpAW6zk=3;p{G4g-Yig(-)O%i<##jl40^5;mv2+%5el$(EU-kbf79bC3CxR!6$+H{rt0|J^2*5%wXP|4^6ekM#L+&2?H&$j$|6s zOX3*GOuFCTQ~3IrM#yCoSZ8o!@o(ng2Hp_sdCqa&%A_)kgENJP%i)FL4s7eLo%*eE z^F89#*lX>fC5(Pikyyx*(VDB4O_`Z+#S*6)Z;ls^TUj5GJ?Rt60RnJ#M@R;ami#Tu>Ix2y*L zHPlw&cAZ>D+>}VclF6AQztXFvgn9~o@>cGYL`-f5cVMX)kWD%`%n@NQM}@y*+N(o* z=Cei)$!+~f+^lWJ#eTlRG+~A;f_moDM*&n@I-cn#Int{M*%|QHpc{P|3YiIdH`^W? z!E)(TF6k3tro!C{KH)_~SdB2U_%v*5ENMRIPI?2^bmW_S?$0UcFBTGev~O0w4c8_w z;VDUiY@Eu#>V)HyUYOnmzX}>{#r5n2cD1gSDB6Y1x$9LneRzfG- zZhe^zFsym^hJ}K^PDt5iqTm`9|JrTXrG+-9u>pbl6JI}ZPi|8~Ep5R|kcz!mBAhG?_JKgMSV7aTy-`M27Qz-wMRwsE_=%Pnt`J4|3ORJQDTi;anc3foeUYOR zK&WVI+@W)Bx;go9o`4&0=#dEG^1A*V7UlwUG>1^XP>-Ub@pB+rN$bb>QW>&YKlf#{ z)`kS2J-)-}w56v|YchtOz`ToNzVHtoG29xZ+6?p(wv}2i6WJQ*)l`a5;20VB+n3oGwR-K4 z6tBf~9I3~3FQ=s!gbj^B7!QZuTuCW27Hmq6MTs40p3nrDBsU`oDJQNabODPORwzu# z)ikTQpJO_RlP|Ue@I!@mcW`Hiof0CW3OwRX!1xv5j7%zMa4Kk2t06~@xUR()@@tS? z7p0%CAY0T}kIq76|8kT45l>LQ+PneItAm(4`u7yqR`V!MT%GwAD5}9{2EYN+rt87wI~ZF7t(Ky8;B8AYvCe^B+=3$Bgkx%wTJQ=NR%iA*K~a*&d{|MJp_dY9(e? z9Cp--=AwSl$F%f{E(Rj04SMU9YS%t#y#T=UvKJmVL z{9rvVH}vAvKDq=7wMN8hg$fs&y%&MEihn{FVzeei(iv7zJ%yvJ07DeUGpB-lDmbNLSh+0dP^%f=q{GFs*6Pm!(D) zrDP8K5jH|ZVe@XiHJQc7^IP2=O8N(_CwDZUgt{{mjl6WMEis8Lg zXYs?8igM$?4Wnvm2v>qQoR1&&i>okd!U+ zgZw1?u?SO)6&8UFA;T^;CxR#UaET=If?C^!J`SR$G-^^I!Q_-$EbXmCyR~X1Xsko) zl&Z5+)kxI?tIl4a)~VHKo4A}+Yt=T?z8JKw1Klg}N4fBuqYWp|$)SG73v#xBtLCZV z+;veTbM*1?yeK{9c>czRB2>l%W;{x4OKNvG&ld%Au zprKu)o5Sbibd#pMY1nkB_z7IpE_$Mn1;yp@>G`7agk^wBkFC5C;4wENHy9iPn7fpX@VUHX=bm)JnTa|S>{?l($Zcfeu$IQR#NT6 zA3a5JqDp4lx%^y`XQj-zbD;rL{X|bW8i!^WX#}GkRBfBW!4%pbvfCgnMWxz6R~D^e zr{tnhdDNU1rX|g@l9a1x7^7S(m72U0EhJh0^eeTz6>%H@7Cq%IQ;D8ZOQh9AMWdGa zOOQ4iI$={I+8Q^_kV_m?%lq&QX}DpuL7I`IK^6k(3GtWun1pUis54P60iCJvp5uEz zCyNJ-!U$w;{8~I+#Es&$!;EMpRu>#(W5jW=0m|m<5uVQ)-{COzgY@XR%5&O#*B53! zkRtjo)E(&sUvO%R@!f^zWi_JFBR-_SHPZIPS2G&938?p+G#-_Exo%os{|mI05mhv* z`;?j)K^#Z*peW5F*Uck}899?mjhi#gtYV!gOY4;i897j0|7gF>lO)^5lyJt*Jl+8G`+^!gOwm2$LpAw zp2=id(G+Hr$9slS3;S#_7&~Ah24pbJfq*UmW5cQk>u3aOJgV@5DyUef)GF#(n!8F$ zlj_I!BrqtXl*q^vrRB8b5;!l+w6fE*@;F_o)6Il1O9rV*^Q2iM2nXLFFB)XdNV<#D zWR_8y>M=c~=Nf=lZH1J&r}Z9ilPu_AJeR`rZXt7qnbeynK5;F@LS=-;E!u^(xtAlC zvWykB;i%pJwiZSTTZmzlX_HV~f8n&K)RTw|f0+PAq5cE>%Z=aiL{s&@rOlaLkk73c zVcPN}+$!S8aj{cGX_HzaX;$^dfLQ=FC7UH@v`F4sFgN;m*%lKU^CI$o&oo2U$kLUX zj3m2jB56iVNB5%c9-em_VdP1@z-u$E61efHYDev)^2q3W-&SUBMJ?mD6T-S9U9;`h+}FY^^$jm3I%|DcGOvfLLuqMT-GXgZNN<5klIp zQiW?_7p?PFzolBvz=AKK2pgyw~yTAg?Xi+Q2AkF96o!FAP@I77EuJlsV2UiL7!c~U$QX1s**u_HzN znyWn1h!$t5&cgDeK4WV6@NN}S_yh-qAqng3SiK!n}pD_GPstlj8 zF>$opg@3??`cOj$Q4qq9Eeb86c2})Vyxpl4b=l7yW1frR`A$#~b@GljrO05~fE+4& z3feN}mO9#*t!^_x?Gh74tZ1Vi=VSVtx$Q1Zc4t4-35{nOR;V$=hESStV)9k8G9qZ| zfH~9XEWGX15EMNr=!)VmuPTHM^bd1F5QS3C~1m>X)T9$JLqg}_op zUP|&?(oTYQD6|V8&Q=17w}JK++6lXK14_yMg-TG_6zbiJIJt18Cj0~`V#GJKxCQx1 zGkKD{Me~ zJ7gG%iC{|8=8AkrG)A=Vq|qEZZ^+~$Uzf9CFwdLO(gx1x1ONXMOM5c1LP&Il6++zD zPB`U^-Nch{_j~t&_6{^19JS(hFZ^T7SEG-(ZLS%eHI`|Gr3x4~`knvT z&Wsh*G?awno)F%Xvz3&OjM7A7U-;zz(Qc48RERUq0%tZk&H^(kq!MCN(|7wvhes0pIyP#D`8^gM&`bW;}$Q`v8&*KIxTVmB(E~;U-iKR-X zY_#cA(?w$1kQQHlRH<+nRFIY7_}z?TRY9kllFs^_L0xe?K{gT{oO+f@t%ap)FrYMP zR;rU>35aiA`?ROXWHOE^HASAM?I^89YQJsBhasx?b_5#AgR%YCf|xDM26Py&Qv)yC z5@!QN8yj;RNb9>Sbo4B3U&b#denGrR^q!?QfI#XtEr0J-8_~A&eM|MC6y6gWx2}a? z*g5!XM~iW+5F|*HZUaB)Xohysh54IMlDM%D95P3!g=`gy>6n!cLb3HaUhEuNf!zKA zGX4y|RT<4p;l1+if;lHcXB@W_k_W~d?NUfSLkb%aDlgpky&?wt?2>dq?4;=2&`HtZ znUkW!GbcrdXOdFhlkIv>E~wW@QN2!z>UC07ualyBC8bu0c}yIaBX9B4i64WEd*{G} z>^w)!Vj8R~)K20xCL^Dm`G$*yb+~Kr;Hc4fOVm1=x^&bo$1skm>^_+5XBy4M#d#VE zWLojeQDx4IA)C^f7plyWel^)GxZ*$k!GKxR9wW6%o-AW zQajEL)-AkdU};xLrQFtq*zkqgp%b-f?G4!OS zXn(j((Jq!w%IPY_PW;=3-K%@$Q}tu(df#U{#y<03Z66+<#<8`%9|d@7$~O3R@D4h- zK-QUBHJ0yg&XN
3ZAkdmSmoW{&kRmc;k)VL!&hZLSO?xcXkg=>zK)HJeKYVnWk z7W$_`24nKXo^j`))a({sENMh(Z@vW~E!a}KI0?U$!Duh zEL7jc`{N9(=MUjY+P#`P4#j(8`wmr$EUja2Y>*-+yHdOrX8fpU&XsyvB>)r*L^z-qYYf=)+=6c33|x$Wz?zgaufj;m2Lr2_A{H z>fVeJ9fb~cRp#WY#WaF)LT_}5@Y?7C$BC~R!#sY*^-tSgx}T8(^-1{5X(1~-K%fQK zb8hj7IA_tc6>$7Mj_amSKkbF4kb5U)7SM>0L1m=eY`|%e7SDv-3W2vs&YqnUS~|rr zrxLV^(;+;9w_2diK0I+}og-5-V#799CmONwN)(Tnn*_J~ zzyGMYJ1;9d(LroMSCrcQm(*+T-t(pKm1p;S=dr5v2UYN{v$k!S+3@nk{v#`DJ<}C} zMhTh_1dgoOKMP?HVWp>H|3k+}LjQ-K4>cGniM}pEk!^=JHief zQudBMhbVE5PMl-;gOJo(kfx)Vl!T0##b# zpLXD7E{M=qsR%A$h^kSk^2`VVcxL#NRnE~FIW;8v! z97ISIR8%Ao1!aWf2r5Ptlut{RqF?2uh?Y-FB3fFGXz8>h=Sh5!;)A6nU7^w7mX8VFbc@SFukk?;vrq@4h zyVpP47a(NC0mLhY@i&6Mb1{ww&jA?S4{%@~CC|6~Rw?R11|>j(MRfybRUF6%r(y)B zRh9-rp^9xm`fnCtrdEc6P+sZ7)IAhJp>j;2$xadt@u2EVCxfUct1K~(g{IoH z>q@4$5vXR8O&tmpl%}dC+XN#wL=&IrDb?+P=t-4+Mlt>1jc%A(F{LtS@|Y1p5<_C# zBu!w5m{4jG6@8F0^8hG=dO>NZ7lLSc)(jb$r$BPW=miy{PgRUwJWFsFK>8O#Q~*$Z zA*84rA~^aYsi@HxsSEvojlNhyOG1feKyQsp~_4Q~(|K)nYuA`mFA*soAq z2%4)zc|uIw49E&NHiHV5yp1l0u#}Bn3NqiI29#9zHh6d>{w9}JDwAEhz>ezX_8-Aq zSD5$vubiyB7J{jm2Ow>dPO%C>Ur^#3vxDX6BuAz)9^J$mcI7PnXvM)h>Cwqt=t@jl zN`ElH>-T=bOp^Z9SRi7rYa9o53WFryYeZk95D<7t&m(Wh}9eefqpP$78BssAlC24`@7J{X^IxLek;`^5{oGWM;1k?Z&+Wxs^OrBT} z!(ZoT?YLYB&jBNnB;saB;%JmFa=!(f~kcwA8lF)CM6Y^~P|8DR6W8^r?J3c%6 zV`leu=XU4L@j1+zC33)~jyVS#l9Z5h;v-I#27?b|B&U$X2WRE%7~)V;&UAM+K&Xrw zS|bHDZA}#J!-{+m#J^KnO0xBV` zJ@?G>{+Rd2^SL71%ASmRa9Y>2iGt-k=#p3J z)=eZ2$sjK7fObf_9g2sFnf6u^ZP#qaW$nhq%qN;Slnu$QWxJxKarZBqT8(k98@UPz8G_^Tw1`ICNpCcJ4^ifggybf#i7;!lW)_Z~mxdCZLO*T?iMEa6V zH5-b^7Jwr;`34E6S0$V#VbIc-T%~Ned9z-M28pk%Nql9Hn3gV0OiOSMO+f@pCJX|f zgj`KWV)8OI;_BtF!gN!lX&2gbfO*hO_3>@4Z*R*MC9A{ArZD6T28N+9WDXpm0HLlg z6cU|{=UWi|qKHh^I1js>7xS5~cm-d>%PgJOju^QI#i~U6?0#N%rPvIZ(PV&26kYDB z4U|$%H0aOh!77tEEh*BH5#W?uW<(8Dw_|czK*hae6R7tRk>s>K_xBsu*~Q3CRka@& zrtOLa(+QBWbeE);!X|85q#Y0_PCST_vI8kW90L;zx1xH&R4;s$k_o~esFj7YVtbE^ z>Hed0VjF6-xe@8N%cb$i|F1{mjla4>%);m!O2TF$>h(7}X5gyHD80HGMY(EFje}B%1Yh=~x+Ax6a|l)hr_6JM zedQsH21w5cHbrIA9nLmhsCrl#geZo1p3$~YLmO?r!4!n<*C0;%h_uHkY#rbW#sv-b z_Zu5$7pTVbHhyr_bTR91MBXuvMt2`)zNHH`to;r*0?{B-U(!&zs2ZZgr~V|0=cUdg zi;*#&(@q7E7UKP5E^-boydeIc2#NQjlIa`^l^xMX=)#L2bi8+%K&TgbJvF(}3>RDI6sMa!5fBeJbTXUiRsnl!q!qxcEml?v4{1DBGv4W)VqyJWvo3%#BM=?3$s`8szojk?Jk{G9_ ze3V5n>OgEJ0mXP2%-a(A&1&4K4HB}v!y3+_HWxzhunzll$6+)-!^#7!GQffXCIYx8sspSx!0H36!5E2bSZ9WhBtDX>MaJDH z!CeLfaFlH^$LHycl;SCyU2svN0-2bYN_9`U$7M|#FGQY3G7F4{El&oXEJ*TrIPPiW zhcRp-79KB;m!qttY%;OixFo{kmDb=v&BLj19CqdAa!4D=2NAEhhtAhqda7-tb3vcQT9L2owX|(BwE8_>!UrMw~S5DJx-g{MmVCokB7a%&OUNw z$o)t%28N3l1cX&Qg~K5X`F6}U#VyY zijA1$`E5-#LfBv`lwYWr)cNh=W`eL$jsoDb=Uk?9mUfP;Os_(rOr~ zbWp(~0xJSnV7x4C75J&Zs{*gbo?6;3a7LhmFjsn=!0!m`6u3d)0fE04csc;IB*YyP z_>RB@fwyf2oDwMEM^IW2n0_PRWq}`V1w7ADVrc~juF`3KnpArDIzadBfQ1_Y2X+Hq zeH8<5&GWGq)jhw#Nf^SW=QrV(=(?@+JEhJH*`@_%1U!k~1p!~6C{Pk83seLGfl#0- zP!nhhbOc@}FfFiMU`AlCfcFysRerY=cwkileuROr0#gDT1TGhNjQ}z?T@di7u7r?HP@pKFCX_hEp+N$H0GkP|5~vA`3DgA|0!(yT zCD0UT3B&>u0+Ryk1TGU;FEAyrLEv(M*9as6ZGjnqT>>`>+$6ADU{>HA0yhin5x7NQ zufV$m-Yu|CU{2sY0$$hinwK)S`fAUo&Mh23{~~v!$%`{MzoFz}2ce5yjplw6zC`g_ zS0YWDA4uMQmL(JMr-6;T7ns!~ph}Y>mf|oN6Id}MC(KAprF#KYERkXQ z=peNO`9TMs9)L~eKtM8)iSY*+I5Q4##<7Ys7JtU#&!8(KxJfsZULf`Z{_-I9XM{kodNO?cDcP2uinD!)y-l*De` z=V*J}|5&wyL~rM(=y8TA2HPtqs){kJQ*v3@#D$Op6*S9Xm=40iQ1OE&4O4ur7K+Hq zE+Ie&+}uvv2@7Em5}so`q)Q5uYFVp6cJe2BoPebgY=@0bn6*%aD&$(D5M^0Ntt?rt z_y7lZU}lFv$>jWRRj4hMC`43Q;RHFJM_n2QWRFF8u%^2VDoJ4%QmX6kFjZj}im1m< zt6k8l$i2ItNaeX!&%-2&P%_xL9K(~-YButk(G>cYNx{h+u7|GY_?}#|H*rmR06nL$`>jbV4 zU@_Sf0 zxAjRKPFp1e&V1D~s(~eJDAtYYDld(CKIbWl!!9q*TE2uN7e-RTL2zPmNY#)MQi}#C zJta=wKS7Ong&+yiOk54*A%a3-L9s*yQ4>hyneO)l{$1b&K>raYcEMQU!@^{1E#L(s z*A+GZ$M$^+p=ImAs*F5Bt99qJLV0bORCktTnngFI$G-DVg#fjnvRfWulYjb1{kp}OA3t;b7uL`G!M|?1`+;{|{lcC9b>zoO zD?fVQUwnSzKR)@-_3uw@2SUkboTvu`q*N4-=|)g zJMo_%{pp+jZ0EoH(^a=m?)~On*Ij+x-<Wtj@YNjwVJuL)zXw9Un$w+D@|?azW|`5o%=3UB*aLS8^HiEBhwu$cWMP7*4Z z&7-NXl~|eu&oVkRFR>K1OIgC;$;tAdL~VzY-xKyu?b_u4D;$WH1>FO4KGa84OEQ*h&m$n*k|Vi9+)d zgRq^KkVgiS;h;nc2q(i~i3(eZ;Vk-hmeHYkiLj15VesT+bx@)<&dKVqM1`%y>TI)0 zO4df9d5P7qUCk2m$Y8QID6yszYr_&1wi0Wz%^E3Li9+)dYhk;VCFGI8WPMO#T_x6s zB`Rzs)@Pe_QnC_-<|Wp{c0EhTBZJAtpu~nsYz#|O*h*~7HXEd5B?`?;WcoL% z!(o7Sfg$f&5!C}2=T}K<@Gmr}j#7dE3nTvmRGlbEk|@CFlILp3*|M(#T*`d1 z)%#KKhB*mG8NCzO#4nF1^Ng@CxG2U5j_{^_P1)hj{Ba zFHUB!cFgi?q4=TxUGnH|J~5rWN8UZW>QVLiFntQ6u>c!{T1!(<$=|T5?%jM);^!AJ z=%)1o?@HW09!KtgTwe!cOxi{Edrsbqu(ycatzCrWDAxQUixPj$KCZ1B=KmC9P)M47 zIe>*8XEc)pW*^^I56Wz3$KoxFWiJXUs0qhpw&-!`$+-6|aoZ%R21O+i9e|Pjctu6^ z9~uuBlJr;-AB-0iZUt<@7saSH6Ha>1z9twWZ`kTxh!4s}EC)-TiF?n+Z7UDAOw7!O z?+C7nKU}RTV@OU(24TDar{m6J@q+pmFR=F;sx4e?qV~g9mb@C%5B#FPQougoX!AXP zW3xu5y614VJ14SII<1jiXe=nsHm9)GaM5vaeDgd!0+{1A&o!ybE+q&w1mj}+mUFzM znH_4%Yus=&Q!m!Vtt*45DsM|_Q>A6ax$xQ0njojYaEz6-E^ZiJwn>Oy8TVdrSG`#% zZuFWPJ^e4&XwcKN73eND&$w55eXvgco(TN{cpUN%T45_g`sEy~dzKxR^-Sg^IvjVq zRl7Y<)$`p44W0;;@(^C7x}U7lIa-hR9)b%bV#XQq9%f!3jarR>^7u$j9*2TczH*R(^GYnb$PN-t z$vIV<8ZXfFskqlv%~VZ@G*yk{s_~Mq%z5xuplOO7QZtwG`({ZD@i^Z_Czfn6ZQ`8w zWVL`9MV}0mFTHu|aW~gF^#M1z36Jw~33+yE9&lqiO>jeaC8ar0(1Y^O8w&_$c$IVJ zR_|xT2HCyJByTS|+LCDhHYap)wkl*P+;2Fm&Pz@bIz> zcvY%Ux#+ph;=#v|^sZ62y=>EK#I*dHeelg?dn=*A%E;0m#;VZ6N-Q61Q z#xb@S1QX~Rq~UGLveuy;|Cn(MvO#z=c*S7dV8fu?;8}YH1Luhu(HAJAGkxnE$V9+z z6CfPjI+@2Ay_7{il;|zlgntBtED`%j?+IoZRwIIz^CXSa{MVd9Wk}jd$U2p4+KS21 zwh1|ZHowLe(vI4wOIM2C4?^E@Hh?y>%*~B19p7t>e!*7ScMA-oyF%hZBD=}aiNo=WH#~nNf7f^Q=91qmrSSF zRc)GUyGS=7P!cJ#WABVPNt*90+qiEj{ikcjr7Tuc2%k_v+kSfISsj>eW~k6s$4cCL zQRVekSW+^rP!Wcu6pqeb#0E|~KbN~I1gC$jKx8i3X@Zb>GvOzDo?LOdmDZ7Sb;foX)=Xt?knz1jq!;HoY5XMaoodjr zv;)d>AK-hq@3`1%$4zLjNK)5QF1OGz}f1^)VY-84`J#&T0a*(Nm zyMRQBa)`tORtrk(2k9}o#E>IbGDtm>6*r*tW5hyUqy>lyEU)A7@pcj)uLT_I;)Vn3 zkCAH0Vd=+PhY>T6=NnSGz+|?T%T0-kq83nGiXkmo+!!1Con9JcvEaMu_JV{&j^U2-?+RF4uud^2w8Ul3z4$+Dn+>+XHeO@&h)6jqc5h0Fp;b_Fk2{Ja7+gy5BBgw4T z!WLzB04bsrXUGVHFDL^l097Q#*>anQ}0d@!FaF^winAk2) z1oD#+=8}ZLx-1CBX^2UbA-^Nh=JPlg!UqZqK`FmQejLZrDWi8gP!d)V2n4DEHG#T7 z12v}ZO(oMoJ#qH0q4_H}bp5Z^FZY1VTSMzsZpV_LYmITsJ)q7FjaRvuibz)4 zCAKT~fQ(Z^+f;6alErF`Y05ny+tbkWlpC33kXmDTau3L~G_)+`HY6FD))v#^@yUX(AgOiVp7z+D~NN&b2 zMqx@VH)-Oy2?}v4TMdUv=vwF!rld+5T9$nRfkHQer_1u>osvN)p2q>Cz52sVeD(1* zeT{lxZQ{pmta@n*?c}P0w^_nmo@twX8J16uZNB0|S8P4P#}&7%wrpW;`?kpsC$MbD z*^-l#DB-7=xp=c0fkUMQ+q;*s+?V0%pAnCOhe=XOKWmyv`dOTBh_kleZYF_eOqECw zgHX&bM2X7bAOl>_5ksf(`ndpwdaxJXSM2HAg>RT)}y|x z2z|36^w}D9Sxi%ER=?>kiRDGsi=)Gkh|wwS1Pf`fOgZtj5MEFFaFTQ}$GfmQ;0 zEoXppP^c~gP*orh;Ae~c!aSN}51QA8+^Azrsgz6ntYyxu2R}?;f_P8EqiZU+zk`Zx zt0c0pHG0J*GJ z?0E~wA)-ltCNbI29g#|jl$5*>BItsJkrf2Cm93t_m1-Bi>_ri_RQZ%5Hj-O^(vK_5 z)Tl}0idFrlhkFv=5x1?r1uT?|AC^c4V&Q5uDcW*?M>iuK9dLpt0w{EZ7Mz?*Iv9kt zAGRd0()`^VFuRNSKz6MKZZa!r5atO=Q?lTh7&*66m$O}-FL+zF-8MTn_(=NJ>?`5de{{#T>8&ViALQG%*Wa{wh)>8Byt!y{ zkW*ipT)g9cDR!?_5uHIwXGh09AcarQi~rm>f7jg$_k8e!on7}GyT^U2ymRy6JNI<1 zp5D&OkJ<%q>gQ$gyn2E6YyaV)BRB1ubAdN++rDjj+qCChUhvjsDILB^*BO5A4wI~o zxB}ojzHpfBLo?fNl>L6rzf2#DyKU7s82M;0A3`p4|7u&I`#|=Q$^66P+lF5rzjyG7 z@?qTI^LSf3hwr`Xo{uaZx^rtMCnR*#|E-+gK)TkqI;*UqPougQSK|Ea(DB#AE8iae_Ma_!&kxmM@Eydy*W1U(qTcK2 zD|Px<);oE5wEObrJHYkt$Jo8rtbA|9}aQmlNOa~YJ+fArIsd}4=-lDEg zm*{6mdgZD9ZL+fFNY(pc?}}lj+Fkv- z^d;3QO)pMXox|RAyqgK%X(OOA)vmlByD3SZb=KD+hi|D@*_XbM`WLlxTEF%flzH(l zxm4B;UQMdkOK!zOP=+Cu*Fq9ySVP*r!n*`&PB@m01k5nzO$egFzZQC z`6#qeFFxcgK!IPLHXUACKFtfWv2F1h-iyn3vqUfF6aW*22z=#4P3XCW)qQHm(BMOWtFrvVS0wW6ic2VF|(bH>G w9@_rf)$CDgM-&)QU_^lt1x6GYQD8)Y5d}sR7*SwEfe{5p6c|z9|4xDb0pn3}VgLXD literal 0 HcmV?d00001 diff --git a/ExtLibs/AdsApi/TcAdsWcf/v4.0.30319/TwinCAT.Ads.xml b/ExtLibs/AdsApi/TcAdsWcf/v4.0.30319/TwinCAT.Ads.xml new file mode 100644 index 00000000..63671078 --- /dev/null +++ b/ExtLibs/AdsApi/TcAdsWcf/v4.0.30319/TwinCAT.Ads.xml @@ -0,0 +1,7500 @@ + + + + TwinCAT.Ads + + + + + Base class for all exceptions thrown by this class. + + + + + Initializes a new Instance of the AdsException class. + + + + + Initializes a new Instance of the AdsException class. + + + + + Initializes a new Instance of the AdsException class. + + + + + The exception that is thrown when a ADS datatype is not supported. + + + + + Initiailizes a new Instance of the AdsDatatypeNotSupportedException class. + + + + + Initiailizes a new Instance of the AdsDatatypeNotSupportedException class. + + + + + Initiailizes a new Instance of the AdsDatatypeNotSupportedException class. + + + + + This AdsInvalidNotificationException is created if the length of the notification data is 0. + This indicates that the notification handle is not valid any more. This exception is passed + to the AdsNotificationErrorEvent. + + + + + Initializes the class AdsInvalidNotificationException. + + + + + Handle of the notification. + + + + + Timestamp. + + + + + The exception that is thrown when a Ads error occurs. + + + + + Initializes a new Instance of the AdsErrorException class. + + + + + Initializes a new Instance of the AdsErrorException class. + + + + + Gets the error code of the Exception. + + + + + Converter class for the PLCOpen TOD (TimeOfDay) Data type. + + + + + Converter class for the PLC Open TIME Data Type + + + + + Converter class base for PLCOpen DT and DATE types. + + + + + Converter class for PlcOPen DATE data type + + + + + Derives from BinaryReader and reads primitive as well as PLC data types as binary values. + + + + + Initializes a new instance of the AdsBinaryReader class based on the supplied stream. + + A stream. + + + + Reads a PLC string from the current stream. + + The length of the string in the PLC. + The string being read. + + + + Reads a PLC Date type from the current stream. + + The date being read. + + + + Reads a PLC Time type from the current stream. + + The time being read. + + + + Derives from BinaryWriter and writes primitive and PLC data types in binary to a stream. + + + + + Initializes a new instance of the AdsBinaryWriter class based on the supplied stream. + + + + + + Writes a string as a PLC string to the current stream. + + The string to write to the stream. + The length of the string in the PLC. + + + + Writes a date as PLC date type to the current stream. + + The date to write to the stream. + + + + Writes a time span as PLC time type to the current stream. + + The time span to write to the stream. + + + + The class AdsStream is a stream class used for Ads communication. + + + + + Initializes a new instance of the AdsStream class. The instance has an expandable capacity initialized to zero. + + + + + Initializes a new instance of the AdsStream class. + + Length of the stream in bytes. + + + + Initializes a new instance of the AdsStream class, based on the specified region of a byte array. + + The array of bytes from which to create this stream. + The offset in buffer at which the stream begins. + The length of the stream in bytes. + + + + Initializes a new instance of the AdsStream class, based on a byte array. + + The array of bytes from which to create this stream. + + + + This class implements an ADS Stamp Header containing multiple ADS Notification Samples. + + + + + Creates a new TcAdsStampHeader instance. + + The time stamp of this header in ns since 01/01/1601 + The number of notification samples contained in this header + + + + Get or set the time stamp of this header. + + + + + Get the number of notification samples contained in this header. + + + + + Get the array of notification samples contained in this header. + + + + + This class implements an ADS Notification Sample. It contains the notification handle and + the variable data. + + + + + Creates a new TcAdsNotificationSample instance. + + The size of the samples in bytes + + + + Creates a new TcAdsNotificationSample instance. + + The size of the samples in bytes + The notification handle of this sample + + + + Gets or sets the notification handle. + + + + + Gets the size of this sample in bytes. + + + + + Gets the variable data buffer + + + + + This class implements an ADS server. Derived classes should overwrite the indication methods + to react on incoming requests. The confirmation methods should be overwritten to receive + replies on ansychronous requests sent by this ADS server. + + + + + Create a new TcAdsServer instance with a fix ADS port number. + + The ADS server port for this server + A string describing this ADS server + + + + Create a new TcAdsServer instance with an ADS port number asigned by the local ADS router. + + A string describing this ADS server + + + + Create a new TcAdsServer instance with an ADS port number asigned by the local ADS router. + Optional the TcAdsServer can be configured to use the overloaded TcAdsDeviceNotification-method to implement an own notification-parser. + + The ADS server poert for this server. + A string descriving this ADS server. + Enables the overloaded TcAdsDeviceNotification-Method to implement an own notification-parser. + + + + Connect this ADS server to the local ADS router. + Thrown if the connect call fails. + + + + + Disconnects this ADS server from the local ADS router. + Thrown if the disconnect call fails. + + + + + Sends an ADS Read Device Info request. + + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The ADS error code for this call. + + + + Sends an ADS Read Request. + + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The index group of the requested ADS service + The index group of the requested ADS service + The number of bytes to be read + The ADS error code for this call. + + + + Sends an ADS Write request. + + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The index group of the requested ADS service + The index group of the requested ADS service + The number of bytes to be written + The data to be written + The ADS error code for this call. + + + + Sends an ADS Read State request. + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The ADS error code for this call. + + + + + Sends an ADS Write Control request. + + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The requested new ADS state of the receiver + The requested new ADS state of the receiver + The length of the additional data buffer + An additional data buffer of cbLength bytes + The ADS error code for this call. + + + + Sends an ADS Add Device Notification request. + + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The index group of the requested ADS service + The index group of the requested ADS service + The number of bytes to be transmitted + The transmission mode of the notification (cyclic / on change) + The receiver should send the notification at least after maxDelay ms + The receiver shouldc check every cycleTime ms if the requested variable has changed + The ADS error code for this call. + + + + Sends an ADS Delete Device Notification request. + + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The notifocation ID to be deleted + The ADS error code for this call. + + + + Sends an ADS Device Notification request. + + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The number of ADS Stamp Headers to be sent + The array of ADS Stamp Headers to be sent + The ADS error code for this call. + + + + Sends an ADS Read Write request. + + The receiver's AMS address + The invokeId for this call. Used to find the matching ADS Confirmation + The index group of the requested ADS service + The index group of the requested ADS service + The number of bytes to be read + The number of bytes to be written + The data to be written + The ADS error code for this call. + + + + Called when an ADS Read Device Info confirmation is received. + Overwrite this method in derived classes to react on ADS Read Device Info confirmations. + + The sender's AMS address + The invoke id provided by this server during the corresponding request + The ADS error code provided by the sender + The sender's name + The sender's version + + + + Called when an ADS Read confirmation is received. + Overwrite this method in derived classes to react on ADS Read confirmations. + + The sender's AMS address + The invoke id provided by this server during the corresponding request + The ADS error code provided by the sender + The number of read bytes + The read data buffer + + + + Called when an ADS Write confirmation is received. + Overwrite this method in derived classes to react on ADS Write confirmations. + + The sender's AMS address + The invoke id provided by this server during the corresponding request + The ADS error code provided by the sender + + + + Called when an ADS Read State confirmation is received. + Overwrite this method in derived classes to react on ADS Read State confirmations. + + The sender's AMS address + The invoke id provided by this server during the corresponding request + The ADS error code provided by the sender + The ADS state of the sender + The device state of the sender + + + + Called when an ADS Write Control confirmation is received. + Overwrite this method in derived classes to react on ADS Write Control confirmations. + + The sender's AMS address + The invoke id provided by this server during the corresponding request + The ADS error code provided by the sender + + + + Called when an ADS Add Device Notification confirmation is received. + Overwrite this method in derived classes to react on ADS Add Device Notification confirmations. + + The sender's AMS address + The invoke id provided by this server during the corresponding request + The ADS error code provided by the sender + The notification handle provided by the sender + + + + Called when an ADS Delete Device Notification confirmation is received. + Overwrite this method in derived classes to react on ADS Delete Device Notification confirmations. + + The sender's AMS address + The invoke id provided by this server during the corresponding request + The ADS error code provided by the sender + + + + Called when an ADS Read Write confirmation is received. + Overwrite this method in derived classes to react on ADS Read Write confirmations. + + The sender's AMS address + The invoke id provided by this server during the corresponding request + The ADS error code provided by the sender + The number of read bytes + The read data buffer + + + + Sends an ADS Read Device Info response. + + The receiver's AMS address + The invoke ID provided by the receiver + The ADS error code for the response + The name of this ADS server + The version of this ADS server + The ADS error code for this call. + + + + Sends an ADS Read response. + + The receiver's AMS address + The invoke ID provided by the receiver + The ADS error code for the response + The number of read bytes + The read data buffer + The ADS error code for this call. + + + + Sends an ADS Write response. + + The receiver's AMS address + The invoke ID provided by the receiver + The ADS error code for the response + The ADS error code for this call. + + + + Sends an ADS Read State response. + + The receiver's AMS address + The invoke ID provided by the receiver + The ADS error code for the response + The current ADS state of this ADS server + The device state of this ADS server + The ADS error code for this call. + + + + Sends an ADS Write Control response. + + The receiver's AMS address + The invoke ID provided by the receiver + The ADS error code for the response + The ADS error code for this call. + + + + Sends an ADS Add Device Notification response. + + The receiver's AMS address + The invoke ID provided by the receiver + The ADS error code for the response + The notification handle for the added notification + The ADS error code for this call. + + + + Sends an ADS Delete Device Notification response. + + The receiver's AMS address + The invoke ID provided by the receiver + The ADS error code for the response + The ADS error code for this call. + + + + Sends an ADS Read Write Response. + + The receiver's AMS address + The invoke ID provided by the receiver + The ADS error code for the response + The number of read bytes + The read data buffer + The ADS error code for this call. + + + + Called when an ADS Read Device Info indication is received. + Overwrite this method in derived classes to react on ADS Read Device Info indications. + The default implementation replies with an ADS ServiceNotSupported error code (0x701). + + The sender's AMS address + The invokeId provided by the sender + + + + Called when an ADS Read indication is received. + Overwrite this method in derived classes to react on ADS Read indications. + The default implementation replies with an ADS ServiceNotSupported error code (0x701). + + The sender's AMS address + The invokeId provided by the sender + The index group of the requested ADS service + The index offset of the requested ADS service + The number of bytes to be read + + + + Called when an ADS Write indication is received. + Overwrite this method in derived classes to react on ADS Write indications. + The default implementation replies with an ADS ServiceNotSupported error code (0x701). + + The sender's AMS address + The invokeId provided by the sender + The index group of the requested ADS service + The index offset of the requested ADS service + The number of bytes to be witten + The data to be written + + + + Called when an ADS Read State indication is received. + Overwrite this method in derived classes to react on ADS Read State indications. + The default implementation replies with an ADS ServiceNotSupported error code (0x701). + + The sender's AMS address + The invokeId provided by the sender + + + + Called when an ADS Write Control indication is received. + Overwrite this method in derived classes to react on ADS Write Control indications. + The default implementation replies with an ADS ServiceNotSupported error code (0x701). + + The sender's AMS address + The invokeId provided by the sender + The requested new ADS state of this ADS device + The requested new device state of this ADS device + The length in bytes of the additional data buffer + An additional data buffer of cbLength bytes + + + + Called when an ADS Add Device Notification indication is received. + Overwrite this method in derived classes to react on ADS Add Device Notification indications. + The default implementation replies with an ADS ServiceNotSupported error code (0x701). + + The sender's AMS address + The invokeId provided by the sender + The index group of the requested ADS service + The index offset of the requested ADS service + Number of bytes to be transmitted + The transmission mode of the notification (cyclic / on change) + The notification should be send at least after maxDelay ms + Check every cycleTime ms if the requested variable has changed + + + + Called when an ADS Delete Device Notification indication is received. + Overwrite this method in derived classes to react on ADS Delete Device Notification indications. + The default implementation replies with an ADS ServiceNotSupported error code (0x701). + + The sender's AMS address + The invokeId provided by the sender + The notification handle to be deleted + + + + Called when an ADS Device Notification indication is received. + Overwrite this method in derived classes to react on ADS Device Notification indications. + + The sender's AMS address + The invokeId provided by the sender + The number of ADS Stamp Headers contained in stampHeaders + The array of received ADS Stamp Headers. + + + + Called when an ADS Device Notification indication is received. + Overwrite this method in derived classes to react on ADS Device Notification indications. + + The sender's AMS address + The invokeId provided by the sender + The number of stamp headers. + Reader object for the stamps. + + + + Called when an ADS Read Write indication is received. + Overwrite this method in derived classes to react on ADS Read Write indications. + The default implementation replies with an ADS ServiceNotSupported error code (0x701). + + The sender's AMS address + The invokeId provided by the sender + The index group of the requested ADS service + The index offset of the requested ADS service + Number of bytes to be read + Number of bytes to be written + The data to be written + + + + Occurs if the receive thread has exited on an exception. + + + + + The AMS address of this server. + + + + + The connection state of this server. True, if the server is connected to the router; false otherwise. + + + + + Delegate for the AdsSeverException event. + + + + + This class implements the event arguments passed by the TcAdsServerExEvent. + + + + + Returns the exception that caused the event. + + The Exception that caused the event. + + + + Returns the exception message. + + The Exception message. + + + + A TcAdsServerException is thrown on communication errors in in TcAdsServer class. + + + + + Collection of DataTypes. + + + + + Data type collection + + + + + + Data Type container interface + + + + + Determines whether the container contains the specified . + + The name. + + true if contained; otherwise, false. + + + + + Tries to get the specified from the . + + The name. + The type (Out parameter) + true if found + + + + Gets the with the specified name. + + + + + + Internal list of data types + + + + + Dictionary (Type Name --> DataType) + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The types. + + + + Determines the Index of the specified . + + The item. + + + + + Inserts an into the . + + The index. + The item. + + + + Removes the object at the specified index. + + The index. + + + + Determines whether the container contains the specified . + + The name. + + true if contained; otherwise, false. + + + + + Tries to get the specified from the . + + The name. + The type (Out parameter) + true if found + + + + Determines the specified + + The name. + + The if found, otherwise NULL + + + + + Adds the specified item to the collection. + + The item. + + + + Adds a range of types + + The types. + + + + Clears the collection. + + + + + Determines whether this contains the specified . + + The item. + + true if [contains] [the specified item]; otherwise, false. + + + + + Copies the data types to the specified array, starting at the array index. + + The array. + Index of the array. + + + + Indicates that the is readonly + + + + + Removes the specified . + + The item. + + + + + Gets the enumerator. + + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Converts the into a + + + + + + Gets or sets the at the specified index. + + + + + + Gets the with the specified name. + + + + + + Gets the count of contained s. + + The count. + + + + Gets a value indicating whether this instance is read only. + + + true if this instance is read only; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class (Copy constructor). + + The coll. + + + + Returns A ReadOnly-Version of the . + + + + + + Clones this (Shallow Copy) + + + + + + ReadOnly Collection of objects. + + + + + ReadOnly DataType collection + + + + + + Initializes a new instance of the class. + + The coll. + + + + Determines whether the specified name contains type. + + The name. + + true if the specified name contains type; otherwise, false. + + + + + Tries to get the Type with the specified name out of the collection. + + The name. + The type. + + + + + Gets the element with the specified type name. + + The name. + + + + + Initializes a new instance of the class. + + Type of the data. + + + + Collection of objects. + + + + + Base class for object collections (abstract). + + + + + + Generic InstanceColleciton interface. + + + + + + Determines whether this collection contains an instance with the specified instance path. + + The instance path. + + true if [contains] [the specified instance path]; otherwise, false. + + + + + Tries to get the specified instance. + + The instance path. + The symbol. + + + + + Tries to get the specified instance by name. + + Name of the instance. + The found symbols. + + + + + Gets the with the specified instance path. + + + + + + Initializes a new instance of the class. + + + + + The relative path + + + + + Initializes a new instance of the class. + + The copy collection + if set to true the collection is using the relative path. + + + + Determines the index of the specified . + + The item. + + + + + Inserts the specified at the specified index. + + The instance. + The item. + + + + Removes the at the specified index. + + The index. + + + + Adds the specified item. + + The item. + + + + Adds the specified items to this collection. + + The items. + + + + Clears this instance. + + + + + Determines whether this colleciton contains the specifie + + The item. + + true if [contains] [the specified item]; otherwise, false. + + + + + Determines whether this collection conains an with the specified instancePath. + + The instance path. + + true if [contains] [the specified instance path]; otherwise, false. + + + + + Tries to get the . of the specified path. + + The instance path. + The symbol. + + + + + Copies this to the specified array. + + The array. + Index of the array. + + + + Removes the specified item. + + The item. + + + + + Gets the enumerator. + + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Converts the to an + + + + + + Tries to get the Instance by Instance name. + + Name of the instance. + The symbols. + + + + + Gets or sets the at the specified index. + + + + + + Gets the with the specified instance path. + + + + + + Gets the collection count. + + The count. + + + + Gets a value indicating whether this instance is read only. + + + true if this instance is read only; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class (copy constructor) + + The coll. + + + + Returns a read only copy of this collection (shallow copy) + + + + + + Clones this . + + + + + + Read only collection of objects + + + + + ReadOnly Instance collection + + + + + + Initializes a new instance of the class. + + The coll. + + + + Determines whether the contains an instance with the specified instance path. + + The instance path. + + true if contains the specified instance path; otherwise, false. + + + + + Tries to get the instance with the specified instance path. + + The instance path. + The instance. + true, if found, false if not contained. + + + + Tries to get the instance by name. + + Name of the instance. + The found symbols (out-parameter) + true, if found; false if not contained. + + + + Gets the element with the specified instance path. + + The instance path. + The instance if contained. + + + + Initializes a new instance of the class. + + The members. + + + + Tries to get the specified member + + Name of the member. + The symbol. + + + + + Interface represents a collection of objects. + + + + + Interface represents a collection of objects. + + + + + Initializes a new instance of the class. + + The collection to be copied. + if set to true the collection will use the relative path. + + + + Returns a Read only version of this collection (shallow copy). + + + + + + Clones this instance. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The coll. + + + + Returns a Read only version of this collection (shallow copy). + + + + + + Clones this instance. + + + + + + ReadOnly collection containing objects. + + + + + Read only symbol collection. + + + + + + Initializes a new instance of the class. + + The coll. + + + + Initializes a new instance of the class. + + The symbols. + + + + Collection of Namespaces (internally using + + + + + Generic class for Namspace collections + + + + + + + Namespace collection interface + + Namespace + Datatype + + + + Determines whether the specified namespace name is contained by the collection. + + Name of the namespace. + + true if the specified namespace is contained; otherwise, false. + + + + + Try to get the specified namespace. + + Name of the namespace. + The found namespace (out-parameter) + + + + + Tries to get the specified type + + Name of the type. + Data Type (out-parameter). + true if found, false if not contained. + + + + Tries to get the data type by full name. + + Data types full name. + Data Type (out-parameter) + true if found, false if not contained. + + + + Gets the specified data type. + + + The specified Namespace from the collection. + + Name of the namespace. + true if found, false if not contained. + + + + List of Namespaces + + + + + Dictionary NamespaceName --> INamespace + + + + + Dictionary FullPath -> IDataType + + + + + Determines the index of a specific item in the . + + The object to locate in the . + + The index of item if found in the list; otherwise, -1. + + + + + Inserts an item to the at the specified index. + + The zero-based index at which item should be inserted. + The object to insert into the . + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if item is found in the ; otherwise, false. + + + + + Copies to. + + The array. + Index of the array. + + + + Read only indicator + + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + + true if item was successfully removed from the ; otherwise, false. This method also returns false if item is not found in the original . + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Determines whether the specified name contains namespace. + + The name. + + true if the specified name contains namespace; otherwise, false. + + + + + Tries to get the namespace object + + The name. + The namespace object (out-parameter) + true if found, false if not contained. + + + + Tries to get the specified type. + + Data type name + The found data type (out-parameter). + true if found, false if not contained. + typeName + + + + + Tries to get the data type by full name. + + DataTypes full name. + Found data type (out-parameter). + true if found, false if not contained. + + + + Gets or sets the element at the specified index. + + The index. + + + + + + Gets or sets the element at the specified index. + + The STR. + + + + + Gets the number of elements contained in the . + + The number of elements contained in the . + + + + Gets a value indicating whether the is read-only. + + true if the is read-only; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Creates a read-only version of this . + + + + + + Registers a type on its namespace + + The type. + Creates a new namspace if not existing in the collection. + + + + ReadOnly namespace collection + + + + + Read Only namespace collection + + + + + + + Initializes a new instance of the class. + + The coll. + + + + Determines whether this collection contains a namespace with the specified name. + + The name of the namespace + + true if the namespace is contained; otherwise, false. + + + + + Tries to get the namespace with the specified name. + + Namespace name. + The found namespace (out-parameter). + true if found, false if not contained. + + + + Tries to get the specified data type. + + Name of the type. + Data Type (out-parameter). + true if found, false if not contained. + + + + Tries to get the specified type (by fullName) + + FullName of the data type. + Found Data type (out-parameter). + true if found, false if not contained. + + + + Gets the element at the specified index. + + The name. + + + + + Initializes a new instance of the class. + + The coll. + + + + Converts the specified Raw data to the appropriate typed value + + The type. + The offset. + The data. + + + + + Converts the specified value to raw bytes + + The type. + The data. + + + + + Converts Primitive Types From/To Byte Arrays + + + + + Dynamic (Expandable) Symbols collection. + + + + + Internal Symbol Collection + + + + + Initializes a new instance of the class. + + The symbols. + + + + Returns the enumeration of all dynamic member names. + + + A sequence that contains dynamic member names. + + + + + Provides the implementation for operations that get member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as getting a value for a property. + + Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member on which the dynamic operation is performed. For example, for the Console.WriteLine(sampleObject.SampleProperty) statement, where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive. + The result of the get operation. For example, if the method is called for a property, you can assign the property value to . + + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a run-time exception is thrown.) + + + + + Gets the enumerator. + + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Gets the with the specified name. + + + + + + Dynamic value (uses RuntimeBinding for value reading / writing). + + + + + Interface specifying Symbols ( + + + + + Inteface specifing instance objects. + + + + + Gets the of the . + + The type of the data. + + + + Gets the name of the DataType that is used for this . + + The name of the type. + + + + Gets the name of the instance (without periods (.) + + The name of the instance. + + + + Gets the relative / absolute access path to the instance (with periods (.)) + + The instance path. + If this path is relative or absolute depends on the context. are using relative paths, s are using absolute ones. + + + + Gets the size of the in bytes. + + + The size of the in bytes. + + + + + Gets a value indicating whether this instance is not basing on a full DataType but instead of some sort of bit mapping + + + true if this instance is bit mapping; otherwise, false. + + + + + Gets a value indicating whether this is static. + + + true if this instance is static; otherwise, false. + + + + + Interface describing a Process Image Address + + + + + Gets the size of the in bits. + + The size of the bit. + + + + Gets the index group of the Symbol + + The index group. + + + + Gets the index offset of the Symbol + + The index offset. + + + + Gets the Symbol/Datatype Category + + The category. + + + + Gets the parent Symbol + + The parent. + + + + Gets the of the Process Image + + The address. + + + + Gets the SubSymbols of the + + Used for Array, Struct, Pointer and Reference instances. Otherwise empty + + + + + Gets a value indicating whether this Symbol is acontainer type. + + + true if this instance is container type; otherwise, false. + + + + + Gets a value indicating whether this instance is a primitive type. + + + true if this instance is primitive type; otherwise, false. + + + + + Gets a value indicating whether this is persistent. + + + true if this instance is persistent; otherwise, false. + + + + + Gets a value indicating whether this is read only. + + + true if this instance is read only; otherwise, false. + + + + + Symbol object is assigned to. + + + + + Initializes a new instance of the class. + + The symbol. + + + + Returns the enumeration of all dynamic member names. + + + A sequence that contains dynamic member names. + + + + + Provides the implementation for operations that get member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as getting a value for a property. + + Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member on which the dynamic operation is performed. For example, for the Console.WriteLine(sampleObject.SampleProperty) statement, where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive. + The result of the get operation. For example, if the method is called for a property, you can assign the property value to . + + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a run-time exception is thrown.) + + + + + Provides the implementation for operations that set member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as setting a value for a property. + + Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member to which the value is being assigned. For example, for the statement sampleObject.SampleProperty = "Test", where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive. + The value to set to the member. For example, for sampleObject.SampleProperty = "Test", where sampleObject is an instance of the class derived from the class, the is "Test". + + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown.) + + + + + Provides the implementation for operations that get a value by index. Classes derived from the class can override this method to specify dynamic behavior for indexing operations. + + Provides information about the operation. + The indexes that are used in the operation. For example, for the sampleObject[3] operation in C# (sampleObject(3) in Visual Basic), where sampleObject is derived from the DynamicObject class, [0] is equal to 3. + The result of the index operation. + + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a run-time exception is thrown.) + + + + + Gets the static symbol object. + + The symbol. + + + + Gets a value indicating whether this instance has value (only the non VirtualInstances, what means the Symbols with locations). + + true if this instance has value; otherwise, false. + + + + Gets the notification settings. + + The notification settings. + + + + Gets the category. + + The category. + + + + Gets the parent Symbol + + The parent. + + + + Gets the of the Process Image + + The address. + + + + Gets the SubSymbols of the + + + Only used for Array and Struct instances. Otherwise empty + + + + + Gets or sets the raw value of the Symbol (Ads Read / Write) + + The raw value. + + + + Occurs when the Value of the has changed. + + + + + Gets / Sets the Value of the (>= .NET4, see remarks section for further explanations) + + The value. + Callin on primitive types, a call of this property will result in an immediate ADS Read/Write. + + + + Occurs when the Value of the has changed (>= .NET4) + + + + + Gets the of the . + + The type of the data. + + + + Gets the name of the DataType that is used for this . + + The name of the type. + + + + Gets the name of the instance (without periods (.) + + The name of the instance. + + + + Gets the relative / absolute access path to the instance (with periods (.)) + + The instance path. + If this path is relative or absolute depends on the context. are using relative paths, s are using absolute ones. + + + + Gets the size of the in bits. + + The size of the bit. + + + + Gets the index group of the Symbol + + The index group. + + + + Gets the index offset of the Symbol + + The index offset. + + + + Gets a value indicating whether this Symbol is acontainer type. + + + true if this instance is container type; otherwise, false. + + + + + Gets a value indicating whether this instance is a primitive type. + + + true if this instance is primitive type; otherwise, false. + + + + + Gets a value indicating whether this is persistent. + + + true if this instance is persistent; otherwise, false. + + + + + Gets a value indicating whether this instance is static. + + + true if this instance is static; otherwise, false. + + + + + Gets a value indicating whether this is read only. + + + true if this instance is read only; otherwise, false. + + + + + Gets the size of the in bytes. + + + The size of the in bytes. + + + + + Gets a value indicating whether this instance is not basing on a full DataType but instead of some sort of bit mapping + + + true if this instance is bit mapping; otherwise, false. + + + + + Symbol Navigator. + + + + + + The path separator + + + + + Tries to get the symbol + + Instance collection + The path. + The found instance (out-parameter) + true if found, false if not contained. + + + + Tries to get the Subsymbol specified in the relative path + + Root instance (anchor instance). + The relative path (relative to the root). + Optional array index. + Found object (out-parameter). + true if found, false if not contained. + + + + Tries to get the specified subSymbol + + Root array instance. + Relative instance path. + Array index. + Found Instance (out-parameter) + true if found, false if not contained. + + + + Try to get Sub Symbol + + Root object. + The relative instance path. + Array Index + Found Symbol (out-parameter) + true if found, false if not contained. + + + + Symbol class + + A Symbol is a (named) memory object within the Process Image with a fixed address indicated by Index Group and Index Offset. + Symbols can optionally be addressed by instance path and are bound to a specific . + + + + + Instance implementation + + + + + Initializes a new instance of the class. + + The resolver. + + + + Aligns the type name + + Name of the type. + + + + + DataType resolver + + + + + Initializes a new instance of the class. + + The symbol. + The resolver. + + + + Initializes a new instance of the class. + + The sub entry. + The resolver. + + + + Namespace + + + + + The Byte size of the instance + + + + + Instance category + + + + + Instance category + + + + + Datatype name. + + + + + Resolved / Cached Data Type + + + + + Tries to resolve the . + + + + + + Instance comment. + + + + + Name of the instance. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + The static address + + + + + Bit mapping indicator + + + + + Gets the data type resolver. + + The data type resolver. + + + + Gets the namespace as sstring. + + The namespace. + + + + Gets the size of the in Bytes. + + The size. + + + + Gets the size of the in bits. + + The size of the bit. + + + + Only for internal use (obsolete) + + The datatype. + + + + Gets the the of the Instance. + + The category. + Corresponds to the + + + + Gets the name of the DataType that is used for this . + + The name of the type. + + + + Gets the of the . + + The type of the data. + + + + Gets the comment. + + The comment. + + + + Gets the name of the instance (without periods (.) + + The name of the instance. + + + + Gets the relative / absolute access path to the instance (with periods (.)) + + The instance path. + If this path is relative or absolute depends on the context. are using relative paths, s are using absolute ones. + + + + Gets a value indicating whether this instance has a value. + + true if this instance has value; otherwise, false. + + + + + Gets a value indicating whether this is static. + + + true if this instance is static; otherwise, false. + + + + + Gets a value indicating whether this instance is not basing on a full DataType but instead of some sort of bit mapping + + + true if this instance is bit mapping; otherwise, false. + + + + + Dynamic symbol (supported by .NET 4) + + + + + Gets / Sets the Value of the (>= .NET4, see remarks section for further explanations) + + The value. + Callin on primitive types, a call of this property will result in an immediate ADS Read/Write. + + + + Occurs when the Value of the has changed (>= .NET4) + + + + + Symbol loader + + + + + Initializes a new instance of the class. + + The resolver. + The loader. + + + + Initializes a new instance of the class. + + The entry. + The resolver. + The loader. + + + + Initializes a new instance of the class. + + The entry. + The type. + The resolver. + The loader. + + + + Initializes a new instance of the class. + + The index group. + The index offset. + The parent. + The type. + Name of the instance. + The resolver. + The loader. + + + + Initializes a new instance of the class. + + The index group. + The index offset. + The parent. + The type. + Name of the instance. + The instance path. + The resolver. + The loader. + + + + Initializes a new instance of the class. + + Name of the instance. + The parent. + The resolver. + The loader. + + + + Initializes a new instance of the class. + + Name of the instance. + The instance path. + The resolver. + The loader. + + + + Initializes a new instance of the class. + + The member. + The parent. + + + + Initializes a new instance of the class. + + The indices. + The parent. + + + + Gets or sets the notification settings. + + The notification settings. + + + + The parent Symbol + + + + + The index group + + + + + The index offset + + + + + The instance path + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + The image base address + + + + + Tries to parse the parent path of this + + The parent path (out-parameter). + Name of the parent (out-parameter). + true if found, false if not contained. + + + + Sub symbols + + + + + Creates the sub symbols collection. + + + + + Handler function for writing the RawValue + + The value. + + + + + + Handler function for reading the raw value + + + + + + + Registers a Notification for RawValues + + The value. + The settings. + + + + Unregisters a Notification for RawValues + + The value. + + + + Unregisters a Notifcation for a Dynamic VAlue + + The handler. + + + + Registers a Notification for a Dynamic Value + + The handler. + The settings. + + + + Handler function for writing the dynamic value + + The value. + + + + + Handler function for reading the dynamic value. + + + + + + Gets or sets the notification settings. + + The notification settings. + The will be inherited from if the setting is not overwritten. + If the Root Symbol also doesn't contain the settings, then the will be returned. + + + + Gets the parent Symbol + + The parent. + + + + Gets the index group of the Symbol + + + The index group. + + + + + Gets the index offset of the Symbol + + + The index offset. + + + + + Gets the name. + + + The name. + + + + + Gets the type. + + + The type. + + + + + Gets the relative / absolute access path to the instance (with periods (.)) + + + The instance path. + + + If this path is relative or absolute depends on the context. are using relative paths, s are using absolute ones. + + + + + Gets the of the Process Image + + + The address. + + + + + Gets the SubSymbols of the + + + Used for Array, Struct, Pointer and Reference instances. Otherwise empty + + + + + Gets or sets the raw value (Ads Read/Write) + + The raw value. + + + + Occurs when the Value of the has changed. + + + + + Occurs when the Value of the has changed (>= .NET4) + + + + + Gets or sets the value (dynamically) + + The value. + + + + Gets a value indicating whether this instance is primitive. + + + true if this instance is primitive; otherwise, false. + + + + + Gets a value indicating whether this Symbol is a container/complex type. + + + true if this instance is container type; otherwise, false. + + + + + Gets the context mask of this instance. + + + + + Indicates if ths instance is a bit value. + + + + + Indicates if this instance is readonly. + + + + + Indicates if this instance is persistent. + + + + + Indicates if this instance is a TcComInterfacePointer. + + + + + Indicates if this instance has set TypeGuid flag. + + + + + Class representing a Struct Instance + + + + + Interface representing an instance of a + + + + + Gets the member instances of the Struct Instance. + + The member instances. + + + + Initializes a new instance of the class. + + The entry. + The type. + The resolver. + The symbol loader. + + + + Initializes a new instance of the class. + + Name of the instance. + The parent. + The resolver. + The symbol loader. + + + + Initializes a new instance of the class. + + Name of the instance. + The instance path. + The resolver. + The symbol loader. + + + + Initializes a new instance of the class. + + The member. + The parent. + + + + Creates the sub symbols. + + + + + Interface representing an instance of an + + + + + Gets the resolved reference of Pointer / Refernece + + + The reference. + + + + + Initializes a new instance of the class. + + The entry. + The type. + The resolver. + The symbol loader. + + + + Initializes a new instance of the class. + + The member. + The parent. + + + + Pointer Instance + + + + + Interface representing an instance of an + + + + + Initializes a new instance of the class. + + The entry. + The type. + The resolver. + The symbol loader. + + + + Initializes a new instance of the class. + + Index of the current. + The parent. + + + + Initializes a new instance of the class. + + The member. + The parent. + + + + Initializes a new instance of the class. + + The index group. + The index offset. + The parent. + The type. + Name of the instance. + + + + Implementation of the . + + + + + Interface representing an array instance + + + + + Tries to get the array element + + The indices. + The found Array element symbol (out-parameter). + true if found, false if the indices specifiers is out-of-range. + + + + Gets the contained Array Elements as read only collection. + + The elements. + + + + Gets the with the specified indices. + + + The . + + The indices. + + + + + Initializes a new instance of the class. + + The entry. + The type. + The resolver. + The loader. + + + + Initializes a new instance of the class. + + The member. + The parent instance. + + + + Initializes a new instance of the class. + + Index of the current. + The parent. + + + + Checks the dimensions of the + + Indices + Indices doesn't match the specified Array type + + + + Gets the contained Array Elements as read only collection. + + The elements. + + + + Symbol iterator object + + Iterates over all root symbols and its subsymbols. + + + + + Initializes a new instance of the class. + + The Symbol provider. + + + + Gets the enumerator that enumerates through a collection + + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Gets or sets a value indicating whether the iterator returns also instances of Array elements (default: true) + + + true if [iterate array elements]; otherwise, false. + + + + + Gets or sets a value indicating whether the iterator returns also members of structs (default: true) + + + true if [iterate struct members]; otherwise, false. + + + + + The ITypeBinder interface binds DataTypes and Symbols to its namespace. + + + + + Registers the specified type. + + The type. + + + + Tries to resolve the type (parses it if not found and adds it to the resolver if necessary). + + The name. + The type. + + + + + Binds the specified symbol to the Resolver (Registering and linking Parents). + + The symbol. + + + + + Gets the size of the platform pointer. + + + The size of the platform pointer. + + + + + Gets the root namespace. + + The root namespace. + + + + Gets the of the Process Image + + The address. + + + + Helper Data Type to implement Bit mapping types. + + + + + DataType class + + + + + Base inteface for objects representing data types + + + + + Gets the ID of the DataType + + The id. + + + + Gets the Data Type category + + The category. + + + + Gets the name of the Data Type (without namespace) + + The name. + + + + Gets the namespace string within the exists. + + The namespace. + + + + Gets the full name of the (Namespace + Name) + + The full name. + + + + Gets the size of the in bits. + + The size of in bits. + + + + Gets a value indicating whether this is primitive + + + true if this instance is primitive; otherwise, false. + + + + + Gets a value indicating whether this is a container type + + Container Types are Array, Structs and its derivates (Function,FunctionBlock and Program) + + true if this instance is container type; otherwise, false. + + + + + Gets the size of the in bytes. + + he size of in bytes. + + + + Gets a value indicating whether this is a pointer type + + Pointer types can be dereferenced with the '^' operator. + + true if this instance is pointer type; otherwise, false. + + + + + Gets a value indicating whether this is a reference type + + Reference types can be dereferences. + + true if this instance is container type; otherwise, false. + + + + + Gets a value indicating whether this is a bit mapping Subtype + + + true if this instance is bit mapping subtype; otherwise, false. + + + + + Initializes a new instance of the class. + + The resolver. + + + + Initializes a new instance of the class. + + Name of the Datatype + DataType category / ID (internal style) + Data type category + The Size of the Data Type in bytes + The resolver. + Type of the dotnet. + + + + Initializes a new instance of the class. + + Name of the Datatype + DataType category / ID (internal style) + Data type category + The Size of the Data Type in bits + The resolver. + Type of the dotnet. + if set to true [bit mapping]. + + + + Initializes a new instance of the class (copy Constructor) + + The copy. + + + + Registers this instance at the + + + + + Internal ID of the DataType (non persistant) + + + + + The corresponding dotnet type + + + + + The type binder / resolver + + + + + Data Type category + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Determines whether the specified category is a container type. + + The data type category. + Container Types are Array, Structs and its derivates (Function,FunctionBlock and Program) + + + true if [is container type] [the specified cat]; otherwise, false. + + + + + Determines whether the specified category is a reference type. + + The data type category. + + true if [is reference type] [the specified cat]; otherwise, false. + + + + + Determines whether the specified category is a pointer type. + + The data type category. + + true if [is pointer type] [the specified cat]; otherwise, false. + + + + + Determines whether the specified category is a primitive type + + The cat. + + true if [is primitive type] [the specified cat]; otherwise, false. + + Primitive types are types that are indicated with Primitive, String, SubRange, Enum, Pointer + + + + + Gets the ID of the DataType + + + The id. + + + + + Gets the corresponding DotnetType if attached. + + + Dot net type. + + + + + Gets the namespace string within the exists. + + + The namespace. + + + + + Gets the Data Type category + + + The category. + + + + + Gets the Size of the in Bytes + + The size. + + + + Gets the size of the in bits. + + The size of the bit. + + + + Gets the name of the Data Type (without namespace) + + + The name. + + + + + Gets the full name of the (Namespace + Name) + + + The full name. + + + + + Gets the comment. + + + The comment. + + + + + Gets a value indicating whether this is primitive + + + true if this instance is primitive; otherwise, false. + + + + + Gets a value indicating whether this is a container type + + + true if this instance is container type; otherwise, false. + + + + + Gets a value indicating whether this is a reference type + + + true if this instance is reference type; otherwise, false. + + + + + Gets a value indicating whether this is a pointer type + + + true if this instance is pointer type; otherwise, false. + + + + + Gets a value indicating whether this is a bit mapping Subtype + + + true if this instance is bit mapping subtype; otherwise, false. + + + + + Initializes a new instance of the class. + + The name. + The size. + The resolver. + Type of the dotnet. + + + + Interface representing an enum type + + + + + Alias DataType + + + + + Interface representing an Alias Type + + + + + Gets the BaseType name + + + + + Gets the Base Type + + + + + Initializes a new instance of the class. + + The entry. + The resolver. + + + + Initializes a new instance of the class. + + The name. + Type of the base. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets the BaseType name + + + + + Gets the Base Type + + + + + Gets a value indicating whether this is primitive + + + true if this instance is primitive; otherwise, false. + + + + + Gets a value indicating whether this is a container type + + + true if this instance is container type; otherwise, false. + + + + + String DataType + + + + + Interface representing a string + + + + + Gets the number of characters within the string. + + The length. + + + + Initializes a new instance of the class. + + The length. + The resolver. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets the number of characters within the string. + + + The length. + + + + + Represents an Unicode string (Wide string) + + + + + Initializes a new instance of the class. + + The length. + The resolver. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets the number of characters within the string. + + + The length. + + + + + Represents a struct type + + + + + Interface representing Struct data types + + + + + Gets a readonly collection of the Members of the . + + The members as readonly collection. + If the is derived, only the extended members are returned. To get + all supported members down the inheritance chain, use the property. + + + + Gets the the Name of the Base class (if derived) + + Empty if not derived. + + + + Gets the structs Base Type (Null if not derived). + + + + + Gets all members (down the derivation hieararchy) + + All members. + + + + Gets a value indicating whether this instance is derived. + + + true if this instance is derived; otherwise, false. + + + + + Gets a readonly collection of the Members of the . + + + The members as readonly collection. + + + If the is derived, only the extended members are returned. To get + all supported members down the inheritance chain, use the property. + + + + + Gets the the Name of the Base class (if derived) + + + Empty if not derived. + + + + + Gets the structs Base Type (Null if not derived). + + + + + Gets all members (down the derivation hieararchy) + + + All members. + + + + + Represents a reference type + + + + + Interface representing a reference type + + + + + Gets the the referenced type. + + The type of the referenced. + + + + Initializes a new instance of the class. + + Name of the referenced type. + The size in bytes (Dependent of the target OS) + The resolver. + size + + + + Initializes a new instance of the class. + + The name. + Name of the referenced type. + The size. + The resolver. + size + + + + Initializes a new instance of the class. + + The entry. + Name of the referenced type. + The resolver. + + + + Gets the the referenced type. + + + The type of the referenced. + + + + + Represents a pointer type. + + + + + Interface representing a pointer type + + + + + Creates the PVOID. + + The size. + The resolver. + + size;Pointer size not valid! + + + + Prevents a default instance of the class from being created. + + The name. + The size. + The resolver. + Type of the dotnet. + + + + Initializes a new instance of the class. + + Name of the referenced type. + The size of the Pointer in bytes (Platform dependent) + The resolver. + size + + + + Initializes a new instance of the class. + + The name. + Name of the referenced type. + The size of the pointer in bytes (Platform dependent) + The resolver. + size + + + + Initializes a new instance of the class. + + The entry. + Name of the referenced type. + The resolver. + + + + Gets the the referenced type. + + + The type of the referenced. + + + + + Represents a SubRangType + + + + + Interface representing a SubRange type + + + + + Gets the the base type. + + The type of the referenced. + + + + Gets the lower bound. + + The lower bound. + + + + Gets the element count. + + The element count. + + + + Initializes a new instance of the class. + + Type of the base. + The lower bound. + The upper bound. + The resolver. + + + + Initializes a new instance of the class. + + The name. + Type of the base. + The lower bound. + The upper bound. + The resolver. + + + + Initializes a new instance of the class. + + The entry. + Type of the base. + The lower bound. + The upper bound. + The resolver. + + + + Gets the the base type. + + + The type of the referenced. + + + + + Gets the lower bound. + + + The lower bound. + + + + + Gets the element count. + + + The element count. + + + + + Represents a member of an + + + + + Specifies a single field/member of a Struct DataType. + + + + + Gets the bit offset of the single . + + The bit offset. + + + + Gets the Parent Struct of this . + + The type of the parent. + + + + Initializes a new instance of the class. + + The parent. + The sub entry. + The resolver. + + + + Gets the offset. + + + The offset. + + + + + Gets the bit offset of the single . + + + The bit offset. + + + + + Gets the Parent Struct of this . + + + The type of the parent. + + + + + Represents a single dimension of an + + + + + Interface represening a single Dimension of an ArrayType. + + + + + Gets the number of elements within that . + + The element count. + + + + Gets the lower bound of elements within that . + + The lower bound. + + + + Initializes a new instance of the class. + + The array info. + + + + Gets the lower bound of elements within that . + + + The lower bound. + + + + + Gets the number of elements within that . + + + The element count. + + + + + Represents an Array DataType + + + + + Interface representing an array DataType. + + + + + Gets the dimensions as read only collection. + + The dimensions. + + + + Gets the type of the contained elements. + + The type of the element. + + + + Initializes a new instance of the class. + + The entry. + The resolver. + + + + Checks the dimensions of the + + Indices + ArrayType + Indices doesn't match the specified Array type + + + + Checks the dimensions of the + + Indices + ArrayType + + + + Checks the dimensions of the + + Indices + Indices doesn't match the specified Array type + + + + Gets the element position within a flattened multidimensional array + + The indices. + The type. + The Position-Index within the Elements collection of the Array instance. + + + + Gets the element position within a flattened multidimensional array + + The indices. + + The Position-Index within the Elements collection of the array + + + + + Gets the element byte offset. + + The indices. + The type. + + + + + Gets the name of the element type. + + + The name of the element type. + + + + + Gets the type of the contained elements. + + + The type of the element. + + + + + Gets the dimensions as read only collection. + + + The dimensions. + + + + + Gets the dimension count. + + + The dimension count. + + + + + Gets the element count. + + + The element count. + + + + + Gets the byte-size of a single element of the array + + The size of the element. + + + + Namespace object. + + + + + Namespace interface + + DataType class used within this Namespace interface + + + + Gets the name/ identifier of the Namespace + + The name. + + + + Data types organized by the + + The data types. + + + + Initializes a new instance of the class. + + The name. + + + + Registers the the specified + + The type. + + + + + Gets the name of the namespace. + + The name. + + + + Gets the data types organized by this + + The data types. + + + + Tries to parse the string. + + Name of the type. + The character count of the string (not including the /0) + + + + + Class parsing Symbols from String or from AdsStream + + + + + Parses the the data types within the specified stream. + + The data type stream. + The type binder. + + + + Symbol provider interface + + Namespace type + DataType type + Symbol type + + + + Get the Namespaces of DataTypes for this Symbol provider + + ReadOnly colleciton of the namespaces. + + + + Gets the image base address. + + The image base address. + + + + Gets the name of the root namespace + + The namespace. + + + + Gets the root (main) namespace of the Symbol provider. + + The root namespace. + + + + Gets the (root) symbols of the Symbol provider. + + Readonly collection of the Symbols + + + + Symbol Loader interface + + + + + Symbol Provider interface. + + + + + Resets this loader (reinitialization) + + + + + Gets the build in types. + + The build in types. + + + + Gets the data type count (provided by the target) + + The data type count. + + + + Gets the maximum of the dynamic symbols. + + The max dynamic symbols. + + + + Gets the symbol count provided by the . + + The symbol count. + + + + Gets the count of used dynamic symbols. + + The used dynamic symbols. + + + + Gets/Sets the default notification settings for this . + + The default notification settings. + + + + Gets the symbols (late bound as dynamic objects) + + The dynamic symbols. + + + + Value loader interface + + + + + Try to read value + + The symbol instance. + The value. + The error. + + + + + Try to read Array Element Value + + The array instance. + The indices. + The value. + The error. + + + + + Try to Write value + + The symbol instance. + The value. + The offset. + The error. + + + + + Try to write element value. + + The array instance. + The indices. + The value. + The offset. + The error. + + + + + Adds the symbol value changed handler. + + The symbol. + The settings. + + + + Removes the symbol value changed handler. + + The symbol. + + + + Tries to get the current Notification Settings for the specified Symbol + + The symbol. + The settings. + true, if already a notfication for this symbol is registered. False if not. + + + + Notification communication settings + + + + + Default + + + + + Initializes a new instance of the class. + + The mode. + The cylce time. + The max delay. + + + + Compares this in term of priorities to the other . + + The other. + 1: this has higher priority (shorter times), 0: Equal, 1: Lower prioritiy + + + + + Gets the default Settings + + The default. + + + + Gets or sets the notification mode. + + The notification mode. + + + + Gets or sets the cycle time. + + The cycle time. + + + + Gets or sets the max delay. + + The max delay. + + + + Compares two for Priorirty. + + + Checks (prioritized): + 1. + 2. + 3. + + + + + Compares the specified x. + + The x. + The y. + + + + + The class TcAdsSymbolInfoLoader is responsible for downloading the list of declared variables from an ADS Server. + + + + + Initializes a new instance of the class. + + The ads client. + if set to true [virtual instances]. + + + + Resets the cache-contents of this loader. + + Accessing the data members will force AdsReads in the following. + + + + Registers the specified type. + + The type. + + + + Tries to resolve the type (parses it if not found and adds it to the resolver if necessary). + + The name. + The type. + + + + + Binds the specified symbol to the Resolver (Registering and linking Parents). + + The symbol. + + + + + Reads a value from the specified ADS address + + The address. + Raw value + The error. + true: succeeded; false: failed + + + + Notification Handle --> Symbol + + + + + Symbol --> Notification Handle + + + + + Notification handle --> Notification settings + + + + + Registers a Notification on the . + + The symbol. + The settings. + Only one Notification is allowed on the symbol. On case of double announcement, we set the Notificaiton parameters + to the higher priority. + + + + + Unregisters a Notification from the . + + The symbol. + + + + Loads the data types and symbols into the + + + + + Gets the amount of data types used in the target. + + The data type count. + This poperty can be used, before uploading all data types and symbols. + + + + Gets the amount of symbols used by the target. + + The symbol count. + This poperty can be used, before uploading all data types and symbols. + + + + Gets the maxmial amount of Dynamic symbols of the target system. + + The max dynamic symbols. + + + + Gets the used dynamic symbols by the target system. + + The used dynamic symbols. + + + + Gets the build in types. + + The build in types. + + + + Gets the base Address of the accessed Process image. + + The image base address. + + + + Gets the root namespace name of the . + + The root namespace. + + + + Gets the (root) symbols of the as ReadOnly collection. + + The symbols. + + + + Get the Namespaces of DataTypes for this Symbol provider + + ReadOnly colleciton of the namespaces. + + + + Gets the root (main) namespace of the Symbol provider. + + The root namespace. + + + + Gets the dynamic Symbols + + The dynamic symbols. + + + + Gets or sets the NotificationSettings that are used for Notification Defaults. + + The default notification settings. + + + + Summary description for NotificationMngt. + + + + + Gets the default types. + + + + + TcAdsDll-Api Functions + + + + Ams/Ads Address + + + + + Ams/Ads Address + + + + + Protected constructur + + + + + Copy constructor + + + + + + Constructor + + + + + + + Constructor + + Net Id + Port + + + + Constructor + + + + + + + Constructor + + + + + + + Constructor + + + + + + + Constructor + + + + + + + Constructor + + + + + + Constructor + + + + + + Equals + + + + + + + Operator== + + + + + + + + Operator-= + + + + + + + + Gets the HashCode of the Address + + + + + + Converts the Address to String 'NetId:Port' + + + + + + Parses a string to an object. + + + + + + + Tries to parse the from string. + + The STR. + The address. + + + + + Gets the NetId + + + + + Gets the Port number + + + + + AMS/ADS Net ID + + + + + Constructor + + + + + + Constructor + + + + + + Copy Constructor + + + + + + Converts the netId to string + + + + + Returns a that represents this instance. + + The format. + The format provider. + + A that represents this instance. + + + FormattingDescription + gStandard formatting + xFormatting as Hexadecimal (small letters) + XFormatting as Hexadecimal (big letters) + + + + + + Converts the NetId object to byte array + + + + + + Clones the NetId + + + + + + Gets the netId string from the byte array + + + + + + + Gets the net Id as byte array + + + + + + + Converts the string representation of the address to . + + + + + + + + Converts the string representation of the address to . + + + + + + + Creates the from bin hex string. + + The STR. + + + + + Converts the specified to a BinHex string. + + NetId to convert + + + + + Converts the to a BinHex string. + + + + + + Compares the NetIds + + + + + + + + Compares the netIds + + + + + + + Determines whether the s refer to the same target. + + NetID of target system A + NetID of target system B + + true if the target systems are the same, otherwise false. + + In comparison to the or methods, this Method alse + checks against the LocalHost ID, which means that is the same target as + + + + + Determines whether the specified s are equal. + + The net IDA. + The net IDB. + + true if the specified net IDA is equal; otherwise, false. + + + + + Equals + + + + + + + Operator== + + + + + + + + Operator-= + + + + + + + + Gets the HashCode of the Address + + + + + + Is the Address Local? + + + + + Creates an empty NetId ("0.0.0.0.0.0") + + + + + Creates the local NetId ("127.0.0.1.1.1") + + + + + Gets the Local Net ID (System service must be running) + + The system service must be running + + + + + Type Converter class for the . + + + + + Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context. + + An that provides a format context. + A that represents the type you want to convert from. + + true if this converter can perform the conversion; otherwise, false. + + + + + Returns whether this converter can convert the object to the specified type, using the specified context. + + An that provides a format context. + A that represents the type you want to convert to. + + true if this converter can perform the conversion; otherwise, false. + + + + + Converts the given object to the type of this converter, using the specified context and culture information. + + An that provides a format context. + The to use as the current culture. + The to convert. + + An that represents the converted value. + + + The conversion cannot be performed. + + + + + Converts the given value object to the specified type, using the specified context and culture information. + + An that provides a format context. + A . If null is passed, the current culture is assumed. + The to convert. + The to convert the parameter to. + + An that represents the converted value. + + + The parameter is null. + + + The conversion cannot be performed. + + + + + Returns a collection of standard values for the data type this type converter is designed for when provided with a format context. + + An that provides a format context that can be used to extract additional information about the environment from which this converter is invoked. This parameter or properties of this parameter can be null. + + A that holds a standard set of valid values, or null if the data type does not support a standard set of values. + + + + + Returns whether the collection of standard values returned from is an exclusive list of possible values, using the specified context. + + An that provides a format context. + + true if the returned from is an exhaustive list of possible values; false if other values are possible. + + + + + Returns whether this object supports a standard set of values that can be picked from a list, using the specified context. + + An that provides a format context. + + true if should be called to find a common set of values the object supports; otherwise, false. + + + + + Returns whether the given value object is valid for this type and for the specified context. + + An that provides a format context. + The to test for validity. + + true if the specified value is valid for this object; otherwise, false. + + + + + The structure contains the Ads state and device state. + + + + + Initializes a new Instance of the StateInfo struct. + + Ads state. + Device state. + + + + Gets or sets the Ads state. + + + + + Gets or sets the device state. + + + + + The structure contains the name and the version information of the device. + + + + + Gets or sets the name of the device. + + + + + Gets or sets the vesion information. + + + + + The structure contains the version number, revision number and build number. + + + + + Gets or sets the version number. + + + + + Gets or sets the revision number. + + + + + Gets or sets the build number. + + + + + Determines at what time the AdsSyncNotification-Event is fired. + + + + + No AdsSyncNotification-Event is fired (ADSTRANS_NOTRANS = 0) + + + + + The AdsSyncNotification-Event is fired cyclically triggered by the client (ADSTRANS_CLIENTCYCLE=1) + + + + + The AdsSymcNotification-Event is fired when data changes triggered by the client. (ADSTRANS_CLIENTONCHA = 2) + + + + + The AdsSyncNotification-Event is fired cyclically (ADSTRANS_SERVERCYCLE = 3) + + + + + The AdsSyncNotification-Event is fired when the data changes (ADSTRANS_SERVERONCHA = 4) + + + + + The AdsSyncNotification-Event is fired cyclically within the given context (ADSTRANS_SERVERCYCLE2 = 5) + + + + + The AdsSyncnotification-Event is fired when the data changes within the given context (ADSTRANS_SERVERONCHA2 = 6) + + + + + State of the Ams Router. + + + + + Ams Router is stopped. + + + + + Ams Router is started. + + + + + Ams Router has been removed. + + + + + AmsPorts + + + + + AmsRouter (Port 1) + + + + + AmsDebugger (Port 2) + + + + + Logger (Port 100) + + + + + Event Logger (Port 110) + + + + + R0 Realtime (Port 200) + + + + + R0 Trace (Port 290) + + + + + R0 IO (Port 300) + + + + + NC (R0) (Portt 500) + + + + + R0 Satzausführung (Port 5019 + + + + + R0 Satzvorbereitung (Port 511) + + + + + R0 ISG (Port 550) + + + + + R0 CNC (Port 600) + + + + + R0 Line (Port 700) + + + + + R0 PLC (Port 800) + + + + + PLC RuntimeSystem 1 (Port 801) + + + + + PLC RöuntimeSystem 2 (Port 811) + + + + + PLC RuntimeSystem 3 (Port 821) + + + + + PLC RuntimeSystem 4 (Port 831) + + + + + Camshaft Controller (R0) (Port 900) + + + + + R0 CAM Tool (Port 950) + + + + + R0 User (Port 2000) + + + + + System Service (AMSPORT_R3_SYSSERV, 10000) + + + + + (Port 10000) + + + + + (Port 10001) + + + + + Port 10100 + + + + + Port 10200 + + + + + Port 10201 + + + + + Port 10300 + + + + + Port 10400 + + + + + Port 10500 + + + + + Port 10600 + + + + + Port 10800 + + + + + Port 11000 + + + + + Port 11500 + + + + + Port 12000 + + + + + Port 13000 + + + + + Port 14000 + + + + + Port 15000 + + + + + Port 16000 + + + + + Port 17000 + + + + + Port 17500 + + + + + + + + + + Describes the AdsState. + + + + + Describes predefined Index-Groups. + + + + + Describes predefined Index-Offsets. + + + + + Describes the Ads error that occured. + + + + + No Error. + Error code: 0(0x000). + + + + + Internal Error. + Error code: 1(0x001). + + + + + No Rtime. + Error code: 2(0x002). + + + + + Allocation locked memory error. + Error code: 3(0x003). + + + + + Insert mailbox error. + Error code: 4(0x004). + + + + + Wrong receive HMSG. + Error code: 5(0x005). + + + + + Target port not found. + Error code: 6(0x006). + + + + + Target machine not found. + Error code: 7(0x007). + + + + + Unknown command ID. + Error code: 8(0x008). + + + + + Bad task ID. + Error code: 9(0x009). + + + + + No IO. + Error code: 10(0x00A). + + + + + Unknown AMS command. + Error code: 11(0x00B). + + + + + Win 32 error. + Error code: 12(0x00C). + + + + + Port is not connected. + Error code: 13(0x00D). + + + + + Invalid AMS length. + Error code: 14(0x00E). + + + + + Invalid AMS Net ID. + Error code: 15(0x00F). + + + + + Low Installation level. + Error code: 16(0x010). + + + + + No debug available. + Error code: 17(0x011). + + + + + Port disabled. + Error code: 18(0x012). + + + + + Port is already connected. + Error code: 19(0x013). + + + + + AMS Sync Win32 error. + Error code: 20(0x014). + + + + + AMS Sync timeout. + Error code: 21(0x015). + + + + + AMS Sync AMS error + Error code: 22(0x016). + + + + + AMS Sync no index map. + Error code: 23(0x017). + + + + + Invalid AMS port. + Error code: 24(0x018). + + + + + No memory. + Error code: 25(0x019). + + + + + TCP send error. + Error code: 26(0x01A). + + + + + Host unreachable. + Error code: 27(0x1B). + + + + + Router: no locked memory. + Error code: 1280(0x500). + + + + + Router: mailbox full. + Error code: 1282(0x501). + + + + + error class <device error"> + Error code: 1792(0x700). + + + + + Service is not supported by server. + Error code: 1793(0x701). + + + + + Invalid index group. + Error code: 1794(0x702). + + + + + Invalid index offset. + Error code: 1795(0x703). + + + + + Reading/writing not permitted. + Error code: 1796(0x704). + + + + + Parameter size not correct. + Error code: 1797(0x705). + + + + + Invalid parameter value(s). + Error code: 1798(0x706). + + + + + Device is not in a ready state. + Error code: 1799(0x707). + + + + + Device is busy. + Error code: 1800(0x708). + + + + + Invalid context (must be in Windows). + Error code: 1801(0x709). + + + + + Out of memory. + Error code: 1802(0x70a). + + + + + Invalid parameter value(s). + Error code: 1803(0x70b). + + + + + Not found(files, ...). + Error code: 1804(0x70c). + + + + + Syntax error in command or file. + Error code: 1805(0x70d). + + + + + Objects do not match. + Error code: 1806(0x70e). + + + + + Object already exists. + Error code: 1807(0x70f). + + + + + Symbol not found. + Error code: 1808(0x7010). + + + + + Symbol version is invalid. + Error code: 1809(0x711). + + + + + Server is not i a valid state. + Error code: 1810(0x712). + + + + + ADS transmode is not supported. + Error code: 1811(0x713). + + + + + Notification handle is invalid. + Error code: 1812(0x714). + + + + + Notification vlient not registered. + Error code: 1813(0x715). + + + + + No more notification handles. + Error code: 1814(0x716). + + + + + Size for watch to big. + Error code: 1815(0x717). + + + + + Device is not initialized. + Errocr code: 1818(0x718). + + + + + Devicee has a timeout. + Error code: 1817(0x719). + + + + + Query interface has failed. + Error code: 1818(0x71A). + + + + + Wrong interface required. + Error code: 1819(0x71B). + + + + + Class ID is invalid. + Error code: 1820(0x71C). + + + + + Object ID is invalid. + Error code: 1821(0x71D). + + + + + Error class <client error> + Error code: 1856(0x740). + + + + + Parameter at service is invalid. + Error code: 1857(0x741). + + + + + Polling list is empty. + Error code: 1858(0x742). + + + + + Variable connection is already in use. + Error code: 1859(0x743). + + + + + Invoke ID already in use. + Error code: 1860(0x744). + + + + + Timeout has elapsed. + Error code: 1861(x745). + + + + + Error in win32 subsystem. + Error code: 1862(0x746). + + + + + Timeout value is invalid. + Error code: 1863(0x747). + + + + + Ads port is not opened. + Error code: 1864(0x748). + + + + + No AMS addr. + Error code: 1865(0x749). + + + + + An internal in ADS sync has occured. + Error code: 1872(0x750). + + + + + Hash table overflow. + Error code: 1873(0x751). + + + + + There are no more symbols in the hash table. + Error code: 1874(0x752). + + + + + There are no more symbols in cache. + Error code: 1875(0x753). + + + + + An invalid response has been received. + Error code: 1876(0x754). + + + + + Sync port is locked. + Error code: 1877(0x755). + + + + + Client queue is full + + + + + This class encapsultes accesses to the TwinCAT Registry part. + + + + + "Software\\Beckhoff\\TwinCAT\\System" + + + + + Installation Path (TwinCAT2) Registry Key ("InstallationPath") + + + + + Installation Path (TwinCAT3) Registry Key ("InstallDir") + + + + + Installation Path (TwinCAT3) Registry Key ("CurrentVersion") + + + + + TwinCAT Installation type + + + + + TwinCAT Installation path + + + + + Tries to get the TwinCAT 2 Installation Path (if installed) + + The TwinCAT 2 root path. + The version (TwinCAT29 + + + + + Tries to get the TwinCAT 3 Installation Path (if installed) + + The TwinCAT root path. + The TwinCAT version. + + + + + Gets the root path ("Software\\Beckhoff\\TwinCAT", or "Software\\Beckhoff\\TwinCAT3") + + The root. + + + + Gets the AmsNet ID from the Registry + + The ams net id. + + + + Registry TwinCAT Root path (TwinCAT 3) + + + + + Gets a value indicating whether this code is running within a Wow64 Process (32-Bit Processon 64-Bit Operating system) + + + true if this instance is wow64 process; otherwise, false. + + + + + Gets the SystemKey registry key (Don't forget to close the key) "HKLM\\Software\\Beckhoff\\TwinCAT\\System"; + + + + + Enumeration describes whether Tc2 or Tc3 is associated. + + + + + No installation found / Uninitialized + + + + + Tc2 Installation detected + + + + + Tc3 Installation detected + + + + + Provides data for AdsNotificationEvent of the class TcAdsClient. + + + + + Initializes a new instance of the AdsStream class AdsSyncNotificationEventArgs. + + Timespamp. + An object, that is passed by AddDeviceNotification. + Handle of the connection. + Length of the data in dataStream. + The offset of the data in dataStream . + Stream that is used to store the data. + + + + Gets the timestamp. + + + + + Gets the user object. This object is passed by to AddDeviceNotification and can + be used to store data. + + + + + Gets the handle of the connection. + + + + + Streams that holds the notification data. + + + + + Gets the Length of the data in the stream. + + + + + Gets the Offset of the data in the stream. + + + + + Provides data for AdsNotificationExEvent of the class TcAdsClient. + + + + + Initializes a new instance of the AdsStream class AdsSyncNotificationEventArgs. + + Timestamp. + An object, that is passed by AddDeviceNotificationEx. + Handle of the connection. + Value of the ADS variable. + + + + Gets the timestamp. + + + + + Gets the user object. This object is passed by to AddDeviceNotification and can + be used to store data. + + + + + Value of the ads variable. + + + + + Gets the handle of the connection. + + + + + Provides data for AmsRouterNotificationEvent of the class TcAdsClient. + + + + + Initializes a new instance of the AmsRouterNotificationEventArgs class. + + The current state of the Router. + + + + Current state of the Ams Router. + + + + + Provides data for AdsNotificationErrorEvent of the class TcAdsClient. + + + + + Initializes a new instance of the AdsNotificationErrorEventArgs class. + + Exception that was caught while handling notifications. + + + + Exception that was caught while handling notifications. + + + + + Provides data for AdsStateChangedEvent of the class TcAdsClient. + + + + + Initializes a new instance of the AdsStateChangedEventArgs class. + + Current state of the ADS device. + + + + Initializes a new instance of the AdsStateChangedEventArgs class. + + + + + + Current state of the ADS device. + + + + + Provides data for AdsSymbolVersionChangedEvent of the class TcAdsClient. + + + + + Initializes a new instance of the AdsSymbolVersionChangedEventArgs class. + + Current symbol version. + + + + Initializes a new instance of the AdsSymbolVersionChangedEventArgs class. + + + + + + Current symbol version device. + + + + + Event handler for the AdsNotification event in the class TcAdsClient. + + + + + Event handler for the AdsNotification event in the class TcAdsClient. + + + + + Event handler for the AmsRouterNotification event in the class TcAdsClient. + + + + + Event handler for the AdsNotificationError event in the class TcAdsClient. + + + + + Event handler for the AdsStateChanged event in the class TcAdsClient. + + + + + The class TcAdsClient is a wrapper for the TcAdsdll.dll and enables synchronous access + to an Ads device. + + + + + Initializes a new instance of the class TcAdsClient. + + + + + Finalizer + + + + + Releases the resources used by TcAdsClient. + + + + + Disposes the . + + + When overwritten don't forget to call the base class + + + + Establishes a connection to a ADS device. + + NetId of the ADS server. + Port number of the ADS server. + + + + Establishes a connection to a ADS device. + + NetId of the ADS server. + Port number of the ADS server. + + + + Establishes a connection to a ADS device using the local netID. + + Port number of the ADS server. + + + + Establishes a connection to a ADS device. + + NetId of the ADS server. + Port number of the ADS server. + + + + Establishes a connection to a ADS device. + + NetId of the ADS server. + Port number of the ADS server. + + + + Establishes a connection to a ADS device. + + The address. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Number of succesfully returned data bytes. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Number of succesfully returned data bytes. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Number of succesfully returned data bytes. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Number of succesfully returned data bytes. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Handle of the ADS variable + Stream that receives the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Number of succesfully returned data bytes. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to the given stream. + + Handle of the ADS variable + Stream that receives the data. + Number of succesfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Handle of the ADS variable + Stream that contains the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device. + + Handle of the ADS variable + Stream that receives the data. + Thrown when the ADS call fails. + + + + Reads data synchronously from an ADS device and writes it to an object. + If the Type of the object to be read is a string type, the first element of + the parameter args specifies the number of characters of the string. + If the Type of the object to be read is an array type, the number of elements + for each dimension has to be specified in the parameter args. At the moment + only 1 dimensional Arrays are supported. + + Handle of the ADS variable. + Type of the object to be read. + Additional arguments. + The object the read data is written to. + + + + Reads data synchronously from an ADS device and writes it to an object. + + Handle of the ADS variable. + Type of the object to be read. + The object the read data is written to. + + + + Reads data synchronously from an ADS device and writes it to an object. + If the Type of the object to be read is a string type, the first element of + the parameter args specifies the number of characters of the string. + If the Type of the object to be read is an array type, the number of elements + for each dimension has to be specified in the parameter args. At the moment + only 1 dimensional Arrays are supported. + + Index group of the ADS variable. + Index offset of the ADS variable. + Type of the object to be read. + Additional arguments. + The object the read data is written to. + + + + Reads data synchronously from an ADS device and writes it to an object. + + Index group of the ADS variable. + Index offset of the ADS variable. + Type of the object to be read. + The object the read data is written to. + + + + Writes an object synchronously to an ADS device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Object to write to the ADS device. + + + + Writes an object synchronously to an ADS device. + + Handle of the ADS variable. + Object to write to the ADS device. + + + + Writes an object synchronously to an ADS device. + If the Type of the object to be written is a string type, the first element of parameter args + specifies the number of characters of the string. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Object to write to the ADS device. + Additional arguments. + + + + Writes an object synchronously to an ADS device. + If the Type of the object to be written is a string type, the first element of parameter args + specifies the number of characters of the string. + + Handle of the ADS variable. + Object to write to the ADS device. + Additional arguments. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Lenght of the data in wrDataStream. + Number of succesfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Offset of the data in rdDataStream. + Length of the data in rdDataStream. + Stream that contains the data that should be written. + Offset of the data in wrDataStream. + Lenght of the data in wrDataStream. + Number of succesfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Stream that contains the data that should be written. + Number of succesfully returned data bytes. + Thrown when the ADS call fails. + + + + Writes data synchronously to an ADS device and then Reads data from this device. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Stream that receives the data that has been read. + Stream that contains the data that should be written. + Number of succesfully returned data bytes. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object stored in the event argument. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + If type is a string type, the first element of the parameter args specifies the number of characters of the string. + If type is an array type, the number of elements for each dimension has to be specified in the parameter args. + At the moment only 1 dimensional Arrays are supported. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object s0000tored in the event argument. + Additional arguments. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object stored in the event argument. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + Type of the object stored in the event argument. + Additional arguments. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Contains the index group number of the requested ADS service. + Contains the index offset number of the requested ADS service. + The stream that should receive the data. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + The stream that should receive the data. + Offset of the data in dataStream. + Length of the data in dataStream. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + + The handle of the notification. + + Thrown when the ADS call fails. + + + Parameter semantic + + Value of parameter is interpreted as task context number + + + Value of parameter is interpreted as task context number + + + + + + + Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. + + Name of the ADS variable. + The stream that should receive the data. + Specifies if the event should be fired cyclically or only if the variable has changed. + The ADS server checks whether the variable has changed after this time interval. Unit is in ms. + The AdsNotification event is fired at the latest when this time has elapsed. The unit is ms. + This object can be used to store user specific data. + The handle of the notification. + Thrown when the ADS call fails. + + + + Deletes an existing notification. + + Handle of the notification. + Thrown when the ADS call fails. + + + + Reads the identification and version number of an ADS server. + + DeviceInfo struct containing the name of the device and the version information. + Thrown when the ADS call fails. + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + Stream that contains the data that should be sent to the ADS device + Offset of the data in the stream. + Length of the data in the stream. + Thrown when the ADS call fails. + + + + Changes the ADS status and the device status of an ADS server. + + New ADS status and device status. + Thrown when the ADS call fails. + + + + Reads the ADS status and the device status from an ADS server. + + The ADS statue and device status. + Thrown when the ADS call fails. + + + + Reads the ADS status and the device status from an ADS server. Unlike the ReadState method this method does not call an exception on failure. Instead an AdsErrorCode is returned. + If the return value is equal to AdsErrorCode.NoError the call was successfull. + + The ADS statue and device status. + AdsErrorCode of the ads read state call. Check for AdsErrorCode.NoError to see if call was successfull. + + + + Generates a unique handle for an ADS variable. + + Name of the ADS variable + The handle of the ADS Variable. + Thrown when the ADS call fails. + + + + Releases the handle of a ADS variable again. + + Handle of the ADS variable + Thrown when the ADS call fails. + + + + Call this method to obtain information about the individual symbols (variables) in ADS devices. + + Name of the symbol. + A ITcAdsSymbol containing the requested symbol inofrmation or null if symbol could not + be found. + Thrown when the ADS call fails. + + + + Creates a new instance of the TcAdsSymbolInfoLoader class. With the help of this object one can load the symbol + information of the ADS device. + + Instance of the TcAdsSymbolInfoLoader class. + + + + Creates a new instance of the Symbol loader. + + The interface of the Symbol loader."/> + In the first step, this method is for internal use only. + + + + Creates a new instance of the Symbol loader. + + if set to true virtual instances are created for non-located symbols. + + The interface of the Symbol loader. + + Virtual instances means, that all Symbols are ordered within a tree structure. For that symbol nodes that are not located on a fixed address, a Virtual Symbol will be created. + Setting the virtualInstance parameter to 'false' means, that the located symbols will be returned in a flattened list. + + + + Reads the value of a symbol and returns the value as object. The parameter type must have the same + layout as the ADS symbol. + + Name of the ADS symbol. + Managed type of the ADS symbol. + If reload is true previously stored symbol information is cleared. As a consequence the symbol information must be obtained from the ADS server again. + Value of the symbol + + + + Writes the passed object value to the specified ADS symbol.The parameter type must have the same + layout as the ADS symbol. + + Name of the ADS symbol. + Object holding the value to be written to the ADS symbol + If reload is true previously stored symbol information is cleared. As a consequence the symbol information must be obtained from the ADS server again. + + + + Reads the value of a symbol and returns it as an object. Strings and all primitive datatypes(UInt32, Int32, Bool etc.) are supported. + Arrays and structures cannot be read. + + The symbol that should be read. + The value of the symbol as an object. + Thrown when a ADS datatype is not supported. + Thrown when the ADS call fails. + + + + Writes a value to the symbol. Strings and all primitive datatypes(UInt32, Int32, Bool etc.) are supported. Array and structures are not supported. + If a string is passed as parameter, the method attempts to parse the string according to the ADS datatype of the symbol. + + The symbol the value is written to. + The value to write. + Thrown when a ADS datatype is not supported. + Thrown when the ADS call fails. + + + + Determines, whether the is disposed + + + + + Occurs when the Ads device sends a notification to the client. + + + + + Occurs when the Ads devices sends a notification to the client. + + + + + Occurs when a exception has occured during notification management. + + + + + Occurs when the state of the local Router has changed. + + + + + Occurs when the ADS state changes. + + + + + Occurs when the symbol version changes. + + + + + Sets the timeout for the ads communication. Unit is in ms. + + + + + Gets or sets a value indicating whether the TcAdsClient object uses a client cylce for the notificatons. + + + If ClientCycle is set to false, the ADS that has been addressed writes the data cyclically + to the TcAdsClient object. The smallest possible time is the cycle time of the ADS device. + For the PLC, this is the task cycle time. The cycle time can be handled in 1 ms steps. + If you enter 0 ms as the cycle time, then the data is sent to the TcAdsClient object with + every cycle of the ADS device task. + If ClientCylce is set to true, the TcAdsClient object polls the variables cyclically. + The timer that initiates the read / write runs in Windows NT/2000 user mode, which means + that the time behaviour strongly depends on the loading of the system. + + + + + Gets or sets a value indicating whether the TcAdsClient object synchronizes the incoming notifcations. + + + If Synchronize is set to true, the notifications are synchronized onto the Main thread. + This is necessary for Windows Forms projects. In Console Application this property should + be set to false. + + + + + Gets a value indicating whether the ADS client is connected to a ADS Server on the local + computer. + + + + + Gets the port number of the ADS server. + + + + + Gets the AmsNetId of the ADS server. + + + + + Gets the port number of the ADS client. + + + + + Get the AmsNetId of the ADS client. + + + + + Gets a value indicating whether the local Ads port was opened successfully. It + does not indicate if the target port is available. Use the method ReadState to + determine if the target port is available. + + + + + Gets the current state of the local AMS router. + + + + + Defines an Interface for reading the ADS symbol information. + + + + + Gets the index group of the symbol. + + Index group of the symbol. + + + + Gets the index offset of the symbol. + + Index offset of the symbol. + + + + Gets the size of the symbol. + + Size of the symbol. + + + + Data type of the symbol. + + Data type of the symbol. + + + + Gets the name of the symbol. + + Name of the symbol. + + + + Gets the name of the symbol data type. + + Name of the symbol data type. + + + + Gets the comment behind the variable declaration. + + Comment behind the variable declaration. + + + + Defines an interface for reading the additional flags-information of an ADS symbol. + + + + + Indicates if the Persitent flag is set for the symbol. + + true if persistent, otherwise false. + + + + Indicates if the BitValue flag is set for the symbol. + + true if is BitValue, otherwise false. + + + + Indicates if the ReferenceTo flag is set for the symbol. + + true if is ReferenceTo, otherwise false. + + + + Gets a value indicating whether this instance is pointer. + + + true if this instance is pointer; otherwise, false. + + + + + Indicates if the TypeGuid flag is set for the symbol. + + true if is TypeGuid, otherwise false. + + + + Indicates if the ReadOnly flag is set for the symbol. + + true if ReadOnly, otherwise false. + + + + Indicates if the TcComInterfacePointer flag is set for the symbol. + + treu if is TcComInterfacePointer, otherwise false. + + + + Gets the ContextMask of the symbol, indicating the task the variable belongs to. + If ContextMask is not zero use or to add notifications. + + + + + Gets the corresponding managed type of this symbol. This only works for + primitive types. + + Managed type of symbol. + + + + Gets the index group of the symbol. + + Index group of the symbol. + + + + Gets the index offset of the symbol. + + Index offset of the symbol. + + + + Gets the size of the symbol. + + Size of the symbol. + + + + Data type of the symbol. + + Data type of the symbol. + + + + Gets the name of the symbol. + + Name of the symbol. + + + + Gets the name of the symbol data type. + + Name of the symbol data type. + + + + Gets the comment behind the variable declaration. + + Comment behind the variable declaration. + + + + Indicates if the Persitent flag is set for the symbol. + + true if persistent, otherwise false. + + + + Indicates if the BitValue flag is set for the symbol. + + true if is BitValue, otherwise false. + + + + Gets a value indicating whether this instance is pointer. + + + true if this instance is pointer; otherwise, false. + + + + + Indicates if the ReferenceTo flag is set for the symbol. + + true if is ReferenceTo, otherwise false. + + + + Indicates if the TypeGuid flag is set for the symbol. + + true if is TypeGuid, otherwise false. + + + + Indicates if the ReadOnly flag is set for the symbol. + + true if ReadOnly, otherwise false. + + + + Indicates if the TcComInterfacePointer flag is set for the symbol. + + treu if is TcComInterfacePointer, otherwise false. + + + + Gets the ContextMask of the symbol, indicating the task the variable belongs to. + If ContextMask is not zero use or to add notifications. + + + + + ADS data types. + + + + + Array definition for a single dimension. + + + + + Gets the lower bound. + + + + + Gets the number of elements. + + + + + Represents a collection of TcAdsSymbolInfo objects. + + + + + Returns an enumerator that can iterate through ths symbols in this collection. + + + An IEnumerator that can be used to iterate through all symbols in this collection. + + + + + Copies the elements of the collection to an Array, starting at a + particular Array index. + + + The one-dimensional Array that is the destination of the + elements copied from the collection. The + Array must have zero-based indexing. + + + The zero-based index in array at which copying begins. + + + + + Gets the element at the specified index. + + + + + Gets the number of elements + contained in the collection. + + + + + Gets a value indicating whether + access to the collection is synchronized + (thread-safe). + + + + + Gets an object that can be used to + synchronize access to the collection. + + + + + Defines an Interface for reading the ADS symbol Array Information + + + + + Gets a value indicating whether this instance is an array. + + + true if this instance is an array; otherwise, false. + + + + + Gets the array dimensions. + + + The array dimensions. + + + + + Gets the collection of Array Infos. + + + The array infos. + + + + + The class TcAdsSymbolInfo represents a symbol loaded by an instance of the TcAdsSymbolInfoLoader class. + + + + + Initializes a new instance of the class. + + The symbol parser. + The index. + + + + Initializes a new instance of the class. + + The symbol parser. + The parent. + Index of the sub. + + + + Gets the Base data type of the pointer (the referenced type) + + Type of the reference. + + + + + Gets the referenced data type of the reference. + + Type of the referenced. + + + + + Gets the parent of this symbol. + + Parent of this symbol + + + + Gets the next sibling of this symbol. + + Next sibling of this symbol. + + + + Gets the next sub symbol of this symbol. + + Next sub symbol. + + + + Gets the sub symbols of this symbol as a collection of TcAdsSymbolInfo objects. + + + + + Gets the number of sub symbols. + + + + + Gets the index group of the symbol. + + Index group of the symbol. + + + + Gets the index offset of the symbol. + + Index offset of the symbol. + + + + Gets the size of the symbol. + + Size of the symbol. + + + + Data type of the symbol. + + Data type of the symbol. + + + + Gets the name of the symbol. + + Name of the symbol. + + + + Gets the name of the symbol (short form without prefixed names of the parents). + + Full name of the symbol. + + + + Gets the name of the symbol data type. + + Name of the symbol data type. + + + + Gets the comment behind the variable declaration. + + Comment behind the variable declaration. + + + + Gets a value indicating whether this is a pointer. + + + true if this instance is pointer; otherwise, false. + + + + + Indicates if the Persitent flag is set for the symbol. + + true if persistent, otherwise false. + + + + Indicates if the BitValue flag is set for the symbol. + + true if is BitValue, otherwise false. + + + + Indicates if the ReferenceTo flag is set for the symbol. + + true if is ReferenceTo, otherwise false. + + + + Indicates if the TypeGuid flag is set for the symbol. + + true if is TypeGuid, otherwise false. + + + + Indicates if the ReadOnly flag is set for the symbol. + + true if ReadOnly, otherwise false. + + + + Indicates if the TcComInterfacePointer flag is set for the symbol. + + treu if is TcComInterfacePointer, otherwise false. + + + + Gets the ContextMask of the symbol, indicating the task the variable belongs to. + If ContextMask is not zero use or to add notifications. + + + + + The class TcAdsSymbolInfoLoader is responsible for downloading the list of declared variables from an ADS Server. + + + + + Initializes a new instance of the class. + + The ads client. + + + + Loads the declared symbols from the ADS device and returns them as a collection of TcAdsSymbolInfo objects. + + True, if a (new) loading of the symbol information from the server is required. + A collection of TcAdsSymbolInfo objects + If no symbols have been loaded before, the symbols are loaded from the server, regardless of the parameter forceReload. +

Note about the PLC: Please attend to the PLC Control that the 'Symbol-Download' under Project / Options / TwinCAT is activated. For further information please see the manual TwinCAT PLC Control.

+

Note about NC: The Symbol download has to be activated at each axis. This can de done in the configuration dialog of the axis under ‚General'. The field ‚Create Symbols' has to be marked. See manual of the TwinCAT System Manager.

+
+ + + Returns an enumerator that can iterate through all symbols. + + + An IEnumerator that can be used to iterate through all symbols. + + + + + Call this method to find a symbol in the list. + + Name of the symbol + If no symbols have been loaded before, the symbols are loaded from the server, regardless of the parameter forceReload. +

Note about the PLC: Please attend to the PLC Control that the 'Symbol-Download' under Project / Options / TwinCAT is activated. For further information please see the manual TwinCAT PLC Control.

+

Note about NC: The Symbol download has to be activated at each axis. This can de done in the configuration dialog of the axis under ‚General'. The field ‚Create Symbols' has to be marked. See manual of the TwinCAT System Manager.

+
+ + + Call this method to get the number of declared symbols. + + True, if a (new) loading of the symbol information from the server is required. + Returns the number of symbols. + If no symbols have been loaded before, the symbols are loaded from the server, regardless of the parameter forceReload. + Note about the PLC: Please attend to the PLC Control that the 'Symbol-Download' under Project / Options / TwinCAT is activated. For further information please see the manual TwinCAT PLC Control. + Note about NC: The Symbol download has to be activated at each axis. This can de done in the configuration dialog of the axis under ‚General'. The field ‚Create Symbols' has to be marked. See manual of the TwinCAT System Manager. + + + + Call this method to get the first symbol. + + True, if a (new) loading of the symbol information from the server is required. + Returns the first symbol or null if no symbols are available. + If no symbols have been loaded before, the symbols are loaded from the server, regardless of the parameter forceReload. + Note about the PLC: Please attend to the PLC Control that the 'Symbol-Download' under Project / Options / TwinCAT is activated. For further information please see the manual TwinCAT PLC Control. + Note about NC: The Symbol download has to be activated at each axis. This can de done in the configuration dialog of the axis under ‚General'. The field ‚Create Symbols' has to be marked. See manual of the TwinCAT System Manager. + + + + Ads Symbol Enumerator + + + + + Initializes a new instance of the class. + + The symbol loader. + + + + Summary description for Trace. + + + + + Category of a DataType / Instance + + + + + + + Uninitialized / NotProcessed (0) + + + + + Uninitialized / NotProcessed (0) + + + + + Simple / Base Data Type (1) + + + + + Alias data type (2) + + + + + Enumeration data type (3) + + + + + Array data type (4) + + + + + Structure data type (5) + + + + + Function block (POU) (6) + + + + + Program (POU) (7) + + + + + Function (POU) (8) + + + + + SubRange (9) + + + + + Fixed length string (10) + + + + + Bitset (12) + + + + + Pointer type (13) + + + + + Union type (14) + + + + + Reference type (15) + + + + + Interface for a that supports values. + + + + + Gets a value indicating whether this has a value. + + true if this instance has value; otherwise, false. + A VirtualSymbol does not support values, but in terms of the definition, is a + + + + Gets or sets the raw value of the Symbol (Ads Read / Write) + + The raw value. + + + + Occurs when the Value of the has changed. + + + + + Event args for the event. + + + + + Initializes a new instance of the class. + + The symbol. + The value. + Time steamp in ?Ticks + + + + New Value (Primitive type or byte[]) + + + + + Symbol that caused the event. + + + + + FileTime of changed event in Ticks + + + + + Gets the UTC Time of the Event + + The UTC time. + + + + Event args for the event. + + + + + Initializes a new instance of the class. + + The symbol. + The value. + The time stamp. + + + + New Value (Late bound, dynamic object, >= NET4) + + + + + Symbol that caused the event. + + + + + FileTime of changed event in Ticks + + + + + Gets the UTC Time of the Event + + The UTC time. + + + + Dynamic value (uses RuntimeBinding for value reading / writing). + + + + + Symbol that is bound to this value. + + + + + Initializes a new instance of the class. + + The symbol. + + + + Initializes a new instance of the class. + + The symbol. + RawData + RawData Offset + The parent value. + + + + Returns the enumeration of all dynamic member names. + + + A sequence that contains dynamic member names. + + + + + Tries to update the value; + + + + + + Provides the implementation for operations that get member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as getting a value for a property. + + Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member on which the dynamic operation is performed. For example, for the Console.WriteLine(sampleObject.SampleProperty) statement, where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive. + The result of the get operation. For example, if the method is called for a property, you can assign the property value to . + + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a run-time exception is thrown.) + + + + + Provides the implementation for operations that set member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as setting a value for a property. + + Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member to which the value is being assigned. For example, for the statement sampleObject.SampleProperty = "Test", where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive. + The value to set to the member. For example, for sampleObject.SampleProperty = "Test", where sampleObject is an instance of the class derived from the class, the is "Test". + + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown.) + + + + + Provides the implementation for operations that invoke a member. Classes derived from the class can override this method to specify dynamic behavior for operations such as calling a method. + + Provides information about the dynamic operation. The binder.Name property provides the name of the member on which the dynamic operation is performed. For example, for the statement sampleObject.SampleMethod(100), where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleMethod". The binder.IgnoreCase property specifies whether the member name is case-sensitive. + The arguments that are passed to the object member during the invoke operation. For example, for the statement sampleObject.SampleMethod(100), where sampleObject is derived from the class, [0] is equal to 100. + The result of the member invocation. + + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown.) + + + + + Provides the implementation for operations that get a value by index. Classes derived from the class can override this method to specify dynamic behavior for indexing operations. + + Provides information about the operation. + The indexes that are used in the operation. For example, for the sampleObject[3] operation in C# (sampleObject(3) in Visual Basic), where sampleObject is derived from the DynamicObject class, [0] is equal to 3. + The result of the index operation. + + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a run-time exception is thrown.) + + + + + Reads the specified array element. + + The indices. + + + + + Reads the specified member element. + + The member instance. + + + + + Writes the specified member element. + + The member instance. + The value. + + + + Provides the implementation for operations that set a value by index. Classes derived from the class can override this method to specify dynamic behavior for operations that access objects by a specified index. + + Provides information about the operation. + The indexes that are used in the operation. For example, for the sampleObject[3] = 10 operation in C# (sampleObject(3) = 10 in Visual Basic), where sampleObject is derived from the class, [0] is equal to 3. + The value to set to the object that has the specified index. For example, for the sampleObject[3] = 10 operation in C# (sampleObject(3) = 10 in Visual Basic), where sampleObject is derived from the class, is equal to 10. + + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown. + + + + + Writes the array element value into the cache. + + The indices. + The value. + + + + Gets the symbol that is bound to this value. + + The symbol. + + + + Gets the root value. + + The root value. + The root value is the value, that is active in terms of ADS communication, the object that requests the data. All subsequent + childs are working on the s cache. + +
+
diff --git a/ExtLibs/AdsApi/TcAdsWebService/AdsJavaScriptLibrary/TcAdsWebService.js b/ExtLibs/AdsApi/TcAdsWebService/AdsJavaScriptLibrary/TcAdsWebService.js new file mode 100644 index 00000000..6e2dda9f --- /dev/null +++ b/ExtLibs/AdsApi/TcAdsWebService/AdsJavaScriptLibrary/TcAdsWebService.js @@ -0,0 +1,997 @@ +/*! +---------------------------------------------------- +TcAdsWebService JavaScript Library +---------------------------------------------------- +Version: v1.0.6.0 +---------------------------------------------------- +Copyright 2018, Beckhoff Automation GmbH & Co. KG +http://www.beckhoff.com +---------------------------------------------------- +*/ +//////////////////////////////////////////////////// +(function (window) { + + var TcAdsWebService = new (function () { + + this.Response = (function (hasError, error, reader, isBusy) { + + this.isBusy = isBusy; + this.hasError = hasError; + this.error = error; + this.reader = reader; + this.getTypeString = (function () { + return "TcAdsWebService.Response"; + }); + + }); + + this.Error = (function (errorMessage, errorCode) { + + this.errorMessage = errorMessage; + this.errorCode = errorCode; + this.getTypeString = (function () { + return "TcAdsWebService.Error"; + }); + + }); + + this.ResquestError = (function (requestStatus, requestStatusText) { + + this.requestStatus = requestStatus; + this.requestStatusText = requestStatusText; + this.getTypeString = (function () { + return "TcAdsWebService.ResquestError"; + }); + + }); + + this.Client = (function (sServiceUrl, sServiceUser, sServicePassword) { + + this.getTypeString = (function () { + return "TcAdsWebService.Client"; + }); + + this.readwrite = (function (sNetId, nPort, nIndexGroup, nIndexOffset, cbRdLen, pwrData, pCallback, userState, ajaxTimeout, ajaxTimeoutCallback, async) { + + var message = + "" + + "" + + "" + + "" + sNetId + "" + + "" + nPort + "" + + "" + nIndexGroup + "" + + "" + nIndexOffset + "" + + "" + cbRdLen + "" + + "" + pwrData + "" + + ""; + + return sendMessage(message, "http://beckhoff.org/action/TcAdsSync.Readwrite", pCallback, userState, ajaxTimeout, ajaxTimeoutCallback, async); + + }); + + this.readState = (function (sNetId, nPort, pCallback, userState, ajaxTimeout, ajaxTimeoutCallback, async) { + + var message = + "" + + "" + + "" + + "" + sNetId + "" + + "" + nPort + "" + + ""; + + return sendMessage(message, "http://beckhoff.org/action/TcAdsSync.ReadState", pCallback, userState, ajaxTimeout, ajaxTimeoutCallback, async); + }); + + this.writeControl = (function (sNetId, nPort, adsState, deviceState, pData, pCallback, userState, ajaxTimeout, ajaxTimeoutCallback, async) { + + var message = + "" + + "" + + "" + + "" + sNetId + "" + + "" + nPort + "" + + "" + adsState + "" + + "" + deviceState + "" + + "" + pData + "" + + ""; + + return sendMessage(message, "http://beckhoff.org/action/TcAdsSync.WriteControl", pCallback, userState, ajaxTimeout, ajaxTimeoutCallback, async); + }); + + this.write = (function (sNetId, nPort, nIndexGroup, nIndexOffset, pData, pCallback, userState, ajaxTimeout, ajaxTimeoutCallback, async) { + + var message = + "" + + "" + + "" + + "" + sNetId + "" + + "" + nPort + "" + + "" + nIndexGroup + "" + + "" + nIndexOffset + "" + + "" + pData + "" + + ""; + + return sendMessage(message, "http://beckhoff.org/action/TcAdsSync.Write", pCallback, userState, ajaxTimeout, ajaxTimeoutCallback, async); + }); + + this.read = (function (sNetId, nPort, nIndexGroup, nIndexOffset, cbLen, pCallback, userState, ajaxTimeout, ajaxTimeoutCallback, async) { + + var message = + "" + + "" + + "" + + "" + sNetId + "" + + "" + nPort + "" + + "" + nIndexGroup + "" + + "" + nIndexOffset + "" + + "" + cbLen + "" + + ""; + + return sendMessage(message, "http://beckhoff.org/action/TcAdsSync.Read", pCallback, userState, ajaxTimeout, ajaxTimeoutCallback, async); + }); + + var handleSyncResponse = function (xhr) { + + var errorMessage = undefined, errorCode = 0; + + if (xhr.readyState != 4 || xhr.status != 200) { + // Request has been aborted. + // Maybe because of timeout. + var resp = undefined; + try { + resp = new TcAdsWebService.Response( + true, new TcAdsWebService.ResquestError(xhr.status, xhr.statusText), undefined, false); + } catch (err) { + // Internet Explorer throws exception on abort + resp = new TcAdsWebService.Response( + true, new TcAdsWebService.ResquestError(0, 0), undefined, false); + } + + xhr = null; + return resp; + } + + var sSoapResponse = xhr.responseXML.documentElement; + var faultstringNodes = sSoapResponse.getElementsByTagName('faultstring'); + if (faultstringNodes.length != 0) { + + errorMessage = faultstringNodes[0].firstChild.data; + var errorCodeNodes = sSoapResponse.getElementsByTagName('errorcode'); + + if (errorCodeNodes.length != 0) { + errorCode = sSoapResponse.getElementsByTagName('errorcode')[0].firstChild.data; + } else { + errorCode = "-"; + } + + var resp = new TcAdsWebService.Response( + true, new TcAdsWebService.Error(errorMessage, errorCode), undefined, false); + + xhr = null; + return resp; + + } else { + + var ppDataNodes = sSoapResponse.getElementsByTagName('ppData'); + var ppRdDataNodes = sSoapResponse.getElementsByTagName('ppRdData'); + var pAdsStateNodes = sSoapResponse.getElementsByTagName('pAdsState'); + var pDeviceStateNodes = sSoapResponse.getElementsByTagName('pDeviceState'); + + var soapData = ""; + if (ppDataNodes.length != 0) { + //read + for (var i = 0; i < ppDataNodes[0].childNodes.length; i++) { + soapData += ppDataNodes[0].childNodes[i].data; + } + } else if (ppRdDataNodes.length != 0) { + // readwrite + for (var i = 0; i < ppRdDataNodes[0].childNodes.length; i++) { + soapData += ppRdDataNodes[0].childNodes[i].data; + } + } else if (pAdsStateNodes.length != 0 && pDeviceStateNodes.length) { + // readState + var adsState = pAdsStateNodes[0].firstChild.data; + var deviceState = pDeviceStateNodes[0].firstChild.data; + + var writer = new TcAdsWebService.DataWriter(); + writer.writeWORD(parseInt(adsState, 10)); + writer.writeWORD(parseInt(deviceState, 10)); + + soapData = writer.getBase64EncodedData(); + } + + if (soapData) { + var resp = new TcAdsWebService.Response( + false, + undefined, + new TcAdsWebService.DataReader(soapData), false); + xhr = null; + return resp; + } else { + // write completes without data in response + var resp = new TcAdsWebService.Response(false, undefined, undefined, false); + xhr = null; + return resp; + } + } + } + + var handleAsyncResponse = function (readyState, status, statusText, responseXML, pCallback, userState) { + + if (readyState < 4) { + if (pCallback) { + var resp = new TcAdsWebService.Response(false, undefined, undefined, true); + pCallback(resp, userState); + } + } + + if (readyState == 4) { + + if (status == 200) { + + var errorMessage = undefined, errorCode = 0; + + var sSoapResponse = responseXML.documentElement; + var faultstringNodes = sSoapResponse.getElementsByTagName('faultstring'); + if (faultstringNodes.length != 0) { + + errorMessage = faultstringNodes[0].firstChild.data; + var errorCodeNodes = sSoapResponse.getElementsByTagName('errorcode'); + + if (errorCodeNodes.length != 0) { + errorCode = sSoapResponse.getElementsByTagName('errorcode')[0].firstChild.data; + } else { + errorCode = "-"; + } + + if (pCallback) { + var resp = new TcAdsWebService.Response( + true, new TcAdsWebService.Error(errorMessage, errorCode), undefined, false); + pCallback(resp, userState); + } + + } else { + + var ppDataNodes = sSoapResponse.getElementsByTagName('ppData'); + var ppRdDataNodes = sSoapResponse.getElementsByTagName('ppRdData'); + var pAdsStateNodes = sSoapResponse.getElementsByTagName('pAdsState'); + var pDeviceStateNodes = sSoapResponse.getElementsByTagName('pDeviceState'); + + var soapData = ""; + if (ppDataNodes.length != 0) { + //read + for (var i = 0; i < ppDataNodes[0].childNodes.length; i++) { + soapData += ppDataNodes[0].childNodes[i].data; + } + } else if (ppRdDataNodes.length != 0) { + // readwrite + for (var i = 0; i < ppRdDataNodes[0].childNodes.length; i++) { + soapData += ppRdDataNodes[0].childNodes[i].data; + } + } else if (pAdsStateNodes.length != 0 && pDeviceStateNodes.length) { + // readState + var adsState = pAdsStateNodes[0].firstChild.data; + var deviceState = pDeviceStateNodes[0].firstChild.data; + + var writer = new TcAdsWebService.DataWriter(); + writer.writeWORD(parseInt(adsState, 10)); + writer.writeWORD(parseInt(deviceState, 10)); + + soapData = writer.getBase64EncodedData(); + } + + if (soapData) { + if (pCallback) { + var resp = new TcAdsWebService.Response( + false, undefined, new TcAdsWebService.DataReader(soapData), false); + if (pCallback) + pCallback(resp, userState); + } + } else { + + // write completes without data in response + if (pCallback) { + var resp = new TcAdsWebService.Response(false, undefined, undefined, false); + pCallback(resp, userState); + } + } + } + + } else { + // Request has been aborted. + // Maybe because of timeout. + if (pCallback) { + + var resp = undefined; + try { + resp = new TcAdsWebService.Response( + true, new TcAdsWebService.ResquestError(status, statusText), undefined, false); + } catch (err) { + // Internet Explorer throws exception on abort + resp = new TcAdsWebService.Response( + true, new TcAdsWebService.ResquestError(0, 0), undefined, false); + } + pCallback(resp, userState); + } + } + } + } + + var sendMessage = function (message, method, pCallback, userState, ajaxTimeout, ajaxTimeoutCallback, async) { + + if (async == null || async == undefined) + async = true; + + var xhr = undefined; + if (window.XMLHttpRequest) { + xhr = new XMLHttpRequest(); + } else { + try { + // MS Internet Explorer (ab v6) + xhr = ActiveXObject("Microsoft.XMLHTTP"); + } catch (e) { + try { + // MS Internet Explorer (ab v5) + xhr = new ActiveXObject("Msxml2.XMLHTTP"); + } catch (e) { + xhr = undefined; + } + } + } + + if (xhr == undefined) + return null; + + if (async) { + xhr.onreadystatechange = function () { + if (this.readyState == 4) { + handleAsyncResponse(this.readyState, this.status, this.statusText, this.responseXML, pCallback, userState); + } else { + handleAsyncResponse(this.readyState, undefined, undefined, undefined, pCallback, userState); + } + } + } + + if (sServiceUser && sServicePassword) { + xhr.open("POST", sServiceUrl, async, sServiceUser, sServicePassword); + } else { + xhr.open("POST", sServiceUrl, async); + } + + if ("timeout" in xhr && ajaxTimeout) + xhr.timeout = ajaxTimeout; + + if ("ontimeout" in xhr && ajaxTimeoutCallback) { + xhr.ontimeout = ajaxTimeoutCallback; + } + + xhr.setRequestHeader("Content-Type", "text/xml; charset=utf-8"); + + xhr.send(message); + + if (!async) { + return handleSyncResponse(xhr); + } + else { + xhr = null; + return null; + } + } + }); + + this.DataReader = (function (data) { + + this.offset = 0; + this.decodedData = Base64.decode(data); + + this.getTypeString = (function () { + return "TcAdsWebService.DataReader"; + }); + + this.readSINT = (function () { + var res = convertDataToInt(this.decodedData.substr(this.offset, 1), 1); + this.offset = this.offset + 1; + return res; + }); + + this.readINT = (function () { + var res = convertDataToInt(this.decodedData.substr(this.offset, 2), 2); + this.offset = this.offset + 2; + return res; + }); + + this.readDINT = (function () { + var res = convertDataToInt(this.decodedData.substr(this.offset, 4), 4); + this.offset = this.offset + 4; + return res; + }); + + this.readBYTE = (function () { + var res = convertDataToUInt(this.decodedData.substr(this.offset, 1), 1); + this.offset = this.offset + 1; + return res; + }); + + this.readWORD = (function () { + var res = convertDataToUInt(this.decodedData.substr(this.offset, 2), 2); + this.offset = this.offset + 2; + return res; + }); + + this.readDWORD = (function () { + var res = convertDataToUInt(this.decodedData.substr(this.offset, 4), 4); + this.offset = this.offset + 4; + return res; + }); + + this.readBOOL = (function () { + var res = this.decodedData.substr(this.offset, 1).charCodeAt(0); + this.offset = this.offset + 1; + if (res === 0) + return false; + if (res === 1) + return true; + return res; + }); + + this.readString = (function (length) { + + if (isNaN(length)) { + throw "Parameter \"length\" has to be a valid number."; + } + + var o = 0; + var c; + var ca = []; + + while (o < length) { // Read until length or 0 termination + c = this.decodedData.substr(this.offset + o, 1); + var cc = c.charCodeAt(0); + if (cc === 0) { + break; + } + ca.push(c); + o++; + } + + var res = ca.join(''); + this.offset = this.offset + length; + + return res; + }); + + this.readREAL = (function () { + var decData = []; + decData[0] = convertDataToUInt(this.decodedData.substr(this.offset + 0, 1), 1); + decData[1] = convertDataToUInt(this.decodedData.substr(this.offset + 1, 1), 1); + decData[2] = convertDataToUInt(this.decodedData.substr(this.offset + 2, 1), 1); + decData[3] = convertDataToUInt(this.decodedData.substr(this.offset + 3, 1), 1); + + var binData = []; + binData[0] = dec2Binary(decData[0]); + binData[1] = dec2Binary(decData[1]); + binData[2] = dec2Binary(decData[2]); + binData[3] = dec2Binary(decData[3]); + + var binStr = binData[3] + binData[2] + binData[1] + binData[0]; + + var res = binary2Real(binStr, TcAdsWebService.TcAdsWebServiceDataTypes.REAL); + this.offset = this.offset + 4; + return res; + }); + + this.readLREAL = (function () { + var decData = []; + decData[0] = convertDataToUInt(this.decodedData.substr(this.offset + 0, 1), 1); + decData[1] = convertDataToUInt(this.decodedData.substr(this.offset + 1, 1), 1); + decData[2] = convertDataToUInt(this.decodedData.substr(this.offset + 2, 1), 1); + decData[3] = convertDataToUInt(this.decodedData.substr(this.offset + 3, 1), 1); + decData[4] = convertDataToUInt(this.decodedData.substr(this.offset + 4, 1), 1); + decData[5] = convertDataToUInt(this.decodedData.substr(this.offset + 5, 1), 1); + decData[6] = convertDataToUInt(this.decodedData.substr(this.offset + 6, 1), 1); + decData[7] = convertDataToUInt(this.decodedData.substr(this.offset + 7, 1), 1); + + var binData = []; + binData[0] = dec2Binary(decData[0]); + binData[1] = dec2Binary(decData[1]); + binData[2] = dec2Binary(decData[2]); + binData[3] = dec2Binary(decData[3]); + binData[4] = dec2Binary(decData[4]); + binData[5] = dec2Binary(decData[5]); + binData[6] = dec2Binary(decData[6]); + binData[7] = dec2Binary(decData[7]); + + var binStr = binData[7] + binData[6] + binData[5] + binData[4] + binData[3] + binData[2] + binData[1] + binData[0]; + + var res = binary2Real(binStr, TcAdsWebService.TcAdsWebServiceDataTypes.LREAL); + this.offset = this.offset + 8; + return res; + }); + }); + + this.DataWriter = (function () { + + this.getTypeString = (function () { + return "TcAdsWebService.DataWriter"; + }); + + this.getBase64EncodedData = (function () { + return Base64.encode(byteArrayToBinaryString(byteArray)); + }); + + this.writeSINT = (function (value) { + byteArray = PrepareData(value, TcAdsWebService.TcAdsWebServiceDataTypes.Integer, 1, byteArray); + }); + + this.writeINT = (function (value) { + byteArray = PrepareData(value, TcAdsWebService.TcAdsWebServiceDataTypes.Integer, 2, byteArray); + }); + + this.writeDINT = (function (value) { + byteArray = PrepareData(value, TcAdsWebService.TcAdsWebServiceDataTypes.Integer, 4, byteArray); + }); + + this.writeBYTE = (function (value) { + byteArray = PrepareData(value, TcAdsWebService.TcAdsWebServiceDataTypes.UnsignedInteger, 1, byteArray); + }); + + this.writeWORD = (function (value) { + byteArray = PrepareData(value, TcAdsWebService.TcAdsWebServiceDataTypes.UnsignedInteger, 2, byteArray); + }); + + this.writeDWORD = (function (value) { + byteArray = PrepareData(value, TcAdsWebService.TcAdsWebServiceDataTypes.UnsignedInteger, 4, byteArray); + }); + + this.writeBOOL = (function (value) { + byteArray = PrepareData(value, TcAdsWebService.TcAdsWebServiceDataTypes.BOOL, 1, byteArray); + }); + + this.writeString = (function (value, length) { + byteArray = PrepareData(value, TcAdsWebService.TcAdsWebServiceDataTypes.String, length, byteArray); + }); + + this.writeREAL = (function (value) { + byteArray = PrepareData(value, TcAdsWebService.TcAdsWebServiceDataTypes.REAL, 4, byteArray); + }); + + this.writeLREAL = (function (value) { + byteArray = PrepareData(value, TcAdsWebService.TcAdsWebServiceDataTypes.LREAL, 8, byteArray); + }); + + var byteArray = []; + + var PrepareData = function (data, type, len, array) { + var j = array.length; + + if (type == TcAdsWebService.TcAdsWebServiceDataTypes.String) { + var k; + + for (k = 0; k < data.length; k++) { + array[j++] = data.charCodeAt(k); + } + + for (; k < len; k++) { + array[j++] = 0; + } + + } + else if (type == TcAdsWebService.TcAdsWebServiceDataTypes.BOOL) { + array[j++] = data; + } + else if (type == TcAdsWebService.TcAdsWebServiceDataTypes.Integer || type == TcAdsWebService.TcAdsWebServiceDataTypes.UnsignedInteger) { + + if (len == 1) { + array[j++] = ToByte(parseInt((data >> (0)), 10)); + } + else if (len == 2) { + data = parseInt(data); + array[j++] = ToByte(parseInt((data >> (0)), 10)); + array[j++] = ToByte(parseInt((data >> (8)), 10)); + } + else if (len == 4) { + data = parseInt(data); + + if (isNaN(data)) + data = 0; + + array[j++] = ToByte(parseInt((data >> (0)), 10)); + array[j++] = ToByte(parseInt((data >> (8)), 10)); + array[j++] = ToByte(parseInt((data >> (16)), 10)); + array[j++] = ToByte(parseInt((data >> (24)), 10)); + } + } + else if (type == TcAdsWebService.TcAdsWebServiceDataTypes.REAL) { + var binary = real2Binary(data, type); + + var subBytes = []; + subBytes[0] = binary.substring(0, 8); + subBytes[1] = binary.substring(8, 16); + subBytes[2] = binary.substring(16, 24); + subBytes[3] = binary.substring(24, 32); + + array[j++] = binary2Dec(subBytes[3]); + array[j++] = binary2Dec(subBytes[2]); + array[j++] = binary2Dec(subBytes[1]); + array[j++] = binary2Dec(subBytes[0]); + } + else if (type == TcAdsWebService.TcAdsWebServiceDataTypes.LREAL) { + var binary = real2Binary(data, type); + + var subBytes = []; + subBytes[0] = binary.substring(0, 8); + subBytes[1] = binary.substring(8, 16); + subBytes[2] = binary.substring(16, 24); + subBytes[3] = binary.substring(24, 32); + + subBytes[4] = binary.substring(32, 40); + subBytes[5] = binary.substring(40, 48); + subBytes[6] = binary.substring(48, 56); + subBytes[7] = binary.substring(56, 64); + + array[j++] = binary2Dec(subBytes[7]); + array[j++] = binary2Dec(subBytes[6]); + array[j++] = binary2Dec(subBytes[5]); + array[j++] = binary2Dec(subBytes[4]); + array[j++] = binary2Dec(subBytes[3]); + array[j++] = binary2Dec(subBytes[2]); + array[j++] = binary2Dec(subBytes[1]); + array[j++] = binary2Dec(subBytes[0]); + } + + return array; + } + }); + + this.TcAdsReservedIndexGroups = { + "PlcRWMX": 16416, + "PlcRWMB": 16416, + "PlcRWRB": 16432, + "PlcRWDB": 16448, + "SymbolTable": 61440, + "SymbolName": 61441, + "SymbolValue": 61442, + "SymbolHandleByName": 61443, + "SymbolValueByName": 61444, + "SymbolValueByHandle": 61445, + "SymbolReleaseHandle": 61446, + "SymbolInfoByName": 61447, + "SymbolVersion": 61448, + "SymbolInfoByNameEx": 61449, + "SymbolDownload": 61450, + "SymbolUpload": 61451, + "SymbolUploadInfo": 61452, + "SymbolNote": 61456, + "IOImageRWIB": 61472, + "IOImageRWIX": 61473, + "IOImageRWOB": 61488, + "IOImageRWOX": 61489, + "IOImageClearI": 61504, + "IOImageClearO": 61520, + "DeviceData": 61696 + }; + + this.TcAdsWebServiceDataTypes = { + "String": 0, + "BOOL": 1, + "Integer": 2, + "UnsignedInteger": 3, + "LREAL": 4, + "REAL": 5 + }; + + this.AdsState = { + "INVALID": 0, + "IDLE": 1, + "RESET": 2, + "INIT": 3, + "START": 4, + "RUN": 5, + "STOP": 6, + "SAVECFG": 7, + "LOADCFG": 8, + "POWERFAILURE": 9, + "POWERGOOD": 10, + "ERROR": 11, + "SHUTDOWN": 12, + "SUSPEND": 13, + "RESUME": 14, + "CONFIG": 15, + "RECONFIG": 16 + }; + + var byteArrayToBinaryString = function (arr) { + var res = ""; + for (var i = 0; i < arr.length; i++) { + res += String.fromCharCode(arr[i] & 0xFF); + } + return res; + } + + var Base64 = (function () { + + var encode = function (data) { + var out = "", c1, c2, c3, e1, e2, e3, e4; + for (var i = 0; i < data.length;) { + c1 = data.charCodeAt(i++); + c2 = data.charCodeAt(i++); + c3 = data.charCodeAt(i++); + e1 = c1 >> 2; + e2 = ((c1 & 3) << 4) + (c2 >> 4); + e3 = ((c2 & 15) << 2) + (c3 >> 6); + e4 = c3 & 63; + if (isNaN(c2)) + e3 = e4 = 64; + else if (isNaN(c3)) + e4 = 64; + out += tab.charAt(e1) + tab.charAt(e2) + tab.charAt(e3) + tab.charAt(e4); + } + return out; + } + + var decode = function (data) { + var out = "", c1, c2, c3, e1, e2, e3, e4; + for (var i = 0; i < data.length;) { + e1 = tab.indexOf(data.charAt(i++)); + e2 = tab.indexOf(data.charAt(i++)); + e3 = tab.indexOf(data.charAt(i++)); + e4 = tab.indexOf(data.charAt(i++)); + c1 = (e1 << 2) + (e2 >> 4); + c2 = ((e2 & 15) << 4) + (e3 >> 2); + c3 = ((e3 & 3) << 6) + e4; + out += String.fromCharCode(c1); + if (e3 != 64) + out += String.fromCharCode(c2); + if (e4 != 64) + out += String.fromCharCode(c3); + } + return out; + } + + var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + return { encode: encode, decode: decode }; + })(); + + var real2Binary = function (value, type) { + + var exp = 0, man = 0, bias = 0; + + switch (type) { + + case TcAdsWebService.TcAdsWebServiceDataTypes.LREAL: + exp = 11; + man = 52; + bias = 1023; + break; + + case TcAdsWebService.TcAdsWebServiceDataTypes.REAL: + default: + exp = 8; + man = 23; + bias = 127; + } + + var sign = (value >= 0.0) ? 0 : 1; + + var n = 0, power, sign2; + if (value > 0 || value < 0) { + if (value < 2 && value > -2) + sign2 = -1; + else sign2 = 1; + + for (power = 0; n < 1 || n > 2; ++power) { + n = Math.pow(-1, sign) * value / (Math.pow(2, sign2 * power)); + } + power--; + } else { + power = bias; + sign2 = -1; + } + + var exponent = bias + (sign2 * power); + exponent = exponent.toString(2); + + for (var i = exponent.length; i < exp; i++) { + exponent = "0" + exponent; + } + + var n2 = 0, temp = 0, fraction = ""; + n = n - 1; + for (var i = 1; i < (man + 1) ; i++) { + temp = n2 + 1 / Math.pow(2, i); + if (temp <= n) { + n2 = temp; + fraction += "1"; + } + else fraction += "0"; + } + + var res = sign + exponent + fraction; + return res; + } + + var binary2Real = function (binary, type) { + var neg, nullE = true, nullF = true, oneE = true, strE = "", x = 0, exp, man, bias; + + if ((binary.charAt(0) == 0)) + neg = false; + else + neg = true; + + switch (type) { + + case TcAdsWebService.TcAdsWebServiceDataTypes.LREAL: + exp = 11; + man = 52; + bias = 1023; + break; + + case TcAdsWebService.TcAdsWebServiceDataTypes.REAL: + default: + exp = 8; + man = 23; + bias = 127; + } + + for (var i = 1; i <= exp; i++) { + strE += binary.charAt(i); + + if (binary.charAt(i) != "0") + nullE = false; + + if (binary.charAt(i) != "1") + oneE = false; + } + + var strF = ""; + + for (var i = exp + 1; i <= exp + man; i++) { + strF += binary.charAt(i); + + if (binary.charAt(i) != "0") + nullF = false; + } + + if (nullE && nullF) { + //return ((!neg) ? "0" : "-0"); + // Return zero for negative and positive zero + return 0.0; + } + + if (oneE && nullF) + return Infinity; + + if (oneE && nullF) + return NaN; + + var exponent = binary2Dec(strE) - bias; + + var fraction = 0; + + for (var i = 0; i < strF.length; ++i) { + fraction = fraction + parseInt(strF.charAt(i)) * Math.pow(2, -(i + 1)); + } + + fraction = fraction + 1; + var ret = Math.pow(-1, binary.charAt(0)) * fraction * Math.pow(2, exponent); + + return ret; + } + + var ToByte = function (v) { + return parseInt(v, 10) & 255; + } + + var dec2Binary = function (value) { + var buf = ""; + var buf2 = ""; + var quotient = value; + var i = 0; + + do { + buf += (Math.floor(quotient % 2) == 1 ? "1" : "0"); + quotient /= 2; + i++; + } + while (i < 8); + + buf = buf.split("").reverse().join(""); + + return buf; + } + + var binary2Dec = function (binary) { + var ret = 0; + + for (var i = 0; i < binary.length; ++i) { + if (binary.charAt(i) == '1') + ret = ret + Math.pow(2, (binary.length - i - 1)); + } + + return ret; + } + + var convertDataToUInt = function (data, len) { + var res = 0; + + if (len == 4) { + res = (data.charCodeAt(3) << 24 | data.charCodeAt(2) << 16 | data.charCodeAt(1) << 8 | data.charCodeAt(0 + 0)) >>> 0; // ">>> 0" = handle value as unsigned + } + else if (len == 2) { + res = (data.charCodeAt(1) << 8 | data.charCodeAt(0)) >>> 0; // ">>> 0" = handle value as unsigned + } + else if (len == 1) { + res = data.charCodeAt(0) >>> 0; // ">>> 0" = handle value as unsigned + } + + return res; + } + + var convertDataToInt = function (data, len) { + var res = 0; + + if (len == 4) { + res = (data.charCodeAt(3) << 24 | data.charCodeAt(2) << 16 | data.charCodeAt(1) << 8 | data.charCodeAt(0)); + } + else if (len == 2) { + var cCode = (data.charCodeAt(1) << 8 | data.charCodeAt(0)); + var sign = (cCode & 0x8000); + if (sign == 0x8000) { + // Byte 1 = 100000, Byte 0 = 000000 + // Fill left 16 Bytes with 1 + cCode = cCode | 0xFFFF8000; + } else { + // Byte 1 = 000000, Byte 0 = 000000 + // Fill left 16 Bytes with 0 + cCode = cCode & 0x7FFF; + } + res = cCode; + } + else if (len == 1) { + // JavaScript handles numbers always as 32 bit integer values; + var cCode = data.charCodeAt(0); + var sign = (cCode & 0x80); + if (sign == 0x80) { + // byte_0 = 100000 + // Fill left 24 Bytes with 1 + cCode = cCode | 0xFFFFFF80; + } else { + // byte_0 = 000000 + // Fill left 24 Bytes with 0 + cCode = cCode & 0x7F; + } + res = cCode; + } + + return res; + } + + }); + //////////////////////////////////////////////////// + // Expose TcAdsWebService instance to window object. + window.TcAdsWebService = TcAdsWebService; + //////////////////////////////////////////////////// +})(window); +//////////////////////////////////////////////////// + + diff --git a/ExtLibs/AdsApi/TcAdsWebService/SSLCert/1.0.2.0/CE/CE5_CE6/arm/SSLCert.exe b/ExtLibs/AdsApi/TcAdsWebService/SSLCert/1.0.2.0/CE/CE5_CE6/arm/SSLCert.exe new file mode 100644 index 0000000000000000000000000000000000000000..a8f87db6d8771baf5428f81c2760c0e8f9933deb GIT binary patch literal 11776 zcmeHN4{#LMdH?ow5{D3Y1#%Ifn#IPhoPt<^j4_qR3lbQDFlX+N6^Dis(gCVLcb0?; zGqkxN*(NpX$~Ku|8|AiBX38{7=Hf!jxZujh)6fibn3S}hbclCvc{WC_qnWy`-6p>N zzPEdpy!>&S)YE2$)qMB8@4fGR|K9h$_x5yaA04C;A_@Zv1)>wc{221{#vh{?o-+H@ zDRgY&xj844mUDCB+q!zSbWdt)Px}t7qrJO3)u(MvYCSu$^I(v8?M^9$i87hEhu39r`3*p3L*{_(--}?j>sER)VOF10N+i!gS!#bfTI--wjEF=-3Sy>iUwq z`Y_%w9Up8E`|8_`mV7i=RoBzm-q%jF8O})G%Yg%i7)XygkBu&1SSAZ%Lw7MT_83IN zb!m@L`Uqc%`D({_xMi@sp5C4gv}H^ZXs~Tx0*reMPt&-bo6TP~0xh!@ns={4qwD6s zH*h8^D$bj>qFGM0W{UKZtRVdbq5Qzix81iN?VQu7o8kk7kQM9Q_kmYMvZ6$_oTDW) zvIP7Q(DQ1uVh{L8x7=DEXMh#Z13o?I;{!fE=wr*rhZ(0Wmj(ej0OpbnFaS|N!gBYh zW_~}JB0*+ePn)7)&=gB@rZ|GRhhRThmaEyOXf{k?L`_kXI43BBxoH5)9JJhhswut^ zqLH^CX*w?wnti8aut ze#2E%tS6x#y1pHz5fmKvVXWIcbx08U7efzOmb1%-EW^x8-fPGp%M=kCdJI$S_vJjm zc>vxt^!EYg!OohptYEqp_Kn_|6}7hI^14@!vqwW539_cKZrC#)a_rKqn1wkPfM)<} zG$fkg-|{;!U$xw@&wD#~dCb6A2xB3P{ao?n%);0p=1;`@0pJP1Y+oGqv;j5(YA_G^ z?J}(!maD_>xQ5s7882QO z_eOv2zYvvQuF8rA*uZPXItQSW=Z1Yf^*--q@HY5*&OuKO^N_br!#G_$w>phA0r1+e zt~vhvf8_c05PTdG9Ix#SS)tTg?vg0`zgNce0OlMvOmPtNk7P_y5rrJcDB4o)%X$;C zmiV^(8EnxY3wzLExl$(Ecz{SmQs349gA!Sl6S- zo18WzjzPx>$UNDL8e$KLNWE7xLJ7;AYnb_pIoMB?rl?X(F?9-jhpbZ6p7(WAd_+T75DP1zOTFBYpoxzuW^p#yjaz;4Ul~qvd7C*5wnV% zCztmZMNRRiEX&9_NtUGziAnI2^JIwo2XhYUAZ`zF_qQ=#1KT*JC&|onE#o?Q9x~JU ztf*|{T<>>FbXnJ34Sc-s6$AXbDc;mfaYi-8SuzFaJV6%ksflDc!;o>oFvT9R-9`+pNM zIrg$ zI6VMa5$#3P(H8~IqI@az5cu-U2fJ`BE1&D@_!zcUq1}iz{5M`d_=9`SNOc-HNpyuV zZg~>Rnj5v;w^$DBe~Yr>JvnEC3muhj5X~a`syhkozmn}XH-h#F*>2^Wng*XMr(dI-$A<>xy$w*Mw|1P+t54hkmUOcuUjQ9^s@|q4A;2w7h&53 z-`)#_!WA7hTIhp3X>$$eldxGS$2mW7P<)8?jI)-zad^MW_kqzrJaxHISLhL%kck85 z0BOKry+XBsHvtD1Dr5jg(f+7GAq(vjfJ^r%q%TtFJlfUhPoupJc-vxyHUgpm0*r$1 zJfID5%uwj?JB5O3%zuyf0Q;~}#d>4SP@J)+b50d(4y%@;8mA&AYH~>J&p(4PHFN6n zF3971jn4NP$moB2ZC)`fXH~s-pNT9)&S1@;-CaWTV@e!A4Lu-O2j|}pSO>;%$(hOY z4?&kHX*WaGb3}GOkAI|QMVW>iids$=#}V-jMKgKk{~MlfSjc_LIn8a}S8B7(d9-&y zfBqFZZHFl4{H#!zN%Syu!Uph^&`KNmoPR|hbQJYr;5Y35lsu2P*zD!lUwPz&^TN*y zBe=p}Nh1bz(47Eofga?rT+cY@RiK-JR|0d+Hlp3cw$K4_q)-^C1 ?w3nyPDKzUh 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 literal 0 HcmV?d00001 diff --git a/ExtLibs/AdsApi/TcAdsWebService/SSLCert/1.0.2.0/CE/CE7/arm/SSLCert.exe b/ExtLibs/AdsApi/TcAdsWebService/SSLCert/1.0.2.0/CE/CE7/arm/SSLCert.exe new file mode 100644 index 0000000000000000000000000000000000000000..9c9cb3cbe578dcc97253558c415ee79903b684ca GIT binary patch literal 11264 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 MDGH{U;HG%~2N&IM+yDRo literal 0 HcmV?d00001 diff --git a/ExtLibs/AdsApi/TcAdsWebService/SSLCert/1.0.2.0/Win32/SSLCert.exe b/ExtLibs/AdsApi/TcAdsWebService/SSLCert/1.0.2.0/Win32/SSLCert.exe new file mode 100644 index 0000000000000000000000000000000000000000..facafd545583d149abb6e01dfac43898913e0ccc GIT binary patch literal 68096 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
K`5{Jc;qGsnh|S*al;FP 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 literal 0 HcmV?d00001 diff --git a/ExtLibs/AdsApi/TcAdsWebService/V100/ce/ARMV4/TcAdsWebService.WSDL b/ExtLibs/AdsApi/TcAdsWebService/V100/ce/ARMV4/TcAdsWebService.WSDL new file mode 100644 index 00000000..aad52026 --- /dev/null +++ b/ExtLibs/AdsApi/TcAdsWebService/V100/ce/ARMV4/TcAdsWebService.WSDL @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ExtLibs/AdsApi/TcAdsWebService/V100/ce/ARMV4/TcAdsWebService.dll b/ExtLibs/AdsApi/TcAdsWebService/V100/ce/ARMV4/TcAdsWebService.dll new file mode 100644 index 0000000000000000000000000000000000000000..4e35f9c719defde981e0fe9a0ba155c2aca8badc GIT binary patch literal 19456 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 literal 0 HcmV?d00001 diff --git a/ExtLibs/AdsApi/TcAdsWebService/V100/ce/ARMV4/TwinCAT.css b/ExtLibs/AdsApi/TcAdsWebService/V100/ce/ARMV4/TwinCAT.css new file mode 100644 index 00000000..42d0c9f4 --- /dev/null +++ b/ExtLibs/AdsApi/TcAdsWebService/V100/ce/ARMV4/TwinCAT.css @@ -0,0 +1 @@ +/*********************************/ /* BECKHOFF TwinCAT Stylesheet */ /* 26.11.1999 15:30 */ /*********************************/ /*---------------------------*/ /*Standard-Tags-Anpassung: */ body { padding: 0px 0px 0px 16px; background: #ffffff; color: #000000; font-family: Arial, Helvetica, sans-serif; margin-top: 4px; margin-bottom: 4px; margin-left: 4px; margin-right: 14px; text-align: left; font-size: 9pt; font-weight: 400; } h1, h2, h3, h4, h5, h6 { margin-left: -10px; font-family: Arial, Helvetica, sans-serif; text-align: left; } h1 { font-size: 145%; margin-top: .5em; margin-bottom: .5em; } h2 { font-size: 130%; margin-top: 1em; margin-bottom: .6em; } h3 { font-size: 115%; margin-top: 1em; margin-bottom: .6em; } h4 { font-size: 100%; margin-top: 1em; margin-bottom: .6em; } p, tr p, td p { margin-top: -0.01pt; margin-bottom: 0.6em; text-align: left; color: #000000; } dl { margin-right: 0em; margin-left: 0em; margin-top: 0em; margin-bottom: 0em; } dd { margin-right: 0em; margin-left: 1.9em; margin-top: 0em; margin-bottom: 0em; } dt { margin-right: 0em; margin-left: 0em; margin-top: 0.6em; margin-bottom: 0em; } u { text-decoration: none text-align: left; color: #000000; } a:link { color: #0066ff; } a:visited { color: #996600; } a:hover { color: #cc9900; } ul, ul ul, ul ul ul, ul ul ul ul, ol, ol ol, ol ol ol, ol ol ol ol { margin-top: 0.3em; margin-bottom: 1.5em; margin-left: 3em; text-align: left; list-style-position: outside; color: #000000; } ol, ol ol, ol ol ol, ol ol ol ol { list-style-type: decimal; } ul, ul ul, ul ul ul, ul ul ul ul { list-style-type: disc; } li { margin-top: 0.3em; margin-bottom: 0.5em; color: #000000; } pre { background: #dddddd; padding: 2pt,4pt; cursor: text; margin-top: 0.3em; margin-bottom: 0.3em; color: #000000; } table { width: 90%; background: #999999; margin-top: .6em; margin-bottom: .3em; } th { padding: 4px 8px; background: #cccccc; text-align: left; font-size: 9pt; vertical-align: bottom; } td { padding: 4px 8px; background: #ffffff; vertical-align: top; font-size: 9pt; } div { } blockquote { margin-left: 1.2em; margin-top: .6em; margin-bottom: .6em; } /* Ende */ /*---------------------------*/ /*---------------------------*/ /*Eigene Formate: */ .QuellCode, syntax { font: 100% Courier New, Courier, mono; width: 100%; border: none; padding: 4px 8px; background: #dddddd; } .buttonbarshade { position: relative; margin: 0; left: 10px; top: 0; width: 100%; height: 21px; } .buttonbartable { position: absolute; margin: 0; left: 0; top: 4px; width: 100%; height: 21px; } table.buttonbartable td, table.buttonbarshade td { background: #FF0000; border-left: 2px solid #ffffff; margin: 0; padding: 3px 0px 4px 0px; font-family: Arial, sans-serif; font-size: 9pt; } table.buttonbartable td.runninghead { background-color: #FF0000; background-repeat: repeat; background-attachment: scroll; text-align: left; color: #FFFFFF; font-style: italic; font-weight: bold; padding-left: 4px; background-position: 0% 50%; } /* Ende */ /*---------------------------*/ \ No newline at end of file diff --git a/ExtLibs/AdsApi/TcAdsWebService/V100/xp/TcAdsSoap.dll b/ExtLibs/AdsApi/TcAdsWebService/V100/xp/TcAdsSoap.dll new file mode 100644 index 0000000000000000000000000000000000000000..6ca65a307a634d8245147e97b797103d5a6c831a GIT binary patch literal 204800 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

SA$@0JvUl9$BDU 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 C2e;4w literal 0 HcmV?d00001 diff --git a/ExtLibs/AdsApi/TcAdsWebService/V100/xp/TwinCAT.css b/ExtLibs/AdsApi/TcAdsWebService/V100/xp/TwinCAT.css new file mode 100644 index 00000000..42d0c9f4 --- /dev/null +++ b/ExtLibs/AdsApi/TcAdsWebService/V100/xp/TwinCAT.css @@ -0,0 +1 @@ +/*********************************/ /* BECKHOFF TwinCAT Stylesheet */ /* 26.11.1999 15:30 */ /*********************************/ /*---------------------------*/ /*Standard-Tags-Anpassung: */ body { padding: 0px 0px 0px 16px; background: #ffffff; color: #000000; font-family: Arial, Helvetica, sans-serif; margin-top: 4px; margin-bottom: 4px; margin-left: 4px; margin-right: 14px; text-align: left; font-size: 9pt; font-weight: 400; } h1, h2, h3, h4, h5, h6 { margin-left: -10px; font-family: Arial, Helvetica, sans-serif; text-align: left; } h1 { font-size: 145%; margin-top: .5em; margin-bottom: .5em; } h2 { font-size: 130%; margin-top: 1em; margin-bottom: .6em; } h3 { font-size: 115%; margin-top: 1em; margin-bottom: .6em; } h4 { font-size: 100%; margin-top: 1em; margin-bottom: .6em; } p, tr p, td p { margin-top: -0.01pt; margin-bottom: 0.6em; text-align: left; color: #000000; } dl { margin-right: 0em; margin-left: 0em; margin-top: 0em; margin-bottom: 0em; } dd { margin-right: 0em; margin-left: 1.9em; margin-top: 0em; margin-bottom: 0em; } dt { margin-right: 0em; margin-left: 0em; margin-top: 0.6em; margin-bottom: 0em; } u { text-decoration: none text-align: left; color: #000000; } a:link { color: #0066ff; } a:visited { color: #996600; } a:hover { color: #cc9900; } ul, ul ul, ul ul ul, ul ul ul ul, ol, ol ol, ol ol ol, ol ol ol ol { margin-top: 0.3em; margin-bottom: 1.5em; margin-left: 3em; text-align: left; list-style-position: outside; color: #000000; } ol, ol ol, ol ol ol, ol ol ol ol { list-style-type: decimal; } ul, ul ul, ul ul ul, ul ul ul ul { list-style-type: disc; } li { margin-top: 0.3em; margin-bottom: 0.5em; color: #000000; } pre { background: #dddddd; padding: 2pt,4pt; cursor: text; margin-top: 0.3em; margin-bottom: 0.3em; color: #000000; } table { width: 90%; background: #999999; margin-top: .6em; margin-bottom: .3em; } th { padding: 4px 8px; background: #cccccc; text-align: left; font-size: 9pt; vertical-align: bottom; } td { padding: 4px 8px; background: #ffffff; vertical-align: top; font-size: 9pt; } div { } blockquote { margin-left: 1.2em; margin-top: .6em; margin-bottom: .6em; } /* Ende */ /*---------------------------*/ /*---------------------------*/ /*Eigene Formate: */ .QuellCode, syntax { font: 100% Courier New, Courier, mono; width: 100%; border: none; padding: 4px 8px; background: #dddddd; } .buttonbarshade { position: relative; margin: 0; left: 10px; top: 0; width: 100%; height: 21px; } .buttonbartable { position: absolute; margin: 0; left: 0; top: 4px; width: 100%; height: 21px; } table.buttonbartable td, table.buttonbarshade td { background: #FF0000; border-left: 2px solid #ffffff; margin: 0; padding: 3px 0px 4px 0px; font-family: Arial, sans-serif; font-size: 9pt; } table.buttonbartable td.runninghead { background-color: #FF0000; background-repeat: repeat; background-attachment: scroll; text-align: left; color: #FFFFFF; font-style: italic; font-weight: bold; padding-left: 4px; background-position: 0% 50%; } /* Ende */ /*---------------------------*/ \ No newline at end of file diff --git a/ExtLibs/AdsApi/TcMqttPlugin/TcMqttPlugin.dll b/ExtLibs/AdsApi/TcMqttPlugin/TcMqttPlugin.dll new file mode 100644 index 0000000000000000000000000000000000000000..a17f4ec4016a2bf1327cc8325a9cba3c011175a0 GIT binary patch literal 73728 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 Date: Tue, 2 Nov 2021 16:16:44 +0100 Subject: [PATCH 3/8] esempio write vars --- Test-Beckhoff/Form1.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Test-Beckhoff/Form1.cs b/Test-Beckhoff/Form1.cs index 19f66f55..40301b6b 100644 --- a/Test-Beckhoff/Form1.cs +++ b/Test-Beckhoff/Form1.cs @@ -21,6 +21,12 @@ namespace Test_Beckhoff { //var myADS = new ADS("local", 851); var myADS = new ADS("5.97.72.66.1.1", 851); + + var myArtCorr = myADS.ReadVariabile("VarADS.NomeDisegno"); + + myADS.WriteVariabile("VarADS.NomeDisegnoRichiesto", "NUOVO DISEGNO"); + + myADS.WriteVariabile("VarADS.bCambioArticolo", 1); } } } From d27518b49413aadb4016e13400c54ed5d3f25ac8 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Tue, 2 Nov 2021 19:36:32 +0100 Subject: [PATCH 4/8] Bozza IOB BeckHoff --- IOB-UT-NEXT/Enums.cs | 10 + IOB-WIN-NEXT/AdapterForm.cs | 6 + IOB-WIN-NEXT/DATA/CONF/3023.ini | 72 ++++++ IOB-WIN-NEXT/IOB-WIN-NEXT.csproj | 7 + IOB-WIN-NEXT/IobBeckhoff.cs | 173 +++++++++++++ IOB-WIN-NEXT/IobBeckhoffCpa.cs | 211 ++++++++++++++++ IOB-WIN-NEXT/TcAdsClient.cs | 407 +++++++++++++++++++++++++++++++ 7 files changed, 886 insertions(+) create mode 100644 IOB-WIN-NEXT/DATA/CONF/3023.ini create mode 100644 IOB-WIN-NEXT/IobBeckhoff.cs create mode 100644 IOB-WIN-NEXT/IobBeckhoffCpa.cs create mode 100644 IOB-WIN-NEXT/TcAdsClient.cs diff --git a/IOB-UT-NEXT/Enums.cs b/IOB-UT-NEXT/Enums.cs index 9099ec4f..9e8c3e6d 100644 --- a/IOB-UT-NEXT/Enums.cs +++ b/IOB-UT-NEXT/Enums.cs @@ -239,6 +239,16 @@ namespace IOB_UT_NEXT /// SIMULA, + ///

+ /// Adapter Beckhoff + /// + BECKHOFF, + + /// + /// Adapter Beckhoff x CPA (selezionatrici ex Jetco) + /// + BECKHOFF_CPA, + /// /// adapter FANUC /// diff --git a/IOB-WIN-NEXT/AdapterForm.cs b/IOB-WIN-NEXT/AdapterForm.cs index 203ba9f2..5baa998e 100644 --- a/IOB-WIN-NEXT/AdapterForm.cs +++ b/IOB-WIN-NEXT/AdapterForm.cs @@ -1156,6 +1156,12 @@ namespace IOB_WIN_NEXT start.Enabled = true; break; + case tipoAdapter.BECKHOFF: + case tipoAdapter.BECKHOFF_CPA: + iobObj = new IobBeckhoffCpa(this, IOBConf); + start.Enabled = true; + break; + case tipoAdapter.FILE_GEN: iobObj = new IobFile(this, IOBConf); start.Enabled = true; diff --git a/IOB-WIN-NEXT/DATA/CONF/3023.ini b/IOB-WIN-NEXT/DATA/CONF/3023.ini new file mode 100644 index 00000000..0a90b3b0 --- /dev/null +++ b/IOB-WIN-NEXT/DATA/CONF/3023.ini @@ -0,0 +1,72 @@ +;Configurazione IOB-WIN +[IOB] +CNCTYPE=BECKHOFF_CPA + +[MACHINE] +VENDOR=CPA +MODEL=SELEZ + +[CNC] +IP=5.97.72.66.1.1 +PORT=851 +GETPRGNAME=true + +[SERVER] +MPIP=http://192.168.1.7 +MPURL=/MP/IO +CMDBASE=/IOB/input/ +CMDFLOG=/IOB/flog/ +CMDALIVE=/IOB +CMDENABLED=/IOB/enabled/ +CMDADV1=?valore= +CMDREBO=/sendReboot.aspx?idxMacchina= + +[MEMORY] +; Red: Y2.0 | Yellow: Y1.7 | Green Y2.1 | riscaldamento Y7.4 | D19.1 MANCA PEZZO (SE rosso) +;;BIT0=CONN +;BIT1=Y2.1 +;BIT2=PZCOUNT.PAR.6711 +;BIT3=Y2.0 +;BIT4=Y1.7 +;BIT5=Y7.4 +;AREAD_START=0 +;AREAD_SIZE=0 +;AREAG_SIZE=48 +;AREAR_START=0 +;AREAR_SIZE=0 +;AREAX_START=0 +;AREAX_SIZE=0 +;AREAY_START=0 +;AREAY_SIZE=8 +;PAR_START=6711 +;PAR_SIZE=3 + +[BLINK] +;MAX_COUNTER_BLINK = 30 +MAX_COUNTER_BLINK = 15 +;bit0 = 0 +;bit1 = 0 +;bit2 = 0 +;bit3 = 0 +;bit4 = 1 +;bit5 = 0 +;bit6 = 0 +;bit7 = 0 +BLINK_FILT=0 +;BLINK_FILT=16 + +[OPTPAR] +;;PZCOUNT_MODE=STD|BIT +;PZCOUNT_MODE=STD.PAR.6711 +;PZGTOT_MODE=STD.PAR.6712 +;PZREQ_MODE=STD.PAR.6713 +;;PZCAD_MODE=STD.D.6408.DW +;ENABLE_PZ_RESET=TRUE +;ENABLE_PZ_RESET_stopSetup=TRUE +;;gestione invio pezzi in blocco +;ENABLE_SEND_PZC_BLOCK=TRUE +;MIN_SEND_PZC_BLOCK=5 +;MAX_SEND_PZC_BLOCK=100 + +[BRANCH] +NAME=master \ No newline at end of file diff --git a/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj b/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj index 6541b19a..a519067a 100644 --- a/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj +++ b/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj @@ -166,6 +166,9 @@ + + ..\ExtLibs\AdsApi\.NET\v4.0.30319\TwinCAT.Ads.dll + ..\packages\Selenium.WebDriver.4.0.1\lib\net46\WebDriver.dll @@ -175,9 +178,11 @@ VersGen.cs + + @@ -186,6 +191,7 @@ + @@ -241,6 +247,7 @@ Always + Always diff --git a/IOB-WIN-NEXT/IobBeckhoff.cs b/IOB-WIN-NEXT/IobBeckhoff.cs new file mode 100644 index 00000000..27eb71a5 --- /dev/null +++ b/IOB-WIN-NEXT/IobBeckhoff.cs @@ -0,0 +1,173 @@ +using IOB_UT_NEXT; +using MapoSDK; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.NetworkInformation; +using System.Text; +using System.Threading.Tasks; + +namespace IOB_WIN_NEXT +{ + public class IobBeckhoff : IobGeneric + { + #region Protected Fields + + protected TcAdsClient AdsCli; + + /// + /// Veto controllo status x log... + /// + protected DateTime vetoCheckStatus = DateTime.Now; + + #endregion Protected Fields + + #region Public Fields + + public List dataVal = new List(); + + #endregion Public Fields + + #region Public Constructors + + /// + /// Estende l'init della classe base + /// + /// + public IobBeckhoff(AdapterForm caller, IobConfiguration IOBConf) : base(caller, IOBConf) + { + lgInfo("NEW IobBeckhoff Adapter"); + // init datetime counters + DateTime adesso = DateTime.Now; + lastPzCountSend = adesso; + lastWarnODL = adesso; + vetoCheckStatus = adesso; + + //// FIXME leggere conf da file parametri + //AdsCli = new TcAdsClient(dataVal, "local", 851); + + //lgInfo($"Adapter inizializzato di base"); + } + + #endregion Public Constructors + + #region Public Methods + + /// + /// metodo controllo ping lento, override AutoODL + /// + public override void processDisconnectedTask() + { +#if false + // effettuo check ping! + DateTime adesso = DateTime.Now; + if (adesso.Subtract(lastPING).TotalSeconds >= PoweroffTimeoutSec) + { + // invio poweroff! + newDisplayData currDispData = new newDisplayData(); + readSemafori(ref currDispData); + // SOLO SE ho poweroff da inviare... + if (B_output == 0) + { + accodaSigIN(ref currDispData); + // reset last ping... + lastPING = DateTime.Now; + } + } +#endif + } + + /// + /// Effettua lettura semafori principale + /// Parametri da aggiornare x display in form + /// + public override void readSemafori(ref newDisplayData currDispData) + { +#if false + byte[] MemBlock = new byte[2]; + try + { + currDispData.semIn = Semaforo.SV; + + // se passa il ping faccio il resto... + if (testPingMachine == IPStatus.Success) + { + // in primis salvo data ping... + lastPING = DateTime.Now; + connectionOk = true; + } + else + { + connectionOk = false; + } + + if (connectionOk) + { + B_input = 1; + } + else + { + B_input = 0; + } + // annullo lettura bit signal IN pre/post x evitare invio automatico... + B_output = B_input; + B_previous = B_input; + } + catch + { + currDispData.semIn = Semaforo.SR; + } +#endif + } + + /// Override connessione + /// + public override void tryConnect() + { +#if false + bool doLog = (verboseLog || periodicLog); + lgInfo("PING: tryConnect step 01"); + if (!connectionOk) + { + // controllo che il ping sia stato tentato almeno pingTestSec fa... + if (DateTime.Now.Subtract(lastPING).TotalSeconds > utils.CRI("pingTestSec")) + { + if (doLog) + { + lgInfo("PING: ConnKO - tryConnect"); + } + lgInfo("PING: tryConnect step 04"); + + // se passa il ping faccio il resto... + if (testPingMachine == IPStatus.Success) + { + // in primis salvo data ping... + lastPING = DateTime.Now; + connectionOk = true; + lgInfo("PING OK"); + } + else + { + // loggo no risposta ping ... + connectionOk = false; + lgInfo("PING KO"); + } + } + } +#endif + } + + /// + /// Override disconnessione + /// + public override void tryDisconnect() + { +#if false + lgInfo("Richiesta disconnessione adapter PING!"); + connectionOk = false; +#endif + } + + #endregion Public Methods + } +} \ No newline at end of file diff --git a/IOB-WIN-NEXT/IobBeckhoffCpa.cs b/IOB-WIN-NEXT/IobBeckhoffCpa.cs new file mode 100644 index 00000000..ba896a07 --- /dev/null +++ b/IOB-WIN-NEXT/IobBeckhoffCpa.cs @@ -0,0 +1,211 @@ +using IOB_UT_NEXT; +using MapoSDK; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.NetworkInformation; +using System.Text; +using System.Threading.Tasks; + +namespace IOB_WIN_NEXT +{ + public class IobBeckhoffCpa : IobBeckhoff + { + #region Protected Fields + + protected int currStatus = 0; + + #endregion Protected Fields + + #region Public Constructors + + /// + /// Estende l'init della classe base + /// + /// + public IobBeckhoffCpa(AdapterForm caller, IobConfiguration IOBConf) : base(caller, IOBConf) + { + lgInfo("NEW IobBeckhoffCpa Adapter"); + + // fixme conf var gestite ad eventi da json + dataVal.Add("VarADS.StatoMacchina"); + + // FIXME leggere conf da file parametri + int port = 851; + int.TryParse(IOBConf.cncPort, out port); + string addr = !string.IsNullOrEmpty(IOBConf.cncIpAddr) ? IOBConf.cncIpAddr : "local"; + lgInfo($"Parametri TC client | addr: {addr} | port: {port}"); + AdsCli = new TcAdsClient(dataVal, addr, port); + //AdsCli = new TcAdsClient(dataVal, "5.97.72.66.1.1", 851); + + //var myArtCorr = myADS.ReadVariabile("VarADS.NomeDisegno"); + + //myADS.WriteVariabile("VarADS.NomeDisegnoRichiesto", "NUOVO DISEGNO"); + + //myADS.WriteVariabile("VarADS.bCambioArticolo", 1); + + AdsCli.StatusChanged += AdsCli_StatusChanged; + AdsCli.ValueChanged += AdsCli_ValueChanged; + } + + #endregion Public Constructors + + #region Public Enums + + public enum EnuStates //Stato Macchina + { + Errore = -1, + Ferma = 0, + Automatica = 1, + Manuale = 2, + Emergenza = 3, + AzzeraTavola = 4, + ManualeStazione = 5, + Avviamento = 7, + } + + #endregion Public Enums + + #region Private Methods + + private void AdsCli_StatusChanged(TcAdsClient sender, int newStatus) + { + lg.Info($"Status changed: {newStatus}"); + } + + private void AdsCli_ValueChanged(TcAdsClient sender, string key, string value) + { + var chiave = key; + var senderVals = key.Split(' '); + if (senderVals.Length > 0) + { + chiave = senderVals[0]; + } + if (chiave == "VarADS.StatoMacchina") + { + int.TryParse(value, out currStatus); + } + lg.Info($"Status changed | sender: {sender} | key: {chiave} | value: {value}"); + } + + #endregion Private Methods + +#if false + /// + /// metodo controllo ping lento, override AutoODL + /// + public override void processDisconnectedTask() + { + // effettuo check ping! + DateTime adesso = DateTime.Now; + if (adesso.Subtract(lastPING).TotalSeconds >= PoweroffTimeoutSec) + { + // invio poweroff! + newDisplayData currDispData = new newDisplayData(); + readSemafori(ref currDispData); + // SOLO SE ho poweroff da inviare... + if (B_output == 0) + { + accodaSigIN(ref currDispData); + // reset last ping... + lastPING = DateTime.Now; + } + } + } + +#endif + + #region Public Methods + + /// + /// Effettua lettura semafori principale + /// Parametri da aggiornare x display in form + /// + public override void readSemafori(ref newDisplayData currDispData) + { + /* ----------------------------------------------------- + * bitmap MAPO + * B0: POWER_ON + * B1: RUN + * B2: pzCount + * B3: allarme + * B4: manuale + * B5: emergenza + ----------------------------------------------------- */ + + byte[] MemBlock = new byte[2]; + try + { + if (connectionOk) + { + B_input = 1; + currDispData.semIn = Semaforo.SV; + } + else + { + B_input = 0; + currDispData.semIn = Semaforo.SR; + } + // in base all'enum di status compilo valori... + switch (currStatus) + { + case -1: + B_input += (1 << 3); + break; + + case 0: + case 2: + case 4: + case 5: + case 7: + B_input += (1 << 4); + break; + + case 3: + B_input += (1 << 5); + break; + + case 1: + B_input += (1 << 2); + break; + + default: + break; + } + } + catch + { + currDispData.semIn = Semaforo.SR; + } + } + + /// Override connessione + /// + public override void tryConnect() + { + connectionOk = AdsCli.Connected; + if (!connectionOk) + { + bool doLog = (verboseLog || periodicLog); + AdsCli = new TcAdsClient(dataVal, "5.97.72.66.1.1", 851); + + lgInfo($"Connected: {connectionOk}"); + } + } + + /// + /// Override disconnessione + /// + public override void tryDisconnect() + { + lgInfo("Richiesta disconnessione adapter"); + if (AdsCli != null) + { + AdsCli.dispose(); + } + connectionOk = false; + } + + #endregion Public Methods + } +} \ No newline at end of file diff --git a/IOB-WIN-NEXT/TcAdsClient.cs b/IOB-WIN-NEXT/TcAdsClient.cs new file mode 100644 index 00000000..c29f3cff --- /dev/null +++ b/IOB-WIN-NEXT/TcAdsClient.cs @@ -0,0 +1,407 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Net.NetworkInformation; +using System.Threading; +using TwinCAT; +using TwinCAT.Ads; +using TwinCAT.Ads.TypeSystem; +using System.IO; +using System.Text; +using System.Linq; +using System.Threading.Tasks; +using TwinCAT.TypeSystem; + +namespace IOB_WIN_NEXT +{ + /// + /// Client comunicazioni con PLC Beckhoff TwinCat + /// + + public class TcAdsClient + { + #region Private Fields + + /// + /// elenco delle variabili monitorate x change event + /// + private List _MonitVars = new List(); + + private int _status; + + private List addedSignalationList = new List(); + + /// + /// Dizionario di conversione da indice a index group e index offset + /// + private Dictionary> addressList; + + private TwinCAT.Ads.TcAdsClient adsClient; + + private CancellationTokenSource cts; + + //private Action dispatcher; + private System.Threading.Tasks.Task dispatchertask; + + private int eventHandle; + + private object lockobj = new object(); + + private AdsStream newNotificationStream; + + private int notifyposition; + + private AdsStream notifyStream; + + private int SegnalazioniADSEventHandle, StatusChangedEventHandle, MessageQueuedEventHandle; + + private Symbol StatoMacchina; + + #endregion Private Fields + + #region Public Fields + + public System.Collections.Concurrent.ConcurrentQueue CodaComandi; + + public TwinCAT.Ads.TcAdsSymbolInfoLoader InfoLoader; + + /// + /// Dizionario delle variabili monitorate (gestite ad evento x modifica), chiave = nome var, valore = symbol x gestione variabile + /// + public Dictionary MonitoredItems = new Dictionary(); + + public TwinCAT.TypeSystem.ISymbolLoader SymbolLoaderInstance; + + public TcAdsSymbolInfoCollection Symbols; + + #endregion Public Fields + + #region Public Constructors + + /// + /// Inizializza un oggetto ADS x gestione classe comunicazione con TwinCat + /// + /// Lista dei nomi delle variabili da gestire ad eventChange (es stato macchina) + /// indirizzo tipo AmsNetId + /// Porta comunicazione: Connect to local PLC - Runtime 1 - TwinCAT2 Port=801, TwinCAT3 Port=851 + public TcAdsClient(List MonitVars, string indirizzo = "local", int porta = 851) + { + _MonitVars = MonitVars; + MonitoredItems = new Dictionary(); + notifyStream = new AdsStream(); + newNotificationStream = new AdsStream(); + addressList = new Dictionary>(); + bool ready = false; + while (!ready) + { + try + { + //LETTURA DEL VETTORE DI INIZIALIZZAZIONE + if (adsClient == null) adsClient = new TwinCAT.Ads.TcAdsClient(); + // Connect to local PLC - Runtime 1 - TwinCAT2 Port=801, TwinCAT3 Port=851 + if (indirizzo == "") + { + adsClient.Connect(porta); + } + else + { + if (adsClient.IsConnected == false) adsClient.Connect(indirizzo, porta); + } + + SymbolLoaderInstance = SymbolLoaderFactory.Create(adsClient, SymbolLoaderSettings.Default); + InfoLoader = adsClient.CreateSymbolInfoLoader(); + Symbols = InfoLoader.GetSymbols(true); + ready = true; + } + catch (Exception ex) + { + System.Threading.Thread.Sleep(100); + ready = false; + Debug.Print(ex.Message); + } + } + + // inizializzo dizionario delle variabili gestite + foreach (var item in _MonitVars) + { + var currSymbol = (Symbol)SymbolLoaderInstance.Symbols[item]; + currSymbol.NotificationSettings = new AdsNotificationSettings(AdsTransMode.OnChange, 100, 100); + currSymbol.ValueChanged += MonItem_ValueChanged; + // aggiungo al dict + MonitoredItems.Add(item, currSymbol); + } + + StatoMacchina = (Symbol)SymbolLoaderInstance.Symbols["VarADS.StatoMacchina"]; + StatoMacchina.NotificationSettings = new AdsNotificationSettings(AdsTransMode.OnChange, 100, 100); + StatoMacchina.ValueChanged += StatoMacchina_ValueChanged; + + notifyposition = 0; + cts = new CancellationTokenSource(); + + //adsClient.AdsNotification += new AdsNotificationEventHandler(adsClient_AdsNotification); + + CodaComandi = new System.Collections.Concurrent.ConcurrentQueue(); + cts = new CancellationTokenSource(); //Task require CancellationToken.cancel() to stop + Action Azione = commandDispatcher; + //Definisce e Crea un Task di base a priorità favorevole + dispatchertask = new Task(Azione, cts.Token, TaskCreationOptions.PreferFairness); + dispatchertask.Start(); + } + + #endregion Public Constructors + + #region Public Delegates + + public delegate void StatusChangedEventHandler(TcAdsClient sender, int newStatus); + + public delegate void ValueChangedEventHandler(TcAdsClient sender, string key, string value); + + #endregion Public Delegates + + #region Public Events + + public event StatusChangedEventHandler StatusChanged; + + public event ValueChangedEventHandler ValueChanged; + + #endregion Public Events + + #region Public Properties + + public TwinCAT.Ads.TcAdsClient Client + { + get { return adsClient; } + } + + public bool Connected + { + get + { + bool answ = false; + if (adsClient != null) + { + answ = adsClient.IsConnected; + } + return answ; + } + } + + public bool EnableEvents { get; set; } + + public int Status + { + get + { + var stato = ReadVariabile("VarADS.StatoMacchina"); + if (stato != null) _status = (int)stato; + else + { + throw new Exception("Errore lettura stato"); + } + return _status; + } + } + + #endregion Public Properties + + #region Private Methods + + private void commandDispatcher(object tk) + { + ComandiADS comando; + Thread.CurrentThread.Name = "ADS Command Dispatcher"; + CancellationToken chiudi = (CancellationToken)tk; + while (!chiudi.IsCancellationRequested) + { + Thread.Sleep(1); + if (CodaComandi.Count <= 0) + { + Thread.Sleep(1); + continue; + } + if (CodaComandi.Count > 100) Debug.Print("CODA COMANDI! " + CodaComandi.Count.ToString()); + if (!CodaComandi.TryDequeue(out comando)) continue; + + if (CodaComandi.Count > 1000) continue; + + if (comando.ComandoScrittua) //gestione scrittura + { + try + { + if (comando.SymbolName != "") + { + if (comando.Symbol == null) comando.Symbol = GetSymbolInfo(comando.SymbolName); + } + else + { + comando.SymbolName = comando.Symbol.Name; + } + if (comando.Value is int && comando.Symbol.Category == TwinCAT.TypeSystem.DataTypeCategory.Array) + { + var newvalue = new int[comando.Symbol.ArrayInfos[0].Elements]; + newvalue[0] = (int)comando.Value; + comando.Value = newvalue; + } + if (comando.Value is double && comando.Symbol.Category == TwinCAT.TypeSystem.DataTypeCategory.Array) + { + var newvalue = new double[comando.Symbol.ArrayInfos[0].Elements]; + newvalue[0] = (double)comando.Value; + comando.Value = newvalue; + } + adsClient.WriteSymbol(comando.Symbol, comando.Value); + } + catch (Exception err) + { + comando.Error = true; + Debug.Print(comando.SymbolName + " Scrittura " + err.Message); + } + comando.Updating.Set(); + } + else // gestione lettura + { + try + { + if (comando.SymbolName != "") + { + if (comando.Symbol == null) comando.Symbol = GetSymbolInfo(comando.SymbolName); + } + else + { + comando.SymbolName = comando.Symbol.Name; + } + + comando.Value = adsClient.ReadSymbol(comando.Symbol); + } + catch (Exception errore) + { + Debug.Print(errore.Message); + comando.Error = true; + Debug.Print("Error reading from ADS: VarName: " + comando.SymbolName); + } + comando.Updating.Set(); + } + } + } + + private void MonItem_ValueChanged(object sender, TwinCAT.TypeSystem.ValueChangedArgs e) + { + string newStatus = $"{e.Value}"; + if (ValueChanged != null) + { + ValueChanged(this, $"{sender}", newStatus); + } + } + + private object ReadVariabile(ComandiADS comando) + { + CodaComandi.Enqueue(comando); + bool test = comando.Updating.Wait(3000); + if (!test) Debug.Print("Errore attesa lettura: " + comando.SymbolName); + if (comando.Value == null) Debug.Print("ADS Variabile non trovata: " + comando.SymbolName); + return comando.Value; + } + + private void StatoMacchina_ValueChanged(object sender, TwinCAT.TypeSystem.ValueChangedArgs e) + { + int newStatus = (int)e.Value; + if (StatusChanged != null) StatusChanged(this, newStatus); + } + + private bool WriteVariabile(ComandiADS comando, bool syncronous) + { + bool test = true; + CodaComandi.Enqueue(comando); + if (syncronous) test = comando.Updating.Wait(3000); + if (!test) Debug.Print("Errore attesa lettura: " + comando.SymbolName); + if (comando.Error) Debug.Print("Errore ADS durante la scrittura della variabile: " + comando.SymbolName); + return !comando.Error; + } + + #endregion Private Methods + + #region Public Methods + + public void dispose() + { + adsClient.Dispose(); + } + + public TcAdsSymbolInfo GetSymbolInfo(string nome) + { + try + { + var symbol = InfoLoader.FindSymbol(nome); + return symbol; + } + catch (Exception) + { + throw; + } + } + + public object ReadVariabile(ref TcAdsSymbolInfo variabile) + { + var comando = new ComandiADS { ComandoScrittua = false, Symbol = variabile }; + return ReadVariabile(comando); + } + + public object ReadVariabile(string symbolName, Type type = null) + { + var comando = new ComandiADS { ComandoScrittua = false, SymbolName = symbolName }; + return ReadVariabile(comando); + } + + public bool WriteVariabile(string symbolName, object value, bool syncronous = false) + { + var comando = new ComandiADS { Value = value, ComandoScrittua = true, SymbolName = symbolName }; + return WriteVariabile(comando, syncronous); + } + + public bool WriteVariabile(TcAdsSymbolInfo symbol, object value, bool syncronous = false) + { + var comando = new ComandiADS { Value = value, ComandoScrittua = true, Symbol = symbol }; + return WriteVariabile(comando, syncronous); + } + + #endregion Public Methods + + #region Public Classes + + public class ComandiADS + { + #region Public Fields + + public bool ComandoScrittua; + public bool Error; + public TcAdsSymbolInfo Symbol; + public string SymbolName; + public ManualResetEventSlim Updating; + public object Value; + + #endregion Public Fields + + #region Public Constructors + + public ComandiADS() + { + Updating = new ManualResetEventSlim(false); + } + + public ComandiADS(string name) + { + SymbolName = name; + Updating = new ManualResetEventSlim(false); + } + + public ComandiADS(TcAdsSymbolInfo info) + { + Symbol = info; + Updating = new ManualResetEventSlim(false); + } + + #endregion Public Constructors + } + + #endregion Public Classes + } +} \ No newline at end of file From b7b572577b1efe91f509e78fa820e2a406c147ec Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 3 Nov 2021 08:33:24 +0100 Subject: [PATCH 5/8] update metodi beckhoff su classe base connect/disconnect --- IOB-WIN-NEXT/IobBeckhoff.cs | 42 +++++++----------------- IOB-WIN-NEXT/IobBeckhoffCpa.cs | 58 +++------------------------------- 2 files changed, 16 insertions(+), 84 deletions(-) diff --git a/IOB-WIN-NEXT/IobBeckhoff.cs b/IOB-WIN-NEXT/IobBeckhoff.cs index 27eb71a5..5171f270 100644 --- a/IOB-WIN-NEXT/IobBeckhoff.cs +++ b/IOB-WIN-NEXT/IobBeckhoff.cs @@ -124,37 +124,17 @@ namespace IOB_WIN_NEXT /// public override void tryConnect() { -#if false - bool doLog = (verboseLog || periodicLog); - lgInfo("PING: tryConnect step 01"); + connectionOk = AdsCli.Connected; if (!connectionOk) { - // controllo che il ping sia stato tentato almeno pingTestSec fa... - if (DateTime.Now.Subtract(lastPING).TotalSeconds > utils.CRI("pingTestSec")) - { - if (doLog) - { - lgInfo("PING: ConnKO - tryConnect"); - } - lgInfo("PING: tryConnect step 04"); + int port = 851; + int.TryParse(cIobConf.cncPort, out port); + string addr = !string.IsNullOrEmpty(cIobConf.cncIpAddr) ? cIobConf.cncIpAddr : "local"; + lgInfo($"Parametri TC client | addr: {addr} | port: {port}"); + AdsCli = new TcAdsClient(dataVal, addr, port); - // se passa il ping faccio il resto... - if (testPingMachine == IPStatus.Success) - { - // in primis salvo data ping... - lastPING = DateTime.Now; - connectionOk = true; - lgInfo("PING OK"); - } - else - { - // loggo no risposta ping ... - connectionOk = false; - lgInfo("PING KO"); - } - } + lgInfo($"Connected: {connectionOk}"); } -#endif } /// @@ -162,10 +142,12 @@ namespace IOB_WIN_NEXT /// public override void tryDisconnect() { -#if false - lgInfo("Richiesta disconnessione adapter PING!"); + lgInfo("Richiesta disconnessione adapter"); + if (AdsCli != null) + { + AdsCli.dispose(); + } connectionOk = false; -#endif } #endregion Public Methods diff --git a/IOB-WIN-NEXT/IobBeckhoffCpa.cs b/IOB-WIN-NEXT/IobBeckhoffCpa.cs index ba896a07..dcce9c1c 100644 --- a/IOB-WIN-NEXT/IobBeckhoffCpa.cs +++ b/IOB-WIN-NEXT/IobBeckhoffCpa.cs @@ -90,31 +90,6 @@ namespace IOB_WIN_NEXT #endregion Private Methods -#if false - /// - /// metodo controllo ping lento, override AutoODL - /// - public override void processDisconnectedTask() - { - // effettuo check ping! - DateTime adesso = DateTime.Now; - if (adesso.Subtract(lastPING).TotalSeconds >= PoweroffTimeoutSec) - { - // invio poweroff! - newDisplayData currDispData = new newDisplayData(); - readSemafori(ref currDispData); - // SOLO SE ho poweroff da inviare... - if (B_output == 0) - { - accodaSigIN(ref currDispData); - // reset last ping... - lastPING = DateTime.Now; - } - } - } - -#endif - #region Public Methods /// @@ -130,7 +105,9 @@ namespace IOB_WIN_NEXT * B2: pzCount * B3: allarme * B4: manuale - * B5: emergenza + * B5: slowTC + * B6: WarmUpCoolDown + * B7: emergenza ----------------------------------------------------- */ byte[] MemBlock = new byte[2]; @@ -162,7 +139,7 @@ namespace IOB_WIN_NEXT break; case 3: - B_input += (1 << 5); + B_input += (1 << 7); break; case 1: @@ -179,33 +156,6 @@ namespace IOB_WIN_NEXT } } - /// Override connessione - /// - public override void tryConnect() - { - connectionOk = AdsCli.Connected; - if (!connectionOk) - { - bool doLog = (verboseLog || periodicLog); - AdsCli = new TcAdsClient(dataVal, "5.97.72.66.1.1", 851); - - lgInfo($"Connected: {connectionOk}"); - } - } - - /// - /// Override disconnessione - /// - public override void tryDisconnect() - { - lgInfo("Richiesta disconnessione adapter"); - if (AdsCli != null) - { - AdsCli.dispose(); - } - connectionOk = false; - } - #endregion Public Methods } } \ No newline at end of file From b1a41dd17ecb207374d4f6f97d354ea184234a55 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 3 Nov 2021 08:33:38 +0100 Subject: [PATCH 6/8] refresh test beckhoff --- IOB-WIN.editorconfig.bak | 28 ---------------------------- Test-Beckhoff.sln | 6 ------ Test-Beckhoff/Form1.cs | 7 +++++++ Test-Beckhoff/Test-Beckhoff.csproj | 2 +- 4 files changed, 8 insertions(+), 35 deletions(-) delete mode 100644 IOB-WIN.editorconfig.bak diff --git a/IOB-WIN.editorconfig.bak b/IOB-WIN.editorconfig.bak deleted file mode 100644 index 0a801cd7..00000000 --- a/IOB-WIN.editorconfig.bak +++ /dev/null @@ -1,28 +0,0 @@ -[*.cs] - -# IDE0058: Il valore dell'espressione non viene mai usato -csharp_style_unused_value_expression_statement_preference = discard_variable:none - -# CA1051: Non dichiarare campi di istanza visibili -dotnet_diagnostic.CA1051.severity = none - -# CA1303: Non passare valori letterali come parametri localizzati -dotnet_diagnostic.CA1303.severity = none - -# CA1806: Non ignorare i risultati del metodo -dotnet_diagnostic.CA1806.severity = none - -# CA1305: Specificare IFormatProvider -dotnet_diagnostic.CA1305.severity = none - -# CA1031: Do not catch general exception types -dotnet_diagnostic.CA1031.severity = none - -# CA1707: Gli identificatori non devono contenere caratteri di sottolineatura -dotnet_diagnostic.CA1707.severity = none - -# CA1307: Specificare StringComparison -dotnet_diagnostic.CA1307.severity = none - -# CA1063: Implement IDisposable Correctly -dotnet_diagnostic.CA1063.severity = none diff --git a/Test-Beckhoff.sln b/Test-Beckhoff.sln index f169b6de..22120ca1 100644 --- a/Test-Beckhoff.sln +++ b/Test-Beckhoff.sln @@ -3,8 +3,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.31402.337 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test-S7", "Test-S7\Test-S7.csproj", "{A0168CBE-9DA5-4E41-82FF-AFD39C982717}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test-Beckhoff", "Test-Beckhoff\Test-Beckhoff.csproj", "{41930054-510F-4893-8973-D50CD2241C5C}" EndProject Global @@ -13,10 +11,6 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A0168CBE-9DA5-4E41-82FF-AFD39C982717}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A0168CBE-9DA5-4E41-82FF-AFD39C982717}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A0168CBE-9DA5-4E41-82FF-AFD39C982717}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A0168CBE-9DA5-4E41-82FF-AFD39C982717}.Release|Any CPU.Build.0 = Release|Any CPU {41930054-510F-4893-8973-D50CD2241C5C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {41930054-510F-4893-8973-D50CD2241C5C}.Debug|Any CPU.Build.0 = Debug|Any CPU {41930054-510F-4893-8973-D50CD2241C5C}.Release|Any CPU.ActiveCfg = Release|Any CPU diff --git a/Test-Beckhoff/Form1.cs b/Test-Beckhoff/Form1.cs index 40301b6b..e81a3b2a 100644 --- a/Test-Beckhoff/Form1.cs +++ b/Test-Beckhoff/Form1.cs @@ -27,6 +27,13 @@ namespace Test_Beckhoff myADS.WriteVariabile("VarADS.NomeDisegnoRichiesto", "NUOVO DISEGNO"); myADS.WriteVariabile("VarADS.bCambioArticolo", 1); + + myADS.StatusChanged += MyADS_StatusChanged; + } + + private void MyADS_StatusChanged(ADS sender, EnuStates newStatus) + { + // notifica evento valore modificato (stato) } } } diff --git a/Test-Beckhoff/Test-Beckhoff.csproj b/Test-Beckhoff/Test-Beckhoff.csproj index b89f266e..0832b717 100644 --- a/Test-Beckhoff/Test-Beckhoff.csproj +++ b/Test-Beckhoff/Test-Beckhoff.csproj @@ -46,7 +46,7 @@ False - ..\..\..\..\..\..\TwinCAT\AdsApi\.NET\v4.0.30319\TwinCAT.Ads.dll + ..\ExtLibs\AdsApi\.NET\v4.0.30319\TwinCAT.Ads.dll From 79f5a2b7949d9fe240dd6322f4fc75caaea2921c Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 3 Nov 2021 10:58:12 +0100 Subject: [PATCH 7/8] Fix conf x Beckhoff --- IOB-WIN-NEXT/DATA/CONF/3023.ini | 11 +-- IOB-WIN-NEXT/DATA/CONF/3023.json | 118 +++++++++++++++++++++++++++++++ 2 files changed, 125 insertions(+), 4 deletions(-) create mode 100644 IOB-WIN-NEXT/DATA/CONF/3023.json diff --git a/IOB-WIN-NEXT/DATA/CONF/3023.ini b/IOB-WIN-NEXT/DATA/CONF/3023.ini index 0a90b3b0..9ba3cf1a 100644 --- a/IOB-WIN-NEXT/DATA/CONF/3023.ini +++ b/IOB-WIN-NEXT/DATA/CONF/3023.ini @@ -63,10 +63,13 @@ BLINK_FILT=0 ;;PZCAD_MODE=STD.D.6408.DW ;ENABLE_PZ_RESET=TRUE ;ENABLE_PZ_RESET_stopSetup=TRUE -;;gestione invio pezzi in blocco -;ENABLE_SEND_PZC_BLOCK=TRUE -;MIN_SEND_PZC_BLOCK=5 -;MAX_SEND_PZC_BLOCK=100 +;gestione invio pezzi in blocco +STATE_VAR=VarADS.StatoMacchina +ENABLE_SEND_PZC_BLOCK=TRUE +MIN_SEND_PZC_BLOCK=5 +MAX_SEND_PZC_BLOCK=100 +EARLY_CONNECT=FALSE +PARAM_CONF=3023.json [BRANCH] NAME=master \ No newline at end of file diff --git a/IOB-WIN-NEXT/DATA/CONF/3023.json b/IOB-WIN-NEXT/DATA/CONF/3023.json new file mode 100644 index 00000000..1db39681 --- /dev/null +++ b/IOB-WIN-NEXT/DATA/CONF/3023.json @@ -0,0 +1,118 @@ +{ + "mMapWrite": { + "setComm": { + "name": "setComm", + "description": "Commessa", + "tipoMem": "String", + "memAddr": "VarADS.NomeLancioRichiesto", + "index": 0, + "size": 0 + }, + "setArt": { + "name": "setArt", + "description": "Articolo", + "tipoMem": "String", + "memAddr": "VarADS.NomeDisegnoRichiesto", + "index": 0, + "size": 0 + }, + "setPzComm": { + "name": "setPzComm", + "description": "Qty", + "memAddr": "VarADS.nQuantitaRichiesta", + "tipoMem": "DInt", + "index": 0, + "size": 0 + } + }, + "mMapRead": { + //"StatoMacc": { + // "name": "StatoMacc", + // "description": "Stato Macchina", + // "memAddr": "VarADS.StatoMacchina", + // "tipoMem": "DInt", + // "index": 0, + // "size": 0, + // "func": "POINT", + // "period": 60, + // "factor": 1 + //}, + "CurrArt": { + "name": "CurrArt", + "description": "Articolo Corrente", + "memAddr": "VarADS.NomeDisegno", + "tipoMem": "String", + "index": 0, + "size": 0, + "func": "POINT", + "period": 60, + "factor": 1 + }, + "CurrComm": { + "name": "CurrComm", + "description": "Commessa Corrente", + "memAddr": "VarADS.NomeLancio", + "tipoMem": "String", + "index": 0, + "size": 0, + "func": "POINT", + "period": 60, + "factor": 1 + }, + "ContTotali": { + "name": "ContTotali", + "description": "Pezzi Totali", + "memAddr": "VarADS.TotaliLancio", + "tipoMem": "DInt", + "index": 0, + "size": 0, + "func": "POINT", + "period": 60, + "factor": 1 + }, + "ContBuoni": { + "name": "ContBuoni", + "description": "Pezzi Buoni", + "memAddr": "VarADS.BuoniLancio", + "tipoMem": "DInt", + "index": 0, + "size": 0, + "func": "POINT", + "period": 60, + "factor": 1 + }, + "ContScarti": { + "name": "ContScarti", + "description": "Pezzi Scarto", + "memAddr": "VarADS.ScartiLancio", + "tipoMem": "DInt", + "index": 0, + "size": 0, + "func": "POINT", + "period": 60, + "factor": 1 + }, + "ContGenerici": { + "name": "ContGenerici", + "description": "Pezzi Generici", + "memAddr": "VarADS.GenericiLancio", + "tipoMem": "DInt", + "index": 0, + "size": 0, + "func": "POINT", + "period": 60, + "factor": 1 + }, + "LastMess": { + "name": "LastMess", + "description": "Ultimo Messaggio", + "memAddr": "VarADS.MessaggioInterfaccia", + "tipoMem": "String", + "index": 0, + "size": 0, + "func": "POINT", + "period": 60, + "factor": 1 + } + } +} \ No newline at end of file From 38f22014b5f80bfac51ad4d6afcecc0428d49531 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 3 Nov 2021 10:58:20 +0100 Subject: [PATCH 8/8] Update adapter BeckHoff --- IOB-WIN-NEXT/IOB-WIN-NEXT.csproj | 7 +- IOB-WIN-NEXT/IobBeckhoff.cs | 127 +++++++++------- IOB-WIN-NEXT/IobBeckhoffCpa.cs | 243 +++++++++++++++++++++++++------ IOB-WIN-NEXT/TcAdsClient.cs | 4 + 4 files changed, 281 insertions(+), 100 deletions(-) diff --git a/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj b/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj index a519067a..a7ec83fe 100644 --- a/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj +++ b/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj @@ -247,7 +247,12 @@ Always - + + Always + + + Always + Always diff --git a/IOB-WIN-NEXT/IobBeckhoff.cs b/IOB-WIN-NEXT/IobBeckhoff.cs index 5171f270..a97bebdc 100644 --- a/IOB-WIN-NEXT/IobBeckhoff.cs +++ b/IOB-WIN-NEXT/IobBeckhoff.cs @@ -1,11 +1,14 @@ using IOB_UT_NEXT; using MapoSDK; +using Newtonsoft.Json; using System; using System.Collections.Generic; +using System.IO; using System.Linq; using System.Net.NetworkInformation; using System.Text; using System.Threading.Tasks; +using System.Windows.Forms; namespace IOB_WIN_NEXT { @@ -37,102 +40,116 @@ namespace IOB_WIN_NEXT public IobBeckhoff(AdapterForm caller, IobConfiguration IOBConf) : base(caller, IOBConf) { lgInfo("NEW IobBeckhoff Adapter"); + // gestione invio ritardato contapezzi + pzCountDelay = utils.CRI("pzCountDelay"); // init datetime counters DateTime adesso = DateTime.Now; lastPzCountSend = adesso; lastWarnODL = adesso; vetoCheckStatus = adesso; - //// FIXME leggere conf da file parametri - //AdsCli = new TcAdsClient(dataVal, "local", 851); - - //lgInfo($"Adapter inizializzato di base"); + // ora leggo il file di conf specifico.... + loadMemConf(); } #endregion Public Constructors + #region Private Methods + + private void AdsCli_ValueChanged(TcAdsClient sender, string key, string value) + { + lg.Info($"Status changed | sender: {sender} | key: {key} | value: {value}"); + } + + #endregion Private Methods + #region Public Methods /// - /// metodo controllo ping lento, override AutoODL + /// Recupero dati dinamici... /// - public override void processDisconnectedTask() + public override Dictionary getDynData() { -#if false - // effettuo check ping! - DateTime adesso = DateTime.Now; - if (adesso.Subtract(lastPING).TotalSeconds >= PoweroffTimeoutSec) + // valore non presente in vers default... se gestito fare override + Dictionary outVal = new Dictionary(); + if (utils.CRB("enableTSVC")) { - // invio poweroff! - newDisplayData currDispData = new newDisplayData(); - readSemafori(ref currDispData); - // SOLO SE ho poweroff da inviare... - if (B_output == 0) + try { - accodaSigIN(ref currDispData); - // reset last ping... - lastPING = DateTime.Now; + // processo x ogni valore configurato... + if (memMap.mMapRead.Count > 0) + { + // inizializzo i valori + string valString = ""; + // procedo x ogni valore configurato...... + foreach (var item in memMap.mMapRead) + { + // leggo + valString = AdsCli.ReadVariabile(item.Value.memAddr).ToString(); + outVal.Add(item.Value.name, valString); + } + } + else + { + lgInfo($"getDynData: {memMap.mMapRead.Count} record in mMapRead"); + } + } + catch (Exception exc) + { + lgError(exc, "Errore in getDynData x Siemens PLC"); } } -#endif + else + { + lgInfo($"Non processo getDynData: enableTSVC = false"); + } + if (periodicLog || outVal.Count > 0) + { + lgInfo($"Esito getDynData: {outVal.Count} valori VALIDI in outVal"); + } + return outVal; } /// - /// Effettua lettura semafori principale - /// Parametri da aggiornare x display in form + /// Leggo le variabili correnti (status, contapezzi) /// - public override void readSemafori(ref newDisplayData currDispData) + public virtual void readCurrVal() { -#if false - byte[] MemBlock = new byte[2]; - try - { - currDispData.semIn = Semaforo.SV; + } - // se passa il ping faccio il resto... - if (testPingMachine == IPStatus.Success) - { - // in primis salvo data ping... - lastPING = DateTime.Now; - connectionOk = true; - } - else - { - connectionOk = false; - } - - if (connectionOk) - { - B_input = 1; - } - else - { - B_input = 0; - } - // annullo lettura bit signal IN pre/post x evitare invio automatico... - B_output = B_input; - B_previous = B_input; - } - catch + public virtual void setEventHandler() + { + if (AdsCli != null) { - currDispData.semIn = Semaforo.SR; + AdsCli.ValueChanged += AdsCli_ValueChanged; } -#endif } /// Override connessione /// public override void tryConnect() { - connectionOk = AdsCli.Connected; if (!connectionOk) { int port = 851; int.TryParse(cIobConf.cncPort, out port); string addr = !string.IsNullOrEmpty(cIobConf.cncIpAddr) ? cIobConf.cncIpAddr : "local"; lgInfo($"Parametri TC client | addr: {addr} | port: {port}"); + // predispongo dataVal + foreach (var item in memMap.mMapRead) + { + dataVal.Add(item.Key); + } + + // vera connessione! AdsCli = new TcAdsClient(dataVal, addr, port); + connectionOk = AdsCli.Connected; + if (connectionOk) + { + setEventHandler(); + readCurrVal(); + } lgInfo($"Connected: {connectionOk}"); } } diff --git a/IOB-WIN-NEXT/IobBeckhoffCpa.cs b/IOB-WIN-NEXT/IobBeckhoffCpa.cs index dcce9c1c..b73c50dc 100644 --- a/IOB-WIN-NEXT/IobBeckhoffCpa.cs +++ b/IOB-WIN-NEXT/IobBeckhoffCpa.cs @@ -11,6 +11,17 @@ namespace IOB_WIN_NEXT { public class IobBeckhoffCpa : IobBeckhoff { + #region Private Fields + + private string counterVar = "VarADS.BuoniLancio"; + private string setArtVar = "VarADS.NomeDisegnoRichiesto"; + private string setCommVar = "VarADS.NomeLancioRichiesto"; + private string setParamsVar = "VarADS.bCambioArticolo"; + private string setPzReqVar = "VarADS.nQuantitaRichiesta"; + private string statusVar = "VarADS.StatoMacchina"; + + #endregion Private Fields + #region Protected Fields protected int currStatus = 0; @@ -25,11 +36,23 @@ namespace IOB_WIN_NEXT /// public IobBeckhoffCpa(AdapterForm caller, IobConfiguration IOBConf) : base(caller, IOBConf) { - lgInfo("NEW IobBeckhoffCpa Adapter"); + lgInfo("START IobBeckhoffCPA Adapter specifico"); - // fixme conf var gestite ad eventi da json - dataVal.Add("VarADS.StatoMacchina"); + if (getOptPar("ADD_VARS").ToLower() == "true") + { + // fixme conf var gestite ad eventi da json + dataVal.Add(statusVar); + } + //var myArtCorr = myADS.ReadVariabile("VarADS.NomeDisegno"); + //myADS.WriteVariabile("VarADS.NomeDisegnoRichiesto", "NUOVO DISEGNO"); + //myADS.WriteVariabile("VarADS.bCambioArticolo", 1); + + if (getOptPar("EARLY_CONNECT").ToLower() == "true") + { + tryConnect(); + } +#if false // FIXME leggere conf da file parametri int port = 851; int.TryParse(IOBConf.cncPort, out port); @@ -37,61 +60,155 @@ namespace IOB_WIN_NEXT lgInfo($"Parametri TC client | addr: {addr} | port: {port}"); AdsCli = new TcAdsClient(dataVal, addr, port); //AdsCli = new TcAdsClient(dataVal, "5.97.72.66.1.1", 851); - - //var myArtCorr = myADS.ReadVariabile("VarADS.NomeDisegno"); - - //myADS.WriteVariabile("VarADS.NomeDisegnoRichiesto", "NUOVO DISEGNO"); - - //myADS.WriteVariabile("VarADS.bCambioArticolo", 1); - - AdsCli.StatusChanged += AdsCli_StatusChanged; - AdsCli.ValueChanged += AdsCli_ValueChanged; +#endif + if (AdsCli != null) + { + readCurrVal(); + } } #endregion Public Constructors - #region Public Enums - - public enum EnuStates //Stato Macchina - { - Errore = -1, - Ferma = 0, - Automatica = 1, - Manuale = 2, - Emergenza = 3, - AzzeraTavola = 4, - ManualeStazione = 5, - Avviamento = 7, - } - - #endregion Public Enums - #region Private Methods + private void AdsCli_CountChanged(TcAdsClient sender, int newCount) + { + contapezziPLC = newCount; + lg.Info($"Nuova lettura contapezzi | contapezziPLC: {contapezziPLC} | contapezziIOB: {contapezziIOB}"); + } + private void AdsCli_StatusChanged(TcAdsClient sender, int newStatus) { + currStatus = newStatus; lg.Info($"Status changed: {newStatus}"); } - private void AdsCli_ValueChanged(TcAdsClient sender, string key, string value) - { - var chiave = key; - var senderVals = key.Split(' '); - if (senderVals.Length > 0) - { - chiave = senderVals[0]; - } - if (chiave == "VarADS.StatoMacchina") - { - int.TryParse(value, out currStatus); - } - lg.Info($"Status changed | sender: {sender} | key: {chiave} | value: {value}"); - } - #endregion Private Methods #region Public Methods + /// + /// Processo i task richiesti e li elimino dalla coda 1:1 + /// + /// + public override Dictionary executeTasks(Dictionary task2exe) + { + lgInfo($"Chiamata executeTasks specifica IobBeckhoffCpa: {task2exe.Count} task ricevuti"); + // Verificare il protocollo: dovrebeb togliere SOLO i task eseguiti... + Dictionary taskDone = new Dictionary(); + string taskVal = ""; + // inizio con 1 byte di default + byte[] MemBlock = new byte[1]; + if (task2exe != null) + { + // cerco task specifici + foreach (var item in task2exe) + { + taskVal = ""; + // converto richiesta in enum... + taskType tName = taskType.nihil; + Enum.TryParse(item.Key, out tName); + // controllo sulla KEY + switch (tName) + { + case taskType.nihil: + case taskType.fixStopSetup: + case taskType.forceResetPzCount: + case taskType.forceSetPzCount: + case taskType.setProg: + case taskType.sendWatchDogMes2Plc: + case taskType.startSetup: + case taskType.stopSetup: + taskVal = $"taskReq: {tName} | key: {item.Key} | val: {item.Value} | SKIPPED | NO EXEC"; + break; + + case taskType.setPzComm: + AdsCli.WriteVariabile(setPzReqVar, item.Value); + AdsCli.WriteVariabile(setParamsVar, 1); + break; + + case taskType.setArt: + AdsCli.WriteVariabile(setArtVar, item.Value); + AdsCli.WriteVariabile(setParamsVar, 1); + break; + + case taskType.setComm: + AdsCli.WriteVariabile(setCommVar, item.Value); + AdsCli.WriteVariabile(setParamsVar, 1); + break; + + case taskType.setParameter: + // richiedo da URL i parametri WRITE da popolare + lgInfo("Chiamata processMemWriteRequests"); + + taskVal = processMemWriteRequests(); + // se restituiscce "" faccio altra prova... + if (string.IsNullOrEmpty(taskVal)) + { + // i parametri me li aspetto come stringa composta paramName|paramvalue + if (item.Value.Contains("|")) + { + string[] paramsJob = item.Value.Split('|'); + taskVal = $"REQUEST SET PARAMETERS: {paramsJob[0]} --> {paramsJob[1]}"; + } + else + { + taskVal = $"WRONG REQUEST FOR SET PARAMETERS: {item.Value} doesnt contain pipe for splitting key/value"; + } + } + + // aggiunta finale bit a 1 x richiesta processing.. + AdsCli.WriteVariabile(setParamsVar, 1); + + break; + + default: + taskVal = "SKIPPED | NO EXEC"; + break; + } + // aggiungo task! + taskDone.Add(item.Key, taskVal); + } + } + return taskDone; + } + + /// + /// Effettua vero processing contapezzi + /// + public override void processContapezzi() + { + if (utils.CRB("enableContapezzi")) + { + var rawCount = AdsCli.ReadVariabile(counterVar).ToString(); + if (!string.IsNullOrEmpty(rawCount)) + { + int newVal = -1; + int.TryParse(rawCount, out newVal); + contapezziPLC = newVal > -1 ? newVal : contapezziPLC; + } + } + } + + /// + /// Leggo le variabili correnti (status, contapezzi) + /// + public override void readCurrVal() + { + var rawStatus = AdsCli.ReadVariabile(statusVar).ToString(); + if (!string.IsNullOrEmpty(rawStatus)) + { + int.TryParse(rawStatus, out currStatus); + } + var rawCount = AdsCli.ReadVariabile(counterVar).ToString(); + if (!string.IsNullOrEmpty(rawCount)) + { + int newVal = -1; + int.TryParse(rawCount, out newVal); + contapezziPLC = newVal > -1 ? newVal : contapezziPLC; + } + } + /// /// Effettua lettura semafori principale /// Parametri da aggiornare x display in form @@ -99,6 +216,8 @@ namespace IOB_WIN_NEXT public override void readSemafori(ref newDisplayData currDispData) { /* ----------------------------------------------------- + * STATE MACHINE 60 + * -------------------------- * bitmap MAPO * B0: POWER_ON * B1: RUN @@ -108,6 +227,18 @@ namespace IOB_WIN_NEXT * B5: slowTC * B6: WarmUpCoolDown * B7: emergenza + * + * -------------------------- + * Enum Stato macchina + * -------------------------- + * Errore = -1, + * Ferma = 0, + * Automatica = 1, + * Manuale = 2, + * Emergenza = 3, + * AzzeraTavola = 4, + * ManualeStazione = 5, + * Avviamento = 7 ----------------------------------------------------- */ byte[] MemBlock = new byte[2]; @@ -143,7 +274,7 @@ namespace IOB_WIN_NEXT break; case 1: - B_input += (1 << 2); + B_input += (1 << 1); break; default: @@ -156,6 +287,30 @@ namespace IOB_WIN_NEXT } } + public virtual void setEventHandler() + { + base.setEventHandler(); + if (AdsCli != null) + { + AdsCli.StatusChanged += AdsCli_StatusChanged; + AdsCli.CountChanged += AdsCli_CountChanged; + } + } + #endregion Public Methods + +#if false + public enum EnuStates //Stato Macchina + { + Errore = -1, + Ferma = 0, + Automatica = 1, + Manuale = 2, + Emergenza = 3, + AzzeraTavola = 4, + ManualeStazione = 5, + Avviamento = 7, + } +#endif } } \ No newline at end of file diff --git a/IOB-WIN-NEXT/TcAdsClient.cs b/IOB-WIN-NEXT/TcAdsClient.cs index c29f3cff..efbbfad0 100644 --- a/IOB-WIN-NEXT/TcAdsClient.cs +++ b/IOB-WIN-NEXT/TcAdsClient.cs @@ -152,6 +152,8 @@ namespace IOB_WIN_NEXT #region Public Delegates + public delegate void CountChangedEventHandler(TcAdsClient sender, int newCount); + public delegate void StatusChangedEventHandler(TcAdsClient sender, int newStatus); public delegate void ValueChangedEventHandler(TcAdsClient sender, string key, string value); @@ -160,6 +162,8 @@ namespace IOB_WIN_NEXT #region Public Events + public event CountChangedEventHandler CountChanged; + public event StatusChangedEventHandler StatusChanged; public event ValueChangedEventHandler ValueChanged;

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 q(dTBVf7So8~zPzU|0jg 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 Of$#*v6Zn5Qf&T>7hyOVM literal 0 HcmV?d00001 diff --git a/ExtLibs/AdsApi/TcAdsWebService/V100/xp/TcAdsWebService.WSDL b/ExtLibs/AdsApi/TcAdsWebService/V100/xp/TcAdsWebService.WSDL new file mode 100644 index 00000000..aad52026 --- /dev/null +++ b/ExtLibs/AdsApi/TcAdsWebService/V100/xp/TcAdsWebService.WSDL @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ExtLibs/AdsApi/TcAdsWebService/V100/xp/TcAdsWebService.dll b/ExtLibs/AdsApi/TcAdsWebService/V100/xp/TcAdsWebService.dll new file mode 100644 index 0000000000000000000000000000000000000000..7714df1d295c678ae7e750811587c15ca768143f GIT binary patch literal 98304 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%0DDpuQyI&edqA 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