From a04b6d6993e1dd2f449a84a1bb670523c9470960 Mon Sep 17 00:00:00 2001 From: Michael Oborne Date: Mon, 7 May 2012 22:25:56 +0800 Subject: [PATCH] APM Planner 1.1.81 mavlink 1.0 fixs simulation hil fix for lorenz modify default att rate to 10 hz --- .../3DRRadio/3DRRadio.csproj | 216 +++ Tools/ArdupilotMegaPlanner/3DRRadio/3dr.ico | Bin 0 -> 67646 bytes Tools/ArdupilotMegaPlanner/3DRRadio/Common.cs | 77 + .../3DRRadio/Config.Designer.cs | 146 ++ Tools/ArdupilotMegaPlanner/3DRRadio/Config.cs | 50 + .../ArdupilotMegaPlanner/3DRRadio/Config.resx | 1533 +++++++++++++++++ Tools/ArdupilotMegaPlanner/3DRRadio/MainV2.cs | 17 + .../ArdupilotMegaPlanner/3DRRadio/Program.cs | 24 + .../3DRRadio/Properties/AssemblyInfo.cs | 36 + .../3DRRadio/Properties/Resources.Designer.cs | 84 + .../3DRRadio/Properties/Resources.resx | 131 ++ .../3DRRadio/Properties/Settings.Designer.cs | 26 + .../3DRRadio/Properties/Settings.settings | 7 + .../3DRRadio/Resources/3dr.ico | Bin 0 -> 67646 bytes .../3DRRadio/ThemeManager.cs | 235 +++ .../ArdupilotMegaPlanner/3DRRadio/app.config | 29 + .../ArdupilotMegaPlanner/ArdupilotMega.csproj | 4 +- Tools/ArdupilotMegaPlanner/ArdupilotMega.sln | 14 + Tools/ArdupilotMegaPlanner/Common.cs | 4 +- .../Comms/CommsSerialPort.cs | 2 +- .../BackStageViewContentPanel.cs | 8 +- .../Controls/BackstageView/BackstageView.cs | 12 +- .../Controls/ConfigPanel.cs | 2 + Tools/ArdupilotMegaPlanner/CurrentState.cs | 18 +- .../ConfigAccelerometerCalibrationPlane.cs | 2 +- .../ConfigurationView/ConfigFriendlyParams.cs | 63 +- .../GCSViews/FlightData.cs | 4 +- .../GCSViews/Simulation.cs | 22 +- .../Properties/AssemblyInfo.cs | 2 +- Tools/ArdupilotMegaPlanner/Radio/3DRradio.cs | 24 +- .../Utilities/ParameterMetaDataRepository.cs | 39 +- 31 files changed, 2731 insertions(+), 100 deletions(-) create mode 100644 Tools/ArdupilotMegaPlanner/3DRRadio/3DRRadio.csproj create mode 100644 Tools/ArdupilotMegaPlanner/3DRRadio/3dr.ico create mode 100644 Tools/ArdupilotMegaPlanner/3DRRadio/Common.cs create mode 100644 Tools/ArdupilotMegaPlanner/3DRRadio/Config.Designer.cs create mode 100644 Tools/ArdupilotMegaPlanner/3DRRadio/Config.cs create mode 100644 Tools/ArdupilotMegaPlanner/3DRRadio/Config.resx create mode 100644 Tools/ArdupilotMegaPlanner/3DRRadio/MainV2.cs create mode 100644 Tools/ArdupilotMegaPlanner/3DRRadio/Program.cs create mode 100644 Tools/ArdupilotMegaPlanner/3DRRadio/Properties/AssemblyInfo.cs create mode 100644 Tools/ArdupilotMegaPlanner/3DRRadio/Properties/Resources.Designer.cs create mode 100644 Tools/ArdupilotMegaPlanner/3DRRadio/Properties/Resources.resx create mode 100644 Tools/ArdupilotMegaPlanner/3DRRadio/Properties/Settings.Designer.cs create mode 100644 Tools/ArdupilotMegaPlanner/3DRRadio/Properties/Settings.settings create mode 100644 Tools/ArdupilotMegaPlanner/3DRRadio/Resources/3dr.ico create mode 100644 Tools/ArdupilotMegaPlanner/3DRRadio/ThemeManager.cs create mode 100644 Tools/ArdupilotMegaPlanner/3DRRadio/app.config diff --git a/Tools/ArdupilotMegaPlanner/3DRRadio/3DRRadio.csproj b/Tools/ArdupilotMegaPlanner/3DRRadio/3DRRadio.csproj new file mode 100644 index 0000000000..7f514ee20c --- /dev/null +++ b/Tools/ArdupilotMegaPlanner/3DRRadio/3DRRadio.csproj @@ -0,0 +1,216 @@ + + + + Debug + x86 + 8.0.30703 + 2.0 + {B8943726-04B0-4477-BFDA-E156A0CD98A4} + WinExe + Properties + _3DRRadio + 3DRRadio + v3.5 + + + 512 + false + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + x86 + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + x86 + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + 3dr.ico + + + + ..\Lib\log4net.dll + + + + + + + + + + + + + + Linked\ArduinoComms.cs + + + Linked\ArduinoSTK.cs + Component + + + Linked\DisplayTextAttribute.cs + + + Linked\PrivateAttribute.cs + + + Linked\CommsSerialInterface.cs + + + Linked\CommsSerialPort.cs + Component + + + Linked\BackstageView.cs + UserControl + + + Linked\BackstageView.designer.cs + BackstageView.cs + + + Linked\BackstageViewButton.cs + Component + + + Linked\BackStageViewContentPanel.cs + UserControl + + + Linked\BackStageViewMenuPanel.cs + Component + + + Linked\CustomMessageBox.cs + + + Linked\MyButton.cs + Component + + + Linked\3DRradio.cs + UserControl + + + Linked\3DRradio.designer.cs + 3DRradio.cs + + + Linked\IHex.cs + + + Linked\Uploader.cs + + + + Form + + + Config.cs + + + + + + + Linked\BackstageView.resx + BackstageView.cs + + + Linked\3DRradio.resx + 3DRradio.cs + + + Linked\3DRradio.zh-Hans.resx + 3DRradio.cs + + + Config.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Tools/ArdupilotMegaPlanner/3DRRadio/3dr.ico b/Tools/ArdupilotMegaPlanner/3DRRadio/3dr.ico new file mode 100644 index 0000000000000000000000000000000000000000..9837bfa41691857f8f57ed0b4a2efe944300826a GIT binary patch literal 67646 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 literal 0 HcmV?d00001 diff --git a/Tools/ArdupilotMegaPlanner/3DRRadio/Common.cs b/Tools/ArdupilotMegaPlanner/3DRRadio/Common.cs new file mode 100644 index 0000000000..f3d229dc04 --- /dev/null +++ b/Tools/ArdupilotMegaPlanner/3DRRadio/Common.cs @@ -0,0 +1,77 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Security.Cryptography.X509Certificates; +using System.IO; +using System.Net; +using System.Net.Sockets; +using System.Xml; // config file +using System.Runtime.InteropServices; // dll imports +using System.Drawing.Drawing2D; +using log4net; +using System.Reflection; +using System.Windows.Forms; + +namespace ArdupilotMega +{ + public class Common + { + private static readonly ILog log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + + public static bool getFilefromNet(string url, string saveto) + { + try + { + // this is for mono to a ssl server + //ServicePointManager.CertificatePolicy = new NoCheckCertificatePolicy(); + + ServicePointManager.ServerCertificateValidationCallback = + new System.Net.Security.RemoteCertificateValidationCallback((sender, certificate, chain, policyErrors) => { return true; }); + + // Create a request using a URL that can receive a post. + WebRequest request = WebRequest.Create(url); + request.Timeout = 10000; + // Set the Method property of the request to POST. + request.Method = "GET"; + // Get the response. + WebResponse response = request.GetResponse(); + // Display the status. + log.Info(((HttpWebResponse)response).StatusDescription); + if (((HttpWebResponse)response).StatusCode != HttpStatusCode.OK) + return false; + // Get the stream containing content returned by the server. + Stream dataStream = response.GetResponseStream(); + + long bytes = response.ContentLength; + long contlen = bytes; + + byte[] buf1 = new byte[1024]; + + FileStream fs = new FileStream(saveto + ".new", FileMode.Create); + + DateTime dt = DateTime.Now; + + while (dataStream.CanRead && bytes > 0) + { + Application.DoEvents(); + log.Debug(saveto + " " + bytes); + int len = dataStream.Read(buf1, 0, buf1.Length); + bytes -= len; + fs.Write(buf1, 0, len); + } + + fs.Close(); + dataStream.Close(); + response.Close(); + + File.Delete(saveto); + File.Move(saveto + ".new", saveto); + + return true; + } + catch (Exception ex) { log.Info("getFilefromNet(): " + ex.ToString()); return false; } + } + + } +} diff --git a/Tools/ArdupilotMegaPlanner/3DRRadio/Config.Designer.cs b/Tools/ArdupilotMegaPlanner/3DRRadio/Config.Designer.cs new file mode 100644 index 0000000000..5bc3522d91 --- /dev/null +++ b/Tools/ArdupilotMegaPlanner/3DRRadio/Config.Designer.cs @@ -0,0 +1,146 @@ +namespace _3DRRadio +{ + partial class Config + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Config)); + this.CMB_SerialPort = new System.Windows.Forms.ComboBox(); + this.CMB_Baudrate = new System.Windows.Forms.ComboBox(); + this.panel1 = new System.Windows.Forms.Panel(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.groupBox1.SuspendLayout(); + this.groupBox2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.SuspendLayout(); + // + // CMB_SerialPort + // + this.CMB_SerialPort.FormattingEnabled = true; + resources.ApplyResources(this.CMB_SerialPort, "CMB_SerialPort"); + this.CMB_SerialPort.Name = "CMB_SerialPort"; + this.CMB_SerialPort.SelectedIndexChanged += new System.EventHandler(this.CMB_SerialPort_SelectedIndexChanged); + this.CMB_SerialPort.Click += new System.EventHandler(this.CMB_SerialPort_Click); + // + // CMB_Baudrate + // + this.CMB_Baudrate.FormattingEnabled = true; + this.CMB_Baudrate.Items.AddRange(new object[] { + resources.GetString("CMB_Baudrate.Items"), + resources.GetString("CMB_Baudrate.Items1"), + resources.GetString("CMB_Baudrate.Items2"), + resources.GetString("CMB_Baudrate.Items3"), + resources.GetString("CMB_Baudrate.Items4"), + resources.GetString("CMB_Baudrate.Items5"), + resources.GetString("CMB_Baudrate.Items6"), + resources.GetString("CMB_Baudrate.Items7")}); + resources.ApplyResources(this.CMB_Baudrate, "CMB_Baudrate"); + this.CMB_Baudrate.Name = "CMB_Baudrate"; + this.CMB_Baudrate.SelectedIndexChanged += new System.EventHandler(this.CMB_Baudrate_SelectedIndexChanged); + // + // panel1 + // + resources.ApplyResources(this.panel1, "panel1"); + this.panel1.MinimumSize = new System.Drawing.Size(781, 433); + this.panel1.Name = "panel1"; + // + // label1 + // + resources.ApplyResources(this.label1, "label1"); + this.label1.Name = "label1"; + // + // label2 + // + resources.ApplyResources(this.label2, "label2"); + this.label2.Name = "label2"; + // + // label3 + // + resources.ApplyResources(this.label3, "label3"); + this.label3.Name = "label3"; + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.CMB_SerialPort); + this.groupBox1.Controls.Add(this.CMB_Baudrate); + this.groupBox1.Controls.Add(this.label1); + this.groupBox1.Controls.Add(this.label2); + resources.ApplyResources(this.groupBox1, "groupBox1"); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.TabStop = false; + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.panel1); + resources.ApplyResources(this.groupBox2, "groupBox2"); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.TabStop = false; + // + // pictureBox1 + // + this.pictureBox1.BackgroundImage = global::_3DRRadio.Properties.Resources._3dr3; + resources.ApplyResources(this.pictureBox1, "pictureBox1"); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.TabStop = false; + // + // Config + // + resources.ApplyResources(this, "$this"); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.groupBox2); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.label3); + this.Controls.Add(this.pictureBox1); + this.Name = "Config"; + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.groupBox2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.ComboBox CMB_SerialPort; + private System.Windows.Forms.ComboBox CMB_Baudrate; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.GroupBox groupBox2; + } +} + diff --git a/Tools/ArdupilotMegaPlanner/3DRRadio/Config.cs b/Tools/ArdupilotMegaPlanner/3DRRadio/Config.cs new file mode 100644 index 0000000000..02e1d74378 --- /dev/null +++ b/Tools/ArdupilotMegaPlanner/3DRRadio/Config.cs @@ -0,0 +1,50 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace _3DRRadio +{ + public partial class Config : Form + { + public Config() + { + InitializeComponent(); + + ArdupilotMega._3DRradio form = new ArdupilotMega._3DRradio(); + + panel1.Controls.Add(form); + + ArdupilotMega.Utilities.ThemeManager.SetTheme(ArdupilotMega.Utilities.ThemeManager.Themes.None); + + ArdupilotMega.Utilities.ThemeManager.ApplyThemeTo(this); + + CMB_SerialPort.Items.AddRange(ArdupilotMega.Comms.SerialPort.GetPortNames()); + if (CMB_SerialPort.Items.Count > 0) + CMB_SerialPort.SelectedIndex = 0; + + // default + CMB_Baudrate.SelectedIndex = CMB_Baudrate.Items.IndexOf("57600"); + } + + private void CMB_SerialPort_SelectedIndexChanged(object sender, EventArgs e) + { + ArdupilotMega.MainV2.comPort.BaseStream.PortName = CMB_SerialPort.Text; + } + + private void CMB_Baudrate_SelectedIndexChanged(object sender, EventArgs e) + { + ArdupilotMega.MainV2.comPort.BaseStream.BaudRate = int.Parse(CMB_Baudrate.Text); + } + + private void CMB_SerialPort_Click(object sender, EventArgs e) + { + CMB_SerialPort.Items.Clear(); + CMB_SerialPort.Items.AddRange(ArdupilotMega.Comms.SerialPort.GetPortNames()); + } + } +} diff --git a/Tools/ArdupilotMegaPlanner/3DRRadio/Config.resx b/Tools/ArdupilotMegaPlanner/3DRRadio/Config.resx new file mode 100644 index 0000000000..c2d6487d8e --- /dev/null +++ b/Tools/ArdupilotMegaPlanner/3DRRadio/Config.resx @@ -0,0 +1,1533 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + 47, 14 + + + 109, 21 + + + + 0 + + + CMB_SerialPort + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 0 + + + 4800 + + + 9600 + + + 14400 + + + 19200 + + + 28800 + + + 38400 + + + 57600 + + + 115200 + + + 47, 41 + + + 109, 21 + + + 1 + + + CMB_Baudrate + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 1 + + + + Top, Bottom, Left, Right + + + 1, 19 + + + 781, 452 + + + 2 + + + panel1 + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 0 + + + True + + + NoControl + + + 6, 49 + + + 32, 13 + + + 3 + + + Baud + + + label1 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 2 + + + True + + + NoControl + + + 6, 22 + + + 26, 13 + + + 4 + + + Port + + + label2 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 3 + + + True + + + NoControl + + + 184, 25 + + + 176, 39 + + + 6 + + + 1. Please Select the comport + and baudrate for your 3DRRadio. +2. Then click load settings. + + + label3 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 2 + + + 12, 9 + + + 166, 67 + + + 7 + + + ComPort + + + groupBox1 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 1 + + + 12, 82 + + + 786, 477 + + + 8 + + + Settings + + + groupBox2 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 0 + + + Zoom + + + NoControl + + + 445, 5 + + + 353, 81 + + + 5 + + + pictureBox1 + + + System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 3 + + + True + + + 6, 13 + + + 810, 566 + + + + AAABAAEAgIAAAAEAIAAoCAEAFgAAACgAAACAAAAAAAEAAAEAIAAAAAAAAAAAABMLAAATCwAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + RQM/h0CwP4c//z+HP/8/hz/qPoU9lT6FO3A+hTyMP4c/3T+HP/8/hz//P4hAzT+KRAo+hTuvPoU8/z6F + PP8+hTv/PodAZAAAAAAAAAAAAAAAAD6FPK0+hTz/PoU82D6FPKM+hTz/PoU8/z6EOa4+gzePPoM4kD6D + OJA+gziQPoM4kz6DOGk+hTu+PoU8/z6EO+g+hz8SP4xHLz+HPvI/hz//P4c//z+GP8U+hTyAPoU7cj6G + Pqc/h0D9P4c//z+HPv8/iEJyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPHgdxDx4 + Hf88eB3/PHge/zx4Hv88eB7/PHge/zx4Hv88dx3/PHcd/zx4H6o9fCkGAAAAAAAAAAAAAAAAAAAAADx4 + H7g8eB3/PHgd/zx4Hf89eyVBAAAAAAAAAAAAAAAAPHgdeDx4Hf88eB3/PHgd/zx4Hv88eB7/PHge/zx3 + Hf88dx3/PHgfvT6AMxM8eiMGPHgc5zx4Hf88dx3bPHgfBD6ENwI9fCmTPXoj/z16JP89eyX/PXsl/z17 + Jf89eiT/PXok/z15JOU+gDBEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9fCpsPXoj9D16 + JP89eyT/PXsl/z17Jf89eiT/PXoj/z16JcI+hDkVAAAAAD6DOBE9eiW6PXoj/z16JP89eyX/PXsl/z17 + Jf89eiT/PXoj/z16Jcs+gzYjAAAAADx3HLw8eB3/PHcd/zx4ILw9fSsCAAAAAAAAAAAAAAAAPHgdtTx4 + Hf88eB3iPHgdqjx4Hf88eB3/PHge/zx4Hv88eB7/PHge/zx4Hv88eB7/PHgeyzx4HcY8eB3/PHgd8zx3 + HBwAAAAAPoEySj15I+o9eiT/PXok/z17Jf89eyX/PXsl/z16JP89eiP/PXsonz+GPAUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6aweIOmsHuzprB7k6awe5OmsHuTprB7k6awe6OmsHuDps + B6I6bQhkO3UWBQAAAAAAAAAAAAAAAAAAAAAAAAAAOmwISzprBro6awe6OmsHnDpsCgYAAAAAAAAAAAAA + AAA6awdUOmsHujprB7k6awe5OmsHuTprB7o6awe4OmsHozttB1w8dRgFAAAAADpqBgk6awegOmsHuzpr + B5g6aQQEAAAAAAAAAAA7cQ5QOm4KqzptCdY6bQnoOm0J5DptCsU7cAt+PHQUGQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7cxMxO24KnjptCdM6bQnoOm0J5DptCsA7bwxvPHccCgAA + AAAAAAAAAAAAADx2Gwc7cAxnOm4KtzptCdw6bQnpOm0J4DpuCrk7cAxrPHccCwAAAAAAAAAAOmoHgjpr + B7s6aga3Om8NLwAAAAAAAAAAAAAAAAAAAAA6awd+OmsHuzprB506awd2OmsHujprB7k6awe5OmsHuTpr + B7k6awe5OmsHuTprB7o6aweGOmsHiTprB7s6awepOmkFFAAAAAAAAAAAO3MUHjtvC4Y6bQrJOm0J5Tpt + Ceg6bQnaOm0KtTtwDVo9eCIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOWkDCzlp + AxQ5aQMSOmsEAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAOWkDCTlpAxQ5aQMSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOWgEDjlo + BBU5aAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAADppBQQ5aAQTOWgEFDloBA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + Pv8/PT7/Pz0+/z89Pv8/PT7/Pz0+/z89Pv8/PT7/Pz0+/z89Pvk/PT4tAAAAAD89PqQ/PT7/Pz0+/z89 + Pv8/PT7/Pz0+/z89Pv8/PT7/Pz0+/z89Pv8/PT7/Pz0+/z89Pv8/PT7/Pz0+/z89PvY/PT6JPjw9EQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD89Pms/PT7/Pz0+/z89Pv8/PT7/Pz0+/z89 + Pv8/PT7/Pz0+/z89Pv8/PT7/Pz0+/z89PpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9PDwKPjw9rz88 + Pf8/PD3/Pzw9gQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP4pByD+KQf8/ikH/P4pB/z+K + Qf8/ikH/P4pB/z+PQV8AAAAAPTY8kz08PP89PDz/PTw8/z08PP89PDz/PTw8/z08PP89PDz/PTw8/z08 + PP89PDz/PTw8/z08PP89PDz/PTw8/z08PP89PDz/PTw8/z08PP89PDz/PTw8/z08PP89PDz/PTw97Dw7 + PE4AAAAAAAAAAAAAAAAAAAAAAAAAAD08PdU9PD3/PTw9/z08Pf89PD3/PTw9/z08Pf89PD3/PTw9/z08 + Pf89PD3/PTw9+T08PS0AAAAAPTw9pD08Pf89PD3/PTw9/z08Pf89PD3/PTw9/z08Pf89PD3/PTw9/z08 + Pf89PD3/PTw9/z08Pf89PD3/Pjw9/z08Pf89PD3SPTs8PQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPTw9az08Pf89PD3/PTw9/z08Pf89PD3/PTw9/z08Pf89PD3/PTw9/z08Pf89PD3/PTw9kAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAOzo7Cjw7PLA8Ozz/PDs8/zw7PP88OzyBAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAA7bwZFO28GXjtvBl47bwZeO28GXjtvBl47bwZeO3IEIQAAAAA7Nj6TOzo7/zs6 + O/87Ojv/Ozo7/zs6O/87Ojv/Ozo7/zs6O/87Ojv/Ozo7/zs6O/87Ojv/Ozo7/zs6O/87Ojv/Ozo7/zs6 + O/87Ojv/Ozo7/zs6O/87Ojv/Ozo7/zs6O/87Ojv/Ozo7+Ds6O0gAAAAAAAAAAAAAAAAAAAAAPDo81Tw6 + PP88Ojz/PDo8/zw6PP88Ojz/PDo8/zw6PP88Ojz/PDo8/zw6PP88Ojz5PDo8LQAAAAA8OjykPDo8/zw6 + PP88Ojz/PDo8/zw6PP88Ojz/PDo8/zw6PP88Ojz/PDo8/zw6PP88Ojz/PDo8/zw6PP88Ojz/PDo8/zw6 + PP88Ojz2Ozo7XgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8OjxrPDo8/zw6PP88Ojz/PDo8/zw6 + PP88Ojz/PDo8/zw6PP88Ojz/PDo8/zw6PP88OjyQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADo4Ogo7OTuxOzk7/zs5 + O/87OTv/Ozk7/zs5O4EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9PLhs/Ty4lP08uJT9P + LiU/Ty4lP08uJT9PLiU/Ty8NAAAAADo3OpI6ODr/Ojg6/zo4Ov86ODr/Ojg6/zo4Ov86ODr/Ojg6/zo4 + Ov86ODr/Ojg6/zo4Ov86ODr/Ojg6/zo4Ov86ODr/Ojg6/zo4Ov86ODr/Ojg6/zo4Ov86ODr/Ojg6/zo4 + Ov86ODr/Ojg67Do4OicAAAAAAAAAAAAAAAA6ODrVOjg6/zo4Ov86ODr/Ojg6/zo4Ov86ODr/Ojg6/zo4 + Ov86ODr/Ojg6/zo4Ovk6ODotAAAAADs5O6Q7OTv/Ozk7/zs5O/87OTv/Ozk7/zs5O/87OTv/Ozk7/zs5 + O/87OTv/Ozk7/zs5O/87OTv/Ozk7/zs5O/87OTv/Ozk7/zs5O/87OTv8Ojg6bAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAADo4Oms6ODr/Ojg6/zo4Ov86ODr/Ojg6/zo4Ov86ODr/Ojg6/zo4Ov86ODr/Ojg6/zo4 + OpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAA4NzgKOjg6sjo4Ov86ODr/Ojg6/zo4Ov86ODr/Ojg6gQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAQT5DwUE+Q/9BPkP/QT5D/0E+Q/9BPkP/QT5D/0I+Q1sAAAAAODc4nDg3 + OP84Nzj/ODc4/zg3OP84Nzj/ODc4/zg3OP84Nzj/ODc4/zg3OP84Nzj/ODc4/zg3OP84Nzj/ODc4/zg3 + OP84Nzj/ODc4/zg3OP84Nzj/ODc4/zg3OP84Nzj/ODc4/zg3OP84Nzj/OTc5vDk3OQMAAAAAAAAAADk3 + OdU5Nzn/OTc5/zk3Of85Nzn/OTc5/zk3Of85Nzn/OTc5/zk3Of85Nzn/OTc5+Tk3OS0AAAAAOTg5pDk4 + Of85ODn/OTg5/zk4Of85ODn/OTg5/zk4Of85ODn/OTg5/zk4Of85ODn/OTg5/zk4Of85ODn/OTg5/zk4 + Of85ODn/OTg5/zk4Of85ODn9ODc4XwAAAAAAAAAAAAAAAAAAAAAAAAAAOTc5azk3Of85Nzn/OTc5/zk3 + Of85Nzn/OTc5/zk3Of85Nzn/OTc5/zk3Of85Nzn/OTc5kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANzY3Cjg3OLQ4Nzj/ODc4/zg3 + OP84Nzj/ODc4/zg3OP84NziBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBP0C7QT9A/0E/ + QP9BP0D/QT9A/0E/QP9BP0D/QT9AWAAAAAA3NjesNzY3/zc2N/83Njf/NzY3/zc2N/83Njf/NzY3/zc2 + N/83Njf/NzY3/zc2N/83Njf/NzY3/zc2N/83Njf/NzY3/zc2N/83Njf/NzY3/zc2N/83Njf/NzY3/zc2 + N/83Njf/NzY3/zc2N/83Njf/NzU3VwAAAAAAAAAANzY31Tc2N/83Njf/NzY3/zc2N/83Njf/NzY3/zc2 + N/83Njf/NzY3/zc2N/83Njf5NzY3LQAAAAA4NzikODc4/zg3OP84Nzj/ODc4/zg3OP84Nzj/ODc4/zg3 + OP84Nzj/ODc4/zg3OP84Nzj/ODc4/zg3OP84Nzj/ODc4/zg3OP84Nzj/ODc4/zg3OP84Nzj3NzY3PQAA + AAAAAAAAAAAAAAAAAAA3NjdrNzY3/zc2N/83Njf/NzY3/zc2N/83Njf/NzY3/zc2N/83Njf/NzY3/zc2 + N/83NjeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAADY0Ngw3NTe2NzU3/zc1N/83NTf/NzU3/zc1N/83NTf/NzU3/zc1N4EAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA+P7tAPj//QD4//0A+P/9APj//QD4//0A+P/9APj9YAAAAADY0 + Nqs2NDb/NjQ2/zY0Nv82NDb/NjQ2/zY0Nv82NDb/NjQ2/zY0Nv82NDb/NjQ2/zY0Nv82NDb/NjQ2/zY0 + Nv82NDb/NjQ2/zY0Nv82NDb/NjQ2/zY0Nv82NDb/NjQ2/zY0Nv82NDb/NjQ2/zY0Nv82NDbKNjQ2BAAA + AAA2NTbVNjU2/zY1Nv82NTb/NjU2/zY1Nv82NTb/NjU2/zY1Nv82NTb/NjU2/zY1Nvk2NTYtAAAAADc1 + N6Q3NTf/NzU3/zc1N/83NTf/NzU3/zc1N/83NTf/NzU3/zc1N/83NTf/NzU3/zc1N/83NTf/NzU3/zc1 + N/83NTf/NzU3/zc1N/83NTf/NzU3/zc1N/83NTfcNTM1EwAAAAAAAAAAAAAAADY1Nms2NTb/NjU2/zY1 + Nv82NTb/NjU2/zY1Nv82NTb/NjU2/zY1Nv82NTb/NjU2/zY1NpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0MzUNNTM1tzY0Nv82NDb/NjQ2/zY0 + Nv82NDb/NjQ2/zY0Nv82NDb/NjQ2gQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz0+uz89 + Pv8/PT7/Pz0+/z89Pv8/PT7/Pz0+/z89PlgAAAAANDM1tDQzNf80MzX/NDM1/zQzNf80MzX/NDM1/zQz + Nf80MzX/NDM1/zQzNf80MzX/NDM1/zQzNf80MzX/NDM1/zQzNf80MzX/NDM1/zQzNf80MzX/NDM1/zQz + Nf80MzX/NDM1/zQzNf80MzX/NDM1/zQzNfw0MzU1AAAAADUzNdU1MzX/NTM1/zUzNf81MzX/NTM1/zUz + Nf81MzX/NTM1/zUzNf81MzX/NTM1+TUzNS0AAAAANTM1rDUzNf81MzX/NTM1/zUzNf81MzX/NTM1/zUz + Nf81MzX/NTM1/zUzNf81MzX/NTM1/zUzNf81MzX/NTM1/zUzNf81MzX/NTM1/zUzNf81MzX/NTM1/zUz + Nf81MzWcAAAAAAAAAAAAAAAANTM1azUzNf81MzX/NTM1/zUzNf81MzX/NTM1/zUzNf81MzX/NTM1/zUz + Nf81MzX/NTM1kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAMjIzDjMyNLgzMjT/MzI0/zMyNP8zMjT/MzI0/zMyNP8zMjT/MzI0/zMyNP8zMjSBAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+PD27Pjw9/z48Pf8+PD3/Pjw9/z48Pf8+PD3/Pj0+WAAA + AAAzMjRtMzI0pjMyNKMzMjSjMzI0ozMyNKMzMjSkMzI0kDMyNIUzMjSHMzI0hzMyNIczMjSHMzI0hzMy + NIUzMjSXMzI04jMyNP8zMjT/MzI0/zMyNP8zMjT/MzI0/zMyNP8zMjT/MzI0/zMyNP8zMjT/MzI0/zMy + NHoAAAAAMzI01TMyNP8zMjT/MzI0/zMyNP8zMjT/MzI0/zMyNP8zMjT/MzI0/zMyNP8zMjT5MzI0LQAA + AAAzMjRpMzI0pjMyNKMzMjSjMzI0ojMyNKszMjTGMzI05DMyNP8zMjT/MzI0/zMyNP8zMjT/MzI0/zMy + NP8zMjT/MzI0/zMyNP8zMjT/MzI0/zMyNP8zMjT/MzI0/zQzNPszMjQ8AAAAAAAAAAAzMjRrMzI0/zMy + NP8zMjT/MzI0/zMyNP8zMjT/MzI0/zMyNP8zMjT/MzI0/zMyNP8zMjSQAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEwMg4yMTO4MjEz/zIxM/8yMTP/MjEz/zIx + M/8yMTP/MjEz/zIxM/8yMTP/MjEz/zIxM4EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD48 + Pbs+PD3/Pjw9/z48Pf8+PD3/Pjw9/z48Pf8/PT5ZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMTMWMjAzrjIwM/8yMDP/MjAz/zIw + M/8yMDP/MjAz/zIwM/8yMDP/MjAz/zIwM/8yMDP/MTAyswAAAAAyMTPVMjEz/zIxM/8yMTP/MjEz/zIx + M/8yMTP/MjEz/zIxM/8yMTP/MjEz/zIxM/kyMTMuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAzMjQPMjEzTDIxM7QyMTP/MjEz/zIxM/8yMTP/MjEz/zIxM/8yMTP/MjEz/zIxM/8yMTP/MjEz/zIx + M/8yMTP/MjEz/zIxM7YxMDIBAAAAADIxM2syMTP/MjEz/zIxM/8yMTP/MjEz/zIxM/8yMTP/MjEz/zIx + M/8yMTP/MjEz/zIxM5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAvLjEOMS8yujEvMv8xLzL/MS8y/zEvMv8xLzL/MS8y/zEvMv8xLzL/MS8y/zEvMv8xLzL/MS8ygQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPDs8uzw7PP88Ozz/PDs8/zw7PP88Ozz/PDs8/zw7 + PFkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAxLzMHMC4xxzAuMf8wLjH/MC4x/zAuMf8wLjH/MC4x/zAuMf8wLjH/MC4x/zAu + Mf8wLjHTMC4xBjEvMtIxLzL/MS8y/zEvMv8xLzL/MS8y/zEvMv8xLzL/MS8y/zEvMv8xLzL/MS8y+TEv + Mi4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEwMlwxLzLvMS8y/zEv + Mv8xLzL/MS8y/zEvMv8xLzL/MS8y/zEvMv8xLzL/MS8y/zEvMv8xLzL/MS8y+zAvMTIAAAAAMC8yazAv + Mv8wLzL/MC8y/zAvMv8wLzL/MC8y/zAvMv8wLzL/MC8y/zAvMv8wLzL/MC8ykAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi0vDi8uMLsvLjD/Ly4w/y8uMP8vLjD/Ly4w/y8u + MP8vLjD/Ly4w/y8uMP8vLjD/Ly4w/y8uMP8vLjCGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAA7Oju7Ozo7/zs6O/87Ojv/Ozo7/zs6O/87Ojv/Ozo7WQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvLjBSLi0w/i4t + MP8uLTD/Li0w/y4tMP8uLTD/Li0w/y4tMP8uLTD/Li0w/y4tMOEuLTATLy4x0C8uMf8vLjH/Ly4x/y8u + Mf8vLjH/Ly4x/y8uMf8vLjH/Ly4x/y8uMf8vLjH5Ly4xLgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAADAuMTkvLjHpLy4x/y8uMf8vLjH/Ly4x/y8uMf8vLjH/Ly4x/y8u + Mf8vLjH/Ly4x/y8uMf8vLjH/Ly4xjgAAAAAvLjBrLy4w/y8uMP8vLjD/Ly4w/y8uMP8vLjD/Ly4w/y8u + MP8vLjD/Ly4w/y8uMP8vLjCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0r + Lg8uLS++Li0v/y4tL/8uLS//Li0v/y4tL/8uLS//Li0v/y4tL/8uLS//Li0v/y4tL/8uLS//Li0v/y4t + L2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs4O7s7ODv/Ozg7/zs4O/87ODv/Ozg7/zs4 + O/87ODtZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0sLiItLC70LSwu/y0sLv8tLC7/LSwu/y0sLv8tLC7/LSwu/y0s + Lv8tLC7/LSwu6S0sLhsuLS/PLi0v/y4tL/8uLS//Li0v/y4tL/8uLS//Li0v/y4tL/8uLS//Li0v/y4t + L/kuLS8uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4t + LzsuLS/2Li0v/y4tL/8uLS//Li0v/y4tL/8uLS//Li0v/y4tL/8uLS//Li0v/y4tL/8uLS/XLSwuAS4t + L2guLS//Li0v/y4tL/8uLS//Li0v/y4tL/8uLS//Li0v/y4tL/8uLS//Li0v/y4tL5AAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKi0RLCstvy0rLv8tKy7/LSsu/y0rLv8tKy7/LSsu/y0r + Lv8tKy7/LSsu/y0rLv8tKy7/LSsu/ywrLv8tKy59AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAOjg6uzo4Ov86ODr/Ojg6/zo4Ov86ODr/Ojg6/zo4OlkAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALCotLywq + LfksKi3/LCot/ywqLf8sKi3/LCot/ywqLf8sKi3/LCot/ywqLf8sKi3vLCstIC0rLc4tKy3/LSst/y0r + Lf8tKy3/LSst/y0rLf8tKy3/LSst/y0rLf8tKy3/LSst+S0rLS4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0sLngtLC7/LSwu/y0sLv8tLC7/LSwu/y0s + Lv8tLC7/LSwu/y0sLv8tLC7/LSwu/y0sLvssKi0dLSsuYi0rLv8tKy7/LSsu/y0rLv8tKy7/LSsu/y0r + Lv8tKy7/LSsu/y0rLv8tKy7/LSsukAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKSksEiop + LMArKSz/Kiks/yopLP8qKSz/Kiks/yopLP8qKSz/Kiks/yopLP8qKSz/Kiks/yopLP8qKSz/KyktewAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4Nzi7ODc4/zg3OP84Nzj/ODc4/zg3 + OP84Nzj/ODc4WQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKSyDKiks/yopLP8qKSz/Kiks/yopLP8qKSz/Kiks/yop + LP8qKSz/Kiks/yopLOMqKSwVKyks0CspLP8rKSz/Kyks/yspLP8rKSz/Kyks/yspLP8rKSz/Kyks/ysp + LP8rKSz5KyksLgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAALCotBysqLdYrKi3/Kyot/ysqLf8rKi3/Kyot/ysqLf8rKi3/Kyot/ysqLf8rKi3/Kyot/ysq + LVErKSxfKyks/yspLP8rKSz/Kyks/yspLP8rKSz/Kyks/yspLP8rKSz/Kyks/yspLP8rKSyQAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAACkoKxMpKCvAKSgr/ykoK/8pKCv/KSgr/ykoK/8pKCv/KSgr/yko + K/8pKCv/KSgr/ykoK/8pKCv/KSgr/ykoK40AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAADg3OLs4Nzj/ODc4/zg3OP84Nzj/ODc4/zg3OP84NzhZAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCcqQyko + K/MpKCv/KSgr/ykoK/8pKCv/KSgr/ykoK/8pKCv/KSgr/ykoK/8pKCv/KSgr1ykoKwgpKCvRKSgr/yko + K/8pKCv/KSgr/ykoK/8pKCv/KSgr/ykoK/8pKCv/KSgr/ykoK/kpKCsuAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKiksdiopLP8qKSz/Kiks/yop + LP8qKSz/Kiks/yopLP8qKSz/Kiks/yopLP8qKSz/KiksfCkoK1wpKCv/KSgr/ykoK/8pKCv/KSgr/yko + K/8pKCv/KSgr/ykoK/8pKCv/KSgr/ykoK5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnJikTKCcqwSgn + Kv8oJyr/KCcq/ygnKv8oJyr/KCcq/ygnKv8oJyr/KCcq/ygnKv8oJyr/KCcq/ygnKv0oJyqOAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANzY3uzc2N/83Njf/NzY3/zc2 + N/83Njf/NzY3/zc2N1kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJiUpDyYlKQ0mJSkLJiUpCyYl + KQsmJSkLJiUpCyYlKQsmJSkIJiUpHScmKXAnJirzKCcq/ygnKv8oJyr/KCcq/ygnKv8oJyr/KCcq/ygn + Kv8oJyr/KCcq/ygnKv8oJyq8AAAAACgnKtUoJyr/KCcq/ygnKv8oJyr/KCcq/ygnKv8oJyr/KCcq/ygn + Kv8oJyr/KCcq+SgnKi4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAApKCsyKSgr+ykoK/8pKCv/KSgr/ykoK/8pKCv/KSgr/ykoK/8pKCv/KSgr/yko + K/8pKCubKCcqXSgnKv8oJyr/KCcq/ygnKv8oJyr/KCcq/ygnKv8oJyr/KCcq/ygnKv8oJyr/KCcqkAAA + AAAAAAAAAAAAAAAAAAAAAAAAJSQoEyYlKcImJSn/JiUp/yYlKf8mJSn/JiUp/yYlKf8mJSn/JiUp/yYl + Kf8mJSn/JiUp/yYlKf8mJSn/JiUpugAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAA2NDa7NjQ2/zY0Nv82NDb/NjQ2/zY0Nv82NDb/NjQ2WQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAmJSleJiUp4CYlKdwmJSnbJiUp2yYlKdsmJSnbJiUp2yYlKdkmJSnrJiUp/yYl + Kf8mJSn/JiUp/yYlKf8mJSn/JiUp/yYlKf8mJSn/JiUp/yYlKf8mJSn/JiUp/yYlKX0AAAAAJyYp1Scm + Kf8nJin/JyYp/ycmKf8nJin/JyYp/ycmKf8nJin/JyYp/ycmKf8nJin5JyYpLgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACcmKgwnJirmJyYq/ycm + Kv8nJir/JyYq/ycmKv8nJir/JyYq/ycmKv8nJir/JyYq/ycmKqsmJSloJiUp/yYlKf8mJSn/JiUp/yYl + Kf8mJSn/JiUp/yYlKf8mJSn/JiUp/yYlKf8mJSmQAAAAAAAAAAAAAAAAAAAAACQjJhMlJCfEJSQn/yUk + J/8lJCf/JSQn/yUkJ/8lJCf/JSQn/yUkJ/8lJCf/JSQn/yUkJ/8kIyf/JCMn/yQjJv8jIibzIyIlcgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADY0Nrs2NDb/NjQ2/zY0 + Nv82NDb/NjQ2/zY0Nv82NDZZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUkKQQlJCeIIyIl/yMi + Jf8jIib/JCMm/yQjJv8kIyb/JCMn/yUkJ/8lJCf/JSQn/yUkJ/8lJCf/JSQn/yUkJ/8lJCf/JSQn/yUk + J/8lJCf/JSQn/yUkJ/8lJCf8JSQnNwAAAAAlJCjVJSQo/yUkKP8lJCj/JSQo/yUkKP8lJCj/JSQo/yUk + KP8lJCj/JSQo/yUkKPklJCguAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAJiUpBSYlKdImJSn/JiUp/yYlKf8mJSn/JiUp/yYlKf8mJSn/JiUp/yYl + Kf8mJSn/JiUpqyUkKGglJCj/JSQo/yUkKP8lJCj/JSQo/yUkKP8lJCj/JSQo/yUkKP8lJCj/JSQo/yUk + KJAAAAAAAAAAAAAAAAAiISUVIyIlxyQjJv8kIyb/JCMm/yQjJf8jIiX/IyIl/yMiJf8jIiX/IiEk/yIh + JP8iIST/IyIl/yQjJv8lJCf/KSgr/y0sLv8xMDL/PTw9cgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAANDM1uzQzNf80MzX/NDM1/zQzNf80MzX/NDM1/zQzNVkAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtLC5/MC8x/ysqLf8oJyr/JSQn/yQjJv8jIiX/ISAk/yEg + JP8iIST/IiEk/yIhJf8jIiX/IyIl/yMiJf8jIiX/IyIl/yMiJv8jIib/IyIm/yMiJcgkIyYEAAAAACQj + J9UkIyf/JCMn/yQjJ/8kIyf/JCMn/yQjJ/8kIyf/JCMn/yQjJ/8kIyf/JCMn+SQjJy4AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlJCcFJSQn0iUk + J/8lJCf/JSQn/yUkJ/8lJCf/JSQn/yUkJ/8lJCf/JSQn/yUkJ/8lJCerJCMmaCQjJv8kIyb/JCMm/yQj + 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 + AAAAAAAAAAAAAAAAAABBQEACQUBAWkFAQOBBQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBAt0FAQAEAAAAAQUBAb0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBAjgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAEFAQJVBQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQEC9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKi27Kyot/ysqLf8rKi3/Kyot/ysq + Lf8rKi3/KygtWQAAAAAAAAAAQUBAPEFAQHhBQEBvQUBAb0FAQG9BQEBvQUBAb0FAQG9BQEBvQUBAb0FA + QG9BQEBvQUBAb0FAQG9BQEBvQUBAb0FAQGJBQEC+QUBA/0FAQP9BQED/QUBA/0FAQP9BQEB3AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAQUBAtEFAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED5QUBALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEFAQBJBQEAzQUBAcEFAQMlBQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQPtBQEA5AAAAAAAA + AABBQEBPQUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQECYQUBAD0FA + QBNBQEATQUBAE0FAQBNBQEATQUBAE0FAQBNBQEARQUBAHkFAQElBQECyQUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQLkAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACopLLsqKSz/Kiks/yopLP8qKSz/Kiks/yopLP8pKCxZAAAAAAAAAABCQUAlQUBA1EFA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQEBrAAAAAAAAAAAAAAAAAAAAAAAAAABBQEAVQUBAwUFA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP5BQEDeQUBA10FAQNdBQEDXQUBA10FA + QNdBQEDYQUBA5UFAQPpBQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBAkgAAAAAAAAAAAAAAAAAAAABBQEBvQUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQPRBQEDjQUBA5UFAQOVBQEDlQUBA5UFAQOVBQEDlQUBA5UFA + QORBQEDtQUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBAnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKSgruykoK/8pKCv/KSgr/yko + K/8pKCv/KSgr/ykoK1kAAAAAAAAAAAAAAABBQEAWQUBAxUFAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQEBtAAAAAAAAAAAAAAAAAAAAAAAAAABBQEATQUBAwUFAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQNRBQEAPAAAAAAAA + AAAAAAAAAAAAAAAAAABBQEBzQUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQEBxAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAoJyq7KCcq/ygnKv8oJyr/KCcq/ygnKv8oJyr/KCcqWQAAAAAAAAAAAAAAAAAA + AABBQEAUQUBAxEFAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQEBvAAAAAAAAAAAAAAAAAAAAAAAA + AABBQEASQUBAwEFAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQEDvQUBAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBQECDQUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/EFAQDcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgnKrsoJyr/KCcq/ygn + Kv8oJyr/KCcq/ygnKv8oJypZAAAAAAAAAAAAAAAAAAAAAAAAAABBQEATQUBAxEFAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQEBwAAAAAAAAAAAAAAAAAAAAAAAAAABBQEAQQUBAv0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA+UFAQEkAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBQECBQUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQEDTQUBABgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAJiUpuyYlKf8mJSn/JiUp/yYlKf8mJSn/JiUp/yYlKVkAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABBQEARQUBAwUFAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQEBxAAAAAAAA + AAAAAAAAAAAAAAAAAABBQEAOQUBAvUFAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQPRBQEBbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABBQECAQUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQHUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlJCi7JSQo/yUk + KP8lJCj/JSQo/yUkKP8lJCj/JSQoWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBQEASQUBAv0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQEByAAAAAAAAAAAAAAAAAAAAAAAAAABBQEAOQUBAxUFA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQEDqQUBARgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBQEB/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQEDZQUBADwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAACUkKLslJCj/JSQo/yUkKP8lJCj/JSQo/yUkKP8lJChZAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBQEASQUBAwkFAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQEB0AAAAAAAAAAAAAAAAAAAAAAAAAABBQEAcQUBAzUFAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBAykFAQC0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABBQEB+QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA+kFAQEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJCMmuyQj + Jv8kIyb/JCMm/yQjJv8kIyb/JCMm/yQjJlkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABBQEAbQUBA0UFAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQEB1AAAAAAAAAAAAAAAAAAAAAAAA + AABBQEAbQUBAzUFAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/EFAQIlBQEAMAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBQEB8QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQPpBQEBfAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjIiW7IyIl/yMiJf8jIiX/IyIl/yMiJf8jIiX/IyIlWQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBQEAcQUBA0UFAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQEB4AAAAAAAAAAAAAAAAAAAAAAAAAABBQEAZQUBAzEFAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QLNBQEA5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBQEB6QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQEDbQUBASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIh + JMQiIST/IiEk/yIhJP8iIST/IiEk/yIhJP8iISReAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABBQEAaQUBAzkFAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQECBQUBABAAA + AAAAAAAAAAAAAAAAAABBQEAXQUBAykFAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA7UFAQKRBQEA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABBQEB5QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQEDvQUBAkkFAQBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAISAkbiEgJOAhICT/ISAk/yEgJP8hICT/ISAk2yEg + JCkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBQEAaQUBAuUFA + QNZBQEDVQUBA1UFAQNVBQEDVQUBA1UFAQNVBQEDVQUBA1UFAQNVBQEDVQUBA1UFAQNVBQEDVQUBA1UFA + QNVBQEDVQUBA1UFAQNVBQEDVQUBA1kFAQNhBQEBHAAAAAAAAAAAAAAAAAAAAAAAAAABBQEAXQUBAyEFA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQPNBQEDVQUBAqEFAQGFBQEAgAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBQEB3QUBA/0FAQP9BQED/QUBA/0FA + QP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQP9BQED/QUBA/0FAQOpBQEDDQUBAeEFA + QCMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAISAkFiAfI3cgHyO6IB8jvSAfI4EhICQXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQUBACEFAQAdBQEAHQUBAB0FAQAdBQEAHQUBAB0FA + QAdBQEAHQUBAB0FAQAdBQEAHQUBAB0FAQAdBQEAHQUBAB0FAQAdBQEAHQUBAB0FAQAdBQEAHQUBACUFA + QAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBQEAYQUBAckFAQHdBQEB2QUBAdkFAQHZBQEB4QUBAZkFA + QFNBQEA7QUBAJUFAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABBQEBXQUBAeUFAQHZBQEB2QUBAdkFAQHZBQEB2QUBAdkFAQHZBQEB2QUBAdkFA + QHZBQEB4QUBAb0FAQFJBQEA4QUBAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIB8jHyAfI1IgHyNVIB8jJQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABBQEAcQUBAH0FAQB9BQEAfQUBAH0FAQCBBQEAUQUBACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEFAQA9BQEAgQUBAH0FA + QB9BQEAfQUBAH0FAQB9BQEAfQUBAH0FAQB9BQEAfQUBAH0FAQCBBQEAaQUBABwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////z8H+APj4f/4fwfPif58H/4/A/gAY4B/4BwBjwH8cAf+PiPwACM + AP8AYAI8B/GAD/jwwAT4iPh+PiPiOAfxD4/48cAM/Aj8fj4H8DgH8R+P+OPgDPwB/H4/x/AwB/EcD/gD + 44z8Afx8f8fwIgAQPA/4AOMc/AH8fH/H8CIAED4P+HjzHPwB/H4/x/AGA/Ef//j8cTz8CPx+P8fwBgfx + H//4/HA8+Ij4fj4j4g4H8Q+P+AD4PACIIP8IIIIeABGCH/gA+HwBjAH/gHAGHgABwB/4A/x8B48H/8H8 + Hj8gAeB///////////////////////////////////////////////////////////////////////// + //////////////gMAAA/+ABgAf/+AB///+f4DAAAD/gAYAA//gAf///H+AwAAAP4AGAAD/4AH///h/gM + AAAB+ABgAAf+AB///wf//AAAAPgAYAAD/gAf//4H//wAAAB4AGAAAf4AH//8B/gMAAAAOABgAAD+AB// + +Af4DAAAADgAYAAAfgAf//AH+AwAAAAYAGAAAD4AH//gB/gMAAAAGABgAAAeAB//wAf4DgAAABgAcAAA + HgAf/4AH+A///gAIAH/wAA4AH/8AB/gP//8ACAB//AAOAB/+AAf4D///gAgAf/4ABgAf/AAP+A///4AI + AH//AAYAH/gAH/gP//+ACAB//4AGAB/wAD/4D///AAgAf/+ABgAf4AA/+A///wAIAH//wAYAH8AAf/gP + //4ACAB//8ACAB+AAP/4D/gAABgAf//AAgAfAAD/+A/4AAAYAH//wAIAHgAAf/gP/gAAGAB//8ACABwA + AD/4D/8AADgAf//AAgAcAAAf+A//gAA4AH//wAIAH/wAH/gP/8AAeAB//8ACAB/+AA/4D//gAPgAf/+A + BgAf/wAP+A//8AH4AH//gAYAH/8AD/gP//gD+AB//wAGAB//AAf4D//8B/gAf/4ABgAf/wAH+A///g/4 + AH/8AA4AH/8AB/gP//8D+AB/+AAOAB/+AAf4D///A/gAf+AAHgAf/AAH+A8AAAH8AAAAAB8AAAAAB/gP + gAAA/gAAAAA/gAAAAA/4D8AAAH8AAAAAf4AAAAAP+A/gAAA/gAAAAP/AAAAAD/gP8AAAH8AAAAH/4AAA + AB/4D/gAAA/gAAAD//gAAAAf+A/8AAAH8AAAB//8AAAAP/gP/gAAA/gAAA///gAAAH/4D/8AAAH8AAA/ + //8AAAD/+A//gAAAfgAA////gAAB//wP/8AAAH8AB////8AAD///H/////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8= + + + + NoControl + + + 3DRRadio Config + + + Config + + + System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Tools/ArdupilotMegaPlanner/3DRRadio/MainV2.cs b/Tools/ArdupilotMegaPlanner/3DRRadio/MainV2.cs new file mode 100644 index 0000000000..22232ee1cd --- /dev/null +++ b/Tools/ArdupilotMegaPlanner/3DRRadio/MainV2.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace ArdupilotMega +{ + class MainV2 + { + public static portproxy comPort = new portproxy(); + } + + class portproxy + { + public ArdupilotMega.Comms.SerialPort BaseStream = new ArdupilotMega.Comms.SerialPort(); + } +} diff --git a/Tools/ArdupilotMegaPlanner/3DRRadio/Program.cs b/Tools/ArdupilotMegaPlanner/3DRRadio/Program.cs new file mode 100644 index 0000000000..e4f207fc14 --- /dev/null +++ b/Tools/ArdupilotMegaPlanner/3DRRadio/Program.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; +using log4net.Config; + +namespace _3DRRadio +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + XmlConfigurator.Configure(); + + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Config()); + } + } +} diff --git a/Tools/ArdupilotMegaPlanner/3DRRadio/Properties/AssemblyInfo.cs b/Tools/ArdupilotMegaPlanner/3DRRadio/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..ae9d3a3560 --- /dev/null +++ b/Tools/ArdupilotMegaPlanner/3DRRadio/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("3DRRadio")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("3DRRadio")] +[assembly: AssemblyCopyright("Copyright © 2012")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("5f5b5ed0-0b27-4a90-8c24-248309f363f8")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("0.1.*")] +[assembly: AssemblyFileVersion("0.1.0.0")] diff --git a/Tools/ArdupilotMegaPlanner/3DRRadio/Properties/Resources.Designer.cs b/Tools/ArdupilotMegaPlanner/3DRRadio/Properties/Resources.Designer.cs new file mode 100644 index 0000000000..f107d01f7a --- /dev/null +++ b/Tools/ArdupilotMegaPlanner/3DRRadio/Properties/Resources.Designer.cs @@ -0,0 +1,84 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.261 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace _3DRRadio.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [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() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("_3DRRadio.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + internal static System.Drawing.Bitmap _3dr { + get { + object obj = ResourceManager.GetObject("3dr", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap _3dr2 { + get { + object obj = ResourceManager.GetObject("3dr2", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap _3dr3 { + get { + object obj = ResourceManager.GetObject("3dr3", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Tools/ArdupilotMegaPlanner/3DRRadio/Properties/Resources.resx b/Tools/ArdupilotMegaPlanner/3DRRadio/Properties/Resources.resx new file mode 100644 index 0000000000..40514226ac --- /dev/null +++ b/Tools/ArdupilotMegaPlanner/3DRRadio/Properties/Resources.resx @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + ..\Resources\3dr2.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\3dr.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + + ..\Resources\3dr3.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Tools/ArdupilotMegaPlanner/3DRRadio/Properties/Settings.Designer.cs b/Tools/ArdupilotMegaPlanner/3DRRadio/Properties/Settings.Designer.cs new file mode 100644 index 0000000000..11d738043b --- /dev/null +++ b/Tools/ArdupilotMegaPlanner/3DRRadio/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.261 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace _3DRRadio.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.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/Tools/ArdupilotMegaPlanner/3DRRadio/Properties/Settings.settings b/Tools/ArdupilotMegaPlanner/3DRRadio/Properties/Settings.settings new file mode 100644 index 0000000000..39645652af --- /dev/null +++ b/Tools/ArdupilotMegaPlanner/3DRRadio/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Tools/ArdupilotMegaPlanner/3DRRadio/Resources/3dr.ico b/Tools/ArdupilotMegaPlanner/3DRRadio/Resources/3dr.ico new file mode 100644 index 0000000000000000000000000000000000000000..9837bfa41691857f8f57ed0b4a2efe944300826a GIT binary patch literal 67646 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 literal 0 HcmV?d00001 diff --git a/Tools/ArdupilotMegaPlanner/3DRRadio/ThemeManager.cs b/Tools/ArdupilotMegaPlanner/3DRRadio/ThemeManager.cs new file mode 100644 index 0000000000..4468a3f3d1 --- /dev/null +++ b/Tools/ArdupilotMegaPlanner/3DRRadio/ThemeManager.cs @@ -0,0 +1,235 @@ +using System; +using System.Drawing; +using System.Windows.Forms; +using ArdupilotMega.Controls.BackstageView; +using log4net; +using ArdupilotMega.Controls; + +namespace ArdupilotMega.Utilities +{ + /// + /// Helper class for the stylng 'theming' of forms and controls, and provides MessageBox + /// replacements which are also styled + /// + public class ThemeManager + { + private static readonly ILog log = + LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + + private static Themes _currentTheme = Themes.BurntKermit; + + public enum Themes + { + /// + /// no theme - standard Winforms appearance + /// + None, + + /// + /// Standard Planner Charcoal & Green colours + /// + BurntKermit, + } + + /// + /// Change the current theme. Existing controls are not affected + /// + /// + public static void SetTheme(Themes theme) + { + log.Debug("Theme set to " + Enum.GetName(typeof(Themes), theme)); + _currentTheme = theme; + } + + /// + /// Will recursively apply the current theme to 'control' + /// + /// + public static void ApplyThemeTo(Control control) + { + switch (_currentTheme) + { + case Themes.BurntKermit: ApplyBurntKermitTheme(control, 0); + break; + + case Themes.None: ApplyNone(control, 0); + break; + + // More themes go here + + + default: + break; + } + + + } + + private static void ApplyNone(Control temp, int level) + { + foreach (Control ctl in temp.Controls) + { + if (ctl.GetType() == typeof(MyButton)) + { + ArdupilotMega.Controls.MyButton but = (MyButton)ctl; + but.BGGradTop = Color.FromArgb(242,242,242); + but.BGGradBot = Color.FromArgb(207,207,207); + but.ForeColor = Color.Black; + but.TextColor = Color.Black; + but.Outline = Color.FromArgb(112,112,112); + } + + if (ctl.Controls.Count > 0) + ApplyNone(ctl, 1); + } + } + + private static void ApplyBurntKermitTheme(Control temp, int level) + { + Color BGColor = Color.FromArgb(0x26, 0x27, 0x28); // background + Color ControlBGColor = Color.FromArgb(0x43, 0x44, 0x45); // editable bg color + Color TextColor = Color.White; + + if (level == 0) + { + temp.BackColor = BGColor; + temp.ForeColor = TextColor;// Color.FromArgb(0xe6, 0xe8, 0xea); + } + + //temp.Font = new Font("Lucida Console", 8.25f); + + foreach (Control ctl in temp.Controls) + { + if (ctl.GetType() == typeof(Button)) + { + ctl.ForeColor = Color.Black; + } + else if (ctl.GetType() == typeof(MyButton)) + { + Color PrimeColor = Color.FromArgb(0x94, 0xc1, 0x1f); + + ArdupilotMega.Controls.MyButton but = (MyButton)ctl; + //but.BGGradTop = Color.FromArgb(PrimeColor.R, PrimeColor.G, PrimeColor.B); + //but.BGGradBot = Color.FromArgb(255 - (int)(PrimeColor.R * 0.27), 255 - (int)(PrimeColor.G * 0.14), 255 - (int)(PrimeColor.B * 0.79)); + //but.ForeColor = Color.FromArgb(0x40, 0x57, 0x04); //Color.FromArgb(255 - (int)(PrimeColor.R * 0.7), 255 - (int)(PrimeColor.G * 0.8), 255 - (int)(PrimeColor.B * 0.1)); + //but.Outline = ControlBGColor; + } + else if (ctl.GetType() == typeof(TextBox)) + { + ctl.BackColor = ControlBGColor; + ctl.ForeColor = TextColor;// Color.FromArgb(0xe6, 0xe8, 0xea); + TextBox txt = (TextBox)ctl; + txt.BorderStyle = BorderStyle.None; + } + else if (ctl.GetType() == typeof(DomainUpDown)) + { + ctl.BackColor = ControlBGColor; + ctl.ForeColor = TextColor;// Color.FromArgb(0xe6, 0xe8, 0xea); + DomainUpDown txt = (DomainUpDown)ctl; + txt.BorderStyle = BorderStyle.None; + } + else if (ctl.GetType() == typeof(GroupBox)) + { + ctl.BackColor = BGColor; + ctl.ForeColor = TextColor;// Color.FromArgb(0xe6, 0xe8, 0xea); + } + + else if (ctl.GetType() == typeof(Form)) + { + ctl.BackColor = BGColor; + ctl.ForeColor = TextColor;// Color.FromArgb(0xe6, 0xe8, 0xea); + } + else if (ctl.GetType() == typeof(RichTextBox)) + { + ctl.BackColor = ControlBGColor; + ctl.ForeColor = TextColor; + RichTextBox txtr = (RichTextBox)ctl; + txtr.BorderStyle = BorderStyle.None; + } + else if (ctl.GetType() == typeof(CheckedListBox)) + { + ctl.BackColor = ControlBGColor; + ctl.ForeColor = TextColor; + CheckedListBox txtr = (CheckedListBox)ctl; + txtr.BorderStyle = BorderStyle.None; + } + else if (ctl.GetType() == typeof(TabPage)) + { + ctl.BackColor = BGColor; //ControlBGColor + ctl.ForeColor = TextColor; + TabPage txtr = (TabPage)ctl; + txtr.BorderStyle = BorderStyle.None; + } + else if (ctl.GetType() == typeof(TabControl)) + { + ctl.BackColor = BGColor; //ControlBGColor + ctl.ForeColor = TextColor; + TabControl txtr = (TabControl)ctl; + + } + else if (ctl.GetType() == typeof(DataGridView)) + { + ctl.ForeColor = TextColor; + DataGridView dgv = (DataGridView)ctl; + dgv.EnableHeadersVisualStyles = false; + dgv.BorderStyle = BorderStyle.None; + dgv.BackgroundColor = BGColor; + DataGridViewCellStyle rs = new DataGridViewCellStyle(); + rs.BackColor = ControlBGColor; + rs.ForeColor = TextColor; + dgv.RowsDefaultCellStyle = rs; + + DataGridViewCellStyle hs = new DataGridViewCellStyle(dgv.ColumnHeadersDefaultCellStyle); + hs.BackColor = BGColor; + hs.ForeColor = TextColor; + + dgv.ColumnHeadersDefaultCellStyle = hs; + dgv.RowHeadersDefaultCellStyle = hs; + } + else if (ctl.GetType() == typeof(ComboBox)) + { + ctl.BackColor = ControlBGColor; + ctl.ForeColor = TextColor; + ComboBox CMB = (ComboBox)ctl; + CMB.FlatStyle = FlatStyle.Flat; + } + else if (ctl.GetType() == typeof(NumericUpDown)) + { + ctl.BackColor = ControlBGColor; + ctl.ForeColor = TextColor; + } + else if (ctl.GetType() == typeof(TrackBar)) + { + ctl.BackColor = BGColor; + ctl.ForeColor = TextColor; + } + else if (ctl.GetType() == typeof(LinkLabel)) + { + ctl.BackColor = BGColor; + ctl.ForeColor = TextColor; + LinkLabel LNK = (LinkLabel)ctl; + LNK.ActiveLinkColor = TextColor; + LNK.LinkColor = TextColor; + LNK.VisitedLinkColor = TextColor; + + } + else if (ctl.GetType() == typeof(BackstageView)) + { + var bsv = ctl as BackstageView; + + bsv.BackColor = BGColor; + bsv.ButtonsAreaBgColor = ControlBGColor; + bsv.HighlightColor2 = Color.FromArgb(0x94, 0xc1, 0x1f); + bsv.HighlightColor1 = Color.FromArgb(0x40, 0x57, 0x04); + bsv.SelectedTextColor = Color.White; + bsv.UnSelectedTextColor = Color.Gray; + bsv.ButtonsAreaPencilColor = Color.DarkGray; + } + + if (ctl.Controls.Count > 0) + ApplyBurntKermitTheme(ctl, 1); + } + } + + } +} \ No newline at end of file diff --git a/Tools/ArdupilotMegaPlanner/3DRRadio/app.config b/Tools/ArdupilotMegaPlanner/3DRRadio/app.config new file mode 100644 index 0000000000..8e65526664 --- /dev/null +++ b/Tools/ArdupilotMegaPlanner/3DRRadio/app.config @@ -0,0 +1,29 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj b/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj index 660aa3d655..d8d3db4b91 100644 --- a/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj +++ b/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj @@ -45,7 +45,7 @@ TRACE;DEBUG;MAVLINK10cra prompt 4 - true + false false @@ -61,7 +61,7 @@ TRACE;DEBUG;MAVLINK10cra prompt 4 - true + false false diff --git a/Tools/ArdupilotMegaPlanner/ArdupilotMega.sln b/Tools/ArdupilotMegaPlanner/ArdupilotMega.sln index 6fe51a332b..256d4bb24b 100644 --- a/Tools/ArdupilotMegaPlanner/ArdupilotMega.sln +++ b/Tools/ArdupilotMegaPlanner/ArdupilotMega.sln @@ -7,6 +7,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Updater", "Updater\Updater. EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "wix", "wix\wix.csproj", "{76374F95-C343-4ACC-B86F-7ECFDD668F46}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "3DRRadio", "3DRRadio\3DRRadio.csproj", "{B8943726-04B0-4477-BFDA-E156A0CD98A4}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -55,6 +57,18 @@ Global {76374F95-C343-4ACC-B86F-7ECFDD668F46}.Release|Win32.ActiveCfg = Release|x86 {76374F95-C343-4ACC-B86F-7ECFDD668F46}.Release|x86.ActiveCfg = Release|x86 {76374F95-C343-4ACC-B86F-7ECFDD668F46}.Release|x86.Build.0 = Release|x86 + {B8943726-04B0-4477-BFDA-E156A0CD98A4}.Debug|Any CPU.ActiveCfg = Debug|x86 + {B8943726-04B0-4477-BFDA-E156A0CD98A4}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {B8943726-04B0-4477-BFDA-E156A0CD98A4}.Debug|Mixed Platforms.Build.0 = Debug|x86 + {B8943726-04B0-4477-BFDA-E156A0CD98A4}.Debug|Win32.ActiveCfg = Debug|x86 + {B8943726-04B0-4477-BFDA-E156A0CD98A4}.Debug|x86.ActiveCfg = Debug|x86 + {B8943726-04B0-4477-BFDA-E156A0CD98A4}.Debug|x86.Build.0 = Debug|x86 + {B8943726-04B0-4477-BFDA-E156A0CD98A4}.Release|Any CPU.ActiveCfg = Release|x86 + {B8943726-04B0-4477-BFDA-E156A0CD98A4}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {B8943726-04B0-4477-BFDA-E156A0CD98A4}.Release|Mixed Platforms.Build.0 = Release|x86 + {B8943726-04B0-4477-BFDA-E156A0CD98A4}.Release|Win32.ActiveCfg = Release|x86 + {B8943726-04B0-4477-BFDA-E156A0CD98A4}.Release|x86.ActiveCfg = Release|x86 + {B8943726-04B0-4477-BFDA-E156A0CD98A4}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Tools/ArdupilotMegaPlanner/Common.cs b/Tools/ArdupilotMegaPlanner/Common.cs index 57fd516b87..ffb89d72b0 100644 --- a/Tools/ArdupilotMegaPlanner/Common.cs +++ b/Tools/ArdupilotMegaPlanner/Common.cs @@ -524,7 +524,7 @@ namespace ArdupilotMega case (int)Common.apmmodes.FLY_BY_WIRE_A: case (int)Common.apmmodes.FLY_BY_WIRE_B: mode.base_mode = (byte)MAVLink.MAV_MODE_FLAG.CUSTOM_MODE_ENABLED; - mode.custom_mode = (uint)(int)Enum.Parse(Common.getModes(), modein); + mode.custom_mode = (uint)EnumTranslator.GetValue(modein); break; default: MessageBox.Show("No Mode Changed " + modein); @@ -544,7 +544,7 @@ namespace ArdupilotMega case (int)Common.ac2modes.CIRCLE: case (int)Common.ac2modes.POSITION: mode.base_mode = (byte)MAVLink.MAV_MODE_FLAG.CUSTOM_MODE_ENABLED; - mode.custom_mode = (uint)(int)Enum.Parse(Common.getModes(), modein); + mode.custom_mode = (uint)EnumTranslator.GetValue(modein); break; default: MessageBox.Show("No Mode Changed " + modein); diff --git a/Tools/ArdupilotMegaPlanner/Comms/CommsSerialPort.cs b/Tools/ArdupilotMegaPlanner/Comms/CommsSerialPort.cs index ac07fc4a32..5685593422 100644 --- a/Tools/ArdupilotMegaPlanner/Comms/CommsSerialPort.cs +++ b/Tools/ArdupilotMegaPlanner/Comms/CommsSerialPort.cs @@ -7,7 +7,7 @@ using System.Linq; namespace ArdupilotMega.Comms { - class SerialPort : System.IO.Ports.SerialPort,ICommsSerial + public class SerialPort : System.IO.Ports.SerialPort,ICommsSerial { public new void Open() { diff --git a/Tools/ArdupilotMegaPlanner/Controls/BackstageView/BackStageViewContentPanel.cs b/Tools/ArdupilotMegaPlanner/Controls/BackstageView/BackStageViewContentPanel.cs index d936dcec12..c74b8a3dd9 100644 --- a/Tools/ArdupilotMegaPlanner/Controls/BackstageView/BackStageViewContentPanel.cs +++ b/Tools/ArdupilotMegaPlanner/Controls/BackstageView/BackStageViewContentPanel.cs @@ -15,9 +15,15 @@ namespace ArdupilotMega.Controls.BackstageView FormClosing(this, new FormClosingEventArgs(CloseReason.UserClosing, false)); } - public new void OnLoad(EventArgs e) + public void DoLoad(EventArgs e) { base.OnLoad(e); } + + public new void OnLoad(EventArgs e) + { + // this is now done on page load via parent control + // base.OnLoad(e); + } } } diff --git a/Tools/ArdupilotMegaPlanner/Controls/BackstageView/BackstageView.cs b/Tools/ArdupilotMegaPlanner/Controls/BackstageView/BackstageView.cs index bb9c99ac2d..effe9d5f59 100644 --- a/Tools/ArdupilotMegaPlanner/Controls/BackstageView/BackstageView.cs +++ b/Tools/ArdupilotMegaPlanner/Controls/BackstageView/BackstageView.cs @@ -165,9 +165,11 @@ namespace ArdupilotMega.Controls.BackstageView this.pnlPages.Controls.Add(page.Page); if (_activePage == null) + { _activePage = page; - ActivatePage(page); + ActivatePage(page); + } } private void CreateLinkButton(BackstageViewPage page) @@ -202,6 +204,12 @@ namespace ArdupilotMega.Controls.BackstageView public void ActivatePage(BackstageViewPage associatedPage) { // deactivate the old page + _activePage.Page.Close(); + Pages.ForEach(x => + { + x.Page.Visible = false; + }); + _activePage.Page.Visible = false; var oldButton = this.pnlMenu.Controls.OfType().Single(b => b.Tag == _activePage); oldButton.IsSelected = false; @@ -212,7 +220,7 @@ namespace ArdupilotMega.Controls.BackstageView _activePage = associatedPage; - _activePage.Page.OnLoad(new EventArgs()); + _activePage.Page.DoLoad(new EventArgs()); } public void Close() diff --git a/Tools/ArdupilotMegaPlanner/Controls/ConfigPanel.cs b/Tools/ArdupilotMegaPlanner/Controls/ConfigPanel.cs index 539183f9bb..10bdba60bb 100644 --- a/Tools/ArdupilotMegaPlanner/Controls/ConfigPanel.cs +++ b/Tools/ArdupilotMegaPlanner/Controls/ConfigPanel.cs @@ -35,6 +35,8 @@ namespace ArdupilotMega.Controls // process hashdefines and update display foreach (string value in MainV2.comPort.param.Keys) { + if (value == null) // older ap vesion have a null param + continue; Control[] text = this.Controls.Find(value, true); foreach (Control ctl in text) { diff --git a/Tools/ArdupilotMegaPlanner/CurrentState.cs b/Tools/ArdupilotMegaPlanner/CurrentState.cs index 95c47e3881..b15dccf96b 100644 --- a/Tools/ArdupilotMegaPlanner/CurrentState.cs +++ b/Tools/ArdupilotMegaPlanner/CurrentState.cs @@ -312,7 +312,7 @@ namespace ArdupilotMega { mode = ""; messages = new List(); - rateattitude = 3; + rateattitude = 10; rateposition = 3; ratestatus = 3; ratesensors = 3; @@ -373,7 +373,7 @@ namespace ArdupilotMega byte[] bytearray = mavinterface.packets[MAVLink.MAVLINK_MSG_ID_RC_CHANNELS_SCALED]; - if (bytearray != null) // hil + if (bytearray != null) // hil mavlink 0.9 { var hil = bytearray.ByteArrayToStructure(6); @@ -389,6 +389,20 @@ namespace ArdupilotMega //MAVLink.packets[MAVLink.MAVLINK_MSG_ID_RC_CHANNELS_SCALED] = null; } + bytearray = mavinterface.packets[MAVLink.MAVLINK_MSG_ID_HIL_CONTROLS]; + + if (bytearray != null) // hil mavlink 0.9 and 1.0 + { + var hil = bytearray.ByteArrayToStructure(6); + + hilch1 = (int)(hil.roll_ailerons * 10000); + hilch2 = (int)(hil.pitch_elevator * 10000); + hilch3 = (int)(hil.throttle * 10000); + hilch4 = (int)(hil.yaw_rudder * 10000); + + //MAVLink.packets[MAVLink.MAVLINK_MSG_ID_RC_CHANNELS_SCALED] = null; + } + bytearray = mavinterface.packets[MAVLink.MAVLINK_MSG_ID_NAV_CONTROLLER_OUTPUT]; if (bytearray != null) diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationPlane.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationPlane.cs index 5c08a8ab7e..106cef0171 100644 --- a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationPlane.cs +++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationPlane.cs @@ -68,7 +68,7 @@ namespace ArdupilotMega.GCSViews.ConfigurationView { #if MAVLINK10 int fixme; // needs to be accel only - MainV2.comPort.doCommand(MAVLink.MAV_CMD.PREFLIGHT_CALIBRATION,1,1,1,1,1,1,1); + MainV2.comPort.doCommand(MAVLink.MAV_CMD.PREFLIGHT_CALIBRATION,1,1,1,0,0,0,0); #else MainV2.comPort.doAction(MAVLink.MAV_ACTION.MAV_ACTION_CALIBRATE_ACC); #endif diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigFriendlyParams.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigFriendlyParams.cs index d44d880a70..1b1529a146 100644 --- a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigFriendlyParams.cs +++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigFriendlyParams.cs @@ -149,64 +149,6 @@ namespace ArdupilotMega.GCSViews.ConfigurationView #region Methods - /// - /// Loads the param file. - /// - /// The filename. - /// - private Hashtable loadParamFile(string Filename) - { - Hashtable param = new Hashtable(); - - StreamReader sr = new StreamReader(Filename); - while (!sr.EndOfStream) - { - string line = sr.ReadLine(); - - if (line.Contains("NOTE:")) - CustomMessageBox.Show(line, "Saved Note"); - - if (line.StartsWith("#")) - continue; - - string[] items = line.Split(new char[] { ' ', ',', '\t' }, StringSplitOptions.RemoveEmptyEntries); - - if (items.Length != 2) - continue; - - string name = items[0]; - float value = float.Parse(items[1], new System.Globalization.CultureInfo("en-US")); - - MAVLink.modifyParamForDisplay(true, name, ref value); - - if (name == "SYSID_SW_MREV") - continue; - if (name == "WP_TOTAL") - continue; - if (name == "CMD_TOTAL") - continue; - if (name == "FENCE_TOTAL") - continue; - if (name == "SYS_NUM_RESETS") - continue; - if (name == "ARSPD_OFFSET") - continue; - if (name == "GND_ABS_PRESS") - continue; - if (name == "GND_TEMP") - continue; - if (name == "CMD_INDEX") - continue; - if (name == "LOG_LASTFILE") - continue; - - param[name] = value; - } - sr.Close(); - - return param; - } - /// /// Sorts the param list. /// @@ -241,6 +183,11 @@ namespace ArdupilotMega.GCSViews.ConfigurationView { tableLayoutPanel1.Controls.Clear(); if (_params == null || _params.Count == 0) SortParamList(); + + // get the params if nothing exists already + if (_params != null && _params.Count == 0) + Utilities.ParameterMetaDataParser.GetParameterInformation(); + _params.ForEach(x => { if(!String.IsNullOrEmpty(x.Key)) diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/FlightData.cs b/Tools/ArdupilotMegaPlanner/GCSViews/FlightData.cs index 36e947d99f..c03769ddef 100644 --- a/Tools/ArdupilotMegaPlanner/GCSViews/FlightData.cs +++ b/Tools/ArdupilotMegaPlanner/GCSViews/FlightData.cs @@ -1180,7 +1180,7 @@ namespace ArdupilotMega.GCSViews { ((Button)sender).Enabled = false; #if MAVLINK10 - MainV2.comPort.setMode("AUTO"); + MainV2.comPort.setMode("Auto"); #else comPort.doAction(MAVLink.MAV_ACTION.MAV_ACTION_SET_AUTO); #endif @@ -1210,7 +1210,7 @@ namespace ArdupilotMega.GCSViews { ((Button)sender).Enabled = false; #if MAVLINK10 - MainV2.comPort.setMode("MANUAL"); + MainV2.comPort.setMode("Manual"); #else comPort.doAction(MAVLink.MAV_ACTION.MAV_ACTION_SET_MANUAL); #endif diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/Simulation.cs b/Tools/ArdupilotMegaPlanner/GCSViews/Simulation.cs index 307090fb1b..07871632a6 100644 --- a/Tools/ArdupilotMegaPlanner/GCSViews/Simulation.cs +++ b/Tools/ArdupilotMegaPlanner/GCSViews/Simulation.cs @@ -1210,11 +1210,22 @@ namespace ArdupilotMega.GCSViews TimeSpan gpsspan = DateTime.Now - lastgpsupdate; + // add gps delay if (gpsspan.TotalMilliseconds >= GPS_rate) { lastgpsupdate = DateTime.Now; - oldgps = gps; - //comPort.sendPacket(gps); + + // save current fix = 3 + gpsbuffer[gpsbufferindex % gpsbuffer.Length] = gps; + + // Console.WriteLine((gpsbufferindex % gpsbuffer.Length) + " " + ((gpsbufferindex + (gpsbuffer.Length - 1)) % gpsbuffer.Length)); + + // return buffer index + 5 = (3 + 5) = 8 % 6 = 2 + oldgps = gpsbuffer[(gpsbufferindex + (gpsbuffer.Length - 1)) % gpsbuffer.Length]; + + //comPort.sendPacket(oldgps); + + gpsbufferindex++; } @@ -1226,8 +1237,8 @@ namespace ArdupilotMega.GCSViews hilstate.roll = att.roll; hilstate.rollspeed = att.rollspeed; hilstate.time_usec = gps.time_usec; - hilstate.vx = (short)(gps.vel * Math.Sin(oldgps.cog / 100.0 * deg2rad)); - hilstate.vy = (short)(gps.vel * Math.Cos(oldgps.cog / 100.0 * deg2rad)); + hilstate.vx = (short)(gps.vel * Math.Sin(gps.cog / 100.0 * deg2rad)); + hilstate.vy = (short)(gps.vel * Math.Cos(gps.cog / 100.0 * deg2rad)); hilstate.vz = 0; hilstate.xacc = imu.xacc; hilstate.yacc = imu.yacc; @@ -1237,6 +1248,8 @@ namespace ArdupilotMega.GCSViews comPort.sendPacket(hilstate); +// comPort.sendPacket(oldgps); + comPort.sendPacket(asp); #else @@ -1266,6 +1279,7 @@ namespace ArdupilotMega.GCSViews TimeSpan gpsspan = DateTime.Now - lastgpsupdate; + // add gps delay if (gpsspan.TotalMilliseconds >= GPS_rate) { lastgpsupdate = DateTime.Now; diff --git a/Tools/ArdupilotMegaPlanner/Properties/AssemblyInfo.cs b/Tools/ArdupilotMegaPlanner/Properties/AssemblyInfo.cs index c7eff29d43..f87006bf3f 100644 --- a/Tools/ArdupilotMegaPlanner/Properties/AssemblyInfo.cs +++ b/Tools/ArdupilotMegaPlanner/Properties/AssemblyInfo.cs @@ -34,5 +34,5 @@ using System.Resources; // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.1.*")] -[assembly: AssemblyFileVersion("1.1.80")] +[assembly: AssemblyFileVersion("1.1.81")] [assembly: NeutralResourcesLanguageAttribute("")] diff --git a/Tools/ArdupilotMegaPlanner/Radio/3DRradio.cs b/Tools/ArdupilotMegaPlanner/Radio/3DRradio.cs index 48a557bae2..3d55bb84b7 100644 --- a/Tools/ArdupilotMegaPlanner/Radio/3DRradio.cs +++ b/Tools/ArdupilotMegaPlanner/Radio/3DRradio.cs @@ -11,6 +11,8 @@ using System.IO; using ArdupilotMega.Controls.BackstageView; using ArdupilotMega.Arduino; using ArdupilotMega.Comms; +using log4net; +using System.Reflection; namespace ArdupilotMega { @@ -22,6 +24,8 @@ namespace ArdupilotMega string firmwarefile = Path.GetDirectoryName(Application.ExecutablePath) + Path.DirectorySeparatorChar + "radio.hm_trp.hex"; + private static readonly ILog log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + public _3DRradio() { InitializeComponent(); @@ -34,7 +38,7 @@ namespace ArdupilotMega { // was https://raw.github.com/tridge/SiK/master/Firmware/dst/radio.hm_trp.hex // now http://www.samba.org/tridge/UAV/3DR/radio.hm_trp.hex - + return Common.getFilefromNet("http://www.samba.org/tridge/UAV/3DR/radio.hm_trp.hex", firmwarefile); } @@ -118,7 +122,7 @@ namespace ArdupilotMega { comPort.Write("AT&UPDATE\r\n"); string left = comPort.ReadExisting(); - Console.WriteLine(left); + log.Info(left); Sleep(700); comPort.BaudRate = 115200; } @@ -165,6 +169,7 @@ namespace ArdupilotMega { Console.Write(message); lbl_status.Text = message; + log.Info(message); Application.DoEvents(); } } @@ -179,6 +184,7 @@ namespace ArdupilotMega { lbl_status.Text = message; Console.WriteLine(message); + log.Info(message); Application.DoEvents(); } } @@ -477,7 +483,7 @@ namespace ArdupilotMega } else { - Console.WriteLine("Odd config line :" + item); + log.Info("Odd config line :" + item); } } } @@ -534,7 +540,7 @@ namespace ArdupilotMega // ignore all existing data comPort.DiscardInBuffer(); lbl_status.Text = "Doing Command " + cmd; - Console.WriteLine("Doing Command " + cmd); + log.Info("Doing Command " + cmd); // write command comPort.Write(cmd + "\r\n"); // read echoed line or existing data @@ -544,7 +550,7 @@ namespace ArdupilotMega temp = Serial_ReadLine(comPort); } catch { temp = comPort.ReadExisting(); } - Console.WriteLine("cmd " + cmd + " echo " + temp); + log.Info("cmd " + cmd + " echo " + temp); // delay for command Sleep(500); // get responce @@ -564,7 +570,7 @@ namespace ArdupilotMega } } - Console.WriteLine("responce " + level + " " + ans.Replace('\0', ' ')); + log.Info("responce " + level + " " + ans.Replace('\0', ' ')); // try again if (ans == "" && level == 0) @@ -586,9 +592,9 @@ namespace ArdupilotMega // wait Sleep(1100); // check for config responce "OK" - Console.WriteLine("Connect btr " + comPort.BytesToRead + " baud " + comPort.BaudRate); + log.Info("Connect btr " + comPort.BytesToRead + " baud " + comPort.BaudRate); string conn = comPort.ReadExisting(); - Console.WriteLine("Connect first responce " + conn.Replace('\0', ' ') + " " + conn.Length); + log.Info("Connect first responce " + conn.Replace('\0', ' ') + " " + conn.Length); if (conn.Contains("OK")) { //return true; @@ -601,7 +607,7 @@ namespace ArdupilotMega string version = doCommand(comPort, "ATI"); - Console.Write("Connect Version: " + version.Trim() + "\n"); + log.Info("Connect Version: " + version.Trim() + "\n"); if (version.Contains("SiK") && version.Contains("on")) // should use a regex.... { diff --git a/Tools/ArdupilotMegaPlanner/Utilities/ParameterMetaDataRepository.cs b/Tools/ArdupilotMegaPlanner/Utilities/ParameterMetaDataRepository.cs index 2f118a36f8..898b69a37f 100644 --- a/Tools/ArdupilotMegaPlanner/Utilities/ParameterMetaDataRepository.cs +++ b/Tools/ArdupilotMegaPlanner/Utilities/ParameterMetaDataRepository.cs @@ -17,8 +17,13 @@ namespace ArdupilotMega.Utilities public ParameterMetaDataRepository() { string paramMetaDataXMLFileName = String.Format("{0}\\{1}", Application.StartupPath, ConfigurationManager.AppSettings["ParameterMetaDataXMLFileName"]); - if (File.Exists(paramMetaDataXMLFileName)) - _parameterMetaDataXML = XDocument.Load(paramMetaDataXMLFileName); + try + { + if (File.Exists(paramMetaDataXMLFileName)) + _parameterMetaDataXML = XDocument.Load(paramMetaDataXMLFileName); + + } + catch { } // Exception System.Xml.XmlException: Root element is missing. } /// @@ -33,19 +38,23 @@ namespace ArdupilotMega.Utilities { // Use this to find the endpoint node we are looking for // Either it will be pulled from a file in the ArduPlane hierarchy or the ArduCopter hierarchy - var element = _parameterMetaDataXML.Element("Params").Element(MainV2.cs.firmware.ToString()); - if(element != null && element.HasElements) - { - var node = element.Element(nodeKey); - if(node != null && node.HasElements) - { - var metaValue = node.Element(metaKey); - if(metaValue != null) - { - return metaValue.Value; - } - } - } + try + { + var element = _parameterMetaDataXML.Element("Params").Element(MainV2.cs.firmware.ToString()); + if (element != null && element.HasElements) + { + var node = element.Element(nodeKey); + if (node != null && node.HasElements) + { + var metaValue = node.Element(metaKey); + if (metaValue != null) + { + return metaValue.Value; + } + } + } + } + catch { } // Exception System.ArgumentException: '' is an invalid expanded name. } return string.Empty; }